KR20220083976A - 액션 센터, 인공 지능(ai)/머신 학습(ml) 모델 재트레이닝 하드웨어 제어, 및 ai/ml 모델 설정 관리를 통한 ai/ml 모델들의 보충 - Google Patents

액션 센터, 인공 지능(ai)/머신 학습(ml) 모델 재트레이닝 하드웨어 제어, 및 ai/ml 모델 설정 관리를 통한 ai/ml 모델들의 보충 Download PDF

Info

Publication number
KR20220083976A
KR20220083976A KR1020217042508A KR20217042508A KR20220083976A KR 20220083976 A KR20220083976 A KR 20220083976A KR 1020217042508 A KR1020217042508 A KR 1020217042508A KR 20217042508 A KR20217042508 A KR 20217042508A KR 20220083976 A KR20220083976 A KR 20220083976A
Authority
KR
South Korea
Prior art keywords
model
processors
requested
action center
models
Prior art date
Application number
KR1020217042508A
Other languages
English (en)
Inventor
모힛 세스
Original Assignee
유아이패스, 인크.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 유아이패스, 인크. filed Critical 유아이패스, 인크.
Publication of KR20220083976A publication Critical patent/KR20220083976A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/096Transfer learning
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1602Programme controls characterised by the control system, structure, architecture
    • B25J9/161Hardware, e.g. neural networks, fuzzy logic, interfaces, processor
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1628Programme controls characterised by the control loop
    • B25J9/163Programme controls characterised by the control loop learning, adaptive, model based, rule based expert control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20081Training; Learning

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Mathematical Physics (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Automation & Control Theory (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Computer Hardware Design (AREA)
  • Fuzzy Systems (AREA)
  • Computer Graphics (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Molecular Biology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • User Interface Of Digital Computer (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Abstract

액션 센터를 통해 인공 지능(AI)/머신 러닝(ML) 모델들을 보충하고, AI/ML 모델 재트레이닝 하드웨어 제어를 제공하고, AI/ML 모델 설정 관리를 제공하는 것이 개시된다. AI/ML 모델들은, AI/ML 모델들이 로봇 프로세스 자동화(RPA) 로봇들에 의해 호출될 수 있는 호스팅 인프라구조 상에 배치될 수 있다. AI/ML 모델의 성능이 임계치 미만으로 떨어질 때, AI/ML 모델 예측의 결과 및 다른 데이터는 액션 센터로 전송되며, 여기서 인간은 적절한 애플리케이션을 사용하여 데이터를 검토하고 예측을 승인하거나 예측이 잘못된 경우 정정을 제공한다. 이어서, 이러한 액션 센터-승인 결과는 AI/ML 모델로부터의 예측 대신 사용되도록 RPA 로봇에 전송된다.

Description

액션 센터, 인공 지능(AI)/머신 학습(ML) 모델 재트레이닝 하드웨어 제어, 및 AI/ML 모델 설정 관리를 통한 AI/ML 모델들의 보충
본 출원은, 2020년 12월 11일에 출원된 인도 특허 출원 제202011053926호의 이익을 주장하는, 2021년 1월 22일에 출원된 미국 특허 출원 제17/155,209호의 이익을 주장한다. 이러한 앞서 출원된 출원들의 요지는 이로써 그 전체가 참조로 통합된다.
본 발명은 일반적으로 인공 지능(AI) 및 머신 학습(ML)에 관한 것으로, 더 구체적으로는, 액션 센터, AI/ML 모델 재트레이닝 하드웨어 제어, 및 AI/ML 모델 설정 관리를 통해 AI/ML 모델들의 보충하는 것에 관한 것이다.
AI/ML 모델들은, 정의하기 어렵고, 높은 변동성을 가지며, 확률론적 접근법을 요구하는 단계들을 자동화하기 위해, 로봇 프로세스 자동화(RPA)에서 유익할 수 있다. RPA 로봇들에 의해 호출가능한 AI/ML 모델들은 적절한 인프라구조 상에 배치될 수 있다. 예를 들어, RPA 로봇에 의해 호출될 때, 그러한 AI/ML 모델들은 결과(예를 들어, 예측) 및 신뢰도를 리턴할 수 있다. 그러나, 시간이 지남에 따라, AI/ML 모델들은 데이터 및/또는 모델 드리프트로 인해 덜 정확해질 수 있다.
전형적으로, AI/ML 모델의 정확도가 감소될 때, 라벨링된 트레이닝 데이터가 획득되고, 그 성능을 개선하기 위한 시도로 AI/ML 모델을 재트레이닝하기 위해 사용된다. 그러나, 라벨링된 트레이닝 데이터를 획득하는 프로세스는 비용이 많이 들고 시간 소모적일 수 있고, 재트레이닝은 사소한 양의 시간이 걸릴 수 있으며, AI/ML 모델은 재트레이닝된 AI/ML 모델이 제공될 수 있을 때까지 원하는 것보다 덜 정확하다. 또한, 재트레이닝을 위해 어떤 하드웨어가 사용되는지에 대한 제어가 없다. 따라서, AI/ML 모델 재트레이닝 및 관리에 대한 개선된 접근법이 유익할 수 있다.
본 발명의 특정 실시예들은, 현재 RPA 기술들에 의해 아직 완전히 식별되거나, 인식되거나, 해결되지 않은 기술분야에서의 문제점들 및 요구들에 대한 솔루션들을 제공할 수 있다. 예를 들어, 본 발명의 일부 실시예들은 액션 센터, AI/ML 모델 재트레이닝 하드웨어 제어, 및 AI/ML 모델 설정 관리를 통해 AI/ML 모델들을 보충하는 것에 관한 것이다.
일 실시예에서, 시스템은 하나 이상의 AI/ML 모델들을 포함하거나 하나 이상의 AI/ML 모델들에 대한 액세스를 갖는 서버를 포함한다. 시스템은 또한 실행 동안 하나 이상의 AI/ML 모델들 중 적어도 하나를 호출하도록 구성된 하나 이상의 RPA 로봇들 및 액션 센터를 포함한다. 서버는, 하나 이상의 AI/ML 모델들의 성능을 모니터링하고, 하나 이상의 AI/ML 모델들의 AI/ML 모델을 실행하기 위한 요청을 하나 이상의 RPA 로봇들의 호출 RPA 로봇으로부터 수신하도록 구성된다. 요청된 AI/ML 모델의 성능이 처음으로, 일정 시구간에 걸쳐, 또는 요청된 AI/ML 모델의 다수의 실행들에 걸쳐 하나 이상의 성능 임계치들 미만으로 떨어질 때, 서버는 요청된 AI/ML 모델의 실행의 결과를 검토하기 위한 검토 요청을 액션 센터에 전송하도록 구성된다. 액션 센터는 결과가 정확하다는 표시를 액션 센터 애플리케이션으로부터 수신하거나 액션 센터 애플리케이션으로부터 정정된 결과를 수신하도록 구성된다. 결과가 부정확할 때, 액션 센터는 또한 액션 센터로부터의 정정된 결과를 호출 RPA 로봇에, 서버에, 또는 둘 모두에 제공하도록 구성된다.
다른 실시예에서, 컴퓨터 구현 방법은 액션 센터 애플리케이션에 의해, AI/ML 모델로부터의 결과를 검토하기 위한 요청을 수신하는 단계, 및 액션 센터 애플리케이션에 의해, AI/ML 모델에 의해 분석된 이미지 및 상기 결과에 대한 하나 이상의 파라미터들을 디스플레이 상에 디스플레이하는 단계를 포함한다. 하나 이상의 파라미터들은 AI/ML 모델에 의한 예측을 포함한다. 컴퓨터 구현 방법은 또한 액션 센터 애플리케이션에 의해, 하나 이상의 파라미터들 중 적어도 하나에 대한 정정을 수신하는 단계, 및 AI/ML 모델의 재트레이닝을 위해 정정을 서버에 전송하는 단계를 포함한다.
또 다른 실시예에서, 비일시적 컴퓨터 판독가능 매체는 컴퓨터 프로그램을 저장한다. 컴퓨터 프로그램은 적어도 하나의 프로세서로 하여금 RPA 로봇들에 의해 요청된 AI/ML 모델들을 실행하게 하고, AI/ML 모델들의 성능을 모니터링하도록 구성된다. AI/ML 모델들의 AI/ML 모델의 성능이 처음으로, 일정 시구간에 걸쳐, 또는 AI/ML 모델의 다수의 실행들에 걸쳐 하나 이상의 성능 임계치들 미만으로 떨어질 때, 컴퓨터 프로그램은 적어도 하나의 프로세서로 하여금, AI/ML 모델의 실행의 결과를 검토하기 위해 액션 센터에 검토 요청을 전송하게 한다.
본 발명의 특정 실시예들의 이점들이 쉽게 이해되도록, 간략하게 전술된 본 발명의 보다 특정된 설명이 첨부된 도면들에서 예시되는 특정 실시예들을 참조하여 이루어질 것이다. 이 도면들은 단지 본 발명의 통상적인 실시예들을 도시하며 따라서 본 발명의 범위를 제한하는 것으로 간주되어서는 안됨을 이해해야 하는 한편, 본 발명은 첨부된 도면들의 사용을 통한 추가적인 특정성 및 세부사항으로 기술되고 설명될 것이다.
도 1은 본 발명의 일 실시예에 따른 RPA 시스템을 예시하는 아키텍처 도면이다.
도 2는 본 발명의 일 실시예에 따른 배치된 RPA 시스템을 예시하는 아키텍처 도면이다.
도 3은 본 발명의 일 실시예에 따른 설계기, 활동들 및 드라이버들 사이의 관계를 예시하는 아키텍처 도면이다.
도 4는 본 발명의 일 실시예에 따른 RPA 시스템을 예시하는 아키텍처 도면이다.
도 5는 본 발명의 일 실시예에 따른, 액션 센터, AI/ML 모델 재트레이닝 하드웨어 제어 및 AI/ML 모델 설정 관리를 통해 AI/ML 모델들을 보충하도록 구성된 컴퓨팅 시스템을 예시하는 아키텍처 도면이다.
도 6은 본 발명의 일 실시예에 따른, 액션 센터를 통해 AI/ML 모델들을 보충하고, AI/ML 모델 재트레이닝 하드웨어 제어를 제공하고, AI/ML 모델 설정 관리를 제공하도록 구성된 시스템을 예시하는 아키텍처 도면이다.
도 7은 본 발명의 일 실시예에 따른, 액션 센터 애플리케이션을 위한 인터페이스를 예시한다.
도 8은 본 발명의 일 실시예에 따른, 액션 센터를 통해 AI/ML 모델들을 보충하고, AI/ML 모델 재트레이닝 하드웨어 제어를 제공하고, AI/ML 모델 설정 관리를 제공하기 위한 프로세스를 예시하는 흐름도이다.
달리 표시되지 않는 한, 유사한 참조 문자들은 첨부된 도면들 전반에 걸쳐 일관되게 대응하는 특징들을 나타낸다.
일부 실시예들은 액션 센터, AI/ML 모델 재트레이닝 하드웨어 제어, 및 AI/ML 모델 설정 관리를 통해 AI/ML 모델들을 보충하는 것에 관한 것이다. AI/ML 모델들은, AI/ML 모델들이 RPA 로봇들에 의해 호출될 수 있는 호스팅 인프라구조 상에 배치될 수 있다. 예를 들어, 일부 실시예들에서, 고객은 RPA 서비스 제공자에 의해 호스팅되는 시스템 상에 AI/ML 모델들을 배치할 수 있고, 이어서 이들 호스팅된 AI/ML 모델들은 고객의 RPA 로봇들에서 연관된 활동들에 의해 호출될 수 있다. 그러나, 특정 실시예들에서, 고객은 그 자신의 시스템 상에서 자신의 AI/ML 모델들을 호스팅할 수 있다.
AI/ML 모델 호스팅 시스템은 그 시스템 상에서 호스팅되는 AI/ML 모델들의 성능을 모니터링할 수 있다. AI/ML 모델의 성능은 처음으로 또는 약간의 일관성(예를 들어, 특정 시구간에 걸친 평균 성능, AI/ML 모델의 특정 수의 실행들 등)으로 임계치 미만으로 떨어질 수 있다. 예를 들어, 주어진 AI/ML 모델에 대한 타겟 또는 예상된 신뢰도는 적어도 90%일 수 있지만, 신뢰도는 89%, 85%, 70% 등으로 떨어질 수 있다. 이것이 발생하면, 일부 실시예들에서, AI/ML 모델 실행의 결과(예를 들어, 예측) 및 다른 데이터(예를 들어, AI/ML 모델이 분석하고 있던 사용자 인터페이스(UI)의 스크린샷, AI/ML 모델이 프로세싱하고 있던 문서, 사용자 상호작용들의 시퀀스와 관련된 데이터, 패턴들에 대해 분석되고 있던 데이터베이스 내의 데이터 등)는 액션 센터로 전송되며, 여기서 인간은 적절한 애플리케이션을 사용하여 데이터를 검토하고 예측을 승인하거나 또는 예측이 잘못된 경우 정정을 제공한다. 일부 실시예들에서, 액션 센터 애플리케이션은 인간-인-더-루프(human-in-the-loop) 웹 애플리케이션일 수 있고, 여기서 액션 센터 사용자는 AI/ML 모델이 분석하고 있었던 이미지 및 AI/ML 모델이 제공한 값들을 본다. 예를 들어, 도 7을 참조한다. 이어서, 이러한 액션 센터-승인 결과(즉, AI/ML 모델에 의해 예측된 승인된 결과 또는 정정된 결과)는 AI/ML 모델로부터의 예측 대신 사용되도록 RPA 로봇에 전송된다. 그러한 접근법은, 원하는 정확도를 실현하는 재트레이닝된 AI/ML 모델이 제공될 수 있을 때까지, AI/ML 모델이 타겟 신뢰도 아래로 떨어지는 경우에도 신속하게 정확한 예측들을 제공할 수 있다. 그러나, 특정 실시예들에서, 모든 AI/ML 모델 예측들은 인간 검토를 위해 액션 센터에 전송될 수 있다.
일부 실시예들에서, AI/ML 모델로부터의 예측은 RPA 로봇에 전송되고, 이어서, RPA 로봇은 성능 임계치가 충족되었는지 여부를 결정하고, 그렇지 않다면 액션 센터에서 인간 검토자에 의한 검토를 위해 데이터를 전송한다. 특정 실시예들에서, AI/ML 모델을 호스팅 및/또는 호출하는 컴퓨팅 시스템(들)은 이 기능을 수행한다. 이어서, 인간 검토의 결과들은 호스팅 및/또는 호출 컴퓨팅 시스템으로 그리고 RPA 로봇으로, 또는 액션 센터로부터 직접 RPA 로봇으로 전송될 수 있다.
일부 실시예들에서, 로직은 RPA 로봇의 호출 활동 또는 RPA 로봇으로 하여금 액션 센터로부터의 결과를 대기하게 하는 일부 다른 활동에 포함될 수 있다. 예를 들어, UI에서 그래픽 요소들을 찾도록 트레이닝된 AI/ML 모델이, 주어진 그래픽 요소가 타겟 신뢰도 아래의 신뢰도를 갖는 버튼이라는 예측을 리턴하면, RPA 로봇은 액션 센터가 응답하기를 대기할 수 있다. 일부 실시예들에서, RPA 로봇은 액션 센터에 의한 인간 검토를 위해 데이터를 전송할 수 있다. 특정 실시예들에서, 이 데이터는 AI/ML 모델을 호스팅하는 서버에 의해, AI/ML 모델 자체에 의해, AI/ML 모델 및/또는 RPA 로봇으로부터 통신들을 수신할 수 있는 다른 컴퓨팅 시스템 등에 의해 전송될 수 있다.
일부 실시예들에서, RPA 로봇은 액션 센터로부터의 결과의 확인을 위해 일정량의 시간을 대기하도록 구성될 수 있다. 그 시구간 내에 결과가 수신되지 않으면, RPA 로봇은 AI/ML 모델로부터의 예측을 사용하여 자신의 동작을 계속하고, 자신의 워크플로우에서 연관된 활동을 스킵하고, 디폴트 액션을 취하는 등을 시도할 수 있다. 특정 실시예들에서, RPA 로봇은, 시구간 내에 결과가 수신되지 않거나 동작을 계속하려는 시도(들)가 성공적이지 않으면, 예외를 두거나 에러 메시지를 제공할 수 있다.
비제한적인 예로서, 청구서가 총 가격 필드 및 벤더 필드를 갖는 경우를 고려한다. AI/ML 모델에 대한 목표 신뢰도는 90%이지만, AI/ML 모델은 89% 신뢰도로 이러한 그래픽 요소들의 값들을 식별한다. UI의 스크린샷이 액션 센터에 전송될 수 있고, 그에 따라, 인간 검토자는 AI/ML 모델에 의해 제공된 벤더 이름 및 가격이 정확한 것을 검증하고, 이것이 사실이라면 확인을 전송하고, 예측이 부정확하다면 정정을 전송할 수 있다.
액션 센터 내의 인간 검토자들에 의해 이루어진 정정들 및 그들이 검토한 연관된 데이터는 AI/ML 모델의 후속적인 재트레이닝을 위해 데이터베이스에 저장될 수 있다. 정정들은 검토자의 컴퓨팅 시스템, 호출 RPA 로봇, AI/ML 모델을 호스팅하는 서버 등에 의해 푸시 아웃될 수 있다. 이는, 또한 호출 RPA 로봇에 정확한 결과들을 제공하면서 재트레이닝을 위한 데이터를 푸시하는 피드백 루프를 제공한다. 재트레이닝은 특정량의 트레이닝 데이터가 수신된 후, 특정 시구간이 경과한 후, 특정 수의 정정들이 수신된 후 등에 수행될 수 있다. 재트레이닝된 AI/ML 모델이 타겟 신뢰도보다 높은 통상적인 신뢰도를 갖거나, 또는 적어도 현재 배치된 AI/ML 모델보다 높은 경우, 재트레이닝된 버전은 현재 배치된 AI/ML 모델 대신에 배치 및 사용될 수 있으며, 이 둘로부터 최상의 예측을 획득하기 위해 현재 배치된 AI/ML 모델과 함께 사용되는 등일 수 있다.
일부 실시예들에서, AI/ML 모델들은 단일 이미지 및 래퍼(wrapper)로서 업로드되고, Kubernetes™ 클러스터에서 Docker™ 이미지들로서 배치될 수 있다. 제공되는 값들(예를 들어, 플래그 또는 환경 변수)에 기초하여, 콘테이너는 AI/ML 모델들을 호출하고 이들의 실행 결과들을 리턴하는 서빙 예측 호출자로서 작용할 수 있다. 대안적으로, 콘테이너는 AI/ML 모델들을 트레이닝하기 위해 사용될 수 있다.
일부 실시예들에서, 재트레이닝을 위해 그래픽 프로세싱 유닛(GPU)들을 사용할지, 중앙 프로세싱 유닛(CPU)들을 사용할지, 이들의 조합을 사용할지, 이용가능한 것을 먼저 사용할지 등이 특정될 수 있다(예를 들어, 모든 GPU들이 비지 상태인 경우, CPU들은 대신에, 재트레이닝이 GPU들보다 더 오래 걸릴 수 있음에도 불구하고 즉시 재트레이닝을 시작하는 데 사용될 수 있다). 특정 실시예들에서, 사용자는 이러한 설정들을 오버라이드할 수 있다. 예를 들어, 사용자는 "먼저 이용가능한" 설정들을 오버라이드하고, 이들이 이용가능하면 재트레이닝을 위해 GPU들이 사용되도록 명령할 수 있다.
일부 실시예들에서, 재트레이닝을 위해 초과 용량이 사용될 수 있다. 예를 들어, 컴퓨팅 시스템(들)이 AI/ML 모델들을 호스팅하고 재트레이닝하는 경우, 컴퓨팅 시스템(들)은 재트레이닝을 위해 유휴 프로세서들(예를 들어, GPU들 및/또는 CPU들)을 사용할 수 있으며, 이는, 현재 서빙 AI/ML 모델들에 의해 더 적은 하드웨어 자원들이 소비될 때 재트레이닝 프로세스를 가속화한다. 반대로, 일부 실시예들에서, 현재 서빙 AI/ML 모델들 및/또는 다른 서비스들의 실행에 대한 요구가 증가할 때 재트레이닝으로부터 프로세싱 자원들이 할당될 수 있다. 그러나, 특정 실시예들에서, AI/ML 모델을 재트레이닝하도록 이미 작업을 수행한 프로세서들은, 현재 서빙하는 AI/ML 모델들 및/또는 다른 서비스들의 실행에 대한 요구가 증가하더라도, 재트레이닝에 투입될 수 있다.
일부 실시예들에서, 시스템은 주어진 AI/ML 모델에 대해 어떤 CPU/GPU 자원들이 최적인지를 학습할 수 있다. 이어서, 시스템은 최적의 구성에 기초하여 CPU들과 GPU들의 조합을 자동으로 조정(또는 모든 CPU들 또는 모든 GPU들을 할당)할 수 있다. 일부 실시예들에서, CPU들 및 GPU들은 런타임 시에 RPA 로봇들에 의해 호출될 AI/ML 모델들을 서빙하도록 선택될 수 있고, 자동 밸런싱은 주어진 AI/ML 모델에 대해 이들의 개선된 조합들을 제공하기 위해 수행될 수 있다.
일부 실시예들에서, 설정 스크립트는 AI/ML 모델들을 관리하기 위해, AI/ML 모델들을 서빙하기 위한 하드웨어 자원들을 설정하기 위해, 그리고/또는 재트레이닝을 위해 사용될 수 있다. 예를 들어, Kubernetes®의 경우, 사용자가 포드(pod)를 특정할 때, 사용자는 또한, CPU, GPU, 및/또는 RAM 자원들과 같은 콘테이너가 사용할 자원들을 특정할 수 있다. 자원 규격들은 포드를 배치할 노드를 결정하는 데 사용될 수 있다.
Figure pct00001
Figure pct00002
CPU 유닛들은 millicpu(m)로 특정되며, 이는 CPU의 프로세싱 용량의 1000분의 1이다. GPU 유닛들은 1g, 2g, 10g 등과 같은 정수형 GPU들(g)로 특정된다. 이 예에서 메모리 유닛들은 1,048,576 바이트와 동일한 메비바이트(Mi)로 특정된다.
"타입" 설정은, AI/ML 모델 콘테이너가 AI/ML 모델을 서빙하기 위한 것인지(예를 들어, AI/ML 모델이 입력 데이터를 취하고, 호출 RPA 로봇에 대한 결과들을 제공하는지) 또는 AI/ML 모델을 재트레이닝하기 위한 것인지를 특정한다. 위의 예에서, 콘테이너는 서빙 콘테이너이다. "firstavailable" 설정은 먼저 이용가능한 프로세싱 자원들을 사용할지 여부를 특정한다. 예를 들어, CPU들만이 이용가능하지만 GPU들이 선호되는 경우, CPU들이 사용될 것이다. "firstavailable"이 참이면, "cpupreferred" 및 "gpupreferred"는 선호도를 특정하도록 설정될 수 있다. 대안적으로, cpupreferred 또는 gpupreferred만이 제공되는 경우, 플래그가 참이면 이 프로세싱 자원이 선호되고, 이 플래그가 거짓이면 다른 프로세싱 자원이 선호된다고 가정될 수 있다.
"cpu" 및 "gpu" 설정들은 사용될 CPU 및 GPU 자원들을 특정한다. "usecpu" 및 "usegpu" 플래그들은 각각, CPU들을 사용할지 또는 GPU들을 사용할지를 특정한다. 그러나, 일부 실시예들에서, CPU들을 사용할지 또는 GPU들을 사용할지는 "cpu" 및 "gpu"값들로부터 추론될 수 있다. "cpu" 또는 "cpu" 중 단지 하나에 대한 값이 제공되면, 일부 실시예들에서, 생략된 프로세싱 자원은 선호된 것이 아니라고 가정될 수 있다.
도 1은 본 발명의 일 실시예에 따른 RPA 시스템(100)을 예시하는 아키텍처 도면이다. RPA 시스템(100)은 개발자가 워크플로우들을 설계 및 구현하도록 허용하는 설계기(110)를 포함한다. 설계기(110)는 애플리케이션 통합을 위한 솔루션을 제공할 뿐만 아니라 제3자 애플리케이션들, 관리 정보 기술(IT) 작업들, 및 비즈니스 IT 프로세스들을 자동화할 수 있다. 설계기(110)는 비즈니스 프로세스의 그래픽 표현인 자동화 프로젝트의 개발을 용이하게 할 수 있다. 간단히 말하면, 설계기(110)는 워크플로우들 및 로봇들의 개발 및 배치를 용이하게 한다.
자동화 프로젝트는 실행 순서 및 본 명세서에서 "활동들"로 정의되는, 워크플로우에서 개발된 단계들의 커스텀 세트 사이의 관계에 대한 제어를 개발자에게 제공함으로써 규칙 기반 프로세스들의 자동화를 가능하게 한다. 설계기(110)의 실시예의 하나의 상업적인 예는 UiPath Studio™이다. 각각의 활동은 액션, 예를 들어, 버튼을 클릭하는 것, 파일을 판독하는 것, 로그 패널에 기록하는 것 등을 포함할 수 있다. 일부 실시예들에서, 워크플로우들은 네스팅되거나(nested) 내장될 수 있다.
워크플로우들의 일부 유형들은 시퀀스들, 흐름도들, 유한 상태 머신들(Finite State Machines, FSMs) 및/또는 글로벌 예외 핸들러들을 포함할 수 있지만, 이에 제한되지 않는다. 시퀀스들은 특히 선형 프로세스들에 적합하여, 워크플로우를 클러터링(cluttering)하지 않으면서 하나의 활동으로부터 다른 활동으로의 흐름을 가능하게 할 수 있다. 흐름도들은 특히 더 복잡한 비즈니스 로직에 적합하여, 다수의 분기 로직 오퍼레이터들을 통해 더 다양한 방식으로 판정들의 통합 및 활동들의 연결을 가능하게 할 수 있다. FSM들은 특히 큰 워크플로우들에 적합할 수 있다. FSM들은 조건(즉, 전환) 또는 활동에 의해 트리거되는, 실행 중인 유한한 수의 상태들을 사용할 수 있다. 글로벌 예외 핸들러들은 특히 실행 에러에 직면할 때 워크플로우 거동을 결정하는 것 및 프로세스들을 디버깅하는 것에 적합할 수 있다.
워크플로우가 설계기(110)에서 개발되면, 비즈니스 프로세스들의 실행은, 설계기(110)에서 개발된 워크플로우들을 실행하는 하나 이상의 로봇들(130)을 조율하는 수행기(120)에 의해 조율된다. 수행기(120)의 실시예의 하나의 상업적인 예는 UiPath Orchestrator™이다. 수행기(120)는 환경에서 자원들의 생성, 모니터링 및 배치의 관리를 용이하게 한다. 수행기(120)는 제3자 솔루션들 및 애플리케이션들과의 통합 포인트로서 작용할 수 있다.
수행기(120)는 중앙집중형 포인트로부터 로봇들(130)을 연결하고 실행시킴으로써 일 군의 로봇들(130)을 관리할 수 있다. 관리될 수 있는 로봇들(130)의 유형들은 유인 로봇들(132), 무인 로봇들(134), 개발 로봇들(무인 로봇들(134)과 유사하지만 개발 및 테스트 목적으로 사용됨), 및 비생산 로봇들(유인 로봇들(132)과 유사하지만 개발 및 테스트 목적으로 사용됨)을 포함하지만 이에 제한되지 않는다. 유인 로봇들(132)은 사용자 이벤트들에 의해 트리거되고 동일한 컴퓨팅 시스템 상에서 인간과 함께 동작한다. 유인 로봇들(132)은 중앙집중형 프로세스 배치 및 로깅 매체에 대해 수행기(120)와 함께 사용될 수 있다. 유인 로봇들(132)은 인간 사용자가 다양한 작업들을 달성하는 것을 도울 수 있고, 사용자 이벤트들에 의해 트리거될 수 있다. 일부 실시예에서, 프로세스들은 이러한 유형의 로봇 상에서의 수행기(120)로부터 시작될 수 없고 그리고/또는 잠금 화면 하에서 실행될 수 없다. 특정 실시예들에서, 유인 로봇들(132)은 오직 로봇 트레이로부터 또는 커맨드 프롬프트로부터 시작될 수 있다. 유인 로봇들(132)은 일부 실시예들에서 인간 감독 하에서 실행되어야 한다.
무인 로봇들(134)은 가상 환경들에서 무인으로 실행되고 많은 프로세스들을 자동화할 수 있다. 무인 로봇들(134)은 원격 실행, 모니터링, 스케줄링, 및 작업 큐(queue)들에 대한 지원을 제공하는 것을 담당할 수 있다. 모든 로봇 유형들에 대한 디버깅은 일부 실시예들에서 설계기(110)에서 실행될 수 있다. 유인 및 무인 로봇들 둘 모두는 메인프레임들, 웹 애플리케이션들, VM들, 기업 애플리케이션들(예를 들어, SAP®, SalesForce®, Oracle® 등에 의해 생산되는 것들) 및 컴퓨팅 시스템 애플리케이션들(예를 들어, 데스크톱 및 랩톱 애플리케이션들, 모바일 디바이스 애플리케이션들, 웨어러블 컴퓨터 애플리케이션들 등)을 포함하지만 이에 제한되지 않는 다양한 시스템들 및 애플리케이션들을 자동화할 수 있다.
수행기(120)는 프로비저닝, 배치, 구성, 큐잉, 모니터링, 로깅 및/또는 상호연결성의 제공을 포함하지만 이에 제한되지 않는 다양한 능력들을 가질 수 있다. 프로비저닝은 로봇들(130)과 수행기(120)(예를 들어, 웹 애플리케이션) 사이의 연결들의 생성 및 유지보수를 포함할 수 있다. 배치는 패키지 버전들을 실행을 위해 할당된 로봇들(130)에 정확히 전달하는 것을 보장하는 것을 포함할 수 있다. 구성은 로봇 환경들 및 프로세스 구성들의 유지보수 및 전달을 포함할 수 있다. 큐잉은 큐들 및 큐 항목들의 관리를 제공하는 것을 포함할 수 있다. 모니터링은 로봇 식별 데이터의 추적 및 사용자 허가들의 유지를 포함할 수 있다. 로깅은 데이터베이스(예를 들어, SQL 데이터베이스) 및/또는 다른 저장 메커니즘(예를 들어, 큰 데이터세트들을 저장하고 신속하게 질의하는 능력을 제공하는 ElasticSearch®)에 대한 로그들을 저장 및 인덱싱하는 것을 포함할 수 있다. 수행기(120)는 제3자 솔루션들 및/또는 애플리케이션들에 대한 통신의 중앙집중형 포인트로서 작용함으로써 상호연결성을 제공할 수 있다.
로봇들(130)은 설계기(110)에 구축된 워크플로우들을 실행하는 실행 에이전트들이다. 로봇(들)(130)의 일부 실시예들의 하나의 상업적인 예는 UiPath Robots™이다. 일부 실시예들에서, 로봇들(130)은 디폴트로 Microsoft Windows® 서비스 제어 관리자(Service Control Manager, SCM)-관리 서비스를 설치한다. 그 결과, 이러한 로봇들(130)은 로컬 시스템 계정 하에서 대화형 Windows® 세션들을 개방하고, Windows® 서비스의 권한들을 가질 수 있다.
일부 실시예들에서, 로봇들(130)은 사용자 모드에서 설치될 수 있다. 이러한 로봇들(130)의 경우, 이는, 이들이 주어진 로봇(130)을 설치한 사용자와 동일한 권한들을 가짐을 의미한다. 이러한 특징은 또한 고밀도(HD) 로봇들에 대해 이용가능하여, 이는 각각의 머신을 그 최대 잠재력으로 활용하는 것을 보장할 수 있다. 일부 실시예들에서, 임의의 유형의 로봇(130)이 HD 환경에서 구성될 수 있다.
로봇들(130)은 일부 실시예들에서 몇몇 컴포넌트들로 분할되고, 그 각각은 특정 자동화 작업에 전용된다. 로봇 컴포넌트들은 일부 실시예들에서 SCM-관리 로봇 서비스들, 사용자 모드 로봇 서비스들, 실행기들, 에이전트들, 커맨드 라인을 포함하지만, 이에 제한되지 않는다. SCM-관리 로봇 서비스들은 Windows® 세션들을 관리 및 모니터링하고 수행기(120)와 실행 호스트들(즉, 로봇들(130)이 실행되는 컴퓨팅 시스템들) 사이에서 프록시로서 작용한다. 이러한 서비스들은 신뢰되고 로봇들(130)에 대한 인증서들을 관리한다. 콘솔 애플리케이션이 로컬 시스템 하에서 SCM에 의해 개시된다.
사용자 모드 로봇 서비스들은 일부 실시예들에서 Windows® 세션들을 관리 및 모니터링하고 수행기(120)와 실행 호스트들 사이에서 프록시로서 작용한다. 사용자 모드 로봇 서비스들은 신뢰되고 로봇들(130)에 대한 인증서들을 관리할 수 있다. Windows® 애플리케이션은 SCM-관리형 로봇 서비스가 설치되지 않으면 자동으로 개시될 수 있다.
실행기들은 Windows® 세션 하에서 주어진 작업들을 실행할 수 있다(즉, 이들은 워크플로우들을 실행할 수 있다). 실행기들은 모니터링 당 인치 당 도트(dots per inch, DPI)를 인식할 수 있다. 에이전트들은 시스템 트레이 윈도우에서 이용가능한 작업들을 디스플레이하는 Windows® 프리젠테이션 파운데이션(Windows® Presentation Foundation, WPF) 애플리케이션들일 수 있다. 에이전트들은 서비스의 클라이언트일 수 있다. 에이전트들은 작업들을 시작 또는 중지하도록 요청하고 설정을 변경할 수 있다. 커맨드 라인은 서비스의 클라이언트이다. 커맨드 라인은 작업들을 시작하도록 요청할 수 있는 콘솔 애플리케이션이고 그 출력을 대기한다.
앞서 설명된 바와 같이 로봇들(130)의 컴포넌트들을 분할하는 것은 개발자들을 돕고, 사용자들을 지원하고, 컴퓨팅 시스템들이 각각의 컴포넌트가 실행하고 있는 것을 더 쉽게 실행, 식별 및 추적하는 것을 돕는다. 특수한 거동들은 실행기 및 서비스에 대해 상이한 방화벽 규칙들을 설정하는 것과 같은 방식으로 컴포넌트마다 구성될 수 있다. 실행기는 일부 실시예들에서 모니터마다 DPI 설정을 항상 인식할 수 있다. 그 결과, 워크플로우들은, 이들이 생성된 컴퓨팅 시스템의 구성과 무관하게 임의의 DPI에서 실행될 수 있다. 설계기(110)로부터의 프로젝트들은 또한 일부 실시예들에서 브라우저 줌 레벨과 독립적일 수 있다. DPI-미인식 또는 미인식으로 의도적으로 마킹된 애플리케이션들의 경우, DPI는 일부 실시예들에서 디스에이블될 수 있다.
도 2는 본 발명의 일 실시예에 따른 배치된 RPA 시스템(200)을 예시하는 아키텍처 도면이다. 일부 실시예들에서, RPA 시스템(200)은 도 1의 RPA 시스템(100)일 수 있거나 그 일부일 수 있다. 클라이언트 측, 서버 측 또는 둘 모두는 본 발명의 범위를 벗어남이 없이 임의의 원하는 수의 컴퓨팅 시스템들을 포함할 수 있음에 유의해야 한다. 클라이언트 측에서, 로봇 애플리케이션(210)은 실행기들(212), 에이전트(214), 및 설계기(216)를 포함한다. 그러나, 일부 실시예들에서, 설계기(216)는 컴퓨팅 시스템(210) 상에서 실행되지 않을 수 있다. 실행기들(212)은 프로세스들을 실행하고 있다. 몇몇 비즈니스 프로젝트들은 도 2에 도시된 바와 같이, 동시에 실행될 수 있다. 에이전트(214)(예를 들어, Windows® 서비스)는 이러한 실시예에서 모든 실행기들(212)에 대한 단일 접촉 포인트이다. 이러한 실시예에서 모든 메시지들은 수행기(230)로 로깅되고, 수행기(230)는 데이터베이스 서버(240), 인덱서 서버(250) 또는 둘 모두를 통해 메시지들을 추가로 프로세싱한다. 도 1에 관해 앞서 논의된 바와 같이, 실행기들(212)은 로봇 컴포넌트들일 수 있다.
일부 실시예들에서, 로봇은 머신 이름과 사용자 이름 사이의 연관을 표현한다. 로봇은 다수의 실행기들을 동시에 관리할 수 있다. 동시에 실행되는 다수의 대화형 세션들을 지원하는 컴퓨팅 시스템들(예를 들어, Windows® 서버 2012) 상에서, 다수의 로봇들은 고유의 사용자 이름을 사용하여 각각 별개의 Windows® 세션에서 동시에 실행될 수 있다. 이는 상기 HD 로봇들로 지칭된다.
에이전트(214)는 또한 로봇의 상태를 전송하는 것(예를 들어, 로봇이 여전히 기능하고 있음을 표시하는 "하트비트" 메시지를 주기적으로 전송하는 것) 및 실행될 패키지의 요구되는 버전을 다운로드하는 것을 담당한다. 에이전트(214)와 수행기(230) 사이의 통신은 일부 실시예들에서 항상 에이전트(214)에 의해 개시된다. 통지 시나리오에서, 에이전트(214)는, 커맨드들(예를 들어, 시작, 중지 등)을 로봇에 전송하기 위해 수행기(230)에 의해 추후에 사용되는 웹소켓 채널을 개방할 수 있다.
서버 측에서, 프리젠테이션 계층(웹 애플리케이션(232), 오픈 데이터 프로토콜(OData) 표현 상태 전송(REST) 애플리케이션 프로그래밍 인터페이스(API) 엔드포인트들(234), 및 통지 및 모니터링(236)), 서비스 계층(API 구현/비즈니스 로직(238)) 및 지속 계층(데이터베이스 서버(240) 및 인덱서 서버(250))가 포함된다. 수행기(230)는 웹 애플리케이션(232), OData REST API 엔드포인트들(234), 통지 및 모니터링(236) 및 API 구현/비즈니스 로직(238)을 포함한다. 일부 실시예들에서, 사용자가 수행기(230)의 인터페이스에서 (예를 들어, 브라우저(220)를 통해) 수행하는 대부분의 액션들은 다양한 API들을 호출함으로써 수행된다. 이러한 액션들은 본 발명의 범위를 벗어남이 없이, 로봇들 상에서 작업들을 시작하는 것, 큐들에 데이터를 추가/제거하는 것, 유인으로 실행할 작업들을 스케줄링하는 것 등을 포함할 수 있지만, 이에 제한되지 않는다. 웹 애플리케이션(232)은 서버 플랫폼의 시각적 계층이다. 이러한 실시예에서, 웹 애플리케이션(232)은 하이퍼텍스트 마크업 언어(HTML) 및 자바스크립트(JS)를 사용한다. 그러나, 본 발명의 범위를 벗어남이 없이, 임의의 원하는 마크업 언어들, 스크립트 언어들 또는 임의의 다른 포맷들이 사용될 수 있다. 사용자는 수행기(230)를 제어하기 위한 다양한 액션들을 수행하기 위해 이러한 실시예에서 브라우저(220)를 통해 웹 애플리케이션(232)으로부터 웹 페이지들과 상호작용한다. 예를 들어, 사용자는 로봇 그룹들을 생성하고, 로봇들에 패키지들을 할당하고, 로봇마다 및/또는 프로세스마다 로그들을 분석하고, 로봇들을 시작 및 중지시키는 것 등을 할 수 있다.
웹 애플리케이션(232)에 추가로, 수행기(230)는 또한 OData REST API 엔드포인트들(234)을 노출시키는 서비스 계층을 포함한다. 그러나, 본 발명의 범위를 벗어남이 없이 다른 엔드포인트들이 포함될 수 있다. REST API는 웹 애플리케이션(232) 및 에이전트(214) 둘 모두에 의해 소비될 수 있다. 에이전트(214)는 이러한 실시예에서 클라이언트 컴퓨터 상의 하나 이상의 로봇들의 감독자이다.
이러한 실시예에서 REST API는 구성, 로깅, 모니터링 및 큐잉 기능을 커버한다. 구성 엔드포인트들은 일부 실시예들에서 애플리케이션 사용자들, 허가들, 로봇들, 자산들, 릴리스들 및 환경들을 정의 및 구성하기 위해 사용될 수 있다. REST 엔드포인트들을 로깅하는 것은 예를 들어, 에러들, 로봇들에 의해 전송된 명시적 메시지들, 및 다른 환경-특정 정보와 같은 상이한 정보를 로깅하기 위해 사용될 수 있다. 배치 REST 엔드포인트들은 작업 시작 커맨드가 수행기(230)에서 사용되면 실행되어야 하는 패키지 버전을 질의하기 위해 로봇들에 의해 사용될 수 있다. 큐잉 REST 엔드포인트들은 큐에 데이터를 추가하는 것, 큐로부터 트랜잭션을 획득하는 것, 트랜잭션의 상태를 설정하는 것 등과 같은 큐들 및 큐 항목 관리를 담당할 수 있다.
REST 엔드포인트들을 모니터링하는 것은 웹 애플리케이션(232) 및 에이전트(214)를 모니터링할 수 있다. 통지 및 모니터링 API(236)는 에이전트(214)를 등록하는 것, 에이전트(214)에 구성 설정을 전달하는 것, 및 서버 및 에이전트(214)로부터 통지들을 전송/수신하는 것을 위해 사용되는 REST 엔드포인트들일 수 있다. 통지 및 모니터링 API(236)는 또한 일부 실시예들에서 웹소켓 통신을 사용할 수 있다.
지속 계층은 이러한 실시예에서 한 쌍의 서버들, 즉, 데이터베이스 서버(240)(예를 들어, SQL 서버) 및 인덱서 서버(250)를 포함한다. 데이터베이스 서버(240)는 이러한 실시예에서 로봇들의 구성, 로봇 그룹들, 연관된 프로세스들, 사용자들, 규칙들, 스케줄들 등을 저장한다. 이러한 정보는 일부 실시예들에서 웹 애플리케이션(232)을 통해 관리된다. 데이터베이스 서버(240)는 큐들 및 큐 항목들을 관리할 수 있다. 일부 실시예들에서, 데이터베이스 서버(240)는 로봇들에 의해 로깅되는 메시지들을 (인덱서 서버(250)에 추가로 또는 그 대신에) 저장할 수 있다.
일부 실시예들에서 선택적인 인덱서 서버(250)는 로봇들에 의해 로깅되는 정보를 저장 및 인덱싱한다. 특정 실시예들에서, 인덱서 서버(250)는 구성 설정을 통해 디스에이블될 수 있다. 일부 실시예들에서, 인덱서 서버(250)는, 개방 소스 프로젝트 전체-텍스트 검색 엔진인 ElasticSearch®을 사용한다. (예를 들어, 로그 메시지 또는 기록 라인과 같은 활동들을 사용하여) 로봇들에 의해 로깅되는 메시지들은 로깅 REST 엔드포인트(들)를 통해 인덱서 서버(250)에 전송될 수 있고, 여기서 이들은 장래의 활용을 위해 인덱싱된다.
도 3은 본 발명의 일 실시예에 따른 설계기(310), 활동들(320, 330), 드라이버들(340) 및 AI/ML 모델들(350) 사이의 관계(300)를 예시하는 아키텍처 도면이다. 상기 내용에 따라, 개발자는 로봇들에서 실행되는 워크플로우들을 개발하기 위해 설계기(310)를 사용한다. 워크플로우들은 사용자-정의 활동들(320) 및 UI 자동화 활동들(330)을 포함할 수 있다. 사용자-정의된 활동들(320) 및/또는 UI 자동화 활동들(330)은 일부 실시예들에서 하나 이상의 AI/ML 모델들(350)을 호출할 수 있으며, 이는 로봇이 동작하고 있는 컴퓨팅 시스템에 로컬로 그리고/또는 그에 대해 원격으로 위치될 수 있다. 일부 실시예들은 본 명세서에서 컴퓨터 비전(computer vision, CV)으로 지칭되는 이미지에서 비-텍스트 시각적 컴포넌트들을 식별할 수 있다. 이러한 컴포넌트들과 관련된 일부 CV 활동들은 클릭, 타이핑, 텍스트 획득, 선회, 요소 존재, 리프레시 스코프(scope), 강조 등을 포함할 수 있지만, 이에 제한되지 않는다. 일부 실시예들에서 클릭은 예를 들어, CV, 광학 문자 인식(optical character recognition, OCR), 퍼지 텍스트 기계가공, 및 멀티-앵커(multi-anchor)를 사용하여 요소를 식별하고 이를 클릭한다. 타이핑은 상기 내용을 사용하여 요소를 식별할 수 있고 요소에서 타이핑한다. 텍스트 획득은 특정 텍스트의 위치를 식별하고 OCR을 사용하여 이를 스캔할 수 있다. 선회는 요소를 식별하고 그 위에서 선회할 수 있다. 요소 존재는 전술된 기술들을 사용하여 화면 상에 요소가 존재하는지 여부를 체크할 수 있다. 일부 실시예들에서, 설계기(310)에서 구현될 수 있는 수백개 또는 심지어 수천개의 활동들이 존재할 수 있다. 그러나, 본 발명의 범위를 벗어남이 없이 임의의 수 및/또는 유형의 활동들이 이용가능할 수 있다.
UI 자동화 활동들(330)은 하위 레벨 코드로 기록된 특수한 하위 레벨 활동들(예를 들어, CV 활동들)의 서브세트이고 화면과의 상호작용들을 용이하게 한다. UI 자동화 활동들(330)은 로봇이 원하는 소프트웨어와 상호작용하도록 허용하는 드라이버들(340) 및/또는 AI/ML 모델들을 통해 이러한 상호작용들을 용이하게 한다. 예를 들어, 드라이버들(340)은 OS 드라이버들(342), 브라우저 드라이버들(344), VM 드라이버들(346), 기업 애플리케이션 드라이버들(348) 등을 포함할 수 있다. AI/ML 모델들(350) 중 하나 이상은 컴퓨팅 시스템과의 상호작용들을 수행하도록 결정하기 위해 UI 자동화 활동들(330)에 의해 사용될 수 있다. 일부 실시예들에서, AI/ML 모델들(350)은 드라이버들(340)을 증강시키거나 이들을 완전히 대체할 수 있다. 실제로, 특정 실시예들에서, 드라이버들(340)은 포함되지 않는다.
드라이버들(340)은 후크(hook)들을 찾는 것, 키(key)들을 모니터링하는 것 등을 위해 낮은 레벨에서 OS와 상호작용할 수 있다. 이들은 Chrome®, IE®, Citrix®, SAP® 등과의 통합을 용이하게 할 수 있다. 예를 들어, "클릭" 활동은 드라이버들(340)을 통해 이러한 상이한 애플리케이션들에서 동일한 역할을 수행한다.
도 4는 본 발명의 일 실시예에 따른 RPA 시스템(400)을 예시하는 아키텍처 도면이다. 일부 실시예들에서, RPA 시스템(400)은 도 1 및/또는 도 2의 RPA 시스템들(100 및/또는 200)일 수 있거나 이를 포함할 수 있다. RPA 시스템(400)은 로봇들을 실행하는 다수의 클라이언트 컴퓨팅 시스템들(410)을 포함한다. 컴퓨팅 시스템들(410)은 그 상에서 실행되는 웹 애플리케이션을 통해 수행기 컴퓨팅 시스템(420)과 통신할 수 있다. 이어서, 수행기 컴퓨팅 시스템(420)은 데이터베이스 서버(430) 및 선택적 인덱서 서버(440)와 통신할 수 있다.
도 1 및 도 3에 관하여, 이러한 실시예들에서 웹 애플리케이션이 사용되는 한편, 본 발명의 범위를 벗어남이 없이 임의의 적절한 클라이언트/서버 소프트웨어가 사용될 수 있음에 유의해야 한다. 예를 들어, 수행기는 클라이언트 컴퓨팅 시스템들 상의 비-웹 기반 클라이언트 소프트웨어 애플리케이션들과 통신하는 서버 측 애플리케이션을 실행할 수 있다.
도 5는 본 발명의 일 실시예에 따른, 액션 센터를 통해 AI/ML 모델들을 보충하고, AI/ML 모델 재트레이닝 하드웨어 제어를 제공하고, AI/ML 모델 설정 관리를 제공하도록 구성된 컴퓨팅 시스템(500)을 예시하는 아키텍처 도면이다. 일부 실시예들에서, 컴퓨팅 시스템(500)은 본 명세서에 도시된 및/또는 설명된 컴퓨팅 시스템들 중 하나 이상일 수 있다. 컴퓨팅 시스템(500)은 정보를 통신하기 위한 버스(505) 또는 다른 통신 메커니즘, 및 정보를 프로세싱하기 위해 버스(505)에 커플링된 프로세서(들)(510)를 포함한다. 프로세서(들)(510)는 중앙 처리 장치(CPU), 주문형 집적 회로(Application Specific Integrated Circuit, ASIC), 필드 프로그래밍가능 게이트 어레이(Field Programmable Gate Array, FPGA), 그래픽 프로세싱 유닛(GPU), 이들의 다수의 인스턴스들, 및/또는 이들의 임의의 조합을 포함하는 임의의 유형의 범용 또는 특수 목적 프로세서일 수 있다. 프로세서(들)(510)는 또한 다수의 프로세싱 코어들을 가질 수 있고, 코어들 중 적어도 일부는 특정 기능들을 수행하도록 구성될 수 있다. 일부 실시예들에서 다중-병렬 프로세싱이 사용될 수 있다. 특정 실시예들에서, 프로세서(들)(510) 중 적어도 하나는 생물학적 뉴런들을 모방하는 프로세싱 요소들을 포함하는 신경구조 회로일 수 있다. 일부 실시예들에서, 신경구조 회로들은 본 뉴만(Von Neumann) 컴퓨팅 아키텍처의 통상적인 컴포넌트들을 요구하지 않을 수 있다.
컴퓨팅 시스템(500)은 프로세서(들)(510)에 의해 실행될 명령어들 및 정보를 저장하기 위한 메모리(515)를 더 포함한다. 메모리(515)는 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM), 플래시 메모리, 캐시, 정적 저장부, 예를 들어, 자기 또는 광학 디스크, 또는 임의의 다른 유형들의 비일시적 컴퓨터 판독가능 매체들 또는 이들의 조합의 임의의 조합으로 구성될 수 있다. 비일시적 컴퓨터 판독가능 매체들은 프로세서(들)(510)에 의해 액세스될 수 있는 임의의 이용가능한 매체들일 수 있고 휘발성 매체들, 비휘발성 매체들 또는 둘 모두를 포함할 수 있다. 매체들은 또한 착탈식, 고정식 또는 둘 모두일 수 있다.
추가적으로, 컴퓨팅 시스템(500)은 무선 및/또는 유선 접속을 통해 통신 네트워크에 대한 액세스를 제공하기 위한 통신 디바이스(520), 예를 들어, 트랜시버를 포함한다. 일부 실시예들에서, 통신 디바이스(520)는 본 발명의 범위를 벗어남이 없이 FDMA(Frequency Division Multiple Access), SC-FDMA(Single Carrier FDMA), TDMA(Time Division Multiple Access), CDMA(Code Division Multiple Access), OFDM(Orthogonal Frequency Division Multiplexing), OFDMA(Orthogonal Frequency Division Multiple Access), GSM(Global System for Mobile) 통신들, GPRS(General Packet Radio Service), UMTS(Universal Mobile Telecommunications System), cdma2000, W-CDMA(Wideband CDMA), HSDPA(High-Speed Downlink Packet Access), HSUPA(High-Speed Uplink Packet Access), HSPA(High-Speed Packet Access), LTE(Long Term Evolution), LTE-A(LTE Advanced), 802.11x, Wi-Fi, Zigbee, UWB(Ultra-WideBand), 802.16x, 802.15, HnB(Home Node-B), 블루투스, RFID(Radio Frequency Identification), IrDA(Infrared Data Association), NFC(Near-Field Communications), 5G(fifth generation), NR(New), 이들의 임의의 조합, 및/또는 임의의 다른 기존의 또는 장래에 구현되는 통신 표준 및/또는 프로토콜을 사용하도록 구성될 수 있다. 일부 실시예들에서, 통신 디바이스(520)는 본 발명의 범위를 벗어남이 없이 단일형, 어레이형, 위상형, 스위치형, 빔형성, 빔스티어링, 이들의 조합 및/또는 임의의 다른 안테나 구성인 하나 이상의 안테나들을 포함할 수 있다.
프로세서(들)(510)는 추가로 버스(505)를 통해 플라즈마 디스플레이, 액정 디스플레이(LCD), 발광 다이오드(LED) 디스플레이, 전계 방출 디스플레이(Field Emission Display, FED), 유기 발광 다이오드(OLED) 디스플레이, 플렉서블 OLED 디스플레이, 플렉서블 기판 디스플레이, 투사 디스플레이, 4K 디스플레이, 고해상도 디스플레이, Retina® 디스플레이, 평면 내 스위칭(In-Plane Switching, IPS) 디스플레이, 또는 사용자에게 정보를 디스플레이하기 위한 임의의 다른 적절한 디스플레이와 같은 디스플레이(525)에 결합될 수 있다. 디스플레이(525)는 저항성, 용량성, 표면 탄성파(surface-acoustic wave, SAW) 용량성, 적외선, 광학 이미징, 분산 신호 기술, 음향 펄스 인식, 좌절된 내부 전반사 등을 사용하여, 터치(햅틱) 디스플레이, 3차원(3D) 터치 디스플레이, 다중-입력 터치 디스플레이, 다중-터치 디스플레이 등으로서 구성될 수 있다. 본 발명의 범위를 벗어남이 없이 임의의 적절한 디스플레이 디바이스 및 햅틱 I/O가 사용될 수 있다.
키보드(530) 및 커서 제어 디바이스(535), 예를 들어, 컴퓨터 마우스, 터치패드 등이 추가로 버스(505)에 결합되어 사용자가 컴퓨팅 시스템과 인터페이싱할 수 있게 한다. 그러나, 특정 실시예들에서, 물리적 키보드 및 마우스는 존재하지 않을 수 있고, 사용자는 단지 디스플레이(525) 및/또는 터치패드(도시되지 않음)를 통해 디바이스와 상호작용할 수 있다. 입력 디바이스들의 임의의 유형 및 조합은 설계 선택 사항으로서 사용될 수 있다. 특정 실시예들에서, 물리적 입력 디바이스 및/또는 디스플레이는 존재하지 않는다. 예를 들어, 사용자는 컴퓨팅 시스템(500)과 통신하는 다른 컴퓨팅 시스템을 통해 원격으로 컴퓨팅 시스템(500)과 상호작용할 수 있거나, 또는 컴퓨팅 시스템(500)은 자율적으로 동작할 수 있다.
메모리(515)는 프로세서(들)(510)에 의해 실행될 때 기능을 제공하는 소프트웨어 모듈들을 저장한다. 모듈들은 컴퓨팅 시스템(500)에 대한 운영 체제(540)를 포함한다. 모듈들은 본 명세서에서 설명된 프로세스들의 전부 또는 일부 또는 이들의 유도물들을 수행하도록 구성되는 AI/ML 모델 관리 모듈(545)을 더 포함한다. 컴퓨팅 시스템(500)은 추가적인 기능을 포함하는 하나 이상의 추가적인 기능 모듈들(550)을 포함할 수 있다.
본 기술분야의 당업자는, 본 발명의 범위를 벗어남이 없이 "시스템"이 서버, 내장된 컴퓨팅 시스템, 개인용 컴퓨터, 콘솔, 개인 휴대 정보 단말(PDA), 셀 폰, 태블릿 컴퓨팅 디바이스, 양자 컴퓨팅 시스템 또는 임의의 다른 적절한 컴퓨팅 디바이스 또는 디바이스들의 조합으로 구현될 수 있음을 인식할 것이다. 전술된 기능들을 "시스템"에 의해 수행되는 것으로 제시하는 것은 어떠한 방식으로도 본 발명의 범위를 제한하려는 의도가 아니라, 본 발명의 많은 실시예들의 일례를 제공하도록 의도된다. 실제로, 본 명세서에 개시된 방법들, 시스템들 및 장치들은 클라우드 컴퓨팅 시스템들을 포함하는 컴퓨팅 기술과 일치하는 로컬화된 및 분산된 형태들로 구현될 수 있다. 컴퓨팅 시스템은 로컬 영역 네트워크(LAN), 모바일 통신 네트워크, 위성 통신 네트워크, 인터넷, 공용 또는 사설 클라우드, 하이브리드 클라우드, 서버 팜, 이들의 임의의 조합 등의 일부이거나 그렇지 않으면 그에 의해 액세스가능할 수 있다. 임의의 로컬화된 또는 분산형 아키텍처가 본 발명의 범위를 벗어나지 않으면서 사용될 수 있다.
본 명세서에 설명된 시스템 특징들 중 일부는 이들의 구현 독립성을 더 특정적으로 강조하기 위해 모듈들로서 제시되었음에 유의해야 한다. 예를 들어, 모듈은 통상적인 VLSI(very large scale integration) 회로들 또는 게이트 어레이들, 기성품 반도체들, 예를 들어, 로직 칩들, 트랜지스터들 또는 다른 이산적 컴포넌트들을 포함하는 하드웨어 회로로서 구현될 수 있다. 모듈은 또한 필드 프로그래밍가능 게이트 어레이 로직, 프로그래밍가능 로직 디바이스들, 그래픽 프로세싱 유닛들 등과 같은 프로그래밍가능 하드웨어 디바이스들로 구현될 수 있다.
모듈은 또한 다양한 유형들의 프로세서들에 의한 실행을 위해 적어도 부분적으로 소프트웨어로 구현될 수 있다. 실행가능한 코드의 식별된 유닛은, 예를 들어, 객체, 절차 또는 함수로서 체계화될 수 있는, 예를 들어, 컴퓨터 명령어들의 하나 이상의 물리적 또는 논리적 블록들을 포함할 수 있다. 그럼에도 불구하고, 식별된 모듈의 실행가능한 것들은 물리적으로 함께 위치될 필요가 없지만, 논리적으로 함께 연결될 때 모듈을 포함하고 모듈에 대한 언급된 목적을 달성하는 상이한 위치들에 저장된 별개의 명령어들을 포함할 수 있다. 추가로, 모듈들은, 본 발명의 범위를 벗어남이 없이 예를 들어, 하드 디스크 드라이브, 플래시 디바이스, RAM, 테이프 또는 데이터를 저장하기 위해 사용되는 임의의 다른 이러한 비일시적 컴퓨터 판독가능 매체일 수 있는 컴퓨터 판독가능 매체 상에 저장될 수 있다.
실제로, 실행가능한 코드의 모듈은 단일 명령어, 또는 다수의 명령어들일 수 있고, 심지어, 몇몇 상이한 코드 세그먼트들에 걸쳐, 상이한 프로그램들 사이에 그리고 몇몇 메모리 디바이스들에 걸쳐 분산될 수 있다. 유사하게, 본 명세서에서 동작 데이터가 모듈 내에서 식별되고 예시될 수 있고, 임의의 적절한 형태로 구현되고 임의의 적절한 유형의 데이터 구조 내에서 체계화될 수 있다. 동작 데이터는 단일 데이터 세트로서 수집될 수 있거나, 또는 상이한 저장 디바이스들을 통하는 것을 포함하여 상이한 위치들에 걸쳐 분산될 수 있고, 적어도 부분적으로, 시스템 또는 네트워크 상에서 단지 전자 신호들로서 존재할 수 있다.
도 6은 본 발명의 일 실시예에 따른, 액션 센터를 통해 AI/ML 모델들을 보충하고, AI/ML 모델 재트레이닝 하드웨어 제어를 제공하고, AI/ML 모델 설정 관리를 제공하도록 구성된 시스템(600)을 예시하는 아키텍처 도면이다. 시스템(600)은 데스크톱 컴퓨터(602), 태블릿(604) 및 스마트 폰(606)과 같은 사용자 컴퓨팅 시스템들을 포함한다. 그러나, 스마트 시계들, 랩톱 컴퓨터들 등을 포함하지만 이에 제한되지 않는 임의의 원하는 컴퓨팅 시스템이 본 발명의 범위를 벗어나지 않으면서 사용될 수 있다. 또한, 3개의 사용자 컴퓨팅 시스템들이 도 6에 도시되지만, 임의의 적절한 수의 컴퓨팅 시스템들이 본 발명의 범위를 벗어나지 않으면서 사용될 수 있다. 예를 들어, 일부 실시예들에서, 수십, 수백, 수천 또는 수백만의 컴퓨팅 시스템들이 사용될 수 있다.
각각의 컴퓨팅 시스템(602, 604, 606)은 특정 작업들(예를 들어, 체인화된 또는 체인화되지 않은 AI/ML 모델들(632) 중 하나 이상)의 수행에서 AI/ML 모델(들)을 호출하는 RPA 로봇(610)을 갖는다. 예를 들어, RPA 로봇들(610) 중 하나 이상은, 사용자가 개개의 컴퓨팅 시스템 상에서 무엇을 하고 있는지를 인식하기 위해 CV를 사용하도록 트레이닝된 AI/ML 모델들을 호출할 수 있다. 컴퓨팅 시스템들(602, 604, 606)은 네트워크(620)(예를 들어, 로컬 영역 네트워크(LAN), 모바일 통신 네트워크, 위성 통신 네트워크, 인터넷, 이들의 임의의 조합 등)를 통해, AI/ML 모델들(632)의 실행을 위한 요청들 및 연관된 입력 정보와 같은 정보를 서버(630)에 전송한다. 일부 실시예들에서, 서버(630)는 공용 클라우드 아키텍처, 사설 클라우드 아키텍처, 하이브리드 클라우드 아키텍처 등의 일부일 수 있다. 특정 실시예들에서, 서버(630)는 단일 컴퓨팅 시스템(630) 상에서 다수의 소프트웨어-기반 서버들을 호스팅할 수 있다. 일부 실시예들에서, 서버(630)는 하나 이상의 가상 머신(VM)들을 통해 구현될 수 있다. 특정 실시예들에서, 서버(630)는 인터넷 접속성을 갖지 않는 "에어-갭(air-gapped)" 서버일 수 있다. 서버(630)는 이 실시예에서, 개개의 호출 RPA 로봇이 자동화를 완료하는 것을 보조하는 정보를 제공하기 위해 RPA 로봇들(610) 중 하나 이상에 의해 호출되는 AI/ML 모델들(632)을 포함한다. 일부 실시예들에서, RPA 로봇들(610)에 의해 호출되는 AI/ML 모델들(632)은, 다양한 기능들, 이를 테면 통계적 모델링(예를 들어, 히든 마르코프 모델(hidden Markov model, HMM)들)을 수행하고, 사용자 상호작용들의 시퀀스들을 식별하기 위해 딥 러닝 기술들(예를 들어, 장기 단기 메모리(long short term memory, LSTM) 딥 러닝, 이전의 은닉 상태들의 인코딩 등)을 활용하는 다수의 계층들을 가질 수 있다.
서버(630)는 서버(630) 상에서 실행되는 AI 센터 소프트웨어를 통해, AI/ML 모델들(632)의 성능을 모니터링하고, 예를 들어 로컬로 또는 데이터베이스(640) 상에 저장될 수 있는 AI/ML 모델들(632)에 대한 하나 이상의 임계치들에 액세스한다. 그러나, 일부 실시예들에서, RPA 로봇들(610)은 성능 임계치(들)를 모니터링할 수 있다. AI/ML 모델(632)이 처음으로 또는 약간의 일관성(예를 들어, 특정 시구간에 걸친, AI/ML 모델의 특정 수의 실행들에 걸친 평균 성능 등)으로 성능 임계치(들) 아래로 떨어질 때, AI/ML 모델 실행의 결과(예를 들어, 예측) 및 다른 데이터(예를 들어, AI/ML 모델이 분석하고 있던 사용자 인터페이스(UI)의 스크린샷, AI/ML 모델이 프로세싱하고 있던 문서, 사용자 상호작용들의 시퀀스와 관련된 데이터, 패턴들에 대해 분석되고 있던 데이터베이스 내의 데이터 등)는 액션 센터(650)로 전송되며, 여기서 인간은 개개의 컴퓨팅 시스템(652)의 검토 애플리케이션(654)을 사용하여 데이터를 검토한다. 예측이 정확하면, 검토자는 검토 애플리케이션(654)을 통해 예측을 승인하고, 예측이 부정확하면, 검토자는 정확한 예측을 제공한다. 서버(630)를 통해 AI/ML 모델(632)에 의해 이전에 제공되지 않았다면, 예측은 RPA 로봇(610)의 자동화에 사용하기 위해 RPA 로봇(610)에 제공된다.
일부 실시예들에서, 로직은 RPA 로봇(610)의 호출 활동 또는 RPA 로봇(610)으로 하여금 액션 센터(650)로부터의 결과를 대기하게 하는 일부 다른 활동에 포함될 수 있다. 일부 실시예들에서, RPA 로봇(610)은 액션 센터(650)에 의한 인간 검토를 위해 데이터를 전송할 수 있다. 특정 실시예들에서, 이 데이터는 서버(630)에 의해, AI/ML 모델(632) 자체에 의해, AI/ML 모델(632) 및/또는 RPA 로봇(610)으로부터 통신들을 수신할 수 있는 다른 컴퓨팅 시스템 등에 의해 전송될 수 있다.
일부 실시예들에서, RPA 로봇(610)은 액션 센터(650)로부터의 결과의 확인을 위해 일정량의 시간을 대기하도록 구성될 수 있다. 그 시구간 내에 결과가 수신되지 않으면, RPA 로봇(610은 AI/ML 모델(632)로부터의 예측을 사용하여 자신의 동작을 계속하고, 자신의 워크플로우에서 연관된 활동을 스킵하고, 디폴트 액션을 취하는 등을 시도할 수 있다. 특정 실시예들에서, RPA 로봇(610)은, 시구간 내에 결과가 수신되지 않거나 동작을 계속하려는 시도(들)가 성공적이지 않으면, 예외를 두거나 에러 메시지를 제공할 수 있다.
액션 센터(650) 내의 인간 검토자들에 의해 이루어진 정정들 및 그들이 검토한 연관된 데이터는 AI/ML 모델(632)의 후속적인 재트레이닝을 위해 데이터베이스(640)에 저장될 수 있다. 정정들은 검토 애플리케이션(654)을 통해 검토자의 컴퓨팅 시스템(652)에 의해, RPA 로봇(610)을 호출함으로써, AI/ML 모델(632)을 호스팅하는 서버(630) 등에 의해 푸시될 수 있다. 이는, 또한 호출 RPA 로봇(610)에 정확한 결과들을 제공하면서 재트레이닝을 위한 데이터를 푸시하는 피드백 루프를 제공한다. 재트레이닝은 특정량의 트레이닝 데이터가 수신된 후, 특정 시구간이 경과한 후, 특정 수의 정정들이 수신된 후 등에 서버(630) 또는 일부 다른 컴퓨팅 시스템(들)에 의해 수행될 수 있다. 재트레이닝된 AI/ML 모델이 타겟 신뢰도보다 높은 통상적인 신뢰도를 갖거나, 또는 적어도 현재 배치된 AI/ML 모델(632)보다 높은 경우, 재트레이닝된 버전은 현재 배치된 AI/ML 모델(632) 대신에 배치 및 사용될 수 있으며, 이 둘로부터 최상의 예측을 획득하기 위해 현재 배치된 AI/ML 모델(632)과 함께 사용되는 등일 수 있다.
일부 실시예들에서, AI/ML 모델들(632)은 단일 이미지 및 래퍼(wrapper)로서 업로드되고, Kubernetes™ 클러스터에서 Docker™ 이미지들로서 배치될 수 있다. 제공되는 값들에 기초하여, 콘테이너는 AI/ML 모델들(632)을 호출하고 이들의 실행 결과들을 리턴하는 서빙 예측 호출자로서 작용할 수 있다. 대안적으로, 콘테이너는 AI/ML 모델들(632)을 트레이닝하기 위해 사용될 수 있다.
일부 실시예들에서, 구성은 서버(630)에 제공될 수 있고 그리고/또는 AI/ML 모델들(632)의 주어진 AI/ML 모델을 재트레이닝하기 위해 어느 하드웨어를 사용할지를 특정하기 위해 데이터베이스(640)에 저장될 수 있다. 예를 들어, 재트레이닝을 위해 그래픽 프로세싱 유닛(GPU)들을 사용할지, 중앙 프로세싱 유닛(CPU)들을 사용할지, 이들의 조합을 사용할지, 이용가능한 것을 먼저 사용할지 등이 특정될 수 있다(예를 들어, 모든 GPU들이 비지 상태인 경우, CPU들은 대신에, 재트레이닝이 GPU들보다 더 오래 걸릴 수 있음에도 불구하고 즉시 재트레이닝을 시작하는 데 사용될 수 있다). 특정 실시예들에서, 이러한 설정들은, 이를 테면, 구성 내의 설정들을 오버라이드하고, GPU들이 이용가능하면 재트레이닝을 위해 사용되도록 명령함으로써 오버라이드될 수 있다.
일부 실시예들에서, 재트레이닝을 위해 초과 용량이 사용될 수 있다. 예를 들어, 서버(630)가 AI/ML 모델들을 호스팅하고 재트레이닝하는 경우, 서버(630)는 재트레이닝을 위해 유휴 프로세서들(예를 들어, GPU들 및/또는 CPU들)을 사용할 수 있으며, 이는, 현재 서빙 AI/ML 모델들(632)에 의해 더 적은 하드웨어 자원들이 소비될 때 재트레이닝 프로세스를 가속화한다. 반대로, 일부 실시예들에서, 현재 서빙 AI/ML 모델들(632) 및/또는 다른 서비스들의 실행에 대한 요구가 증가할 때 재트레이닝으로부터 프로세싱 자원들이 할당될 수 있다. 그러나, 특정 실시예들에서, AI/ML 모델들을 재트레이닝하도록 이미 작업을 수행한 프로세서들은, 현재 서빙하는 AI/ML 모델들(632) 및/또는 다른 서비스들의 실행에 대한 요구가 증가하더라도, 재트레이닝에 투입될 수 있다.
일부 실시예들에서, 서버(630)는 AI/ML 모델들(632)의 주어진 AI/ML 모델에 대해 어떤 CPU/GPU 자원들이 최적인지를 학습할 수 있다. 이어서, 서버(630)는 최적의 구성에 기초하여 CPU들과 GPU들의 조합을 자동으로 조정(또는 모든 CPU들 또는 모든 GPU들을 할당)할 수 있다. 일부 실시예들에서, CPU들 및 GPU들은 런타임 시에 RPA 로봇들(610)에 의해 호출될 AI/ML 모델들(632)을 서빙하도록 선택될 수 있고, 자동 밸런싱은 AI/ML 모델들(632)의 주어진 AI/ML 모델에 대해 이들의 개선된 조합들을 제공하기 위해 수행될 수 있다.
AI 계층들
일부 실시예들에서, 다수의 AI 계층들이 사용될 수 있다. 각각의 AI 계층은 데이터 상에서 실행되는 알고리즘(또는 모델)이며, AI 모델 자체는 트레이닝 데이터에서 트레이닝되는 트레이닝된 인공 "뉴런들"의 딥 러닝 뉴런 네트워크(deep learning neural network, DLNN)들일 수 있다. 계층들은 직렬로, 병렬로, 또는 이들의 조합으로 실행될 수 있다.
AI 계층들은 시퀀스 추출 계층, 클러스터링 검출 계층, 시각적 컴포넌트 검출 계층, 텍스트 인식 계층(예를 들어, OCR), 오디오-텍스트 변환 계층, 또는 이들의 임의의 조합을 포함할 수 있지만 이에 제한되지 않는다. 그러나, 임의의 원하는 수 및 유형(들)의 계층들이 본 발명의 범위를 벗어나지 않으면서 사용될 수 있다. 다수의 계층들을 사용하는 것은, 시스템이 스크린들에서 발생하고 있는 것의 글로벌 픽처를 개발하는 것을 가능하게 할 수 있다. 예를 들어, 하나의 AI 계층은 OCR을 수행할 수 있고, 다른 것은 버튼들을 검출할 수 있고, 다른 것은 시퀀스들을 비교할 수 있는 등이다. 패턴들은 AI 계층에 의해 개별적으로 또는 다수의 AI 계층들에 의해 집합적으로 결정될 수 있다.
도 7은 본 발명의 일 실시예에 따른, 액션 센터 애플리케이션을 위한 인터페이스(700)를 예시한다. 인터페이스(700)는, AI/ML 모델이 분석하고 있던 이미지를 디스플레이하는 이미지 디스플레이 창(710), 및 AI/ML 모델에 의해 식별된 객체의 유형 및 그의 위치를 보여주는 AI/ML 모델 파라미터 창(720)을 포함한다. 이 예에서, AI/ML 모델은 경계 박스(714)에서 발견되는 트럭(712)을 열차로서 잘못 식별하였다. AI/ML 모델에 의해 식별된 객체 유형 및 경계 박스(714)의 위치 및 크기는 유형 필드(722) 및 위치 필드(724)에 각각 도시된다. 예측의 신뢰도가 또한 도시된다.
AI/ML 모델이 객체를 정확하게 식별했다면, 사용자는 식별을 확인하기 위해 승인 버튼(726)을 클릭할 수 있다. 일부 실시예들에서, RPA 로봇은 사용자가 정정을 제공하는지 여부에 관계 없이 AI/ML 모델로부터의 예측을 사용하여 진행할 수 있다. 특정 실시예들에서, RPA 로봇은, AI/ML 모델로부터의 예측이 정확하다는 액션 센터 애플리케이션으로부터의 표시를 대기할 수 있다.
이 예에서 AI/ML 모델이 객체를 열차로서 잘못 식별했기 때문에, 사용자는 필드(722)를 업데이트함으로써 이미지에서 식별된 객체의 유형을 정정할 수 있다. 특정 실시예들에서 다른 정정들이 또한 이루어질 수 있다. 예를 들어, 이미지 내의 객체가 식별되지 않았거나 객체의 위치가 잘못된 경우, 사용자는 이 실시예에서, 정확한 객체 주위에 경계 박스를 그리거나 파라미터들을 수동으로 입력할 수 있다. 정정이 이루어진 후에, 사용자는 정정 버튼(728)을 클릭하여 정정을 RPA 로봇에 제공하거나, 재트레이닝을 위해 서버/데이터베이스에 정정을 제공하거나, 또는 둘 모두를 수행할 수 있다.
일부 실시예들에서, 다양한 유형들의 정보가 이미지 디스플레이 창(710)에 보여질 수 있다는 것이 주목되어야 한다. 예를 들어, 이미지 디스플레이 창(710)은 문서들(예를 들어, PDF 문서들, Microsoft Word® 문서들 등), 사용자 인터페이스의 스크린샷들, 또는 AI/ML 모델이 분석하고 있는 임의의 다른 콘텐츠를 본 발명의 범위를 벗어나지 않으면서 보여줄 수 있다. 실제로, 인터페이스(700)가 AI/ML 모델이 분석하는 콘텐츠, 그의 입력 및/또는 그의 출력에 관련되도록 인터페이스(700)는 임의의 원하는 방식으로 구성될 수 있다.
도 8은 본 발명의 일 실시예에 따른, 액션 센터를 통해 AI/ML 모델들을 보충하고, AI/ML 모델 재트레이닝 하드웨어 제어를 제공하고, AI/ML 모델 설정 관리를 제공하기 위한 프로세스(800)를 예시하는 흐름도이다. 프로세스는 805에서 RPA 로봇으로부터 AI/ML 모델을 실행하기 위한 호출을 수신하고 810에서 요청된 AI/ML 모델을 실행하는 것으로 시작된다. 일부 실시예들에서, 요청된 AI/ML 모델을 실행할 때, 요청된 AI/ML 모델을 재트레이닝하기 위해 사용할 프로세서들을 특정하는 구성이 사용된다. 프로세서들은, 예를 들어 GPU들 및 CPU들을 포함할 수 있다. 특정 실시예들에서, 구성은 모든 GPU들을 사용할지 여부, 모든 CPU들을 사용할지 여부, 또는 GPU들과 CPU들의 조합을 사용할지 여부를 특정한다. 일부 실시예들에서, 구성은 선호하는 유형의 프로세서들이 이용가능하지 않을 때 임의의 이용가능한 프로세서들을 사용하도록 특정한다. 특정 실시예들에서, 요청된 AI/ML 모델을 재트레이닝하기 위해 유휴 프로세서들이 사용된다. 일부 실시예들에서, AL/ML 모델들을 실행하기 위한 RPA 로봇들로부터의 요구에 기초하여 요청된 AI/ML 모델의 재트레이닝에 프로세서들이 추가되거나, 또는 요청된 AI/ML 모델의 재트레이닝으로부터 프로세서들이 제거된다. 특정 실시예들에서, 호출 RPA 로봇의 활동은 호출 RPA 로봇으로 하여금 액션 센터로부터의 AI/ML 모델의 실행의 결과에 대해 일정 시구간 동안 대기하게 하는 로직을 포함한다. 특정 실시예들에서, AI/ML 모델의 실행의 결과가 시구간 동안 수신되지 않을 때, RPA 로봇은 요청된 AI/ML 모델로부터의 결과를 사용하여 동작을 계속하도록 시도하거나, 요청된 AI/ML 모델과 연관된 활동을 스킵하거나, 또는 디폴트 액션을 취하도록 구성된다.
임계치 모니터링은 815에서 수행되며, AI/ML 모델 성능의 신뢰도 또는 일부 다른 메트릭(들)(예를 들어, 값 임계치, 표준 편차, 다른 통계적 측정치 등)이 임계치(들) 미만이 아닌 경우, 820에서, AI/ML 모델의 실행의 결과가 RPA 로봇에 제공된다. 특정 실시예들에서, 요청된 AI/ML 모델을 실행하기 위한 프로세서들의 최적의 조합을 학습함으로써 820에서 성능이 개선될 수 있고, 프로세서들의 학습된 최적의 조합은 요청된 AI/ML의 실행을 위한 프로세서들의 자동 밸런싱을 수행하는 데 사용될 수 있다. 일부 실시예들에서, AI/ML 모델의 실행의 결과 및 잠재적으로 정확도 및/또는 일부 다른 성능 메트릭은 임계값(들)에 관계 없이 RPA 로봇에 제공된다. 특정 실시예들에서, 요청된 AI/ML 모델의 성능은 처음으로, 일정 기간에 걸쳐, 또는 단계(815)의 "예" 브랜치가 취해질 요청된 AI/ML 모델의 다수의 실행들에 걸쳐 하나 이상의 성능 임계치들 아래로 떨어져야 한다.
815에서 임계치(들)가 충족되지 않으면, 825에서 AI/ML 모델 결과에 대한 검토 요청이 액션 센터에 전송된다. 일부 실시예들에서, 검토 요청은 요청된 AI/ML 모델에 의해 분석된 이미지의 스크린샷 및 요청된 AI/ML 모델로부터의 예측을 포함한다. 이어서, 830에서, 액션 센터는 (예를 들어, 액션 센터 애플리케이션을 통해) 결과의 검토를 수행한다. 일부 실시예들에서, 검토는, AI/ML 모델로부터 결과를 검토하기 위한 요청을 수신하는 것, AI/ML 모델에 의해 분석된 이미지 및 결과에 대한 하나 이상의 파라미터들을 액션 센터 애플리케이션을 실행하는 컴퓨팅 시스템의 디스플레이 상에 디스플레이하는 것, 및 결과가 부정확하면 파라미터들 중 적어도 하나에 대한 정정을 수신하는 것을 포함한다. 835에서 결과가 정확하다면, 840에서 결과는 액션 센터 애플리케이션을 통해 승인될 수 있고, RPA 로봇에 전송되거나, 또는 어떠한 추가 조치도 취해지지 않는다.
그러나, 835에서 결과가 정확하지 않으면, 정정된 결과는 액션 센터 애플리케이션을 통해 제공될 수 있고, 845에서 결과는 재트레이닝을 위해 저장되거나 호출 RPA 로봇에 전송될 수 있다. 데이터가 재트레이닝을 위해 RPA 제공자에 의해 저장되기보다는 호출 RPA 로봇에 전송되는 경우에, 이는, 고객이 데이터를 민감하거나 독점적인 것으로 간주하고 따라서 데이터를 로컬로 저장하고 보안 목적으로 고객 측에서 재트레이닝할 때 발생할 수 있다. 850에서 재트레이닝 기준들이 충족되면(예를 들어, 일정량의 트레이닝 데이터가 수신되고, 일정 시구간이 경과하고, 액션 센터로부터 다수의 정정들이 수신되는 등), 855에서 AI/ML 모델이 재트레이닝된다. 이어서, 860에서 재트레이닝된 AI/ML 모델이 배치된다. 일부 실시예들에서, 재트레이닝된 AI/ML 모델이 성능 임계치들 중 적어도 하나에 대해 개선될 때, 재트레이닝된 AI/ML 모델은 이전 버전의 AI/ML 모델 대신에 또는 그와 함께 사용되며, 둘 사이의 최상의 결과가 사용될 수 있다. 특정 실시예들에서, 재트레이닝된 AI/ML 모델은, 재트레이닝된 AI/ML 모델이 하나 이상의 개개의 최소 개선량들만큼 하나 이상의 성능 임계치들을 개선할 때에만 배치된다.
도 8에서 수행되는 프로세스 단계들은 본 발명의 실시예들에 따라, 도 8에 설명된 프로세스(들)의 적어도 일부를 수행하기 위해 프로세서(들)에 대한 명령어들을 인코딩하는 컴퓨터 프로그램에 의해 수행될 수 있다. 컴퓨터 프로그램은 비일시적 컴퓨터 판독가능 매체 상에 구현될 수 있다. 컴퓨터 판독가능 매체는 하드 디스크 드라이브, 플래시 디바이스, RAM, 테이프 및/또는 임의의 다른 이러한 매체 또는 데이터를 저장하기 위해 사용되는 매체들의 조합일 수 있지만, 이에 제한되지 않는다. 컴퓨터 프로그램은 도 8에 설명된 프로세스 단계들 중 전부 또는 일부를 구현하기 위해 컴퓨팅 시스템의 프로세서(들)(예를 들어, 도 5의 컴퓨팅 시스템(500)의 프로세서(들)(510))를 제어하기 위한 인코딩된 명령어들을 포함할 수 있고, 이는 또한 컴퓨터 판독가능 매체 상에 저장될 수 있다.
컴퓨터 프로그램은 하드웨어, 소프트웨어 또는 하이브리드 구현으로 구현될 수 있다. 컴퓨터 프로그램은 서로 동작가능하게 통신하고 디스플레이할 정보 또는 명령어들을 전달하도록 설계되는 모듈들로 구성될 수 있다. 컴퓨터 프로그램은 범용 컴퓨터, ASIC, 또는 임의의 다른 적절한 디바이스 상에서 동작하도록 구성될 수 있다.
본 명세서에서 일반적으로 설명되고 예시된 바와 같이, 본 발명의 다양한 실시예들의 컴포넌트들은 매우 다양한 상이한 구성들로 배열되고 설계될 수 있음은 쉽게 이해될 것이다. 따라서, 첨부된 도면들에서 표현되는 바와 같이, 본 발명의 실시예들의 상세한 설명은 청구되는 본 발명의 범위를 제한하려는 의도가 아니며, 본 발명의 선택된 실시예들을 단지 예시한다.
본 명세서 전반에 걸쳐 설명된 본 발명의 특징들, 구조들 또는 특성들은 하나 이상의 실시예들에서 임의의 적절한 방식으로 조합될 수 있다. 예를 들어, 본 명세서 전반에 걸쳐 "특정 실시예들", "일부 실시예들" 또는 유사한 언어에 대한 참조는 실시예와 관련하여 설명된 특정 특징, 구조 또는 특성이 본 발명의 적어도 하나의 실시예에 포함되는 것을 의미한다. 따라서, 본 명세서 전반에 걸쳐 어구들 "특정 실시예들에서", "일부 실시예들에서", "다른 실시예들에서" 또는 유사한 언어의 등장들은 반드시 모두 동일한 실시예들의 그룹을 지칭하는 것은 아니며, 설명된 특징들, 구조들 또는 특성들은 하나 이상의 실시예들에서 임의의 적절한 방식으로 조합될 수 있다.
본 명세서 전반에 걸쳐 특징들, 이점들 또는 유사한 언어에 대한 참조는 본 발명과 함께 실현될 수 있는 특징들 및 이점들이 본 발명의 임의의 단일 실시예 내에 있거나 있어야 함을 의미하지 않음에 유의해야 한다. 오히려, 특징들 및 이점들을 나타내는 언어는, 실시예와 관련하여 설명된 특정 특징, 이점 또는 특성이 본 발명의 적어도 하나의 실시예에 포함되는 것을 의미하는 것으로 이해된다. 따라서, 본 명세서 전반에 걸쳐 특징들 및 이점들, 및 유사한 언어의 논의는 동일한 실시예를 지칭할 수 있지만, 반드시 그러한 것은 아니다.
또한, 본 발명의 설명된 특징들, 이점들 및 특성들은 하나 이상의 실시예들에서 임의의 적절한 방식으로 조합될 수 있다. 관련 기술분야의 당업자는, 특정 실시예의 특정 특징들 또는 이점들 중 하나 이상 없이도 본 발명이 실시될 수 있음을 인식할 것이다. 다른 경우들에서, 본 발명의 모든 실시예들에 존재하지는 않을 수 있는 특정 실시예들에서 추가적인 특징들 및 이점들이 인식될 수 있다.
본 기술분야의 당업자는, 앞서 논의된 바와 같은 본 발명이 상이한 순서의 단계들로 그리고/또는 개시된 것과는 상이한 구성들의 하드웨어 요소들로 실시될 수 있음을 쉽게 이해할 것이다. 따라서, 본 발명이 이러한 바람직한 실시예들에 기초하여 설명되었지만, 본 개시의 사상 및 범위 내에 유지되면서 특정 수정들, 변형들 및 대안적인 구성들이 명백할 것임은 본 기술분야의 당업자들에게 자명할 것이다. 따라서, 본 발명의 범위 및 한계들을 결정하기 위해, 첨부된 청구항들에 대한 참조가 이루어져야 한다.

Claims (29)

  1. 시스템으로서,
    하나 이상의 인공 지능(artificial intelligence, AI)/머신 학습(machine learning, ML) 모델을 포함하거나 상기 하나 이상의 AI/ML 모델에 대한 액세스를 갖는 서버;
    실행 동안 상기 하나 이상의 AI/ML 모델 중 적어도 하나를 호출하도록 구성된 하나 이상의 로봇 프로세스 자동화(robotic process automation, RPA) 로봇; 및
    액션 센터
    를 포함하고,
    상기 서버는,
    상기 하나 이상의 AI/ML 모델의 성능을 모니터링하고,
    상기 하나 이상의 AI/ML 모델의 AI/ML 모델을 실행하기 위한 요청을 상기 하나 이상의 RPA 로봇의 호출 RPA 로봇으로부터 수신하고,
    상기 요청된 AI/ML 모델의 성능이 처음으로, 일정 시구간에 걸쳐, 또는 상기 요청된 AI/ML 모델의 다수의 실행들에 걸쳐 하나 이상의 성능 임계치 미만으로 떨어질 때, 상기 요청된 AI/ML 모델의 실행의 결과를 검토하기 위한 검토 요청을 상기 액션 센터에 전송하도록 구성되고,
    상기 액션 센터는,
    상기 결과가 정확하다는 표시를 액션 센터 애플리케이션으로부터 수신하거나 상기 액션 센터 애플리케이션으로부터 정정된 결과를 수신하고,
    상기 결과가 부정확할 때, 상기 액션 센터로부터의 상기 정정된 결과를 상기 호출 RPA 로봇에, 상기 서버에, 또는 둘 모두에 제공하도록 구성된 것인, 시스템.
  2. 제1항에 있어서,
    상기 서버는 또한,
    상기 요청된 AI/ML 모델을 실행하고;
    상기 요청된 AI/ML 모델의 실행의 결과 및 상기 결과의 정확도를 상기 호출 RPA 로봇에 제공하도록 구성된 것인, 시스템.
  3. 제1항에 있어서,
    상기 서버에 의해 상기 액션 센터에 전송된 상기 검토 요청은 상기 요청된 AI/ML 모델에 의해 분석된 이미지의 스크린샷 및 상기 요청된 AI/ML 모델로부터의 예측을 포함한 것인, 시스템.
  4. 제1항에 있어서,
    상기 액션 센터가 정정을 제공할 때, 상기 액션 센터 또는 상기 서버는, 상기 정정과 관련된 데이터가 상기 요청된 AI/ML 모델을 재트레이닝하기 위해 저장되게 하거나, 상기 데이터를 상기 호출 RPA 로봇에 전송하거나, 또는 둘 모두를 위해 구성된 것인, 시스템.
  5. 제4항에 있어서,
    일정량의 트레이닝 데이터가 수신된 후, 시구간이 경과한 후, 또는 상기 액션 센터로부터 다수의 정정들이 수신된 후, 상기 서버는 상기 요청된 AI/ML 모델을 재트레이닝하도록 구성된 것인, 시스템.
  6. 제5항에 있어서,
    상기 재트레이닝된 AI/ML 모델이 상기 하나 이상의 성능 임계치 중 적어도 하나에 대해 개선될 때, 상기 서버는,
    상기 요청된 AI/ML 모델 대신에 상기 재트레이닝된 AI/ML 모델을 배치하거나; 또는
    상기 재트레이닝된 AI/ML 모델을 상기 요청된 AI/ML 모델과 함께 사용하고, 상기 재트레이닝된 AI/ML 모델 및 상기 요청된 AI/ML 모델로부터 최상의 결과를 획득하도록 구성된 것인, 시스템.
  7. 제6항에 있어서,
    상기 재트레이닝된 AI/ML 모델은, 상기 재트레이닝된 AI/ML 모델이 하나 이상의 개개의 최소 개선량만큼 상기 하나 이상의 성능 임계치를 개선할 때에만 배치된 것인, 시스템.
  8. 제5항에 있어서,
    상기 서버는 상기 요청된 AI/ML 모델을 재트레이닝하기 위해 사용할 프로세서들을 특정하는 구성을 사용하도록 구성되고, 상기 프로세서들은 그래픽 프로세싱 유닛(graphics processing unit, GPU)들 및 중앙 프로세싱 유닛(central processing unit, CPU)들을 포함한 것인, 시스템.
  9. 제8항에 있어서,
    상기 구성은 모든 GPU들을 사용할지 여부, 모든 CPU들을 사용할지 여부, 또는 GPU들과 CPU들의 조합을 사용할지 여부를 특정한 것인, 시스템.
  10. 제8항에 있어서,
    상기 구성은 선호하는 유형의 프로세서들이 이용가능하지 않을 때 임의의 이용가능한 프로세서들을 사용하는 것을 특정한 것인, 시스템.
  11. 제8항에 있어서,
    상기 서버는 상기 요청된 AI/ML 모델을 재트레이닝하기 위해 유휴 프로세서들을 사용하도록 구성된 것인, 시스템.
  12. 제8항에 있어서,
    상기 서버는 상기 하나 이상의 AL/ML 모델을 실행하기 위해 상기 서버를 위한 상기 하나 이상의 RPA 로봇으로부터의 요구에 기초하여 상기 요청된 AI/ML 모델의 상기 재트레이닝에 프로세서들을 추가하거나 상기 요청된 AI/ML 모델의 상기 재트레이닝으로부터 프로세서들을 제거하도록 구성된 것인, 시스템.
  13. 제8항에 있어서,
    상기 호출 RPA 로봇의 활동은 상기 호출 RPA 로봇으로 하여금 상기 액션 센터로부터의 상기 AI/ML 모델의 실행의 결과를 시구간 동안 기다리게 하는 로직을 포함한 것인, 시스템.
  14. 제13항에 있어서,
    상기 AI/ML 모델의 실행의 결과가 상기 시구간 동안 수신되지 않을 때, 상기 RPA 로봇은 상기 요청된 AI/ML 모델로부터의 결과를 사용하여 동작을 계속하거나, 상기 요청된 AI/ML 모델과 연관된 활동을 스킵하거나, 또는 디폴트 액션을 취하는 것을 시도하도록 구성된 것인, 시스템.
  15. 제1항에 있어서,
    상기 서버는 상기 요청된 AI/ML 모델을 실행하기 위한 프로세서들의 최적의 조합을 학습하고, 상기 요청된 AI/ML 모델의 실행을 위한 상기 프로세서들의 자동 밸런싱을 수행하기 위해 프로세서들의 상기 학습된 최적의 조합을 사용하도록 구성된 것인, 시스템.
  16. 제1항에 있어서,
    상기 액션 센터 애플리케이션은,
    상기 AI/ML 모델로부터의 결과를 검토하기 위한 요청을 수신하고;
    상기 AI/ML 모델에 의해 분석된 이미지 및 상기 결과에 대한 하나 이상의 파라미터를 디스플레이 상에 디스플레이하고;
    상기 하나 이상의 파라미터 중 적어도 하나에 대한 정정을 수신하도록 구성된 것인, 시스템.
  17. 컴퓨터 구현 방법으로서,
    액션 센터 애플리케이션에 의해, 지능(AI)/머신 학습(ML) 모델로부터의 결과를 검토하기 위한 요청을 수신하는 단계;
    상기 액션 센터 애플리케이션에 의해, 상기 AI/ML 모델에 의해 분석된 이미지 및 상기 결과에 대한 하나 이상의 파라미터를 디스플레이 상에 디스플레이하는 단계 - 상기 하나 이상의 파라미터는 AI/ML 모델에 의한 예측을 포함함 -;
    상기 액션 센터 애플리케이션에 의해, 상기 하나 이상의 파라미터 중 적어도 하나에 대한 정정을 수신하는 단계; 및
    상기 AI/ML 모델의 재트레이닝을 위해 상기 정정을 서버에 전송하는 단계
    를 포함하는, 컴퓨터 구현 방법.
  18. 제17항에 있어서,
    상기 액션 센터 애플리케이션에 의해, 상기 AI/ML 모델을 호출한 로봇 프로세스 자동화(RPA) 로봇에 상기 정정을 전송하는 단계
    를 더 포함하고,
    상기 정정은 상기 AI/ML 모델의 결과에 대한 정정된 예측을 포함한 것인, 컴퓨터 구현 방법.
  19. 컴퓨터 프로그램을 저장하는 비일시적 컴퓨터 판독가능 매체로서,
    상기 컴퓨터 프로그램은 적어도 하나의 프로세서로 하여금,
    로봇 프로세스 자동화(RPA) 로봇들에 의해 요청된 지능(AI)/머신 학습(ML) 모델들을 실행하게 하고;
    상기 AI/ML 모델들의 성능을 모니터링하게 하고;
    상기 AI/ML 모델들의 AI/ML 모델의 성능이 처음으로, 시구간에 걸쳐, 또는 상기 AI/ML 모델의 다수의 실행들에 걸쳐 하나 이상의 성능 임계치 미만으로 떨어질 때, 상기 AI/ML 모델의 실행의 결과를 검토하기 위한 검토 요청을 액션 센터에 전송하게 하도록 구성된 것인, 비일시적 컴퓨터 판독가능 매체.
  20. 제19항에 있어서,
    상기 검토 요청은 상기 AI/ML 모델에 의해 분석된 이미지의 스크린샷 및 상기 AI/ML 모델로부터의 예측을 포함한 것인, 비일시적 컴퓨터 판독가능 매체.
  21. 제19항에 있어서,
    상기 컴퓨터 프로그램은 또한, 상기 적어도 하나의 프로세서로 하여금,
    상기 액션 센터로부터 상기 AI/ML 모델에 대한 정정을 수신하게 하고;
    상기 AI/ML 모델의 재트레이닝을 위해 상기 정정을 저장하게 하도록 구성된 것인, 비일시적 컴퓨터 판독가능 매체.
  22. 제19항에 있어서,
    일정량의 트레이닝 데이터가 수신된 후, 시구간이 경과한 후, 또는 상기 액션 센터로부터 다수의 정정들이 수신된 후, 상기 컴퓨터 프로그램은 또한, 상기 적어도 하나의 프로세서로 하여금,
    상기 AI/ML 모델을 재트레이닝하게 하고;
    상기 재트레이닝된 AI/ML 모델이 상기 하나 이상의 성능 임계치 중 적어도 하나에 대해 개선될 때,
    상기 AI/ML 모델의 이전 버전 대신에 상기 재트레이닝된 AI/ML 모델을 배치하게 하거나; 또는
    상기 재트레이닝된 AI/ML 모델을 상기 AI/ML 모델의 이전 버전과 함께 사용하고, 상기 재트레이닝된 AI/ML 모델 및 상기 AI/ML 모델의 이전 버전으로부터 최상의 결과를 획득하게 하도록 구성된 것인, 비일시적 컴퓨터 판독가능 매체.
  23. 제22항에 있어서,
    상기 재트레이닝된 AI/ML 모델은, 상기 재트레이닝된 AI/ML 모델이 하나 이상의 개개의 최소 개선량만큼 상기 하나 이상의 성능 임계치를 개선할 때에만 배치된 것인, 비일시적 컴퓨터 판독가능 매체.
  24. 제22항에 있어서,
    상기 컴퓨터 프로그램은 또한, 상기 적어도 하나의 프로세서로 하여금,
    상기 AI/ML 모델을 재트레이닝하기 위해 사용할 프로세서들을 특정하는 구성을 사용하게 하도록 구성되고,
    상기 프로세서들은 그래픽 프로세싱 유닛(GPU)들 및 중앙 프로세싱 유닛(CPU)들을 포함한 것인, 비일시적 컴퓨터 판독가능 매체.
  25. 제24항에 있어서,
    상기 구성은 모든 GPU들을 사용할지 여부, 모든 CPU들을 사용할지 여부, 또는 GPU들과 CPU들의 조합을 사용할지 여부를 특정한 것인, 비일시적 컴퓨터 판독가능 매체.
  26. 제24항에 있어서,
    상기 구성은 선호하는 유형의 프로세서들이 이용가능하지 않을 때 임의의 이용가능한 프로세서들을 사용하는 것을 특정한 것인, 비일시적 컴퓨터 판독가능 매체.
  27. 제24항에 있어서,
    상기 컴퓨터 프로그램은 또한, 상기 적어도 하나의 프로세서로 하여금,
    상기 AI/ML 모델을 재트레이닝하기 위해 유휴 프로세서들을 사용하게 하도록 구성된 것인, 비일시적 컴퓨터 판독가능 매체.
  28. 제24항에 있어서,
    상기 컴퓨터 프로그램은 또한, 상기 적어도 하나의 프로세서로 하여금,
    상기 컴퓨터 프로그램이 상기 AL/ML 모델들을 실행하도록 하는 상기 RPA 로봇들로부터의 요구에 기초하여, 상기 AI/ML 모델의 재트레이닝에 프로세서들을 추가하거나 또는 상기 AI/ML 모델의 재트레이닝으로부터 프로세서들을 제거하게 하도록 구성된 것인, 비일시적 컴퓨터 판독가능 매체.
  29. 제19항에 있어서,
    상기 컴퓨터 프로그램은 또한, 상기 적어도 하나의 프로세서로 하여금,
    상기 AI/ML 모델을 실행하기 위한 프로세서들의 최적의 조합을 학습하고, 상기 AI/ML 모델의 실행을 위한 상기 프로세서들의 자동 밸런싱을 수행하기 위해 프로세서들의 상기 학습된 최적의 조합을 사용하게 하도록 구성된 것인, 비일시적 컴퓨터 판독가능 매체.
KR1020217042508A 2020-12-11 2021-10-28 액션 센터, 인공 지능(ai)/머신 학습(ml) 모델 재트레이닝 하드웨어 제어, 및 ai/ml 모델 설정 관리를 통한 ai/ml 모델들의 보충 KR20220083976A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
IN202011053926 2020-12-11
IN202011053926 2020-12-11
US17/155,209 2021-01-22
US17/155,209 US20220188697A1 (en) 2020-12-11 2021-01-22 Supplementing artificial intelligence (ai) / machine learning (ml) models via action center, ai/ml model retraining hardware control, and ai/ml model settings management
PCT/US2021/056921 WO2022125207A1 (en) 2020-12-11 2021-10-28 SUPPLEMENTING ARTIFICIAL INTELLIGENCE (Al) / MACHINE LEARNING (ML) MODELS VIA ACTION CENTER, Al/ML MODEL RETRAINING HARDWARE CONTROL, AND AI/ML MODEL SETTINGS MANAGEMENT

Publications (1)

Publication Number Publication Date
KR20220083976A true KR20220083976A (ko) 2022-06-21

Family

ID=81942657

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217042508A KR20220083976A (ko) 2020-12-11 2021-10-28 액션 센터, 인공 지능(ai)/머신 학습(ml) 모델 재트레이닝 하드웨어 제어, 및 ai/ml 모델 설정 관리를 통한 ai/ml 모델들의 보충

Country Status (6)

Country Link
US (1) US20220188697A1 (ko)
EP (1) EP4035097A4 (ko)
JP (1) JP2023552666A (ko)
KR (1) KR20220083976A (ko)
CN (1) CN114930356A (ko)
WO (1) WO2022125207A1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024005313A1 (ko) * 2022-06-30 2024-01-04 삼성전자 주식회사 전자 장치의 학습 모델을 갱신하는 서버 및 그의 동작 방법
WO2024019352A1 (ko) * 2022-07-21 2024-01-25 엘지전자 주식회사 무선 통신 시스템에서 신호 송수신 방법 및 장치
WO2024096386A1 (en) * 2022-11-04 2024-05-10 Samsung Electronics Co., Ltd. Methods and apparatus for ai/ml data transfer in a wireless communication system

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3112965A1 (en) * 2015-07-02 2017-01-04 Accenture Global Services Limited Robotic process automation
WO2017201107A1 (en) * 2016-05-16 2017-11-23 Purepredictive, Inc. Predictive drift detection and correction
US10270644B1 (en) * 2018-05-17 2019-04-23 Accenture Global Solutions Limited Framework for intelligent automated operations for network, service and customer experience management
US10974392B2 (en) * 2018-06-08 2021-04-13 International Business Machines Corporation Automated robotic security system
US11822913B2 (en) * 2019-12-20 2023-11-21 UiPath, Inc. Dynamic artificial intelligence / machine learning model update, or retrain and update, in digital processes at runtime
US20220094606A1 (en) * 2020-09-24 2022-03-24 Level 3 Communications, Llc Ai-supported network techniques

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024005313A1 (ko) * 2022-06-30 2024-01-04 삼성전자 주식회사 전자 장치의 학습 모델을 갱신하는 서버 및 그의 동작 방법
WO2024019352A1 (ko) * 2022-07-21 2024-01-25 엘지전자 주식회사 무선 통신 시스템에서 신호 송수신 방법 및 장치
WO2024096386A1 (en) * 2022-11-04 2024-05-10 Samsung Electronics Co., Ltd. Methods and apparatus for ai/ml data transfer in a wireless communication system

Also Published As

Publication number Publication date
US20220188697A1 (en) 2022-06-16
JP2023552666A (ja) 2023-12-19
EP4035097A1 (en) 2022-08-03
EP4035097A4 (en) 2023-08-09
WO2022125207A1 (en) 2022-06-16
CN114930356A (zh) 2022-08-19

Similar Documents

Publication Publication Date Title
KR102453988B1 (ko) 런타임시 디지털 프로세스에서의 동적 인공 지능/머신 러닝 모델 업데이트, 또는 재트레이닝 및 업데이트
US11738453B2 (en) Integration of heterogeneous models into robotic process automation workflows
US11893371B2 (en) Using artificial intelligence to select and chain models for robotic process automation
US11372380B2 (en) Media-to-workflow generation using artificial intelligence (AI)
US20220164701A1 (en) Robotic process automation architectures and processes for hosting, monitoring, and retraining machine learning models
US11650874B2 (en) Anomaly detection and self-healing for robotic process automation via artificial intelligence / machine learning
US20220188697A1 (en) Supplementing artificial intelligence (ai) / machine learning (ml) models via action center, ai/ml model retraining hardware control, and ai/ml model settings management
US11592804B2 (en) Task automation by support robots for robotic process automation (RPA)
US11775860B2 (en) Reinforcement learning in robotic process automation
US20210110207A1 (en) Automatic activation and configuration of robotic process automation workflows using machine learning
KR102502324B1 (ko) 로봇 프로세스 자동화를 위한 머신 학습 모델 재훈련 파이프라인
US11593709B2 (en) Inserting and/or replacing machine learning models in a pipeline for robotic process automation workflows
EP3905144A1 (en) Machine learning model retraining pipeline for robotic process automation