JP2023523374A - ロボティックプロセスオートメーションのための機械学習モデル再訓練パイプライン - Google Patents
ロボティックプロセスオートメーションのための機械学習モデル再訓練パイプライン Download PDFInfo
- Publication number
- JP2023523374A JP2023523374A JP2020552794A JP2020552794A JP2023523374A JP 2023523374 A JP2023523374 A JP 2023523374A JP 2020552794 A JP2020552794 A JP 2020552794A JP 2020552794 A JP2020552794 A JP 2020552794A JP 2023523374 A JP2023523374 A JP 2023523374A
- Authority
- JP
- Japan
- Prior art keywords
- model
- data
- training
- computer
- rpa
- Prior art date
- Legal status (The legal status 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 status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Life Sciences & Earth Sciences (AREA)
- Molecular Biology (AREA)
- Artificial Intelligence (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- User Interface Of Digital Computer (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
ロボティックプロセスオートメーション(RPA)のための機械学習(ML)モデル再訓練パイプラインが開示される。生産環境または開発環境にMLモデルが展開されている場合、RPAロボットはそれらのワークフローを実行する際にMLモデルにリクエストを送信する。MLモデルの信頼度が一定の信頼度を下回ると、潜在的に多数のコンピューティングシステムから訓練データが収集される。その後、収集した訓練データの少なくとも一部を用いてMLモデルを訓練し、新しいバージョンのMLモデルを展開する。【選択図】図1
Description
(関連出願への相互参照)
本出願は、2020年4月30日に出願された米国非仮特許出願第16/864,000号の利益を主張する。先に出願された本出願の主題は、その全体を参照することにより、組み込まれる。
本出願は、2020年4月30日に出願された米国非仮特許出願第16/864,000号の利益を主張する。先に出願された本出願の主題は、その全体を参照することにより、組み込まれる。
本発明は概して、ロボティックプロセスオートメーション(RPA)に関し、より具体的には、RPAのための機械学習(ML)モデル再訓練パイプラインに関する。
現在のところ、MLモデルを再学習するためのフィードバックループを自動化するための標準的なメカニズムまたはプロセスは存在しない。したがって、改良されたソリューションが有益であり得る。
本発明の特定の実施形態は、現在のRPA技術によってまだ十分に特定されていない、評価されていない、または解決されていない本分野における問題およびニーズのソリューションを提供し得る。例えば、本発明のいくつかの実施形態は、RPAのためのMLモデル再訓練パイプラインに関連する。
実施形態では、RPAのためのMLモデル再訓練パイプラインを実装するためのコンピュータ実装方法は、RPAロボットによってMLモデルを呼び出すことと、RPAロボットによってMLモデルの実行から結果を受信することとを含む。コンピュータ実装方法はまた、RPAロボットによって、MLモデルのデータをラベル付けするための1または複数のトリガ条件が満たされているかどうかを判断することを含む。1または複数のトリガ条件が満たされた場合、コンピュータ実装方法は、ユーザーに、MLモデルを訓練または再訓練するためのラベル付けされたデータを提供するように促し、ラベル付けされたデータを、RPAロボットによって、MLモデルの訓練または再訓練のためにサーバーに送信する、またはRPAロボットによって、MLモデルからの結果に関連する情報を、後続のラベル付けのためのキューに追加することをさらに含む。
別の実施形態では、RPAのためのMLモデル再訓練パイプラインの実装のためのコンピュータ実装方法は、RPAロボットによって、MLモデルのデータをラベル付けするための1または複数のトリガ条件が満たされているかどうかを判断することを含む。1または複数のトリガ条件が満たされた場合、コンピュータ実装方法はまた、ユーザーに、MLモデルを訓練または再訓練するためのラベル付けされたデータを提供するように促し、ラベル付けされたデータを、RPAロボットによって、MLモデルの訓練または再訓練のためにサーバーに送信する、またはRPAロボットによって、MLモデルからの結果に関連する情報を、後続のラベル付けのためのキューに追加することを含む。
さらに別の実施形態では、RPAのためのMLモデル再訓練パイプラインを実装するためのコンピュータ実装方法は、RPAロボットによってMLモデルを呼び出すことと、RPAロボットによってMLモデルの実行から結果を受信することとを含む。コンピュータ実装方法はまた、RPAロボットによって、MLモデルのデータをラベル付けするための1または複数のトリガ条件が満たされているかどうかを判断することを含む。1または複数のトリガ条件が満たされた場合、コンピュータ実装方法は、ユーザーに、MLモデルを訓練または再訓練するためのラベル付けされたデータを提供するように促し、ラベル付けされたデータを、RPAロボットによって、MLモデルの訓練または再訓練のためにサーバーに送信する、またはRPAロボットによって、MLモデルからの結果に関連する情報を、後続のラベル付けのためのキューに追加することをさらに含む。1または複数の訓練基準が満たされた場合、コンピュータ実装方法は、サーバーによってMLモデルを訓練し、ラベル付けされたデータを使用して新しいバージョンのMLモデルを生成し、サーバーによって新しいバージョンのMLモデルを展開することをさらに含む。
本発明の特定の実施形態の利点が容易に理解されるように、上記で簡単に説明した本発明のより特定の説明は、添付の図面に図示されている特定の実施形態を参照して描写される。これらの図面は、本発明の典型的な実施形態のみを描いており、したがって、その範囲を限定するものとは考えられないことが理解されるべきであるが、本発明は、以下の添付の図面を使用することにより、さらなる特定および詳細をもって描写され、説明されるであろう。
(実施形態の詳細な説明)
いくつかの実施形態は、RPAのためのMLモデル再訓練パイプラインに関連する。生産(つまり、ランタイム)環境または開発環境にMLモデルが配置されている場合、RPAロボットはそれらのワークフローを実行する際にMLモデルにリクエストを送信し得る。しかしながら、MLモデルの性能は、様々な条件の変化に伴い、時間の経過とともに劣化し、および/またはさもなくば所望の性能特性から逸脱したりし得る。例えば、RPAロボットが犬を識別するために訓練されたMLモデルを呼び出す場合を考えてみる。MLモデルは当初99%の信頼度しきい値を持っていたが、より多くの犬の画像および新しい犬種でより広く使用されるようになると、信頼度しきい値は95%まで下がる。
いくつかの実施形態は、RPAのためのMLモデル再訓練パイプラインに関連する。生産(つまり、ランタイム)環境または開発環境にMLモデルが配置されている場合、RPAロボットはそれらのワークフローを実行する際にMLモデルにリクエストを送信し得る。しかしながら、MLモデルの性能は、様々な条件の変化に伴い、時間の経過とともに劣化し、および/またはさもなくば所望の性能特性から逸脱したりし得る。例えば、RPAロボットが犬を識別するために訓練されたMLモデルを呼び出す場合を考えてみる。MLモデルは当初99%の信頼度しきい値を持っていたが、より多くの犬の画像および新しい犬種でより広く使用されるようになると、信頼度しきい値は95%まで下がる。
いくつかの実施形態では、再訓練のためにラベル付けされたデータの収集を開始するために、1または複数のトリガを採用する。トリガには、MLモデルの性能が信頼できるしきい値を下回ること、統計的分布から逸脱したMLモデルの結果(例えば、MLモデルの予測値がユーザー層に関して正規分布内に収まらなくなったこと)、以前に観測された範囲から外れたMLモデルの結果、人のユーザー(例えば、RPA開発者)が望ましくない性能特性に気づき、再訓練のためにラベル付けされたデータの収集を開始すること、および/または本発明の範囲から逸脱することなく、他の適切なトリガが含まれるが、これらに限定されない。確率論的MLモデルでは、「例外」を提供するための具体的な論理パスが常に存在する決定論的論理とは異なり、他のタイプのメカニズムを用いる必要がある。
ラベル付けされたデータ収集(すなわち、「ヒューマンインザループ」)をトリガするタイミングは、このように、いくつかの実施形態ではトリガベースである。上記の犬を識別するMLモデルの例に戻るが、信頼度しきい値が95%未満になると、人のユーザーに入力が求められ得る。例えば、RPAロボットが実行しているコンピューティングシステムの人のユーザーは、修正を行うためのインターフェースまたはオプションを提示され得る。例えば、人のユーザーは、MLモデルにより行われた識別(例えば、「犬ではない」という識別)をレビュー、識別が間違っている場合には修正を行うことができる。誤った画像およびユーザーの修正は、訓練データとしてサーバー(クラウドベースシステム、データセンター、社内サーバー、RPAプロバイダのサーバーなど)に送信され得、RPAロボットは残りのそのワークフローの実行を進め得る。
いくつかの実施形態は、アテンディッドロボットまたはアンアテンディッドロボットに採用され得る。アテンディッドオートメーションの文脈では、人がデータをラベル付けしてRPAロボットと一緒に作業し得る。バックグラウンドで動作し、弁護士のために契約条項を分類するアテンディッドRPAロボットを考える。再訓練がトリガされると、弁護士は、条項のタイプを選択するように促され得、その分類は再訓練のためのラベル付けされたデータの一部になり得る。このように、アテンディッドRPAロボットによって呼び出されたMLモデルに対するラベル付けは、いくつかの実施形態では同期され得る。
アンアテンディッドオートメーションの文脈では、RPAロボットはMLモデルにリクエストを送信し得、それは予測およびその予測の信頼度を返信する。次に、アンアテンディッドRPAロボットは、信頼度しきい値および/または他のいくつかの規準/基準が満たされているかどうかを評価し得る。さもなくば、アンアテンディッドRPAロボットは、ユーザーが後で実行できるように、ラベル付けされたタスクをタスクキューに追加し得る。このように、いくつかの実施形態では、アンアテンディッドRPAロボットによって呼び出されるMLモデルに対するラベル付けは、非同期であり得る。
サーバーは、様々なユーザーから訓練データを受信して格納し得る。このように、時間の経過とともに、ラベル付けされた訓練データのバッチが収集される。所定の時間が経過したとき、所定の量の訓練データが受信されたとき、所定の数の訓練データサンプルが受信されたとき、データがデータのいくつかの分布(例えば、正規分布、二項分布、または他の統計的分布)、カスタム規準もしくは基準、またはそれらの任意の組み合わせから外れたときなど、MLモデルは、収集された訓練データを使用して訓練または再訓練され得る。訓練はまた、MLモデルは、収集された訓練データを使用して、または現在のバージョンのMLモデルを訓練するために使用された前の訓練データとともに収集された訓練データを使用してのみ起こる。一度訓練されたり再訓練されたりすると、新しいバージョンのMLモデルが潜在的に人の動作を介さずに展開される。
いくつかの実施形態では、新しいバージョンのMLモデルは、単に前のバージョンを置き換えてもよく、RPAロボットワークフローからのMLモデルへの呼び出しは、代わりに新しいバージョンのMLモデルを呼び出し得る。特定の実施形態では、新しいバージョンのMLモデルは、RPAロボットのユーザーのコンピューティングシステムに押し出されてもよい。いくつかの実施形態では、RPAロボットのワークフローは、新しいバージョンのMLモデルを呼び出すように変更されてもよい。特定の実施形態では、RPAロボットは、最初に新しいバージョンのMLモデルを試し、ある信頼度が実現されていない場合、前のバージョンのMLモデルを試して、前のバージョンがより高い信頼度を達成しているかどうかを確認してもよい。いくつかの実施形態では、RPAロボットは、MLモデルの両方のバージョンを呼び出して、最も信頼度の高いモデルからの出力を選択してもよい。
いくつかの実施形態は、精度を向上させるために、人がMLモデルの予測を修正するための標準的なメカニズムを備えたMLモデル監視のためのフレームワークを提供する。特定の実施形態では、ユーザーは、ラベル付けされたデータが訓練/再訓練のために取り込まれていることを認識していない場合がある。この標準的なフレームワークは、いくつかの実施形態ではプログラミングの知識を必要とせずに、訓練データを収集し、様々なビジネスプロセスのためのMLモデルの精度を向上させるために使用されてもよい。
サンプル収集の状況およびタイミングは、いくつかの実施形態では、MLモデルに依存する。MLモデルに使用されている場合には、許容できる信頼度しきい値についてビジネス上または技術上の判断がなされ得る。医療診断、車両制御モデルなど、偽陰性が非常に有害な場合は、しきい値が高い(例えば、99.9%、99.9999%など)場合があり得る。トランザクションスピードが重要な場合は、より高いエラー率が許容される場合がある(例:75%、85%、90%、95%など)。もし、偽陽性の方が偽陰性よりも許容できる場合、またはその逆の場合には、どのような条件でMLモデルの訓練または再訓練を行うことが望ましいかにも影響を与えることがある。
図1は、本発明の実施形態による、RPAシステム100を示すアーキテクチャ図である。RPAシステム100は、開発者がワークフローを設計して実装することを可能にするデザイナ110を含む。デザイナ110は、アプリケーション統合のためのソリューションを提供するとともに、サードパーティアプリケーション、管理情報技術(IT)タスク、およびビジネスITプロセスを自動化する。デザイナ110は、ビジネスプロセスのグラフィック表現である自動化プロジェクトの開発を容易にし得る。簡単に言えば、デザイナ110は、ワークフローおよびロボットの開発およびデプロイメントを容易にする。
自動化プロジェクトは、本明細書で「アクティビティ」と定義されるワークフローで開発されたカスタムセットのステップ間の実行順序および関係の制御を開発者に与えることにより、ルールベースのプロセスの自動化を可能にする。デザイナ110の実施形態の商業的な一例は、UiPath Studio(商標)である。各アクティビティは、ボタンをクリックする、ファイルを読む、ログパネルに書き込むなどのアクションを含み得る。いくつかの実施形態では、ワークフローは入れ子になっているか、または埋め込まれ得る。
ワークフローのタイプには、シーケンス、フローチャート、有限状態機械(FSM)、および/またはグローバル例外ハンドラなどを含み得るが、これらに限定されない。シーケンスは、ワークフローを乱雑にすることなく、あるアクティビティから別のアクティビティへのフローを可能にする、線形プロセスに特に適し得る。フローチャートは、特により複雑なビジネスロジックに適し得、複数の分岐ロジックオペレータを介して、より多様な方法で意思決定の統合およびアクティビティの接続を可能にする。FSMは、大規模なワークフローに特に適し得る。FSMは、条件(すなわち、遷移)またはアクティビティによってトリガされる有限の数の状態をそれらの実行中に使用し得る。グローバル例外ハンドラは、実行エラーに遭遇したときのワークフローの動作を決定したり、プロセスをデバッグしたりするのに特に適し得る。
ワークフローがデザイナ110内で開発されると、ビジネスプロセスの実行は、コンダクタ120によって調整され、デザイナ110内で開発されたワークフローを実行する1または複数のロボット130を調整する。コンダクタ120の実施形態の商業的な一例は、UiPath Orchestrator(商標)である。コンダクタ120は、環境におけるリソースの生成、監視、およびデプロイメントの管理を容易にする。コンダクタ120は、サードパーティのソリューションおよびアプリケーションとの統合ポイントとして動作し得る。
コンダクタ120は、全てのロボット130を管理し得、ロボット130を集中ポイントから接続して実行する。管理され得るロボット130のタイプには、アテンディッドロボット132、アンアテンディッドロボット134、開発ロボット(アンアテンディッドロボット134と同様であるが、開発およびテストの目的で使用される)、および非生産ロボット(アテンディッドロボット132と同様であるが、開発およびテストの目的で使用される)が含まれるが、これらに限定されない。アテンディッドロボット132は、ユーザーイベントによってトリガされ、同じコンピューティングシステム上で人と並んで動作する。アテンディッドロボット132は、集中プロセスデプロイメントおよびロギング媒体のためのコンダクタ120とともに使用され得る。アテンディッドロボット132は、人のユーザーが様々なタスクを達成するのを支援してもよく、ユーザーイベントによってトリガされてもよい。いくつかの実施形態では、プロセスは、このタイプのロボット上でコンダクタ120から開始することができず、および/またはそれらはロックされた画面の下で実行することができない。特定の実施形態では、アテンディッドロボット132は、ロボットトレイからまたはコマンドプロンプトからのみ起動され得る。アテンディッドロボット132は、いくつかの実施形態では、人の監督下で動作することが好ましい。
アンアテンディッドロボット134は、仮想環境で無人で動作し、多くのプロセスを自動化し得る。アンアテンディッドロボット134は、リモート実行、監視、スケジューリング、および作業キューのサポートの提供を担当し得る。全てのロボットタイプのためのデバッグは、いくつかの実施形態では、デザイナ110で実行され得る。アテンディッドロボットおよびアンアテンディッドロボットの両方は、メインフレーム、ウェブアプリケーション、VM、エンタープライズアプリケーション(例えば、SAP(登録商標)、SalesForce(登録商標)、Oracle(登録商標)などによって生成されたもの)、およびコンピューティングシステムアプリケーション(例えば、デスクトップおよびラップトップアプリケーション、モバイル装置アプリケーション、ウェアラブルコンピュータアプリケーションなど)を含むが、これらに限定されない様々なシステムおよびアプリケーションを自動化し得る。
コンダクタ120は、プロビジョニング、デプロイメント、構成、キューイング、監視、ロギング、および/または相互接続性の提供を含むがこれらに限定されない様々な能力を有し得る。プロビジョニングは、ロボット130とコンダクタ120(例えば、ウェブアプリケーション)との間の接続を作成し、維持することを含み得る。デプロイメントは、実行のために割り当てられたロボット130へのパッケージバージョンの正しい配信を保証することを含み得る。構成は、ロボット環境およびプロセス構成のメンテナンスおよび配信を含み得る。キューイングは、キューおよびキュー項目の管理を提供することを含み得る。監視は、ロボットの識別データを追跡し、ユーザーの権限を維持することを含み得る。ロギングは、データベース(例えば、SQLデータベース)および/または別のストレージメカニズム(例えば、大規模なデータセットを格納し、迅速にクエリを実行する能力を提供するElasticSearch(登録商標)へのログの保存およびインデックス作成を含み得る。コンダクタ120は、サードパーティのソリューションおよび/またはアプリケーションのための通信の集中点として動作することにより、相互接続性を提供し得る。
ロボット130は、デザイナ110で構築されたワークフローを実行する実行エージェントである。ロボット(複数可)130のいくつかの実施形態の1つの商業的な例は、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の資格情報を任されて管理し得る。SCM管理ロボットサービスがインストールされていない場合、Windows(登録商標)アプリケーションが自動的に起動され得る。
エグゼキュータは、Windows(登録商標)セッションの下で与えられたジョブを実行し得る(つまり、ワークフローを実行し得る。エグゼキュータは、モニタ毎のドットパーインチ(DPI)設定を意識し得る。エージェントは、システムトレイウィンドウに利用可能なジョブを表示する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(登録商標)Server 2012など)では、複数のロボットが同時に実行され得、それぞれが一意のユーザー名を使用して別々のWindows(登録商標)セッションで実行され得る。これは、上記のHDロボットと呼ばれる。
エージェント214はまた、ロボットの状態を送信し(例えば、ロボットがまだ機能していることを示す「ハートビート」メッセージを定期的に送信する)、実行されるパッケージの必要なバージョンをダウンロードすることにも責任を負う。エージェント214とコンダクタ230との間の通信は、いくつかの実施形態では、常にエージェント214によって開始される。通知シナリオでは、エージェント214は、後にコンダクタ230によってロボットにコマンド(例えば、開始、停止など)を送信するために使用されるWebSocketチャネルを開いてもよい。
サーバー側には、プレゼンテーション層(ウェブアプリケーション232、オープンデータプロトコル(OData)代表状態転送(REST)アプリケーションプログラミングインターフェース(API)エンドポイント234、通知および監視236)、サービス層(API実装/ビジネスロジック238)、永続層(データベースサーバー240、インデクササーバー250)が含まれる。コンダクタ230は、ウェブアプリケーション232、OData REST APIエンドポイント234、通知および監視236、ならびにAPI実装/ビジネスロジック238を含む。いくつかの実施形態では、ユーザーがコンダクタ220のインターフェース(例えば、ブラウザ220を介して)で実行するほとんどのアクションは、様々なAPIを呼び出すことによって実行される。このような動作は、本発明の範囲を逸脱することなく、ロボット上でのジョブの起動、キュー内のデータの追加/削除、無人で実行するジョブのスケジューリングなどを含み得るが、これらに限定されない。ウェブアプリケーション232は、サーバープラットフォームのビジュアル層である。この実施形態では、ウェブアプリケーション232は、ハイパーテキストマークアップ言語(HTML)およびジャバスクリプト(JS)を使用する。しかし、本発明の範囲を逸脱することなく、いずれかの所望のマークアップ言語、スクリプト言語、または他のいずれかのフォーマットを使用し得る。ユーザーは、コンダクタ230を制御するための様々な動作を実行するために、本実施形態ではブラウザ220を介してウェブアプリケーション232からのウェブページと対話する。例えば、ユーザーは、ロボットグループを作成し、ロボットへのパッケージの割り当てを行い、ロボット毎および/またはプロセス毎のログを解析し、ロボットを起動しおよび停止し得る。
ウェブアプリケーション232に加えて、コンダクタ230は、OData REST APIエンドポイント234を公開するサービス層も含む。しかし、本発明の範囲を逸脱することなく、他のエンドポイントが含まれていてもよい。REST APIは、ウェブアプリケーション232とエージェント214の両方によって消費される。エージェント214は、本実施形態では、クライアントコンピュータ上の1または複数のロボットのスーパーバイザである。
本実施形態のREST APIは、構成、ロギング、監視、およびキューイング機能をカバーする。構成エンドポイントは、いくつかの実施形態では、アプリケーションのユーザー、権限、ロボット、アセット、リリース、および環境を定義し、構成するために使用されてもよい。ロギングRESTエンドポイントは、例えば、エラー、ロボットによって送信された明示的なメッセージ、およびその他の環境固有の情報など、様々な情報をログに記録するために使用され得る。デプロイメントRESTエンドポイントは、コンダクタ230においてジョブ開始コマンドが使用された場合に実行されるべきパッケージのバージョンを問い合わせるためにロボットによって使用されてもよい。キューイングRESTエンドポイントは、キューへのデータの追加、キューからのトランザクションの取得、トランザクションのステータスの設定など、キューおよびキューアイテムの管理を担ってもよい。
RESTエンドポイントの監視は、ウェブアプリケーション232およびエージェント214を監視してもよい。通知および監視API236は、エージェント214の登録、エージェント214への構成設定の配信、およびサーバーとエージェント214との間の通知の送受信に使用されるRESTエンドポイントであってもよい。通知および監視API236は、いくつかの実施形態では、WebSocket通信を使用してもよい。
永続層は、本実施形態では、一対のサーバー-データベースサーバー240(例えば、SQLサーバー)およびインデクササーバー250-を含む。本実施形態におけるデータベースサーバー240は、ロボット、ロボットグループ、関連するプロセス、ユーザー、役割、スケジュールなどの構成を格納する。この情報は、いくつかの実施形態では、ウェブアプリケーション232を介して管理される。データベースサーバー240は、キューおよびキューアイテムを管理してもよい。いくつかの実施形態では、データベースサーバー240は、ロボットによって記録されたメッセージを(インデクササーバー250に加えて、またはインデクササーバー250に代えて)格納してもよい。
いくつかの実施形態では任意であるが、インデクササーバー250は、ロボットによって記録された情報を保存し、インデックスを作成する。特定の実施形態では、インデクササーバー250は、構成設定を介して無効化されてもよい。いくつかの実施形態では、インデクササーバー250は、オープンソースプロジェクトの全文検索エンジンであるElasticSearch(登録商標)を使用する。ロボットによって記録されたメッセージ(例えば、ログメッセージまたはライン書き込みのようなアクティビティを使用して)は、ロギングRESTエンドポイント(複数可)を介してインデクササーバー250に送信されてもよく、そこで将来の利用のためにそれらはインデックス化される。
図3は、本発明の実施形態による、デザイナ310、アクティビティ320、330、およびドライバ340の間の関係300を示すアーキテクチャ図である。以上のように、開発者は、デザイナ310を用いて、ロボットによって実行されるワークフローを開発する。ワークフローは、ユーザー定義のアクティビティ320およびUI自動化アクティビティ330を含んでもよい。いくつかの実施形態では、画像中の非テキストの視覚的コンポーネントを識別することができ、これは、本明細書ではコンピュータビジョン(CV)と呼ばれる。このようなコンポーネントに関連するいくつかのCVアクティビティは、クリック、タイプ、テキストを取得、ホバー、要素の有無を検出、スコープの更新、ハイライトなどを含むが、これらに限定されない。いくつかの実施形態では、クリックは、例えば、CV、光学的文字認識(OCR)、ファジーテキストマッチング、およびマルチアンカーを使用して要素を識別し、それをクリックする。タイプは、上記および要素内のタイプを用いて要素を識別してもよい。テキストを取得すると、特定のテキストの場所を特定し、OCRを使用してそれをスキャンし得る。ホバーは、要素を識別し、その上にホバーし得る。要素の有無を検出するかどうかは、上述した技術を用いて、画面上に要素の有無を検出するかどうかを確認し得る。いくつかの実施形態では、デザイナ310に実装され得る数百または数千でさえのアクティビティが存在してもよい。しかし、本発明の範囲を逸脱することなく、いずれかの数および/またはアクティビティのタイプを利用することができる。
UI自動化アクティビティ330は、低レベルのコード(例えば、CVアクティビティ)で記述され、画面との対話を促進する特別な低レベルのアクティビティのサブセットである。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に関して、これらの実施形態ではウェブアプリケーションが使用されているが、本発明の範囲から逸脱することなく、いずれかの適切なクライアント/サーバーソフトウェアを使用することができることに留意すべきである。例えば、コンダクタは、クライアントコンピューティングシステム上で、非ウェブベースのクライアントソフトウェアアプリケーションと通信するサーバーサイドアプリケーションを実行してもよい。
図5は、本発明の実施形態による、RPA用のMLモデル再訓練パイプラインの一部を実装するように構成されたコンピューティングシステム500を示すアーキテクチャ図である。いくつかの実施形態では、コンピューティングシステム500は、本明細書に描かれたおよび/または記載された1または複数のコンピューティングシステムであってもよい。コンピューティングシステム500は、情報を通信するためのバス505または他の通信機構と、情報を処理するためのバス505に結合されたプロセッサ(複数可)510とを含む。プロセッサ(複数可)510は、中央処理ユニット(CPU)、特定用途集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、グラフィックスプロセッシングユニット(GPU)、それらの複数のインスタンス、および/またはそれらのいずれかの組み合わせを含む、いずれかのタイプの一般的または特定用途向けプロセッサであり得る。プロセッサ(複数可)510はまた、複数の処理コアを有してもよく、コアの少なくとも一部は、特定の機能を実行するように構成され得る。いくつかの実施形態では、複数並列処理が使用されてもよい。特定の実施形態では、少なくとも1つのプロセッサ(複数可)510は、生物学的ニューロンを模倣する処理要素を含むニューロモーフィック回路であり得る。いくつかの実施形態では、ニューロモーフィック回路は、フォンノイマンコンピューティングアーキテクチャの典型的なコンポーネントを必要としない場合がある。
コンピューティングシステム500は、プロセッサ(複数可)510によって実行される情報および命令を格納するためのメモリ515をさらに含む。メモリ515は、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、フラッシュメモリ、キャッシュ、磁気ディスクもしくは光ディスクなどの静的記憶装置、または他のタイプの非一時的なコンピュータ読み取り可能な媒体、あるいはそれらのいずれかの組み合わせで構成され得る。非一時的なコンピュータ読み取り可能な媒体は、プロセッサ(複数可)510によってアクセス可能ないずれかの利用可能な媒体であってもよく、揮発性媒体、不揮発性媒体または両方などを含み得る。また、媒体は、取り外し可能なもの、取り外し不可能なもの、または両方であってもよい。
さらに、コンピューティングシステム500は、無線および/または有線接続を介して通信ネットワークへのアクセスを提供するために、トランシーバなどの通信装置520を含む。いくつかの実施形態では、通信装置520は、周波数分割多元接続(FDMA)、シングルキャリアFDMA(SC-FDMA)、時分割多元接続(TDMA)、符号分割多元接続(CDMA)、直交周波数分割多重方式(OFDM)、直交周波数分割多元接続(OFDMA)、移動体用グローバルシステム(GSM:Global System for Mobile)通信、汎用パケット無線サービス(GPRS:General Packet Radio Service)、ユニバーサル移動体通信システム(UMTS:Universal Mobile Telecommunications System)、cdma2000、広帯域CDMA(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アドバンスト(LTE-A:LTE Advanced)、802.11x、Wi-Fi、Zigbee、超広帯域無線(UWB:Ultra-WideBand)、802.16x、802.15、Home Node-B(HnB)、Bluetooth、無線IDタグ(RFID:Radio Frequency Identification)、IrDA(Infrared Data Association)、近距離無線通信(NFC:Near-Field Communications)、第5世代(5G)、New Radio(NR)、それらのいずれかの組み合わせ、および/または本発明の範囲から逸脱することなく、いずれかの他の現在存在するまたは将来実装される通信標準および/またはプロトコルを使用するように構成され得る。いくつかの実施形態では、通信装置520は、本発明の範囲から逸脱することなく、単数のアンテナ、アレイ状のアンテナ、フェーズドアンテナ、スイッチドアンテナ、ビームフォーミングアンテナ、ビームステアリングアンテナ、それらの組み合わせ、および/またはいずれかの他のアンテナ構成である1または複数のアンテナを含み得る。
プロセッサ(複数可)510は、バス505を介して、プラズマディスプレイ、液晶ディスプレイ(LCD)、発光ダイオード(LED)ディスプレイ、電界放出ディスプレイ(FED)、有機発光ダイオード(OLED)ディスプレイ、フレキシブルOLEDディスプレイ、フレキシブル基板ディスプレイ、プロジェクションディスプレイ、4Kディスプレイ、高精細ディスプレイ、Retina(登録商標)ディスプレイ、IPS(In-Plane Switching)ディスプレイ、またはユーザーに情報を表示するためのいずれかの他の適切なディスプレイなどのディスプレイ525にさらに結合されている。ディスプレイ525は、抵抗方式、静電容量方式、表面弾性波(SAW)静電容量方式、赤外線方式、光学イメージング方式、分散信号方式、音響パルス認識方式、フラストレート全内部反射方式などを用いて、タッチ(ハプティック)ディスプレイ、3次元(3D)タッチディスプレイ、マルチ入力タッチディスプレイ、マルチタッチディスプレイなどとして構成されていてもよい。本発明の範囲を逸脱することなく、いずれかの好適な表示装置およびハプティックI/Oを使用することができる。
コンピュータマウス、タッチパッドなどのようなキーボード530およびカーソル制御装置535は、ユーザーがコンピューティングシステムとインターフェースすることを可能にするために、バス505にさらに結合されている。しかしながら、特定の実施形態では、物理的なキーボードおよびマウスが存在しない場合があり、ユーザーは、ディスプレイ525および/またはタッチパッド(図示せず)のみを介してデバイスと対話することができる。入力デバイスの種類および組み合わせは、設計の選択の問題として使用され得る。特定の実施形態では、物理的な入力装置および/またはディスプレイは存在しない。例えば、ユーザーは、コンピューティングシステム500と通信している別のコンピューティングシステムを介してリモートでコンピューティングシステム500と対話してもよいし、コンピューティングシステム500は自律的に動作してもよい。
メモリ515は、プロセッサ(複数可)510によって実行されたときに機能を提供するソフトウェアモジュールを格納する。モジュールは、コンピューティングシステム500のためのオペレーティングシステム540を含む。モジュールはさらに、本明細書に記載されたプロセスの全部もしくは一部またはその派生物を実行するように構成されたMLモデル再訓練パイプラインモジュール545を含む。コンピューティングシステム500は、付加的な機能を含む1または複数の付加的な機能モジュール550を含み得る。
当業者であれば、「システム」は、本発明の範囲から逸脱することなく、サーバー、組み込みコンピューティングシステム、パーソナルコンピュータ、コンソール、パーソナルデジタルアシスタント(PDA)、携帯電話、タブレットコンピューティングデバイス、量子コンピューティングシステム、または他のいずれかの適切なコンピューティングデバイス、またはデバイスの組み合わせとして具現化され得ることを理解するであろう。上述した機能を「システム」によって実行されるものとして提示することは、何ら本発明の範囲を限定することを意図するものではなく、本発明の多くの実施形態の一例を提供することを意図するものである。実際、本明細書に開示された方法、システム、および装置は、クラウドコンピューティングシステムを含むコンピューティング技術と整合性のあるローカライズされた形態および分散された形態で実装されてもよい。
本明細書で説明するシステム特色のいくつかは、実装の独立性をより強調するために、モジュールとして提示されていることに留意すべきである。例えば、モジュールは、カスタムの非常に大規模な集積(VLSI)回路またはゲートアレイ、ロジックチップ、トランジスタ、または他のディスクリート構成要素のような既製の半導体を含むハードウェア回路として実装され得る。また、モジュールは、フィールドプログラマブルゲートアレイ、プログラマブルアレイロジック、プログラマブルロジック装置、グラフィックス処理ユニットなどのプログラマブルハードウェア装置に実装され得る。
モジュールまたは、様々なタイプのプロセッサによって実行されるためのソフトウェアに少なくとも部分的に実装され得る。例えば、実行可能コードの識別された単位は、例えば、オブジェクト、プロシージャ、または関数として編成されていてもよいコンピュータ命令の1または複数の物理的または論理的なブロックを含み得る。それにもかかわらず、実行可能な識別されたモジュールは、物理的に一緒に配置されている必要はなく、論理的に結合されたときにモジュールを含み、モジュールのために述べられた目的を達成するために、異なる場所に格納された別々の命令を含んでいてもよい。さらに、モジュールは、例えば、ハードディスクドライブ、フラッシュ装置、RAM、テープのようなコンピュータ読み取り可能な媒体、および/または本発明の範囲から逸脱することなくデータを格納するために使用される他のいずれかの非一時的なコンピュータ読み取り可能な媒体に格納されていてもよい。
実際、実行可能コードのモジュールは、単一の命令であってもよいし、多数の命令であってもよいし、さらには、複数の異なるコードセグメント、異なるプログラム間、および複数のメモリ装置間に分散されていてもよい。同様に、操作データは、モジュール内で識別され、ここで示されてもよく、いずれかの適切なタイプのデータ構造体内でいずれかの適切な形態で具現化され、組織化され得る。操作データは、単一のデータセットとして収集されてもよいし、または異なる記憶装置にわたり異なる場所に分散されていてもよく、少なくとも部分的には、単にシステムまたはネットワーク上の電子信号として存在していてもよい。
図6は、本発明の実施形態による、RPA用のMLモデル再訓練パイプラインを実装するように構成されたシステム600を示すアーキテクチャ図である。システム600は、デスクトップコンピュータ602、603、タブレット604、スマートフォン606などのユーザーコンピューティングシステムを含む。しかしながら、スマートウォッチ、ラップトップコンピュータ、インターネットオブシングス(IoT)装置、車両コンピューティングシステムなどを含むが、これらに限定されない、本発明の範囲から逸脱しない、いずれかの所望のコンピューティングシステムが使用され得る。また、4つのユーザーコンピューティングシステムが図6に示されているが、本発明の範囲から逸脱することなく、いずれかの好適な数のコンピューティングシステムが使用され得る。例えば、いくつかの実施形態では、数十、数百、数千、または数百万のコンピューティングシステムが使用されてもよい。
各コンピューティングシステム602、603、604、606は、MLモデルを呼び出すおよび/または実行するデジタルプロセス610をその上で実行する。デジタルプロセス610は、RPAデザイナアプリケーションを介して生成されたロボットであってもよいし、オペレーティングシステムの一部であってもよいし、パーソナルコンピュータ(PC)またはスマートフォンのためのダウンロード可能なアプリケーションであってもよいし、本発明の範囲から逸脱しない、他のいずれかのソフトウェアおよび/またはハードウェアであってもよい。実際、いくつかの実施形態では、1または複数のデジタルプロセス610のロジックは、物理的なハードウェアを介して部分的にまたは完全に実装される。デジタルプロセス610は、トリガに応答するMLモデルを訓練/再訓練するための訓練データを収集して送信してもよい。トリガには、MLモデルの性能が信頼できるしきい値を下回ること、統計的分布から逸脱したMLモデルの結果(例えば、MLモデルの予測値がユーザーのプールに関して正規分布内に収まらなくなったこと)、以前に観測された範囲から外れたMLモデルの結果、人のユーザー(例えば、RPA開発者)が望ましくない性能特性に気づき、再訓練のためにラベル付けされたデータの収集を開始すること、および/または本発明の範囲から逸脱することなく、他の適切なトリガが含まれるが、これらに限定されない。
デジタルプロセス610は、ネットワーク620(例えば、ローカルエリアネットワーク(LAN)、移動体通信ネットワーク、衛星通信ネットワーク、インターネット、それらのいずれかの組み合わせなど)を介して、それらのそれぞれのコンピューティングシステムのユーザーから収集された訓練データをサーバー630に送信する。サーバー630は、訓練データをデータベース640に格納する。訓練データは、画像およびユーザーによる修正(例えば、コンポーネントが画面上に位置する領域、エラーに関するユーザーからのテキスト説明、領域のラベルなど)を含んでもよいが、これらに限定されない。
人のユーザー(例えば、RPA技術者またはデータサイエンティスト)による指示があった場合、所定量の訓練データが収集された場合、前の訓練から所定時間が経過した場合、訓練要求が受信された場合などに、サーバー630は、複数のAI層632を介して訓練データを実行する。AI層632はデータを処理し、新しいバージョンのMLモデルを生成する。AI層632は、統計的モデリング(例えば、隠れマルコフモデル(HMM))を実行し、深層学習技術(例えば、長期短期記憶(LSTM)深層学習、前の隠蔽された状態のエンコードなど)を利用し得る。
いくつかの実施形態では、各AI層632は、訓練データ上で実行されるアルゴリズム(またはモデル)であり、MLモデル自体は、訓練データで訓練された人工「ニューロン」の深層学習ニューラルネットワーク(DLNN)であり得る。層は、直列、並列、またはそれらの組み合わせで実行され得る。AI層632は、配列抽出層、クラスタリング検出層、視覚成分検出層、テキスト認識層(例えば、OCR)、オーディオ-ツー-テキスト変換層、1または複数の層の複数のインスタンス、またはそれらのいずれかの組み合わせを含んでもよいが、これらに限定されない。本発明の範囲を逸脱することなく、いずれかの所望の数およびタイプ(複数可)の層を使用し得る。複数の層を使用することで、システムが画面またはプロセスで何が起こっているのかのグローバルな画像を展開し得る。例えば、あるAI層はOCRを実行し、別のAI層はボタンなどを検出してもよい。パターンは、1つのAI層によって個別に決定されてもよいし、複数のAI層によってまとめて決定されてもよい。
特定の実施形態では、データサイエンティストは、MLモデルの訓練を開始し、および/または監視し得る。例えば、データサイエンティストは、訓練データセットを追加データで補完したり、新たに訓練されたMLモデルが所望の信頼度を達成できなかった場合に、異なるまたは補完された訓練データを用いてMLモデルを再訓練したりしてもよい。データサイエンティストは、いくつかの実施形態では、MLモデルが準備ができて承認された場合に、更新通知を生成してもよい。特定の実施形態では、サーバー630は、通知を生成してもよい。
新しいバージョンのMLモデルが適切に訓練された後、サーバー630は、新しいバージョンのMLモデルをデータベース640に保存してもよく、潜在的に前のバージョンのMLモデルを置き換えることができる。ユーザーコンピューティングシステム602、603、604、606からMLモデルが呼び出されると、新しいバージョンの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で1または複数のトリガ条件が満たされているかどうかを判断する。トリガ条件には、MLモデルの性能が信頼できるしきい値を下回ること、統計的分布から逸脱したMLモデルの結果(例えば、MLモデルの予測値がユーザーのプールに関して正規分布内に収まらなくなったこと)、以前に観測された範囲から外れたMLモデルの結果、人のユーザー(例えば、RPA開発者)が望ましくない性能特性に気づき、再訓練のためにラベル付けされたデータの収集を開始すること、および/または本発明の範囲から逸脱することなく、他の適切なトリガが含まれるが、これらに限定されない。
730でトリガ条件(複数可)が満たされた場合、ラベル付けされた訓練データが得られ、740でサーバーに提出される。例えば、アテンディッドロボットRPAロボットの場合、RPAロボットが実行されているコンピューティングシステムの人ユーザーには、修正を行うためのインターフェースまたはオプションが提示されたり、または別のコンピューティングシステムの人ユーザーには、信頼度しきい値未満の識別が発生した場所に関する情報が提供され、修正を行うためのインターフェースまたはオプションが提示され得る。また、アンアテンディッドロボットRPAロボットの場合には、スクリーンショットを自動的に撮影し、MLモデルが適用された画面上の所定のコンポーネントの座標が提供され得る。この情報は、その後のレビューまたはラベル付けのためのキューに追加され得る。
1または複数の訓練基準が750で満たされた場合、MLモデルは、収集された訓練データを使用して、または現在のバージョンのMLモデルを訓練するために使用された前の訓練データとともに収集された訓練データを使用して、760で訓練される。1または複数の訓練基準は、所定の時間が経過したとき、所定の量の訓練データが受信されたとき、所定の数の訓練データサンプルが受信されたとき、データがデータのいくつかの分布(例えば、正規分布、二項分布、または他の統計的分布)、カスタム規準もしくは基準、またはそれらの任意の組み合わせから外れたときなどを含み得る。いくつかの実施形態では、訓練基準は、図7に示された他のステップにリンクされていない別のプロセスでチェックされる。
訓練後、新しいバージョンのMLモデルを770で展開する。いくつかの実施形態では、新しいバージョンのMLモデルは、単に前のバージョンを置き換えてもよく、RPAロボットワークフローからのMLモデルへの呼び出しは、さらなる変更なしに、代わりに新しいバージョンのMLモデルを呼び出し得る。しかしながら、いくつかの実施形態では、RPAロボットが780において新しいバージョンのMLモデルと対話することができるように、さらなる修正が行われる。例えば、特定の実施形態では、新しいバージョンのMLモデルは、RPAロボットのユーザーのコンピューティングシステムに押し出されてもよい。いくつかの実施形態では、RPAロボットのワークフローは、新しいバージョンのMLモデルを呼び出すように変更されてもよい。
いくつかの実施形態では、複数のバージョンのMLモデルが、RPAロボットによって790で呼び出されてもよい。例えば、特定の実施形態では、RPAロボットは、最初に新しいバージョンのMLモデルを試し、ある信頼度が実現されない場合、前のバージョン(複数可)がより高い信頼度を達成するかどうか、またはそうでなければより良い結果(例えば、統計的分布とのより良い適合性、範囲内に収まる値、より速い実行など)を達成するかどうかを確認するために、1または複数の前のバージョンのMLモデルを試すことができる。いくつかの実施形態では、RPAロボットは、複数のバージョンのMLモデル(例えば、新しいバージョンのMLモデルおよびの1または複数の前のバージョンのMLモデル)を呼び出して、最も高い信頼度またはそうでなければより良い結果を有するモデルからの出力を選択してもよい。
図7で実行されるプロセスステップは、本発明の実施形態に従って、図7で説明したプロセス(複数可)の少なくとも一部を実行するようにプロセッサ(複数可)への命令をエンコードするコンピュータプログラムによって実行されてもよい。コンピュータプログラムは、非一時的なコンピュータ読み取り可能な媒体に具現化されていてもよい。コンピュータ読み取り可能な媒体は、ハードディスクドライブ、フラッシュ装置、RAM、テープ、および/またはデータを格納するために使用される他のそのような媒体または媒体の組み合わせであってもよいが、これらに限定されるものではない。コンピュータプログラムは、図7に記載されたプロセスステップの全部または一部を実装するために、コンピューティングシステム(例えば、図5のコンピューティングシステム500のプロセッサ(複数可)510)のプロセッサ(複数可)を制御するためのコード化された命令を含んでもよく、これはまた、コンピュータ読み取り可能な媒体に格納されてもよい。
コンピュータプログラムは、ハードウェア、ソフトウェア、またはハイブリッド実装で実装され得る。コンピュータプログラムは、互いに操作可能な通信を行うモジュールで構成され得、情報または命令をディスプレイに送るように設計されている。コンピュータプログラムは、汎用コンピュータ、ASIC、またはいずれかの他の好適な装置で動作するように構成され得る。
本発明の様々な実施形態のコンポーネントは、本明細書に一般的に記載され、図示されているように、様々な異なる構成で配置され、設計されてもよいことが、容易に理解されるであろう。したがって、添付の図に表されるような本発明の実施形態の詳細な説明は、特許請求されるような本発明の範囲を限定することを意図するものではなく、本発明の選択された実施形態を代表するものにすぎない。
本明細書を通して記載された本発明の特色、構造、または特徴は、1または複数の実施形態では、いずれかの好適な方法で組み合わせられ得る。例えば、本明細書全体を通して「特定の実施形態」、「いくつかの実施形態」、または類似の言語を参照することは、実施形態に関連して記載された特定の特色、構造、または特徴が、本発明の少なくとも1つの実施形態に含まれていることを意味する。したがって、本明細書全体を通して「特定の実施形態では」、「いくつかの実施形態では」、「他の実施形態では」、または類似の言語の出現は、必ずしも全ての実施形態の同じグループを指すものではなく、記載された特色、構造、または特徴は、1または複数の実施形態ではいずれかの好適な方法で組み合わせられ得る。
本明細書全体を通して特色、利点、または類似の言語への参照は、本発明で実現され得る特色および利点の全てが、本発明のいずれかの単一の実施形態にあるべきであること、または本発明のいずれかの実施形態にあることを意味するものではないことに留意すべきである。むしろ、特色および利点に言及する言語は、実施形態に関連して記載された特定の特色、利点、または特徴が、本発明の少なくとも1つの実施形態に含まれることを意味すると理解される。したがって、本明細書全体での特色および利点の議論、ならびに類似の言語は、同じ実施形態を参照することができるが、必ずしもその必要性はない。
さらに、本発明の記載された特色、利点、および特徴は、1または複数の実施形態では、いずれかの好適な方法で組み合わせることができる。関連する技術に熟練した人は、本発明が、1または複数の特定の実施形態の特定の特徴または利点なしに実施され得ることを認識するであろう。他の例では、追加の特徴および利点は、本発明の全ての実施形態には存在しないかもしれない特定の実施形態では認識され得る。
本分野における通常の技術を有する者は、上述したような本発明を、異なる順序でのステップを用いて、および/または開示されているものとは異なる構成のハードウェア要素を用いて実施することができることを容易に理解するであろう。したがって、本発明は、これらの好ましい実施形態に基づいて説明されてきたが、本発明の精神および範囲内にとどまりながら、特定の変更、変形、および代替的な構成が明らかになることは、当業者には明らかであろう。したがって、本発明の範囲を決定するためには、添付の特許請求の範囲を参照すべきである。
Claims (20)
- ロボティックプロセスオートメーション(RPA)のための機械学習(ML)モデル再訓練パイプラインを実装するためのコンピュータ実装方法であって、
RPAロボットによって、機械学習(ML)モデルを呼び出し、
前記RPAロボットによって、前記MLモデルの実行から結果を受信し、
前記RPAロボットによって、前記MLモデルのデータをラベル付けするための1または複数のトリガ条件が満たされているかどうかを判断し、
前記1または複数のトリガ条件が満たされた場合、
ユーザーに前記MLモデルの訓練または再訓練のためのラベル付けされたデータの提供を促し、前記ラベル付けされたデータを、前記RPAロボットによって、前記MLモデルの訓練または再訓練のためにサーバーに送信する、または
前記MLモデルからの前記結果に関連する情報を、前記RPAロボットによって、後続のラベル付けをするためのキューに追加する、ことを含む、コンピュータ実装方法。 - 前記1または複数のトリガ条件は、MLモデルの性能が信頼できるしきい値を下回ること、MLモデルの結果が統計的分布から逸脱すること、MLモデルの結果が前に観測された範囲から外れること、またはそれらのいずれかの組み合わせを含む、請求項1に記載のコンピュータ実装方法。
- 前記1または複数のトリガ条件は、前記ラベル付けされたデータの収集のための開始コマンドの受信を含む、請求項1に記載のコンピュータ実装方法。
- 前記サーバーによって、前記ラベル付けされたデータを受信し、
前記サーバーによって、前記ラベル付けされたデータをデータベースに格納することをさらに含む、請求項1に記載のコンピュータ実装方法。 - 1または複数の訓練基準が満たされた場合、前記サーバーによって、前記ラベル付けされたデータを使用して前記MLモデルを訓練し、新しいバージョンの前記MLモデルを生成し、
前記サーバーによって、前記新しいバージョンの前記MLモデルを展開することをさらに含む、請求項1に記載のコンピュータ実装方法。 - 前記MLモデルの訓練は、前記新しいバージョンの前記MLモデルよりも前に訓練された前記MLモデルのバージョンを訓練するために使用された以前の訓練データを使用することを追加的に含む、請求項5に記載のコンピュータ実装方法。
- 前記1または複数の訓練基準は、所定の期間の経過、所定の量の訓練データの受信、所定の数の訓練データサンプルの受信、前記データがデータの分布から外れていること、またはそれらのいずれかの組み合わせを含む、請求項5に記載のコンピュータ実装方法。
- 前記新しいバージョンの前記MLモデルが、前のバージョンの前記MLモデルを置き換える、請求項5に記載のコンピュータ実装方法。
- 前記RPAロボットのワークフローを変更して、前記新しいバージョンの前記MLモデルを呼び出すことをさらに含む、請求項5に記載のコンピュータ実装方法。
- 前記RPAロボットのワークフローを変更して、複数のバージョンの前記MLモデルを呼び出すようにし、前記複数のバージョンは前記新しいバージョンの前記MLモデルを含むことをさらに含む、請求項5に記載のコンピュータ実装方法。
- 前記RPAロボットによって、前記新しいバージョンの前記MLモデルを呼び出し、
前記1または複数のトリガ条件が満たされていない場合、前記RPAロボットによって、前バージョンの前記MLモデルを呼び出し、現在のバージョンの前記MLモデルおよび前記前バージョンの前記MLモデルから最適な結果を選択することをさらに含む、請求項10に記載のコンピュータ実装方法。 - 前記RPAロボットによって、前記新しいバージョンの前記MLモデルおよび少なくとも1つの前のバージョンの前記MLモデルを呼び出し、
前記RPAロボットによって、現在のバージョンの前記MLモデルおよび少なくとも1つの前のバージョンの前記MLモデルから最良の結果を選択することをさらに含む、請求項10に記載のコンピュータ実装方法。 - 前記ラベル付けされたデータの収集および前記新しいバージョンの前記MLモデルの訓練は、複数のRPAロボットによって呼び出された複数のMLモデルに対して一様である、請求項1に記載のコンピュータ実装方法。
- ロボティックプロセスオートメーション(RPA)のための機械学習(ML)モデル再訓練パイプラインを実装するためのコンピュータ実装方法であって、
前記RPAロボットによって、MLモデルのデータをラベル付けするための1または複数のトリガ条件が満たされているかどうかを判断し、
前記1または複数のトリガ条件が満たされた場合、
ユーザーに前記MLモデルの訓練または再訓練のためのラベル付けされたデータの提供を促し、前記ラベル付けされたデータを、前記RPAロボットによって、前記MLモデルの訓練または再訓練のためにサーバーに送信する、または
前記MLモデルからの前記結果に関連する情報を、前記RPAロボットによって、後続のラベル付けするためのキューに追加することを含む、コンピュータ実装方法。 - 前記1または複数のトリガ条件は、MLモデルの性能が信頼できるしきい値を下回ること、MLモデルの結果が統計的分布から逸脱すること、MLモデルの結果が前に観測された範囲から外れること、またはそれらのいずれかの組み合わせを含む、請求項14に記載のコンピュータ実装方法。
- 1または複数の訓練基準が満たされた場合、前記サーバーによって、前記ラベル付けされたデータを使用して前記MLモデルを訓練し、新しいバージョンの前記MLモデルを生成し、
前記サーバーによって、前記新しいバージョンの前記MLモデルを展開することをさらに含む、請求項14に記載のコンピュータ実装方法。 - 前記1または複数の訓練基準は、所定の期間の経過、所定の量の訓練データの受信、所定の数の訓練データサンプルの受信、前記データがデータの分布から外れていること、またはそれらのいずれかの組み合わせを含む、請求項16に記載のコンピュータ実装方法。
- 前記RPAロボットのワークフローを変更して、複数のバージョンの前記MLモデルを呼び出すようにし、前記複数のバージョンは前記新しいバージョンの前記MLモデルを含むことをさらに含む、請求項16に記載のコンピュータ実装方法。
- ロボティックプロセスオートメーション(RPA)のための機械学習(ML)モデル再訓練パイプラインを実装するためのコンピュータ実装方法であって、
RPAロボットによって、機械学習(ML)モデルを呼び出し、
前記RPAロボットによって、前記MLモデルの実行から結果を受信し、
前記RPAロボットによって、前記MLモデルのデータをラベル付けするための1または複数のトリガ条件が満たされているかどうかを判断し、
前記1または複数のトリガ条件が満たされた場合、
ユーザーに前記MLモデルの訓練または再訓練のためのラベル付けされたデータの提供を促し、前記ラベル付けされたデータを、前記RPAロボットによって、前記MLモデルの訓練または再訓練のためにサーバーに送信する、または
前記MLモデルからの前記結果に関連する情報を、前記RPAロボットによって、後続のラベル付けするためのキューに追加し、
1または複数の訓練基準が満たされた場合、前記サーバーによって、前記ラベル付けされたデータを使用して前記MLモデルを訓練し、新しいバージョンの前記MLモデルを生成し、
前記サーバーによって、前記新しいバージョンの前記MLモデルを展開することを含む、コンピュータ実装方法。 - 前記1または複数のトリガ条件は、MLモデルの性能が信頼できるしきい値を下回ること、MLモデルの結果が統計的分布から逸脱すること、MLモデルの結果が前に観測された範囲から外れること、またはそれらのいずれかの組み合わせを含み、
前記1または複数の訓練基準は、所定の期間の経過、所定の量の訓練データの受信、所定の数の訓練データサンプルの受信、前記データがデータの分布から外れていること、またはそれらのいずれかの組み合わせを含む、請求項19に記載のコンピュータ実装方法。
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 (1)
Publication Number | Publication Date |
---|---|
JP2023523374A true JP2023523374A (ja) | 2023-06-05 |
Family
ID=72670633
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020552794A Pending JP2023523374A (ja) | 2020-04-30 | 2020-08-19 | ロボティックプロセスオートメーションのための機械学習モデル再訓練パイプライン |
Country Status (2)
Country | Link |
---|---|
EP (1) | EP3905144A1 (ja) |
JP (1) | JP2023523374A (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115019029B (zh) * | 2022-08-08 | 2022-11-04 | 杭州实在智能科技有限公司 | 一种基于神经自动机的rpa元素智能定位方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7792353B2 (en) * | 2006-10-31 | 2010-09-07 | Hewlett-Packard Development Company, L.P. | Retraining a machine-learning classifier using re-labeled training samples |
US10606982B2 (en) * | 2017-09-06 | 2020-03-31 | International Business Machines Corporation | Iterative semi-automatic annotation for workload reduction in medical image labeling |
-
2020
- 2020-08-19 JP JP2020552794A patent/JP2023523374A/ja active Pending
- 2020-09-29 EP EP20199073.6A patent/EP3905144A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
EP3905144A1 (en) | 2021-11-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102453988B1 (ko) | 런타임시 디지털 프로세스에서의 동적 인공 지능/머신 러닝 모델 업데이트, 또는 재트레이닝 및 업데이트 | |
US10963231B1 (en) | Using artificial intelligence to select and chain models for robotic process automation | |
US11347613B2 (en) | Inserting probabilistic models in deterministic workflows for robotic process automation and supervisor system | |
JP2022552468A (ja) | ロボティック・プロセス・オートメーション及びワークフローのマイクロ最適化のためのプロセス進化 | |
US11593709B2 (en) | Inserting and/or replacing machine learning models in a pipeline for robotic process automation workflows | |
US11592804B2 (en) | Task automation by support robots for robotic process automation (RPA) | |
KR102502324B1 (ko) | 로봇 프로세스 자동화를 위한 머신 학습 모델 재훈련 파이프라인 | |
KR20220079838A (ko) | 로봇 프로세스 자동화의 강화 학습 | |
JP2022552129A (ja) | 機械学習を用いたロボティックプロセスオートメーションのワークフローの自動アクティブ化および構成 | |
JP2023552666A (ja) | アクションセンターを介した人工知能(ai)/機械学習(ml)モデルの補足、ai/mlモデル再訓練ハードウェア制御、およびai/mlモデル設定管理 | |
EP3905144A1 (en) | Machine learning model retraining pipeline for robotic process automation | |
EP3901864A1 (en) | Test automation for robotic process automation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20210915 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20230808 |