KR20210134484A - 로봇 프로세스 자동화를 위한 머신 학습 모델 재훈련 파이프라인 - Google Patents

로봇 프로세스 자동화를 위한 머신 학습 모델 재훈련 파이프라인 Download PDF

Info

Publication number
KR20210134484A
KR20210134484A KR1020207028187A KR20207028187A KR20210134484A KR 20210134484 A KR20210134484 A KR 20210134484A KR 1020207028187 A KR1020207028187 A KR 1020207028187A KR 20207028187 A KR20207028187 A KR 20207028187A KR 20210134484 A KR20210134484 A KR 20210134484A
Authority
KR
South Korea
Prior art keywords
model
training
data
rpa
rpa robot
Prior art date
Application number
KR1020207028187A
Other languages
English (en)
Other versions
KR102502324B1 (ko
Inventor
프랍딮 싱
프랍‹K 싱
마르코 알반 히달고
안톤 맥곤넬
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 KR20210134484A publication Critical patent/KR20210134484A/ko
Application granted granted Critical
Publication of KR102502324B1 publication Critical patent/KR102502324B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine 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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/02Knowledge representation; Symbolic representation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Medical Informatics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Automation & Control Theory (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Fuzzy Systems (AREA)
  • Computational Linguistics (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Transfer Between Computers (AREA)
  • User Interface Of Digital Computer (AREA)
  • Manipulator (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

로봇 프로세스 자동화(RPA)를 위한 머신 학습(ML) 모델 재훈련 파이프라인이 개시된다. ML 모델이 생산 또는 개발 환경에서 전개될 때, RPA 로봇들은 그 작업흐름들을 실행할 때에 요청들을 ML 모델로 전송한다. ML 모델의 신뢰도 레벨이 어떤 신뢰도 미만으로 하락할 때, 훈련 데이터는 잠재적으로 큰 수의 컴퓨팅 시스템들로부터 수집된다. ML 모델은 그 다음으로, 수집된 훈련 데이터를 적어도 부분적으로 이용하여 훈련되고, ML 모델의 새로운 버전이 전개된다.

Description

로봇 프로세스 자동화를 위한 머신 학습 모델 재훈련 파이프라인
[관련 출원에 대한 상호 참조] 이 출원은 2020년 4월 30일자로 출원된 미국 정규 특허 출원 제16/864,000호의 이익을 주장한다. 이 더 이전에 출원된 출원의 발명 요지는 그 전체적으로 참조에 의해 편입된다.
본 발명은 일반적으로 로봇 프로세스 자동화(robotic process automation; RPA)에 관한 것으로, 더 구체적으로, RPA를 위한 머신 학습(machine learning; ML) 모델 재훈련 파이프라인에 관한 것이다.
현재, ML 모델을 재훈련시키기 위한 피드백 루프를 자동화하기 위한 표준 메커니즘 또는 프로세스가 존재하지 않는다. 따라서, 개선된 해결책이 유익할 수 있다.
본 발명의 어떤 실시예들은 현재의 RPA 기술들에 의해 아직 완전히 식별되거나, 인식되거나, 해결되지 않은 종래 기술에서의 문제들 및 필요성들에 대한 해결책들을 제공할 수 있다. 예를 들어, 본 발명의 일부 실시예들은 RPA를 위한 ML 모델 재훈련 파이프라인에 속한다.
실시예에서, RPA를 위한 ML 모델 재훈련 파이프라인을 구현하기 위한 컴퓨터-구현 방법은 RPA 로봇에 의해, ML 모델을 호출하는 단계, 및 RPA 로봇에 의해, ML 모델의 실행으로부터의 결과를 수신하는 단계를 포함한다. 컴퓨터-구현 방법은 또한, RPA 로봇에 의해, 하나 이상의 트리거 조건들이 ML 모델을 위한 데이터의 라벨링(labeling)을 위하여 충족되는지 여부를 결정하는 단계를 포함한다. 하나 이상의 트리거 조건들이 충족될 때, 컴퓨터-구현 방법은 사용자가 ML 모델을 훈련시키거나 재훈련시키기 위한 라벨링된 데이터(labeled data)를 제공할 것을 촉구하고, RPA 로봇에 의해, 라벨링된 데이터를 ML 모델의 훈련 또는 재훈련을 위한 서버로 전송하거나, RPA 로봇에 의해, ML 모델로부터의 결과에 속하는 정보를 추후의 라벨링(labeling)을 위한 큐에 추가하는 단계를 더 포함한다.
또 다른 실시예에서, RPA를 위한 ML 모델 재훈련 파이프라인을 구현하기 위한 컴퓨터-구현 방법은 RPA 로봇에 의해, 하나 이상의 트리거 조건들이 ML 모델을 위한 데이터의 라벨링을 위하여 충족되는지 여부를 결정하는 단계를 포함한다. 하나 이상의 트리거 조건들이 충족될 때, 컴퓨터-구현 방법은 또한, 사용자가 ML 모델을 훈련시키거나 재훈련시키기 위한 라벨링된 데이터를 제공할 것을 촉구하고, RPA 로봇에 의해, 라벨링된 데이터를 ML 모델의 훈련 또는 재훈련을 위한 서버로 전송하거나, RPA 로봇에 의해, ML 모델로부터의 결과에 속하는 정보를 추후의 라벨링을 위한 큐에 추가하는 단계를 포함한다.
또 다른 실시예에서, RPA를 위한 ML 모델 재훈련 파이프라인을 구현하기 위한 컴퓨터-구현 방법은 RPA 로봇에 의해, ML 모델을 호출하는 단계, 및 RPA 로봇에 의해, ML 모델의 실행으로부터의 결과를 수신하는 단계를 포함한다. 컴퓨터-구현 방법은 또한, RPA 로봇에 의해, 하나 이상의 트리거 조건들이 ML 모델을 위한 데이터의 라벨링을 위하여 충족되는지 여부를 결정하는 단계를 포함한다. 하나 이상의 트리거 조건들이 충족될 때, 컴퓨터-구현 방법은 사용자가 ML 모델을 훈련시키거나 재훈련시키기 위한 라벨링된 데이터를 제공할 것을 촉구하고, RPA 로봇에 의해, 라벨링된 데이터를 ML 모델의 훈련 또는 재훈련을 위한 서버로 전송하거나, RPA 로봇에 의해, ML 모델로부터의 결과에 속하는 정보를 추후의 라벨링을 위한 큐에 추가하는 단계를 더 포함한다. 하나 이상의 훈련 기준들이 충족될 때, 컴퓨터-구현 방법은 ML 모델의 새로운 버전을 생성하기 위하여, 라벨링된 데이터를 이용하여, 서버에 의해, ML 모델을 훈련시키는 단계, 및 서버에 의해, ML 모델의 새로운 버전을 전개하는 단계를 추가적으로 포함한다.
발명의 어떤 실시예들의 장점들이 용이하게 이해되도록 하기 위하여, 위에서 간략하게 설명된 발명의 더 특정한 설명은 첨부된 도면들에서 예시되는 특정 실시예들을 참조하게 될 것이다. 이 도면들은 발명의 오직 전형적인 실시예들을 도시하고, 그러므로, 그 범위의 제한인 것으로 고려되지 않아야 한다는 것이 이해되어야 하지만, 발명은 동반 도면들의 이용을 통해 추가적인 구체성 및 상세함으로 설명되고 기술될 것이다:
도 1은 본 발명의 실시예에 따라, RPA 시스템을 예시하는 아키텍처 다이어그램이다.
도 2는 본 발명의 실시예에 따라, 전개된 RPA 시스템을 예시하는 아키텍처 다이어그램이다.
도 3은 본 발명의 실시예에 따라, 설계자, 활동들, 및 구동기들 사이의 관계를 예시하는 아키텍처 다이어그램이다.
도 4는 본 발명의 실시예에 따라, RPA 시스템을 예시하는 아키텍처 다이어그램이다.
도 5는 본 발명의 실시예에 따라, RPA를 위한 ML 모델 재훈련 파이프라인의 일부를 구현하도록 구성된 컴퓨팅 시스템을 예시하는 아키텍처 다이어그램이다.
도 6은 본 발명의 실시예에 따라, RPA를 위한 ML 모델 재훈련 파이프라인을 구현하도록 구성된 시스템을 예시하는 아키텍처 다이어그램이다.
도 7은 본 발명의 실시예에 따라, RPA를 위한 ML 모델 재훈련 파이프라인을 위한 프로세스를 예시하는 플로우차트이다.
일부 실시예들은 RPA를 위한 ML 모델 재훈련 파이프라인에 속한다. ML 모델이 생산(즉, 실행시간(runtime)) 또는 개발 환경에서 전개될 때, RPA 로봇들은 그 작업흐름들을 실행할 때에 요청들을 ML 모델로 전송할 수 있다. 그러나, ML 모델 성능은 시간 경과에 따라 열화될 수 있고 및/또는 그렇지 않을 경우에는, 다양한 조건들이 변경될 때에 희망된 성능 특성들로부터 이탈할 수 있다. 예를 들어, RPA 로봇이 개(dog)들을 식별하도록 훈련되는 ML 모델을 호출하는 경우를 고려한다. ML 모델은 초기에, 99 %의 신뢰도 임계치를 가지지만, ML 모델은 더 많은 개 이미지들 및 새로운 품종들에 대해 더 폭넓게 이용될 때, 신뢰도 임계치는 95 %로 하락한다.
일부 실시예들은 재훈련을 위한 라벨링된 데이터의 수집을 개시하기 위하여 하나 이상의 트리거들을 채용한다. 트리거들은 발명의 범위로부터 이탈하지 않으면서, 신뢰도 임계치 미만으로 하락하는 ML 모델 성능, 통계적 분포로부터 이탈하는 ML 모델 결과들(예컨대, 사용자들의 풀(pool)에 대하여 정규 분포(normal distribution) 내에 더 이상 속하지 않는 ML 모델 예측들), 이전에 관찰된 범위 외부에 속하는 ML 모델 결과들, 인간 사용자(예컨대, RPA 개발자)가 바람직하지 않은 성능 특성들을 통지하고 재훈련을 위한 라벨링된 데이터의 수집을 개시하는 것, 및/또는 임의의 다른 적당한 트리거를 포함할 수 있지만, 이것으로 제한되지는 않는다. 결정적인 로직과 달리, "예외들"을 제공할 수 있는 구체적인 논리적 경로가 항상 있을 경우에, 확률적 ML 모델들을 위하여, 다른 유형들의 메커니즘들이 채용되어야 한다.
라벨링된 데이터 수집을 언제 트리거링할 것인지(즉, "휴먼-인-더-루프(human-in-the-loop)")는 이에 따라, 일부 실시예들에서 트리거-기반이다. 개들을 식별하는 ML 모델의 위의 예로 돌아가면, 신뢰도 임계치가 95 % 미만으로 하락할 때, 인간 사용자는 입력을 요청받을 수 있다. 예를 들어, RPA 로봇이 그 상에서 실행되고 있는 컴퓨팅 시스템의 인간 사용자는 정정을 행하기 위한 인터페이스 또는 옵션을 제시받을 수 있다. 예를 들어, 인간 사용자는 ML 모델에 의해 행해진 식별(예컨대, "개 없음")을 검토할 수 있고, 식별이 틀릴 경우에 정정을 행할 수 있다. 부정확한 이미지 및 사용자의 정정은 훈련 데이터로서 서버(예컨대, 클라우드-기반 시스템, 데이터 센터, 회사 서버, RPA 제공자의 서버(들) 등)로 전송될 수 있고, RPA 로봇은 그 작업흐름의 나머지의 실행을 진행할 수 있다.
일부 실시예들은 유인(attended) 또는 무인(unattended) 로봇들을 위하여 채용될 수 있다. 유인 자동화의 맥락에서, 인간들은 데이터를 라벨링할 수 있고, RPA 로봇과 함께 작업할 수 있다. 배경에서 작동되고 법률가를 위한 계약 조항들을 분류하는 유인 RPA 로봇을 고려한다. 재훈련이 트리거링될 때, 법률가는 단서의 유형을 선택할 것을 촉구받을 수 있고, 그 분류는 재훈련을 위한 라벨링된 데이터의 일부가 될 수 있다. 이와 같이, 유인 RPA 로봇들에 의해 호출된 ML 모델들을 위한 라벨링은 일부 실시예들에서 동기적일 수 있다.
무인 자동화의 맥락에서, RPA 로봇은 요청을 ML 모델로 전송할 수 있고, ML 모델은 예측 및 그 예측의 신뢰도를 반환한다. 무인 RPA 로봇은 그 다음으로, 신뢰도 임계치 및/또는 일부 다른 기준/기준들이 충족되는지 여부를 평가할 수 있다. 그렇지 않을 경우에, 무인 RPA 로봇은 라벨링 태스크를, 사용자가 더 이후에 수행하기 위한 태스크 큐(task queue)에 추가할 수 있다. 이에 따라, 무인 RPA 로봇들에 의해 호출된 ML 모델들을 위한 라벨링은 일부 실시예들에서 비동기적일 수 있다.
서버는 다양한 사용자들로부터 훈련 데이터를 수신할 수 있고 훈련 데이터를 저장할 수 있다. 시간 경과에 따라, 라벨링된 훈련 데이터의 배치(batch)가 이에 따라 수집된다. 미리 결정된 시간 주기가 경과하고, 훈련 데이터의 미리 결정된 양이 수신되고, 훈련 데이터 샘플들의 미리 결정된 수가 수신되고, 데이터가 데이터의 일부 분포(예컨대, 정규 분포, 이항 분포(binomial distribution), 또는 임의의 다른 통계적 분포) 외부에 속하고, 맞춤형 기준 또는 기준들, 그 임의의 조합 등일 때, ML 모델은 수집된 훈련 데이터를 이용하여 훈련될 수 있거나 재훈련될 수 있다. 훈련은 오직, 수집된 훈련 데이터를 이용하여, 또는 ML 모델의 현재의 버전을 훈련시키기 위하여 이용된 이전의 훈련 데이터를 갖는 수집된 훈련 데이터를 이용하여 발생할 수 있다. 일단 훈련되거나 재훈련되면, ML 모델의 새로운 버전은 그 다음으로, 잠재적으로 인간 액션(human action) 없이 전개된다.
일부 실시예들에서, ML 모델의 새로운 버전은 이전의 버전을 간단하게 대체할 수 있고, RPA 로봇 작업흐름들로부터 ML 모델로의 호출들은 그 대신에, ML 모델의 새로운 버전을 호출할 수 있다. 어떤 실시예들에서, ML 모델의 새로운 버전은 RPA 로봇들의 사용자들의 컴퓨팅 시스템들로 푸시아웃(push out)될 수 있다. 일부 실시예들에서, RPA 로봇들의 작업흐름들은 ML 모델의 새로운 버전을 호출하도록 수정될 수 있다. 어떤 실시예들에서, RPA 로봇들은 먼저, ML 모델의 새로운 버전을 시험할 수 있고, 어떤 신뢰도가 실현되지 않을 경우에, 이전의 버전이 더 높은 신뢰도를 달성하는지 여부를 알아보기 위하여 ML 모델의 이전의 버전을 시험할 수 있다. 일부 실시예들에서, RPA 로봇들은 ML 모델의 양자의 버전들을 호출할 수 있고, 가장 높은 신뢰도를 갖는 모델로부터 출력을 선택할 수 있다.
일부 실시예들은 정확성을 개선시키기 위하여 인간들이 ML 모델 예측들을 정정하기 위한 표준 메커니즘을 ML 모델 감독을 위한 프레임워크에 제공한다. 어떤 실시예들에서, 사용자는 라벨링된 데이터가 훈련/재훈련을 위하여 캡처되고 있다는 것을 인지하지 않을 수 있다. 이 표준 프레임워크는 일부 실시예들에서 프로그래밍 지식을 요구하지 않으면서, 훈련 데이터를 수집하고 다양한 비지니스 프로세스들을 위한 ML 모델 정확성을 개선시키기 위하여 이용될 수 있다.
샘플 수집을 위한 상황들 및 타이밍은 일부 실시예들에서 ML 모델-종속적이다. 비지니스 또는 기술적 판정은 수락가능한 신뢰도 임계치들이 ML 모델을 위하여 이용될 경우에, 수락가능한 신뢰도 임계치들에 관하여 행해질 수 있다. 부정 오류(false negative)들이 의학적 진단들, 차량 제어 모델들 등에서와 같이, 매우 유해할 경우에, 임계치는 높을 수 있다(예컨대, 99.9 %, 99.9999 % 등). 트랜잭션 속력(transaction speed)이 중요할 경우에, 더 높은 에러 레이트가 수락가능할 수 있다(예컨대, 75 %, 85 %, 90 %, 95 % 등). 긍정 오류(false positive)들이 부정 오류들보다 더 수락가능하거나, 그 반대의 경우에, 이것은 또한, 어떤 조건들이 ML 모델의 훈련 또는 재훈련을 바람직하게 할 것인지에 영향을 줄 수 있다.
도 1은 본 발명의 실시예에 따라, RPA 시스템(100)을 예시하는 아키텍처 다이어그램이다. RPA 시스템(100)은 개발자가 작업흐름(workflow)들을 설계하고 구현하는 것을 허용하는 설계자(designer)(110)를 포함한다. 설계자(110)는 애플리케이션 통합 뿐만 아니라, 자동화 제3자 애플리케이션들, 행정적인 정보 기술(Information Technology; IT) 태스크들, 및 비지니스 IT 프로세스들을 위한 해결책을 제공할 수 있다. 설계자(110)는 비지니스 프로세스의 그래픽 표현인 자동화 프로젝트(automation project)의 개발을 용이하게 할 수 있다. 간단하게 말하면, 설계자(110)는 작업흐름들 및 로봇들의 개발 및 전개(deployment)를 용이하게 한다.
자동화 프로젝트는 실행 순서의 개발자 제어, 및 "활동(activity)들"로서 본원에서 정의된, 작업흐름에서 개발된 단계들의 맞춤형 세트(custom set) 사이의 관계를 제공함으로써 규칙-기반 프로세스들의 자동화를 가능하게 한다. 설계자(110)의 실시예의 하나의 상업적인 예는 UiPath Studio™이다. 각각의 활동은 버튼을 클릭하는 것, 파일을 판독하는 것, 로그 패널(log panel)로 기록하는 것 등과 같은 액션(action)을 포함할 수 있다. 일부 실시예들에서, 작업흐름들은 네스팅(nest)될 수 있거나 내장될 수 있다.
일부 유형들의 작업흐름들은 시퀀스들, 플로우차트들, 유한 상태 머신(Finite State Machine; FSM)들, 및/또는 전역적 예외 핸들러(global exception handler)들을 포함할 수 있지만, 이것으로 제한되지는 않는다. 시퀀스들은 선형 프로세스들을 위하여 특히 적당할 수 있어서, 작업흐름을 혼란스럽게 하지 않으면서, 하나의 활동으로부터 또 다른 것으로의 흐름을 가능하게 할 수 있다. 플로우차트들은 더 복잡한 비지니스 로직에 특히 적당할 수 있어서, 다수의 분기 로직 조작자들을 통해 더 다양한 방식으로 판정들의 통합 및 활동들의 접속을 가능하게 할 수 있다. FSM들은 큰 작업흐름들을 위하여 특히 적당할 수 있다. FSM들은 그 실행에서 유한한 수의 상태(state)들을 이용할 수 있고, 상태들은 조건(즉, 전이) 또는 활동에 의해 트리거링된다. 전역적 예외 핸들러들은 실행 에러(execution error)를 조우할 때에 작업흐름 거동(workflow behavior)을 결정하기 위하여, 그리고 디버깅 프로세스들을 위하여 특히 적당할 수 있다.
일단 작업흐름이 설계자(110)에서 개발되면, 비지니스 프로세스들의 실행은 설계자(110)에서 개발된 작업흐름들을 실행하는 하나 이상의 로봇들(130)을 편성(orchestrate)하는 지휘자(conductor)(120)에 의해 편성된다. 지휘자(120)의 실시예의 하나의 상업적인 예는 UiPath Orchestrator™이다. 지휘자(120)는 환경에서 자원들의 생성, 모니터링, 및 전개의 관리를 용이하게 한다. 지휘자(120)는 제3자 해결책들 및 애플리케이션들과의 통합 포인트(integration point)로서 작용할 수 있다.
지휘자(120)는 로봇들(130)의 함대(fleet)를 관리할 수 있어서, 중앙집중화된 포인트로부터 로봇들(130)을 접속하고 실행할 수 있다. 관리될 수 있는 로봇들(130)의 유형들은 유인 로봇들(132), 무인 로봇들(134), (무인 로봇들(134)과 유사하지만, 개발 및 테스팅 목적들을 위하여 이용된) 개발 로봇들, 및 (유인 로봇들(132)과 유사하지만, 개발 및 테스팅 목적들을 위하여 이용된) 비생산 로봇들을 포함하지만, 이것으로 제한되지는 않는다. 유인 로봇들(132)은 사용자 이벤트들에 의해 트리거링되고, 동일한 컴퓨팅 시스템 상에서 인간과 함께 동작한다. 유인 로봇들(132)은 중앙집중화된 프로세스 전개 및 로깅 매체를 위한 지휘자(120)와 함께 이용될 수 있다. 유인 로봇들(132)은 인간 사용자가 다양한 태스크들을 달성하는 것을 도울 수 있고, 사용자 이벤트들에 의해 트리거링될 수 있다. 일부 실시예들에서, 프로세스들은 이 유형의 로봇에 대한 지휘자(120)로부터 시작될 수 없고, 및/또는 프로세스들은 록킹된 스크린 하에서 작동할 수 없다. 어떤 실시예들에서, 유인 로봇들(132)은 로봇 트레이(robot tray)로부터 또는 커맨드 프롬프트(command prompt)로부터 오직 시작될 수 있다. 유인 로봇들(132)은 일부 실시예들에서 인간 감독 하에서 작동해야 한다.
무인 로봇들(134)은 가상적 환경들에서 무인으로 작동하고, 많은 프로세스들을 자동화할 수 있다. 무인 로봇들(134)은 원격 실행, 모니터링, 스케줄링, 및 작업 큐들에 대한 지원을 제공하는 것을 담당할 수 있다. 모든 로봇 유형들에 대한 디버깅(debugging)은 일부 실시예들에서 설계자(110) 내에서 작동될 수 있다. 양자의 유인 및 무인 로봇들은, 메인프레임(mainframe)들, 웹 애플리케이션들, VM들, 기업 애플리케이션들(예컨대, SAP®, SalesForce®, Oracle® 등에 의해 생산된 것들), 및 컴퓨팅 시스템 애플리케이션들(예컨대, 데스크톱 및 랩톱 애플리케이션들, 이동 디바이스 애플리케이션들, 웨어러블 컴퓨터 애플리케이션들 등)을 포함하지만 이것으로 제한되지는 않는 다양한 시스템들 및 애플리케이션들을 자동화할 수 있다.
지휘자(120)는 프로비저닝(provisioning), 전개, 구성, 큐잉(queueing), 모니터링(monitoring), 로깅(logging), 및/또는 상호접속성 제공을 포함하지만 이것으로 제한되지는 않는 다양한 능력들을 가질 수 있다. 프로비저닝은 로봇들(130)과 지휘자(120)(예컨대, 웹 애플리케이션) 사이의 접속들의 생성 및 유지보수를 포함할 수 있다. 전개는 실행을 위한 배정된 로봇들(130)로의 패키지 버전들의 올바른 전달을 보장하는 것을 포함할 수 있다. 구성은 로봇 환경들 및 프로세스 구성들의 유지보수 및 전달을 포함할 수 있다. 큐잉은 큐들 및 큐 항목들의 관리를 제공하는 것을 포함할 수 있다. 모니터링은 로봇 식별 데이터를 추적하는 것 및 사용자 허가들을 유지하는 것을 포함할 수 있다. 로깅은 로그들을 데이터베이스(예컨대, SQL 데이터베이스) 및/또는 또 다른 저장 메커니즘(예컨대, 큰 데이터세트들을 저장하고 신속하게 질의하기 위한 능력을 제공하는 ElasticSearch®)으로 저장하고 인덱싱하는 것을 포함할 수 있다. 지휘자(120)는 제3자 해결책들 및/또는 애플리케이션들을 위한 통신의 중앙집중화된 포인트로서 작용함으로써 상호접속성을 제공할 수 있다.
로봇들(130)은 설계자(110) 내에 구축된 작업흐름들을 작동시키는 실행 에이전트(execution agent)들이다. 로봇(들)(130)의 일부 실시예들의 하나의 상업적인 예는 UiPath Robots™이다. 일부 실시예들에서, 로봇들(130)은 Microsoft Windows® 서비스 제어 관리자(Service Control Manager; SCM)-관리된 서비스를 디폴트(default)로 설치한다. 그 결과, 이러한 로봇들(130)은 로컬 시스템 계정(local system account) 하에서 대화형(interactive) Windows® 세션들을 개방할 수 있고, Windows® 서비스의 권리들을 가질 수 있다.
일부 실시예들에서, 로봇들(130)은 사용자 모드에서 설치될 수 있다. 이러한 로봇들(130)에 대하여, 이것은 로봇들이 주어진 로봇(130)이 설치된 사용자와 동일한 권리들을 가진다는 것을 의미한다. 이 특징은 또한, 그 최대 잠재력에서 각각의 머신의 전체 사용을 보장하는 고밀도(High Density; HD) 로봇들을 위하여 이용가능할 수 있다. 일부 실시예들에서, 임의의 유형의 로봇(130)은 HD 환경에서 구성될 수 있다.
일부 실시예들에서의 로봇들(130)은 몇몇 컴포넌트들로 분할되고, 각각은 특정한 자동화 태스크에 전용된다. 일부 실시예들에서의 로봇 컴포넌트들은 SCM-관리된 로봇 서비스들, 사용자 모드 로봇 서비스들, 실행자(executor)들, 에이전트들, 및 커맨드 라인(command line)을 포함하지만, 이것으로 제한되지는 않는다. SCM-관리된 로봇 서비스들은 Windows® 세션들을 관리 및 모니터링하고, 지휘자(120)와 실행 호스트들(즉, 로봇들(130)이 그 상에서 실행되는 컴퓨팅 시스템들) 사이의 프록시(proxy)로서 작용한다. 이 서비스들은 로봇들(130)을 위한 크리덴셜(credential)들로 신뢰되고, 로봇들(130)을 위한 크리덴셜들을 관리한다. 콘솔 애플리케이션은 로컬 시스템 하에서 SCM에 의해 기동된다.
일부 실시예들에서의 사용자 모드 로봇 서비스들은 Windows® 세션들을 관리 및 모니터링하고, 지휘자(120)와 실행 호스트들 사이의 프록시로서 작용한다. 사용자 모드 로봇 서비스들은 로봇들(130)을 위한 크리덴셜들로 신뢰될 수 있고, 로봇들(130)을 위한 크리덴셜들을 관리할 수 있다. Windows® 애플리케이션은 SCM-관리된 로봇 서비스가 설치되지 않을 경우에 자동적으로 기동될 수 있다.
실행자들은 Windows® 세션 하에서 주어진 잡(job)들을 작동시킬 수 있다(즉, 실행자들은 작업흐름들을 실행할 수 있음). 실행자들은 모니터-당(per-monitor) 인치 당 도트들(dots per inch; DPI) 설정들을 인지할 수 있다. 에이전트들은 시스템 트레이 윈도우(system tray window)에서 이용가능한 잡들을 디스플레이하는 Windows® 프리젠테이션 파운데이션(Windows® Presentation Foundation; WPF) 애플리케이션들일 수 있다. 에이전트들은 서비스의 클라이언트일 수 있다. 에이전트들은 잡들을 시작하거나 정지시키고 설정들을 변경하도록 요청할 수 있다. 커맨드 라인은 서비스의 클라이언트이다. 커맨드 라인은 잡들을 시작하도록 요청할 수 있고 그 출력을 대기하는 콘솔 애플리케이션(console application)이다.
위에서 설명된 바와 같이 분할된 로봇들(130)의 컴포넌트들을 가지는 것은 개발자들, 지원 사용자들, 및 컴퓨팅 시스템들이 각각의 컴포넌트가 실행하고 있는 것을 더 용이하게 작동시키고, 식별하고, 추적하는 것을 돕는다. 특수한 거동들은 실행자 및 서비스를 위한 상이한 방화벽 규칙(firewall rule)들을 셋업하는 것과 같이, 컴포넌트 당 이러한 방식으로 구성될 수 있다. 실행자는 일부 실시예들에서 모니터 당 DPI 설정들을 항상 인지할 수 있다. 그 결과, 작업흐름들은 작업흐름들이 생성된 컴퓨팅 시스템의 구성에 관계 없이, 임의의 DPI에서 실행될 수 있다. 설계자(110)로부터의 프로젝트들은 또한, 일부 실시예들에서 브라우저 줌 레벨(browser zoom level)에 독립적일 수 있다. DPI-비인지(unaware)이거나 의도적으로 비인지인 것으로서 표기되는 애플리케이션들에 대하여, DPI는 일부 실시예들에서 디스에이블될 수 있다.
도 2는 본 발명의 실시예에 따라, 전개된 RPA 시스템(200)을 예시하는 아키텍처 다이어그램이다. 일부 실시예들에서, RPA 시스템(200)은 도 1의 RPA 시스템(100)일 수 있거나 그 일부일 수 있다. 클라이언트 측, 서버 측, 또는 양자 모두는 발명의 범위로부터 이탈하지 않으면서, 임의의 희망된 수의 컴퓨팅 시스템들을 포함할 수 있다는 것이 주목되어야 한다. 클라이언트 측 상에서, 로봇 애플리케이션(210)은 실행자들(212), 에이전트(214), 및 설계자(216)를 포함한다. 그러나, 일부 실시예들에서, 설계자(216)는 컴퓨팅 시스템(210) 상에서 작동하고 있지 않을 수 있다. 실행자들(212)은 프로세스들을 작동시키고 있다. 몇몇 비지니스 프로젝트들은 도 2에서 도시된 바와 같이 동시에 작동할 수 있다. 에이전트(214)(예컨대, Windows® 서비스)는 이 실시예에서 모든 실행자들(212)을 위한 접촉의 단일 포인트이다. 이 실시예에서의 모든 메시지들은 지휘자(230)로 로깅되고, 지휘자(230)는 데이터베이스 서버(240, 인덱서 서버(indexer server)(250), 또는 양자 모두를 통해 메시지들을 추가로 프로세싱한다. 도 1에 대하여 위에서 논의된 바와 같이, 실행자들(212)은 로봇 컴포넌트들일 수 있다.
일부 실시예들에서, 로봇은 머신 명칭과 사용자명(username) 사이의 연관성을 표현한다. 로봇은 다수의 실행자들을 동시에 관리할 수 있다. 동시에 작동하는 다수의 대화형 세션들을 지원하는 컴퓨팅 시스템들(예컨대, Windows® 서버(2012)) 상에서, 다수의 로봇들은 각각 고유한 사용자명을 이용하는 별도의 Windows® 세션에서 동시에 작동하고 있을 수 있다. 이것은 위의 HD 로봇들로서 지칭된다.
에이전트(214)는 또한, 로봇의 스테이터스(status)를 전송하고(예컨대, 로봇이 여전히 기능하고 있다는 것을 표시하는 "하트비트(heartbeat)" 메시지를 주기적으로 전송함) 실행되어야 할 패키지의 요구된 버전을 다운로딩하는 것을 담당한다. 에이전트(214)와 지휘자(230) 사이의 통신은 일부 실시예들에서 에이전트(214)에 의해 항상 개시된다. 통지 시나리오에서, 에이전트(214)는 커맨드들을 로봇으로 전송하기 위하여(예컨대, 시작, 정지 등) 지휘자(230)에 의해 더 이후에 이용되는 웹소켓(WebSocket) 채널을 개방할 수 있다.
서버 측 상에서, 프리젠테이션 계층(웹 애플리케이션(232), 개방 데이터 프로토콜(Open Data Protocol; OData) 대표 상태 전송(Representative State Transfer; REST) 애플리케이션 프로그래밍 인터페이스(Application Programming Interface; API) 엔드포인트(endpoint)들(234), 및 통지 및 모니터링(236)), 서비스 계층(API 구현/비지니스 로직(238)), 및 지속 계층(persistence layer)(데이터베이스 서버(240) 및 인덱서 서버(250))이 포함된다. 지휘자(230)는 웹 애플리케이션(232), ODATA REST API 엔드포인트들(234), 통지 및 모니터링(236), 및 API 구현/비지니스 로직(238)을 포함한다. 일부 실시예들에서, 사용자가 (예컨대, 브라우저(220)를 통해) 지휘자(220)의 인터페이스에서 수행하는 대부분의 액션들은 다양한 API들을 호출함으로써 수행된다. 이러한 액션들은 발명의 범위로부터 이탈하지 않으면서, 로봇들 상에서 잡들을 시작하는 것, 큐들에서 데이터를 추가/제거하는 것, 무인으로 작동시키기 위한 잡들을 스케줄링하는 것 등을 포함할 수 있지만, 이것으로 제한되지는 않는다. 웹 애플리케이션(232)은 서버 플랫폼의 시각적 계층이다. 이 실시예에서, 웹 애플리케이션(232)은 하이퍼텍스트 마크업 언어(Hypertext Markup Language; HTML) 및 자바스크립트(JavaScript; JS)를 이용한다. 그러나, 임의의 희망된 마크업 언어들, 스크립트 언어(script language)들, 또는 임의의 다른 포맷들은 발명의 범위로부터 이탈하지 않으면서 이용될 수 있다. 사용자는 지휘자(230)를 제어하기 위한 다양한 액션들을 수행하기 위하여 이 실시예에서 브라우저(220)를 통해 웹 애플리케이션(232)으로부터의 웹 페이지들과 상호작용한다. 예를 들어, 사용자는 로봇 그룹들을 생성할 수 있고, 패키지들을 로봇들에 배정할 수 있고, 로봇 당 및/또는 프로세스 당 로그들을 분석할 수 있고, 로봇들을 시작 및 정지시킬 수 있는 등과 같다.
웹 애플리케이션(232)에 추가적으로, 지휘자(230)는 또한, OData REST API 엔드포인트들(234)을 노출시키는 서비스 계층을 포함한다. 그러나, 다른 엔드포인트들이 발명의 범위를 이탈하지 않으면서 포함될 수 있다. REST API는 양자의 웹 애플리케이션(232) 및 에이전트(214)에 의해 소비된다. 에이전트(214)는 이 실시예에서 클라이언트 컴퓨터 상의 하나 이상의 로봇들의 감독자이다.
이 실시예에서의 REST API는 구성, 로깅, 모니터링, 및 큐잉 기능성을 커버한다. 구성 엔드포인트들은 일부 실시예들에서 애플리케이션 사용자들, 허가들, 로봇들, 자산(asset)들, 배포(release)들, 및 환경들을 정의하고 구성하기 위하여 이용될 수 있다. 로깅 REST 엔드포인트들은 예를 들어, 에러들, 로봇들에 의해 전송된 명시적 메시지들, 및 다른 환경-특정 정보와 같은 상이한 정보를 로깅하기 위하여 이용될 수 있다. 전개 REST 엔드포인트들은 시작 잡 커맨드가 지휘자(230)에서 이용될 경우에 실행되어야 하는 패키지 버전을 질의하기 위하여 로봇들에 의해 이용될 수 있다. 큐잉 REST 엔드포인트들은 데이터를 큐에 추가하는 것, 큐로부터 트랜잭션(transaction)을 획득하는 것, 트랜잭션의 스테이터스를 설정하는 것 등과 같은, 큐들 및 큐 항목 관리를 담당할 수 있다.
모니터링 REST 엔드포인트들은 웹 애플리케이션(232) 및 에이전트(214)를 모니터링할 수 있다. 통지 및 모니터링 API(236)는, 에이전트(214)를 등록하고, 구성 설정들을 에이전트(214)로 전달하고, 서버 및 에이전트(214)로부터 통지들을 전송/수신하기 위하여 이용되는 REST 엔드포인트들일 수 있다. 통지 및 모니터링 API(236)는 또한, 일부 실시예들에서 웹소켓 통신을 이용할 수 있다.
지속 계층은 이 실시예에서 한 쌍의 서버들 - 데이터베이스 서버(240)(예컨대, SQL 서버) 및 인덱서 서버(250) - 을 포함한다. 이 실시예에서의 데이터베이스 서버(240)는 로봇들의 구성들, 로봇 그룹들, 연관된 프로세스들, 사용자들, 역할들, 스케줄들 등을 저장한다. 이 정보는 일부 실시예들에서 웹 애플리케이션(232)을 통해 관리된다. 데이터베이스 서버(240)는 큐들 및 큐 항목들을 관리할 수 있다. 일부 실시예들에서, 데이터베이스 서버(240)는 (인덱서 서버(250)에 추가적으로 또는 그 대신에) 로봇들에 의해 로깅된 메시지들을 저장할 수 있다.
일부 실시예들에서 임의적인 인덱서 서버(250)는 로봇들에 의해 로깅된 정보를 저장하고 인덱싱한다. 어떤 실시예들에서, 인덱서 서버(250)는 구성 설정들을 통해 디스에이블될 수 있다. 일부 실시예들에서, 인덱서 서버(250)는 개방 소스 프로젝트 전체-텍스트 검색 엔진(open source project full-text search engine)인 ElasticSearch®를 이용한다. (예컨대, 로그 메시지 또는 기록 라인과 같은 활동들을 이용하는) 로봇들에 의해 로깅된 메시지들은 로깅 REST 엔드포인트(들)를 통해 인덱서 서버(250)로 전송될 수 있고, 여기서, 메시지들은 미래의 사용을 위하여 인덱싱된다.
도 3은 본 발명의 실시예에 따라, 설계자(310), 활동들(320, 330), 및 구동기들(340) 사이의 관계(300)를 예시하는 아키텍처 다이어그램이다. 상기에 따라, 개발자는 로봇들에 의해 실행되는 작업흐름들을 개발하기 위하여 설계자(310)를 이용한다. 작업흐름들은 사용자-정의된 활동들(320) 및 UI 자동화 활동들(330)을 포함할 수 있다. 일부 실시예들은 이미지에서의 비-텍스트 시각적 컴포넌트들을 식별할 수 있고, 이것은 본원에서 컴퓨터 비전(CV)으로 칭해진다. 이러한 컴포넌트들에 속하는 일부 CV 활동들은 클릭(click), 타이핑(type), 텍스트 얻기(get text), 호버(hover), 엘리먼트 존재, 범위 리프레시(refresh scope), 강조표시 등을 포함할 수 있지만, 이것으로 제한되지는 않는다. 일부 실시예들에서의 클릭은 예를 들어, CV, 광학적 문자 인식(OCR), 퍼지 텍스트 정합(fuzzy text matching), 및 멀티-앵커(multi-anchor)를 이용하여 엘리먼트를 식별하고, 그것을 클릭한다. 타이핑은 상기한 것을 이용하여 엘리먼트를 식별할 수 있고, 엘리먼트에서 타이핑한다. 텍스트 얻기는 특정 텍스트의 위치를 식별할 수 있고, OCR을 이용하여 그 텍스를 스캔할 수 있다. 호버는 엘리먼트를 식별할 수 있고, 엘리먼트 상에서 호버링할 수 있다. 엘리먼트 존재는 위에서 설명된 기법들을 이용하여 스크린 상에 엘리먼트가 존재하는지 여부를 체크할 수 있다. 일부 실시예들에서는, 설계자(310) 내에 구현될 수 있는 수백 또는 심지어 수천 개의 활동들이 있을 수 있다. 그러나, 임의의 수 및/또는 유형의 활동들은 발명의 범위로부터 이탈하지 않으면서 이용가능할 수 있다.
UI 자동화 활동들(330)은, 더 낮은 레벨의 코드로 기록되는 특수한 더 낮은 레벨의 활동들(예컨대, CV 활동들)의 서브세트(subset)이고, 스크린과의 상호작용들을 용이하게 한다. UI 자동화 활동들(330)은 로봇이 희망된 소프트웨어와 상호작용하는 것을 허용하는 구동기들(340)을 통해 이 상호작용들을 용이하게 한다. 예를 들어, 구동기들(340)은 OS 구동기들(342), 브라우저 구동기들(344), VM 구동기들(346), 기업 애플리케이션 구동기들(348) 등을 포함할 수 있다.
구동기들(340)은 후크들을 검색하고, 키들에 대해 모니터링하는 등의 낮은 레벨에서 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에 대하여, 웹 애플리케이션이 이 실시예들에서 이용되지만, 임의의 적당한 클라이언트/서버 소프트웨어는 발명의 범위로부터 이탈하지 않으면서 이용될 수 있다는 것이 주목되어야 한다. 예를 들어, 지휘자는 클라이언트 컴퓨팅 시스템들 상에서 비-웹-기반(non-web-based) 클라이언트 소프트웨어 애플리케이션들과 통신하는 서버-측 애플리케이션을 작동시킬 수 있다.
도 5는 본 발명의 실시예에 따라, RPA를 위한 ML 모델 재훈련 파이프라인의 일부를 구현하도록 구성된 컴퓨팅 시스템(500)을 예시하는 아키텍처 다이어그램이다. 일부 실시예들에서, 컴퓨팅 시스템(500)은 본원에서 도시되고 및/또는 설명된 컴퓨팅 시스템들 중의 하나 이상일 수 있다. 컴퓨팅 시스템(500)은 정보를 통신하기 위한 버스(505) 또는 다른 통신 메커니즘, 및 정보를 프로세싱하기 위하여 버스(505)에 결합된 프로세서(들)(510)를 포함한다. 프로세서(들)(510)는 중앙 프로세싱 유닛(Central Processing Unit; CPU), 애플리케이션 특정 집적 회로(Application Specific Integrated Circuit; ASIC), 필드 프로그래밍가능 게이트 어레이(Field Programmable Gate Array; FPGA), 그래픽 프로세싱 유닛(Graphics Processing Unit; GPU), 그 다수의 사례들, 및/또는 그 임의의 조합을 포함하는 임의의 유형의 일반 또는 특정 목적 프로세서일 수 있다. 프로세서(들)(510)는 또한, 다수의 프로세싱 코어들을 가질 수 있고, 코어들의 적어도 일부는 특정 기능들을 수행하도록 구성될 수 있다. 멀티-병렬(multi-parallel) 프로세싱은 일부 실시예들에서 이용될 수 있다. 어떤 실시예들에서, 프로세서(들)(510) 중의 적어도 하나는 생물학적 뉴런(neuron)들을 모방하는 프로세싱 엘리먼트들을 포함하는 뉴로모픽 회로(neuromorphic circuit)일 수 있다. 일부 실시예들에서, 뉴로모픽 회로들은 폰 노이만(Von Neumann) 컴퓨팅 아키텍처의 전형적인 컴포넌트들을 요구하지 않을 수 있다.
컴퓨팅 시스템(500)은 프로세서(들)(510)에 의해 실행되어야 명령들 및 정보를 저장하기 위한 메모리(515)를 더 포함한다. 메모리(515)는 랜덤 액세스 메모리(Random Access Memory; RAM), 판독 전용 메모리(Read Only Memory; ROM), 플래시 메모리, 캐시, 자기적 또는 광학 디스크와 같은 정적 스토리지, 또는 임의의 다른 유형들의 비-일시적 컴퓨터-판독가능 매체들의 임의의 조합 또는 그 조합들로 이루어질 수 있다. 비-일시적 컴퓨터-판독가능 매체들은 프로세서(들)(510)에 의해 액세스될 수 있고 휘발성 매체들, 비-휘발성 매체들, 또는 양자 모두를 포함할 수 있는 임의의 이용가능한 매체들일 수 있다. 매체들은 또한, 분리가능, 비-분리가능, 또는 양자 모두일 수 있다.
추가적으로, 컴퓨팅 시스템(500)은 무선 및/또는 유선 접속을 통해 통신 네트워크에 대한 액세스를 제공하기 위한, 트랜시버(transceiver)와 같은 통신 디바이스(520)를 포함한다. 일부 실시예들에서, 통신 디바이스(520)는 발명의 범위로부터 이탈하지 않으면서, 주파수 분할 다중 액세스(Frequency Division Multiple Access; FDMA), 단일 캐리어 FDMA(Single Carrier FDMA; SC-FDMA), 시간 분할 다중 액세스(Time Division Multiple Access; TDMA), 코드 분할 다중 액세스(Code Division Multiple Access; CDMA), 직교 주파수 분할 멀티플렉싱(Orthogonal Frequency Division Multiplexing; OFDM), 직교 주파수 분할 다중 액세스(Orthogonal Frequency Division Multiple Access; OFDMA), 이동 통신들을 위한 글로벌 시스템(Global System for Mobile communications; GSM), 범용 패킷 라디오 서비스(General Packet Radio Service; GPRS), 유니버셜 이동 전기통신 시스템(Universal Mobile Telecommunications System; UMTS), cdma2000, 광대역 CDMA(Wideband CDMA; W-CDMA), 고속 다운링크 패킷 액세스(High-Speed Downlink Packet Access; HSDPA), 고속 업링크 패킷 액세스(High-Speed Uplink Packet Access; HSUPA), 고속 패킷 액세스(High-Speed Packet Access; HSPA), 롱텀 에볼루션(Long Term Evolution; LTE), LTE 어드밴스드(LTE Advanced; LTE-A), 802.11x, Wi-Fi, 지그비(Zigbee), 초광대역(Ultra-WideBand; UWB), 802.16x, 802.15, 홈 노드-B(Home Node-B; HnB), 블루투스(Bluetooth), 라디오 주파수 식별(Radio Frequency Identification; RFID), 적외선 데이터 연계(Infrared Data Association; IrDA), 근접장 통신(Near-Field Communications; NFC), 제5 세대(fifth generation; 5G), 뉴 라디오(New Radio; NR), 그 임의의 조합, 및/또는 임의의 다른 현재 현존하거나 미래-구현된 통신 표준 및/또는 프로토콜을 이용하도록 구성될 수 있다. 일부 실시예들에서, 통신 디바이스(520)는 발명의 범위로부터 이탈하지 않으면서, 단일체, 어레이(array)되고, 페이징(phase)되고, 스위칭되고, 빔포밍(beamforming), 빔조향(beamsteering), 그 조합, 및/또는 임의의 다른 안테나 구성인 하나 이상의 안테나들을 포함할 수 있다.
프로세서(들)(510)는 플라즈마 디스플레이, 액정 디스플레이(Liquid Crystal Display; LCD), 발광 다이오드(Light Emitting Diode; LED) 디스플레이, 필드 방출 디스플레이(Field Emission Display; FED), 유기 발광 다이오드(Organic Light Emitting Diode; OLED) 디스플레이, 플렉시블 OLED 디스플레이, 플렉시블 기판 디스플레이, 투사 디스플레이(projection display), 4K 디스플레이, 고해상도 디스플레이(high definition display), Retina® 디스플레이, 평면내 스위칭(In-Plane Switching; IPS) 디스플레이, 또는 정보를 사용자에게 디스플레이하기 위한 임의의 다른 적당한 디스플레이와 같은 디스플레이(525)에 버스(505)를 통해 추가로 결합된다. 디스플레이(525)는 저항성, 용량성, 표면-음향파(surface-acoustic wave; SAW) 용량성, 적외선, 광학적 이미징, 분산 신호 기술, 음향 펄스 인식, 전반사 장애(frustrated total internal reflection) 등을 이용하여 터치(햅틱(haptic)) 디스플레이, 3 차원(3D) 터치 디스플레이, 멀티-입력 터치 디스플레이, 멀티-터치 디스플레이 등으로서 구성될 수 있다. 임의의 적당한 디스플레이 디바이스 및 햅틱 I/O는 발명의 범위로부터 이탈하지 않으면서 이용될 수 있다.
키보드(530) 및, 컴퓨터 마우스, 터치패드 등과 같은 커서 제어 디바이스(535)는 사용자가 컴퓨팅 시스템과 인터페이싱하는 것을 가능하게 하기 위하여 버스(505)에 추가로 결합된다. 그러나, 어떤 실시예들에서, 물리적 키보드 및 마우스는 존재하지 않을 수 있고, 사용자는 전적으로 디스플레이(525) 및/또는 터치패드(도시되지 않음)를 통해 디바이스와 상호작용할 수 있다. 입력 디바이스들의 임의의 유형 및 조합은 설계 선택의 문제로서 이용될 수 있다. 어떤 실시예들에서, 물리적 입력 디바이스 및/또는 디스플레이는 존재하지 않는다. 예를 들어, 사용자는 그 통신하는 또 다른 컴퓨팅 시스템을 통해 원격으로 컴퓨팅 시스템(500)과 상호작용할 수 있거나, 컴퓨팅 시스템(500)은 자율적으로 동작할 수 있다.
메모리(515)는 프로세서(들)(510)에 의해 실행될 때에 기능성을 제공하는 소프트웨어 모듈들을 저장한다. 모듈들은 컴퓨팅 시스템(500)을 위한 오퍼레이팅 시스템(540)을 포함한다. 모듈들은 본원에서 설명된 프로세스들의 전부 또는 일부 또는 그 파생부들을 수행하도록 구성되는 ML 모델 재훈련 파이프라인 모듈(545)을 더 포함한다. 컴퓨팅 시스템(500)은 추가적인 기능성을 포함하는 하나 이상의 추가적인 기능적 모듈들(550)을 포함할 수 있다.
당해 분야의 당업자는 발명의 범위로부터 이탈하지 않으면서, "시스템"이 서버, 내장된 컴퓨팅 시스템, 개인용 컴퓨터, 콘솔, 개인 정보 단말(personal digital assistant; PDA), 셀 전화, 태블릿 컴퓨팅 디바이스, 퀀텀(quantum) 컴퓨팅 시스템, 또는 임의의 다른 적당한 컴퓨팅 디바이스, 또는 디바이스들의 조합으로서 구체화될 수 있다는 것을 인식할 것이다. 위에서 설명된 기능들을 "시스템"에 의해 수행되는 것으로서 제시하는 것은 본 발명의 범위를 임의의 방식으로 제한하도록 의도된 것이 아니라, 본 발명의 많은 실시예들 중의 하나의 예를 제공하도록 의도된다. 실제로, 본원에서 개시된 방법들, 시스템들, 및 장치들은 클라우드 컴퓨팅 시스템들을 포함하는 컴퓨팅 기술과 부합하는 국소화된 및 분산된 형태들로 구현될 수 있다.
이 명세서에서 설명된 시스템 특징들의 일부는 그 구현 독립성을 더 상세하게 강조하기 위하여 모듈들로서 제시되었다는 것이 주목되어야 한다. 예를 들어, 모듈은 맞춤형 초고밀도 집적(very large scale integration; VLSI) 회로들 또는 게이트 어레이들, 로직 칩들과 같은 기성품(off-the-shelf) 반도체들, 트랜지스터들, 또는 다른 개별 컴포넌트들을 포함하는 하드웨어 회로로서 구현될 수 있다. 모듈은 또한, 필드 프로그래밍가능 게이트 어레이들, 프로그래밍가능 어레이 로직, 프로그래밍가능 로직 디바이스들, 그래픽 프로세싱 유닛들 등과 같은 프로그래밍가능 하드웨어 디바이스들로 구현될 수 있다.
모듈은 또한, 다양한 유형들의 프로세서들에 의한 실행을 위하여 소프트웨어로 적어도 부분적으로 구현될 수 있다. 예를 들어, 실행가능 코드의 식별된 유닛은, 예를 들어, 오브젝트(object), 프로시저(procedure), 또는 함수(function)로서 조직화(organize)될 수 있는 컴퓨터 명령들의 하나 이상의 물리적 또는 논리적 블록들을 포함할 수 있다. 그럼에도 불구하고, 식별된 모듈의 익스큐터블(executable)들은 함께 물리적으로 위치될 필요가 없지만, 함께 논리적으로 병합될 때, 모듈을 포함하고 모듈을 위한 기재된 목적을 달성하는 상이한 위치들에서 저장된 이질적인 명령들을 포함할 수 있다. 또한, 모듈들은 예를 들어, 발명의 범위로부터 이탈하지 않으면서, 하드 디스크 드라이브, 플래시 디바이스, RAM, 테이프, 및/또는 데이터를 저장하기 위하여 이용된 임의의 다른 이러한 비-일시적 컴퓨터-판독가능 매체일 수 있는 컴퓨터-판독가능 매체 상에서 저장될 수 있다.
실제로, 실행가능 코드의 모듈은 단일 명령 또는 다수의 명령들일 수 있고, 몇몇 상이한 코드 세그먼트들 상에서, 상이한 프로그램 사이에서, 그리고 몇몇 메모리 디바이스들에 걸쳐 심지어 분산될 수 있다. 유사하게, 동작 데이터는 모듈들 내에서 본원에서 식별 및 예시될 수 있고, 임의의 적당한 형태로 구체화될 수 있고, 임의의 적당한 유형의 데이터 구조 내에서 조직화될 수 있다. 동작 데이터는 단일 데이터 세트로서 수집될 수 있거나, 상이한 저장 디바이스들 상부를 포함하는 상이한 위치들 상에서 분산될 수 있고, 적어도 부분적으로, 시스템 또는 네트워크 상의 단지 전자 신호들로서 존재할 수 있다.
도 6은 본 발명의 실시예에 따라, RPA를 위한 ML 모델 재훈련 파이프라인을 구현하도록 구성된 시스템(600)을 예시하는 아키텍처 다이어그램이다. 시스템(600)은 데스크톱 컴퓨터들(602, 603), 태블릿(604), 및 스마트폰(606)과 같은 사용자 컴퓨팅 시스템들을 포함한다. 그러나, 스마트 시계들, 랩톱 컴퓨터들, 사물 인터넷(Internet-of-Things; IoT) 디바이스들, 차량 컴퓨팅 시스템들 등을 포함하지만 이것으로 제한되지는 않는 임의의 희망된 컴퓨팅 시스템이 발명의 범위로부터 이탈하지 않으면서 이용될 수 있다. 또한, 4 개의 사용자 컴퓨팅 시스템들이 도 6에서 도시되지만, 임의의 적당한 수의 컴퓨팅 시스템들이 발명의 범위로부터 이탈하지 않으면서 이용될 수 있다. 예를 들어, 일부 실시예들에서는, 수십 개, 수백 개, 수천 개, 또는 수백만 개의 컴퓨팅 시스템들이 이용될 수 있다.
각각의 컴퓨팅 시스템(602, 603, 604, 606)은 ML 모델을 호출 및/또는 실행하는, 그 상에서 작동되는 디지털 프로세스(610)를 가진다. 디지털 프로세스들(610)은 발명의 범위로부터 이탈하지 않으면서, RPA 설계자 애플리케이션, 오퍼레이팅 시스템의 일부, 개인용 컴퓨터(PC) 또는 스마트폰을 위한 다운로딩가능한 애플리케이션을 통해 생성된 로봇들일 수 있거나, 임의의 다른 소프트웨어 및/또는 하드웨어일 수 있다. 실제로, 일부 실시예들에서, 디지털 프로세스들(610) 중의 하나 이상의 로직은 물리적 하드웨어를 통해 부분적으로 또는 완전히 구현된다. 디지털 프로세스들(610)은 트리거에 응답하여 ML 모델을 훈련/재훈련시키기 위한 훈련 데이터를 수집할 수 있고 전송할 수 있다. 트리거들은 발명의 범위로부터 이탈하지 않으면서, 신뢰도 임계치 미만으로 하락하는 ML 모델 성능, 통계적 분포로부터 이탈하는 ML 모델 결과들(예컨대, 사용자들의 풀에 대하여 정규 분포 내에 더 이상 속하지 않는 ML 모델 예측들), 이전에 관찰된 범위 외부에 속하는 ML 모델 결과들, 인간 사용자(예컨대, RPA 개발자)가 바람직하지 않은 성능 특성들을 통지하고 재훈련을 위한 라벨링된 데이터의 수집을 개시하는 것, 및/또는 임의의 다른 적당한 트리거를 포함할 수 있지만, 이것으로 제한되지는 않는다.
디지털 프로세스들(610)은 네트워크(620)(예컨대, 로컬 영역 네트워크(local area network; LAN), 이동 통신 네트워크, 위성 통신 네트워크, 인터넷, 그 임의의 조합 등)를 통해 그 개개의 컴퓨팅 시스템들의 사용자들로부터 수집된 훈련 데이터를 서버(630)로 전송한다. 서버(630)는 훈련 데이터를 데이터베이스(640) 내에 저장한다. 훈련 데이터는 이미지들 및 사용자 정정들(예컨대, 컴포넌트가 스크린 상에서 위치되는 영역, 에러에 관한 사용자로부터의 텍스트 설명, 영역에 대한 라벨 등)을 포함할 수 있지만, 이것으로 제한되지는 않는다.
인간 사용자(예컨대, RPA 공학자 또는 데이터 과학자)에 의해 명령될 때, 훈련 데이터의 미리 결정된 양이 수집되었을 때, 미리 결정된 시간량이 최후의 훈련 이후로 통과하였을 때, 훈련 요청이 수신될 때 등에는, 서버(630)가 다수의 AI 계층들(632)을 통해 훈련 데이터를 작동시킨다. AI 계층들(632)은 데이터를 프로세싱하고, ML 모델의 새로운 버전을 생성한다. AI 계층들(632)은 통계적 모델링(예컨대, 은닉 마코프 모델(hidden Markov model; HMM)들)을 수행할 수 있고, 심층 학습 기법들(예컨대, 장단기 기억(long short term memory; LSTM) 심층 학습, 이전의 은닉된 상태들의 인코딩 등)을 사용할 수 있다.
일부 실시예들에서, 각각의 AI 계층(632)은 훈련 데이터에 대해 작동하는 알고리즘(또는 모델)이고, ML 모델들 자체는 훈련 데이터로 훈련되는 훈련된 인공적 "뉴런(neuron)들"의 심층 학습 신경망(deep learning neural network; DLNN)들일 수 있다. 계층들은 직렬로, 병렬로, 또는 그 조합으로 작동될 수 있다. AI 계층들(632)은 시퀀스 추출 계층, 클러스터링 검출 계층, 시각적 컴포넌트 검출 계층, 텍스트 인식 계층(예컨대, OCR), 오디오-대-비디오 변환 계층, 하나 이상의 유형들의 계층들의 다수의 사례들, 또는 그 임의의 조합을 포함할 수 있지만, 이것으로 제한되지는 않는다. 임의의 희망된 수 및 유형(들)의 계층들이 발명의 범위로부터 이탈하지 않으면서 이용될 수 있다. 다수의 계층들을 이용하는 것은 시스템이 스크린 또는 프로세스에서 발생하고 있는 것의 전역적 픽처(global picture)를 개발하는 것을 허용할 수 있다. 예를 들어, 하나의 AI 계층은 OCR을 수행할 수 있고, 또 다른 것은 버튼들을 검출할 수 있는 등과 같다. 패턴들은 AI 계층에 의해 개별적으로, 또는 다수의 AI 계층들에 의해 집합적으로 결정될 수 있다.
어떤 실시예들에서, 데이터 과학자는 ML 모델의 훈련을 개시 및/또는 모니터링할 수 있다. 예를 들어, 데이터 과학자는 추가적인 데이터를 갖는 훈련 데이터세트(dataset)를 보충할 수 있고, 새롭게 훈련된 ML 모델이 희망된 신뢰도를 달성하는 것을 실패할 경우에 상이한 또는 보충된 훈련 데이터를 이용하여 ML 모델을 다시 훈련시킬 수 있는 등과 같다. 데이터 과학자는 일부 실시예들에서, ML 모델이 준비되고 승인될 때, 업데이트 통지를 생성할 수 있다. 어떤 실시예들에서, 서버(630)는 통지를 생성할 수 있다.
ML 모델의 새로운 버전이 적절하게 훈련된 후에, 서버(630)는 ML 모델의 새로운 버전을 데이터베이스(640) 내에 저장할 수 있어서, ML 모델의 이전의 버전을 잠재적으로 대체할 수 있다. ML 모델이 사용자 컴퓨팅 시스템들(602, 603, 604, 606)로부터 호출될 때, ML 모델의 새로운 버전이 실행된다. 어떤 실시예들에서, ML 모델의 새로운 버전은 컴퓨팅 시스템들(602, 603, 604, 606)로 푸시아웃될 수 있다. 일부 실시예들에서, ML 모델을 호출하는 RPA 로봇들의 작업흐름들은 ML 모델의 새로운 버전을 호출하도록 수정될 수 있다. 어떤 실시예들에서, RPA 로봇들은 먼저, ML 모델의 새로운 버전을 시험할 수 있고, 어떤 신뢰도 임계치가 충족되지 않을 경우에, 이전의 버전이 주어진 시나리오에 대한 더 높은 신뢰도를 달성하는지 여부를 알아보기 위하여 ML 모델의 이전의 버전을 시험할 수 있다. 일부 실시예들에서, RPA 로봇들은 ML 모델의 양자의 버전들을 호출할 수 있고, 가장 높은 신뢰도를 갖는 모델로부터 출력을 선택할 수 있다.
도 7은 본 발명의 실시예에 따라, RPA를 위한 ML 모델 재훈련 파이프라인을 위한 프로세스(700)를 예시하는 플로우차트이다. 프로세스는 710에서 사용자 컴퓨팅 시스템들 상에서 실행되는 RPA 로봇 작업흐름들로부터 ML 모델을 호출함으로써 시작된다. RPA 로봇은 720에서 ML 모델로부터 출력을 수신하고(예컨대, 예측 및 신뢰도 임계치, 변수, 및 통계적 분포 등), 730에서, 하나 이상의 트리거 조건들이 충족되는지 여부를 결정한다. 트리거 조건들은 발명의 범위로부터 이탈하지 않으면서, 신뢰도 임계치 미만으로 하락하는 ML 모델 성능, 통계적 분포로부터 이탈하는 ML 모델 결과들(예컨대, 사용자들의 풀에 대하여 정규 분포 내에 더 이상 속하지 않는 ML 모델 예측들), 이전에 관찰된 범위 외부에 속하는 ML 모델 결과들, 인간 사용자(예컨대, RPA 개발자)가 바람직하지 않은 성능 특성들을 통지하고 재훈련을 위한 라벨링된 데이터의 수집을 개시하는 것, 및/또는 임의의 다른 적당한 트리거를 포함할 수 있지만, 이것으로 제한되지는 않는다.
730에서, 트리거 조건(들)이 충족될 경우에, 740에서, 라벨링된 훈련 데이터가 획득된 서버로 제출된다. 예를 들어, 유인 RPA 로봇들에 대하여, RPA 로봇이 그 상에서 실행되고 있는 컴퓨팅 시스템의 인간 사용자는 정정을 행하기 위한 인터페이스 또는 옵션을 제시받을 수 있거나, 또 다른 컴퓨팅 시스템의 인간 사용자는 신뢰도 임계치 미만인 식별이 발생한 경우에 대한 정보를 제공받을 수 있고, 정정을 행하기 위한 인터페이스 또는 옵션을 제시받을 수 있다. 무인 RPA 로봇들에 대하여, 스크린샷은 자동적으로 촬영될 수 있고, 좌표들은 ML 모델이 적용되었던 스크린 상에서 주어진 컴포넌트에 대해 제공될 수 있다. 이 정보는 그 다음으로, 추후의 검토 및 라벨링을 위한 큐에 추가될 수 있다.
750에서, 하나 이상의 훈련 기준들이 충족될 때, ML 모델은 수집된 훈련 데이터를 이용하여, 또는 ML 모델의 현재의 버전을 훈련시키기 위하여 이용된 이전의 훈련 데이터를 갖는 수집된 훈련 데이터를 이용하여, 760에서 훈련된다. 하나 이상의 훈련 기준들은, 미리 결정된 시간 주기가 경과하고, 훈련 데이터의 미리 결정된 양이 수신되고, 훈련 데이터 샘플들의 미리 결정된 수가 수신되고, 데이터가 데이터의 일부 분포(예컨대, 정규 분포, 이항 분포, 또는 임의의 다른 통계적 분포) 외부에 속하고, 맞춤형 기준 또는 기준들, 그 임의의 조합 등일 때를 포함할 수 있지만, 이것으로 제한되지는 않는다. 일부 실시예들에서, 훈련 기준들은 도 7에서 도시된 다른 단계들에 링크되지 않는 별도의 프로세스에서 체크된다.
훈련한 후에, ML 모델의 새로운 버전은 770에서 전개된다. 일부 실시예들에서, ML 모델의 새로운 버전은 이전의 버전을 간단하게 대체할 수 있고, RPA 로봇 작업흐름들로부터 ML 모델로의 호출들은 추가의 수정 없이, 그 대신에, ML 모델의 새로운 버전을 호출할 수 있다. 그러나, 일부 실시예들에서는, 추가의 수정들이 행해지므로, RPA 로봇은 780에서, ML 모델의 새로운 버전과 상호작용할 수 있다. 예를 들어, 어떤 실시예들에서, ML 모델의 새로운 버전은 RPA 로봇들의 사용자들의 컴퓨팅 시스템들로 푸시아웃될 수 있다. 일부 실시예들에서, RPA 로봇들의 작업흐름들은 ML 모델의 새로운 버전을 호출하도록 수정될 수 있다.
일부 실시예들에서, ML 모델의 다수의 버전들은 790에서, RPA 로봇들에 의해 호출될 수 있다. 예를 들어, 어떤 실시예들에서, RPA 로봇들은 먼저 ML 모델의 새로운 버전을 시험할 수 있고, 어떤 신뢰도가 실현되지 않을 경우에, 이전의 버전(들)이 더 높은 신뢰도를 달성하거나 그렇지 않을 경우에 더 양호한 결과들(예컨대, 통계적 분포에 대한 더 양호한 준수성, 범위 내에 속하는 값들, 더 신속한 실행 등)을 달성하는지 여부를 알아보기 위하여, ML 모델의 하나 이상의 이전의 버전들을 시험할 수 있다. 일부 실시예들에서, RPA 로봇들은 ML 모델의 다수의 버전들(예컨대, ML 모델의 새로운 버전, 및 ML 모델의 하나 이상의 이전의 버전들)을 호출할 수 있고, 가장 높은 신뢰도 또는 그렇지 않을 경우에 더 양호한 결과들을 갖는 모델로부터의 출력을 선택할 수 있다.
도 7에서 수행된 프로세스 단계들은 프로세서(들)가 본 발명의 실시예들에 따라 도 7에서 설명된 프로세스(들)의 적어도 일부를 수행하기 위한 명령들을 인코딩하는 컴퓨터 프로그램에 의해 수행될 수 있다. 컴퓨터 프로그램은 비-일시적 컴퓨터-판독가능 매체 상에서 구체화될 수 있다. 컴퓨터-판독가능 매체는 하드 디스크 드라이브, 플래시 디바이스, RAM, 테이프, 및/또는 데이터를 저장하기 위하여 이용된 임의의 다른 이러한 매체 또는 매체들의 조합일 수 있지만, 이것으로 제한되지는 않는다. 컴퓨터 프로그램은 컴퓨터-판독가능 매체 상에서 또한 저장될 수 있는, 도 7에서 설명된 프로세스 단계들의 전부 또는 일부를 구현하기 위하여 컴퓨팅 시스템의 프로세서(들)(예컨대, 도 5의 컴퓨팅 시스템(500)의 프로세서(들)(510))를 제어하기 위한 인코딩된 명령들을 포함할 수 있다.
컴퓨터 프로그램은 하드웨어, 소프트웨어, 또는 하이브리드 구현예로 구현될 수 있다. 컴퓨터 프로그램은, 서로 통신 동작하고 있고, 정보 또는 명령들을 디스플레이로 전달하도록 설계되는 모듈들로 구성될 수 있다. 컴퓨터 프로그램은 범용 컴퓨터, ASIC, 또는 임의의 다른 적당한 디바이스 상에서 동작하도록 구성될 수 있다.
본 발명의 다양한 실시예들의 컴포넌트들은 본원에서의 도면들에서 일반적으로 설명되고 예시된 바와 같이, 폭넓게 다양한 상이한 구성들로 배열 및 설계될 수 있다는 것이 용이하게 이해될 것이다. 이에 따라, 본 발명의 실시예들의 상세한 설명은 첨부된 도면들에서 표현된 바와 같이, 청구된 바와 같은 발명의 범위를 제한하도록 의도된 것이 아니라, 발명의 선택된 실시예들을 단지 대표한다.
이 명세서의 전반에 걸쳐 설명된 발명의 특징들, 구조들, 또는 특성들은 하나 이상의 실시예들에서 임의의 적당한 방식으로 조합될 수 있다. 예를 들어, "어떤 실시예들", "일부 실시예들", 또는 유사한 언어에 대한 이 명세서의 전반에 걸친 참조는 실시예와 관련하여 설명된 특정한 특징, 구조, 또는 특성이 본 발명의 적어도 하나의 실시예 내에 포함된다는 것을 의미한다. 이에 따라, 이 명세서의 전반에 걸친 어구들 "어떤 실시예들에서", "일부 실시예에서", "다른 실시예들에서", 또는 유사한 언어의 출현들은 실시예들의 동일한 그룹을 반드시 모두 지칭하는 것은 아니고, 설명된 특징들, 구조들, 또는 특성들은 하나 이상의 실시예들에서 임의의 적당한 방식으로 조합될 수 있다.
특징들, 장점들, 또는 유사한 언어에 대한 이 명세서의 전반에 걸친 참조는 본 발명으로 실현될 수 있는 특징들 및 장점들의 전부가 발명의 임의의 단일 실시예 내에 있어야 하거나 있다는 것을 암시하지는 않는다는 것이 주목되어야 한다. 오히려, 특징들 및 장점들을 지칭하는 언어는 실시예와 관련하여 설명된 특정 특징, 장점, 또는 특성이 본 발명의 적어도 하나의 실시예 내에 포함된다는 것을 의미하도록 이해된다. 이에 따라, 이 명세서의 전반에 걸친 특징들 및 장점들, 및 유사한 언어의 논의는 동일한 실시예를 지칭할 수 있지만, 반드시 그러한 것은 아니다.
또한, 발명의 설명된 특징들, 장점들, 및 특성들은 하나 이상의 실시예들에서 임의의 적당한 방식으로 조합될 수 있다. 관련 기술분야의 당업자는 발명이 특정한 실시예의 특정 특징들 또는 장점들 중의 하나 이상 없이 실시될 수 있다는 것을 인식할 것이다. 다른 사례들에서, 추가적인 특징들 및 장점들은 발명의 모든 실시예들에서 존재하지 않을 수 있는 어떤 실시예들에서 인식될 수 있다.
당해 분야의 당업자는 위에서 논의된 바와 같은 발명이 상이한 순서인 단계들로, 및/또는 개시되는 것들과 상이한 구성들인 하드웨어 엘리먼트들로 실시될 수 있다는 것을 용이하게 이해할 것이다. 그러므로, 발명은 이 바람직한 실시예들에 기초하여 설명되었지만, 발명의 사상 및 범위 내에서 유지되면서, 어떤 수정들, 변동들, 및 대안적인 구성들이 분명할 것이라는 것이 당해 분야의 당업자들에게 분명할 것이다. 그러므로, 발명의 한계들 및 경계들을 결정하기 위하여, 첨부된 청구항들에 대해 참조가 행해져야 한다.

Claims (20)

  1. 로봇 프로세스 자동화(robotic process automation; RPA)를 위한 머신 학습(machine learning; ML) 모델 재훈련 파이프라인을 구현하기 위한 컴퓨터-구현 방법으로서,
    RPA 로봇에 의해, 머신 학습(ML) 모델을 호출하는 단계;
    상기 RPA 로봇에 의해, 상기 ML 모델의 실행으로부터의 결과를 수신하는 단계;
    상기 RPA 로봇에 의해, 하나 이상의 트리거 조건이 상기 ML 모델을 위한 데이터의 라벨링을 위하여 충족되는지 여부를 결정하는 단계; 및
    상기 하나 이상의 트리거 조건이 충족될 때:
    상기 RPA 로봇에 의해, 상기 ML 모델을 훈련시키거나 재훈련시키기 위한 라벨링된 데이터를 제공할 것을 사용자에게 촉구하고, 상기 라벨링된 데이터를 상기 ML 모델의 훈련 또는 재훈련을 위한 서버로 전송하거나, 또는
    상기 RPA 로봇에 의해, 상기 ML 모델로부터의 결과에 속하는 정보를 추후의 라벨링을 위한 큐에 추가하는 단계
    를 포함하는, 컴퓨터-구현 방법.
  2. 제 1 항에 있어서,
    상기 하나 이상의 트리거 조건은 ML 모델 성능이 신뢰도 임계치 미만으로 하락하는 것, ML 모델 결과들이 통계적 분포로부터 이탈하는 것, 이전에 관찰된 범위의 외부에 속하는 ML 모델 결과들, 또는 그 임의의 조합을 포함하는 것인, 컴퓨터-구현 방법.
  3. 제 1 항에 있어서,
    상기 하나 이상의 트리거 조건은 상기 라벨링된 데이터의 수집을 위한 개시 커맨드의 수신을 포함하는 것인, 컴퓨터-구현 방법.
  4. 제 1 항에 있어서,
    상기 서버에 의해, 상기 라벨링된 데이터를 수신하는 단계; 및
    상기 서버에 의해, 상기 라벨링된 데이터를 데이터베이스 내에 저장하는 단계
    를 더 포함하는, 컴퓨터-구현 방법.
  5. 제 1 항에 있어서,
    하나 이상의 훈련 기준이 충족될 때, 상기 ML 모델의 새로운 버전을 생성하기 위한 상기 라벨링된 데이터를 사용하여, 상기 서버에 의해, 상기 ML 모델을 훈련시키는 단계; 및
    상기 서버에 의해, 상기 ML 모델의 새로운 버전을 전개하는(deploying) 단계
    를 더 포함하는, 컴퓨터-구현 방법.
  6. 제 5 항에 있어서,
    상기 ML 모델의 훈련은 상기 ML 모델의 새로운 버전 이전에 훈련된 상기 ML 모델의 버전을 훈련시키기 위하여 사용된 이전의 훈련 데이터를 사용하는 것을 추가적으로 포함하는 것인, 컴퓨터-구현 방법.
  7. 제 5 항에 있어서,
    상기 하나 이상의 훈련 기준은 미리 결정된 시간 주기가 경과하는 것, 훈련 데이터의 미리 결정된 양이 수신되는 것, 미리 결정된 수의 훈련 데이터 샘플들이 수신되는 것, 상기 데이터가 데이터의 분포의 외부에 속하는 것, 또는 그 임의의 조합을 포함하는 것인, 컴퓨터-구현 방법.
  8. 제 5 항에 있어서,
    상기 ML 모델의 새로운 버전은 상기 ML 모델의 이전의 버전을 대체하는 것인, 컴퓨터-구현 방법.
  9. 제 5 항에 있어서,
    상기 ML 모델의 새로운 버전을 호출하기 위하여 상기 RPA 로봇의 작업흐름을 수정하는 단계를 더 포함하는, 컴퓨터-구현 방법.
  10. 제 5 항에 있어서,
    상기 ML 모델의 다수의 버전들을 호출하기 위하여 상기 RPA 로봇의 작업흐름을 수정하는 단계 - 상기 다수의 버전들은 상기 ML 모델의 새로운 버전을 포함함 - 를 더 포함하는, 컴퓨터-구현 방법.
  11. 제 10 항에 있어서,
    상기 RPA 로봇에 의해, 상기 ML 모델의 새로운 버전을 호출하는 단계; 및
    상기 하나 이상의 트리거 조건이 충족되지 않을 때, 상기 RPA 로봇에 의해, 상기 ML 모델의 이전의 버전을 호출하고, 상기 ML 모델의 현재의 버전 및 상기 ML 모델의 이전의 버전으로부터 최상의 결과를 선택하는 단계
    를 더 포함하는, 컴퓨터-구현 방법.
  12. 제 10 항에 있어서,
    상기 RPA 로봇에 의해, 상기 ML 모델의 새로운 버전 및 상기 ML 모델의 적어도 하나의 이전의 버전을 호출하는 단계; 및
    상기 RPA 로봇에 의해, 상기 ML 모델의 현재의 버전 및 상기 ML 모델의 적어도 하나의 이전의 버전으로부터 최상의 결과를 선택하는 단계
    를 더 포함하는, 컴퓨터-구현 방법.
  13. 제 1 항에 있어서,
    상기 라벨링된 데이터의 수집 및 상기 ML 모델의 새로운 버전의 훈련은 복수의 RPA 로봇들에 의해 호출된 복수의 ML 모델들에 대하여 균일한 것인, 컴퓨터-구현 방법.
  14. 로봇 프로세스 자동화(RPA)를 위한 머신 학습(ML) 모델 재훈련 파이프라인을 구현하기 위한 컴퓨터-구현 방법으로서,
    상기 RPA 로봇에 의해, 하나 이상의 트리거 조건이 ML 모델을 위한 데이터의 라벨링을 위하여 충족되는지 여부를 결정하는 단계; 및
    상기 하나 이상의 트리거 조건이 충족될 때:
    상기 RPA 로봇에 의해, 상기 ML 모델을 훈련시키거나 재훈련시키기 위한 라벨링된 데이터를 제공할 것을 사용자에게 촉구하고, 상기 라벨링된 데이터를 상기 ML 모델의 훈련 또는 재훈련을 위한 서버로 전송하거나, 또는
    상기 RPA 로봇에 의해, 상기 ML 모델로부터의 결과에 속하는 정보를 추후의 라벨링을 위한 큐에 추가하는 단계
    를 포함하는, 컴퓨터-구현 방법.
  15. 제 14 항에 있어서,
    상기 하나 이상의 트리거 조건은 ML 모델 성능이 신뢰도 임계치 미만으로 하락하는 것, ML 모델 결과들이 통계적 분포로부터 이탈하는 것, 이전에 관찰된 범위의 외부에 속하는 ML 모델 결과들, 또는 그 임의의 조합을 포함하는 것인, 컴퓨터-구현 방법.
  16. 제 14 항에 있어서,
    하나 이상의 훈련 기준이 충족될 때, 상기 ML 모델의 새로운 버전을 생성하기 위한 상기 라벨링된 데이터를 사용하여, 상기 서버에 의해, 상기 ML 모델을 훈련시키는 단계; 및
    상기 서버에 의해, 상기 ML 모델의 새로운 버전을 전개하는 단계
    를 더 포함하는, 컴퓨터-구현 방법.
  17. 제 16 항에 있어서,
    상기 하나 이상의 훈련 기준은 미리 결정된 시간 주기가 경과하는 것, 훈련 데이터의 미리 결정된 양이 수신되는 것, 미리 결정된 수의 훈련 데이터 샘플들이 수신되는 것, 상기 데이터가 데이터의 분포의 외부에 속하는 것, 또는 그 임의의 조합을 포함하는 것인, 컴퓨터-구현 방법.
  18. 제 16 항에 있어서,
    상기 ML 모델의 다수의 버전들을 호출하기 위하여 상기 RPA 로봇의 상기 작업흐름을 수정하는 단계 - 상기 다수의 버전들은 상기 ML 모델의 새로운 버전을 포함함 - 를 더 포함하는, 컴퓨터-구현 방법.
  19. 로봇 프로세스 자동화(RPA)를 위한 머신 학습(ML) 모델 재훈련 파이프라인을 구현하기 위한 컴퓨터-구현 방법으로서,
    RPA 로봇에 의해, 머신 학습(ML) 모델을 호출하는 단계;
    상기 RPA 로봇에 의해, 상기 ML 모델의 실행으로부터의 결과를 수신하는 단계;
    상기 RPA 로봇에 의해, 하나 이상의 트리거 조건이 상기 ML 모델을 위한 데이터의 라벨링을 위하여 충족되는지 여부를 결정하는 단계;
    상기 하나 이상의 트리거 조건이 충족될 때:
    상기 RPA 로봇에 의해, 상기 ML 모델을 훈련시키거나 재훈련시키기 위한 라벨링된 데이터를 제공할 것을 사용자에게 촉구하고, 상기 라벨링된 데이터를 상기 ML 모델의 훈련 또는 재훈련을 위한 서버로 전송하거나, 또는
    상기 RPA 로봇에 의해, 상기 ML 모델로부터의 결과에 속하는 정보를 추후의 라벨링을 위한 큐에 추가하는 단계;
    하나 이상의 훈련 기준이 충족될 때, 상기 ML 모델의 새로운 버전을 생성하기 위한 상기 라벨링된 데이터를 사용하여, 상기 서버에 의해, 상기 ML 모델을 훈련시키는 단계; 및
    상기 서버에 의해, 상기 ML 모델의 새로운 버전을 전개하는 단계
    를 포함하는, 컴퓨터-구현 방법.
  20. 제 19 항에 있어서,
    상기 하나 이상의 트리거 조건은 ML 모델 성능이 신뢰도 임계치 미만으로 하락하는 것, ML 모델 결과들이 통계적 분포로부터 이탈하는 것, 이전에 관찰된 범위의 외부에 속하는 ML 모델 결과들, 또는 그 임의의 조합을 포함하고, 그리고
    상기 하나 이상의 훈련 기준은 미리 결정된 시간 주기가 경과하는 것, 훈련 데이터의 미리 결정된 양이 수신되는 것, 미리 결정된 수의 훈련 데이터 샘플들이 수신되는 것, 상기 데이터가 데이터의 분포의 외부에 속하는 것, 또는 그 임의의 조합을 포함하는 것인, 컴퓨터-구현 방법.
KR1020207028187A 2020-04-30 2020-08-19 로봇 프로세스 자동화를 위한 머신 학습 모델 재훈련 파이프라인 KR102502324B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/864,000 US20210342736A1 (en) 2020-04-30 2020-04-30 Machine learning model retraining pipeline for robotic process automation
US16/864,000 2020-04-30
PCT/US2020/046962 WO2021221706A1 (en) 2020-04-30 2020-08-19 Machine learning model retraining pipeline for robotic process automation

Publications (2)

Publication Number Publication Date
KR20210134484A true KR20210134484A (ko) 2021-11-10
KR102502324B1 KR102502324B1 (ko) 2023-02-21

Family

ID=78293067

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020207028187A KR102502324B1 (ko) 2020-04-30 2020-08-19 로봇 프로세스 자동화를 위한 머신 학습 모델 재훈련 파이프라인

Country Status (4)

Country Link
US (1) US20210342736A1 (ko)
KR (1) KR102502324B1 (ko)
CN (1) CN113748436A (ko)
WO (1) WO2021221706A1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11823021B2 (en) 2020-07-31 2023-11-21 Yahoo Assets Llc System and method for ensemble expert diversification via bidding
US11915114B2 (en) * 2020-07-31 2024-02-27 Yahoo Assets Llc System and method for ensemble expert diversification
US20220164700A1 (en) * 2020-11-25 2022-05-26 UiPath, Inc. Robotic process automation architectures and processes for hosting, monitoring, and retraining machine learning models

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05189398A (ja) * 1992-01-14 1993-07-30 Fujitsu Ltd ニューラルネットワークによる学習方法
JP2018094677A (ja) * 2016-12-13 2018-06-21 ファナック株式会社 学習を容易化する機能を備えたロボット制御装置、及びロボット制御方法
JP2019171540A (ja) * 2018-03-29 2019-10-10 ファナック株式会社 機械学習装置、機械学習装置を用いたロボット制御装置及びロボットビジョンシステム、並びに機械学習方法

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1636738A2 (en) * 2003-05-23 2006-03-22 Computer Associates Think, Inc. Adaptive learning enhancement to auotmated model maintenance
US9449344B2 (en) * 2013-12-23 2016-09-20 Sap Se Dynamically retraining a prediction model based on real time transaction data
EP3112965A1 (en) * 2015-07-02 2017-01-04 Accenture Global Services Limited Robotic process automation
US11079745B2 (en) * 2015-11-25 2021-08-03 Lawrence Livermore National Security, Llc Rapid closed-loop control based on machine learning
US20170185904A1 (en) * 2015-12-29 2017-06-29 24/7 Customer, Inc. Method and apparatus for facilitating on-demand building of predictive models
US10365799B2 (en) * 2016-02-09 2019-07-30 Wipro Limited System and methods for creating on-demand robotic process automation
US11748653B2 (en) * 2017-10-05 2023-09-05 DataRobot, Inc. Machine learning abstraction
EP3483729A1 (en) * 2017-11-10 2019-05-15 Nokia Technologies Oy Method and devices for processing sensor data
KR102455056B1 (ko) * 2018-02-01 2022-10-17 삼성전자주식회사 컨텍스트에 따라 이벤트의 출력 정보를 제공하는 전자 장치 및 이의 제어 방법
US11042458B2 (en) * 2018-04-30 2021-06-22 Accenture Global Solutions Limited Robotic optimization for robotic process automation platforms
US20190377984A1 (en) * 2018-06-06 2019-12-12 DataRobot, Inc. Detecting suitability of machine learning models for datasets
JP7004074B2 (ja) * 2018-06-26 2022-01-21 日本電気株式会社 学習装置、情報処理システム、学習方法、および学習プログラム
CN110210624A (zh) * 2018-07-05 2019-09-06 第四范式(北京)技术有限公司 执行机器学习过程的方法、装置、设备以及存储介质
US11531914B2 (en) * 2018-08-20 2022-12-20 Accenture Global Solutions Limited Artificial intelligence (AI) based automatic rule generation
US11366857B2 (en) * 2018-08-21 2022-06-21 Directly, Inc. Artificial intelligence communications agent
US11726802B2 (en) * 2018-09-28 2023-08-15 Servicenow Canada Inc. Robust user interface related robotic process automation
US11281936B2 (en) * 2018-12-31 2022-03-22 Kofax, Inc. Systems and methods for identifying processes for robotic automation and building models therefor
US10877632B2 (en) * 2019-02-25 2020-12-29 Capital One Services, Llc Performing an action based on user interaction data
US11410097B2 (en) * 2019-07-16 2022-08-09 Titan Data Group Inc. System and method for intelligent recruitment management
US11481420B2 (en) * 2019-08-08 2022-10-25 Nice Ltd. Systems and methods for analyzing computer input to provide next action
US11150882B2 (en) * 2019-10-14 2021-10-19 UiPath Inc. Naming robotic process automation activities according to automatically detected target labels
US11775860B2 (en) * 2019-10-15 2023-10-03 UiPath, Inc. Reinforcement learning in robotic process automation
US20210110207A1 (en) * 2019-10-15 2021-04-15 UiPath, Inc. Automatic activation and configuration of robotic process automation workflows using machine learning
US11347613B2 (en) * 2019-10-15 2022-05-31 UiPath, Inc. Inserting probabilistic models in deterministic workflows for robotic process automation and supervisor system
US11738453B2 (en) * 2019-10-15 2023-08-29 UiPath, Inc. Integration of heterogeneous models into robotic process automation workflows
US11642783B2 (en) * 2019-12-02 2023-05-09 International Business Machines Corporation Automated generation of robotic computer program code
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
US11847168B2 (en) * 2019-12-20 2023-12-19 Microsoft Technology Licensing, Llc Training model with model-provided candidate action
US11403118B2 (en) * 2019-12-30 2022-08-02 UiPath Inc. Enhanced target selection for robotic process automation
US11636387B2 (en) * 2020-01-27 2023-04-25 Microsoft Technology Licensing, Llc System and method for improving machine learning models based on confusion error evaluation
US11636389B2 (en) * 2020-02-19 2023-04-25 Microsoft Technology Licensing, Llc System and method for improving machine learning models by detecting and removing inaccurate training data
US11501239B2 (en) * 2020-03-18 2022-11-15 International Business Machines Corporation Metric specific machine learning model improvement through metric specific outlier removal
US20210312365A1 (en) * 2020-04-06 2021-10-07 UiPath, Inc. Analysis of resources utilized during execution of a process
US20210312324A1 (en) * 2020-04-07 2021-10-07 Cisco Technology, Inc. Systems and methods for integration of human feedback into machine learning based network management tool

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05189398A (ja) * 1992-01-14 1993-07-30 Fujitsu Ltd ニューラルネットワークによる学習方法
JP2018094677A (ja) * 2016-12-13 2018-06-21 ファナック株式会社 学習を容易化する機能を備えたロボット制御装置、及びロボット制御方法
JP2019171540A (ja) * 2018-03-29 2019-10-10 ファナック株式会社 機械学習装置、機械学習装置を用いたロボット制御装置及びロボットビジョンシステム、並びに機械学習方法

Also Published As

Publication number Publication date
CN113748436A (zh) 2021-12-03
WO2021221706A1 (en) 2021-11-04
KR102502324B1 (ko) 2023-02-21
US20210342736A1 (en) 2021-11-04

Similar Documents

Publication Publication Date Title
KR102453988B1 (ko) 런타임시 디지털 프로세스에서의 동적 인공 지능/머신 러닝 모델 업데이트, 또는 재트레이닝 및 업데이트
US11648686B2 (en) Artificial intelligence-based process identification, extraction, and automation for robotic process automation
US11893371B2 (en) Using artificial intelligence to select and chain models for robotic process automation
US11372380B2 (en) Media-to-workflow generation using artificial intelligence (AI)
US11803458B2 (en) Inserting probabilistic models in deterministic workflows for robotic process automation and supervisor system
US11836626B2 (en) Artificial intelligence layer-based process extraction for robotic process automation
KR102502324B1 (ko) 로봇 프로세스 자동화를 위한 머신 학습 모델 재훈련 파이프라인
US11592804B2 (en) Task automation by support robots for robotic process automation (RPA)
EP3809347A1 (en) Media-to-workflow generation using artificial intelligence (ai)
KR20220083976A (ko) 액션 센터, 인공 지능(ai)/머신 학습(ml) 모델 재트레이닝 하드웨어 제어, 및 ai/ml 모델 설정 관리를 통한 ai/ml 모델들의 보충
EP4046085A1 (en) Reinforcement learning in robotic process automation
EP3905144A1 (en) Machine learning model retraining pipeline for robotic process automation

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant