(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-12-15
(54)【発明の名称】機械学習を用いたロボティックプロセスオートメーションのワークフローの自動アクティブ化および構成
(51)【国際特許分類】
G06N 20/00 20190101AFI20221208BHJP
G06N 3/08 20060101ALI20221208BHJP
【FI】
G06N20/00
G06N3/08
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2022520179
(86)(22)【出願日】2020-08-13
(85)【翻訳文提出日】2022-05-06
(86)【国際出願番号】 US2020046080
(87)【国際公開番号】W WO2021076209
(87)【国際公開日】2021-04-22
(32)【優先日】2019-12-09
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2019-10-15
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】520262319
【氏名又は名称】ユーアイパス,インコーポレイテッド
【氏名又は名称原語表記】UiPath,Inc.
【住所又は居所原語表記】1 Vanderbilt Avenue, 60th Floor, New York, NY 10017, United States of America
(74)【代理人】
【識別番号】100180781
【氏名又は名称】安達 友和
(74)【代理人】
【識別番号】100182903
【氏名又は名称】福田 武慶
(72)【発明者】
【氏名】シング,プラブディープ
(72)【発明者】
【氏名】マクゴネル,アントン
(57)【要約】
機械学習(ML)を使用するロボティックプロセスオートメーション(RPA)ワークフローの自動アクティブ化および構成が開示される。RPAワークフローの1つまたは複数の部分は、1つまたは複数の確率論的MLモデルに基づいてオンまたはオフにすることができる。RPAロボットは、パラメータを修正し、提供する特定のリソースの量を決定し、より最適なしきい値を決定するなどのように構成され得る。したがって、MLを実装するそのようなRPAワークフローは、決定論的論理と確率論的論理の両方のハイブリッドであってもよく、MLモデルの再訓練、信頼度しきい値の調整、ローカル/グローバル信頼度しきい値の使用、ローカル信頼度しきい値のための修飾子の提供または調整、MLモデル性能を監視する監視システムの実装などによって経時的に学習および改善することができる。
【特許請求の範囲】
【請求項1】
コンピュータにより実施される方法であって、
RPAワークフローの確率論的アクティビティを実行する場合に、ロボティックプロセスオートメーション(RPA)ロボットによって、少なくとも1つの機械学習(ML)モデルを呼び出すステップと、
前記RPAロボットによって、前記少なくとも1つのMLモデルから少なくとも1つの信頼度値を受信するステップと、
前記少なくとも1つの信頼度値が信頼度しきい値を超えない場合に、前記RPAロボットによって、前記確率論的アクティビティの後のワークフローセクションをオフにするか、取得しないか、または論理的に回避するステップと、
前記少なくとも1つの信頼度値が前記信頼度しきい値を超える場合に、
前記RPAロボットによって、前記確率論的アクティビティの後のワークフローセクションをオンにするか、取得するか、または論理的に従うステップと、
前記RPAロボットによって、前記確率論的アクティビティに続いて前記ワークフローセクションを遂行するステップと、を含む、コンピュータにより実施される方法。
【請求項2】
複数の決定論的アクティビティと、前記少なくとも1つのMLモデルを呼び出すように構成された前記少なくとも1つの確率論的アクティビティと、を含む前記RPAワークフローを生成するステップと、
前記生成されたRPAワークフローを実施する前記RPAロボットを生成するステップと、
をさらに含む、請求項1に記載のコンピュータにより実施される方法。
【請求項3】
前記ワークフローのプロセスが所定の回数実行された後に、または所定の時間が経過した後に、前記RPAロボットによって、前記信頼度しきい値を上昇または下降させるステップをさらに含む、
請求項1に記載のコンピュータにより実施される方法。
【請求項4】
前記RPAロボットによる前記信頼度しきい値の前記上昇または下降は、勝利状態が達成されるまで繰り返される、請求項3に記載のコンピュータにより実施される方法。
【請求項5】
前記RPAロボットによって、前記少なくとも1つのMLモデルが前記信頼度しきい値に対する所定数の修正後に結果を達成していないと判定するステップと、
前記少なくとも1つのMLモデルを再訓練するステップと、
をさらに含む、請求項3に記載のコンピュータにより実施される方法。
【請求項6】
前記RPAロボットは、アクティビティパラメータを修正するか、特定のリソースの提供量を決定するか、より最適な信頼度しきい値を決定するか、またはこれらの任意の組み合わせを行うように構成される、請求項1に記載のコンピュータにより実施される方法。
【請求項7】
前記RPAロボットが複数のMLモデルを呼び出し、各MLモデルからの前記信頼度値が組み合わされて、前記確率論的アクティビティの前記信頼度しきい値と比較されるグローバル信頼度値を決定する、請求項1に記載のコンピュータにより実施される方法。
【請求項8】
前記グローバル信頼度値は、前記信頼度値にそれぞれの重みを適用し、重み付き信頼度値を組み合わせることによって決定される、請求項7に記載のコンピュータにより実施される方法。
【請求項9】
非一時的コンピュータ可読媒体に格納されたコンピュータプログラムであって、前記プログラムは、少なくとも1つのプロセッサに、
RPAワークフローの確率論的アクティビティを遂行する場合に機械学習(ML)モデルを呼び出させ、
前記MLモデルから信頼度値を受信させ、
前記信頼度値が信頼度しきい値を超えない場合に、前記確率論的アクティビティの後のワークフローセクションをオフにさせるか、取得させないか、または論理的に回避させ、
前記信頼度値が前記信頼度しきい値を超える場合に、
前記確率論的アクティビティの後のワークフローセクションをオンにさせるか、取得させるか、または論理的に従わせ、
前記確率論的アクティビティに続いて前記ワークフローセクションを遂行させるように構成される、コンピュータプログラム。
【請求項10】
前記プログラムは、前記少なくとも1つのプロセッサに、
前記ワークフローのプロセスが所定の回数実行された後に、または所定の時間が経過した後に、前記信頼度しきい値を上昇または下降させるようにさらに構成される、請求項9に記載のコンピュータプログラム。
【請求項11】
前記信頼度しきい値の前記上昇または下降は、勝利状態が達成されるまで繰り返される、請求項10に記載のコンピュータプログラム。
【請求項12】
前記プログラムは、前記少なくとも1つのプロセッサに、
前記MLモデルが前記信頼度しきい値に対する所定数の修正後に結果を達成していないと判定させ、
前記MLモデルを再訓練するようにサーバーに指示を提供させるようにさらに構成される、請求項10に記載のコンピュータプログラム。
【請求項13】
前記プログラムは、前記少なくとも1つのプロセッサに、
アクティビティパラメータを修正させるか、特定のリソースの提供量を決定させるか、より最適な信頼度しきい値を決定させるか、またはこれらの任意の組み合わせを行わせるようにさらに構成される、請求項9に記載のコンピュータプログラム。
【請求項14】
コンピュータにより実施される方法であって、
RPAワークフローの確率論的アクティビティを実行する場合に、ロボティックプロセスオートメーション(RPA)ロボットによって、少なくとも1つの機械学習(ML)モデルを呼び出すステップと、
前記RPAロボットによって、前記少なくとも1つのMLモデルから少なくとも1つの信頼度値を受信するステップと、
前記RPAロボットによって、前記少なくとも1つの信頼度値を複数の信頼度しきい値範囲と比較するステップと、
前記少なくとも1つの信頼度値が信頼度しきい値範囲内にある場合に、
前記RPAロボットによって、前記信頼度しきい値範囲についての前記確率論的アクティビティの後のワークフローセクションをオンにするか、取得するか、または論理的に従うステップと、
前記RPAロボットによって、前記信頼度しきい値範囲についての前記確率論的アクティビティに続いて前記ワークフローセクションを遂行するステップと、を含む、コンピュータにより実施される方法。
【請求項15】
複数の決定論的アクティビティと、前記少なくとも1つのMLモデルを呼び出すように構成された前記少なくとも1つの確率論的アクティビティと、を含む前記RPAワークフローを生成するステップと、
前記生成されたRPAワークフローを実施する前記RPAロボットを生成するステップと、
をさらに含む、請求項14に記載のコンピュータにより実施される方法。
【請求項16】
前記ワークフローのプロセスが所定の回数実行された後に、または所定の時間が経過した後に、前記RPAロボットによって、前記信頼度しきい値範囲のうちの1つまたは複数を修正するステップをさらに含む、
請求項14に記載のコンピュータにより実施される方法。
【請求項17】
前記RPAロボットによる前記1つまたは複数の信頼度しきい値範囲の前記修正は、勝利状態が達成されるまで繰り返される、請求項16に記載のコンピュータにより実施される方法。
【請求項18】
前記RPAロボットによって、前記少なくとも1つのMLモデルが前記信頼度しきい値に対する所定数の修正後に結果を達成していないと判定するステップと、
前記少なくとも1つのMLモデルを再訓練するステップと、
をさらに含む、請求項16に記載のコンピュータにより実施される方法。
【請求項19】
前記RPAロボットは、アクティビティパラメータを修正するか、特定のリソースの提供量を決定するか、より最適な信頼度しきい値を決定するか、またはこれらの任意の組み合わせを行うように構成される、請求項14に記載のコンピュータにより実施される方法。
【請求項20】
前記RPAロボットが複数のMLモデルを呼び出し、各MLモデルからの前記信頼度値が組み合わされて、前記確率論的アクティビティの前記信頼度しきい値範囲と比較されるグローバル信頼度値を決定し、
前記グローバル信頼度値は、前記信頼度値にそれぞれの重みを適用し、重み付き信頼度値を組み合わせることによって決定される、
請求項14に記載のコンピュータにより実施される方法。
【発明の詳細な説明】
【技術分野】
【0001】
(関連出願の相互参照)
本出願は、2019年12月9日に出願された米国非仮特許出願第16/707,814号および2019年10月15日に出願された米国仮特許出願第62/915,379号の利益を主張する。これらの先願の主題は、その全体が参照により本明細書に組み込まれる。
【0002】
本発明は、一般に、ロボティックプロセスオートメーション(RPA)に関し、より具体的には、機械学習(ML)を使用したRPAワークフローの自動アクティブ化および構成に関する。
【背景技術】
【0003】
現在のRPAワークフローは本質的に決定論的である。言い換えれば、ワークフローは、フローチャートと同様の一連の論理ステップに従う。しかしながら、この決定論的論理は、すべての状況、特に経時的に変化する状況に最適ではない場合がある。したがって、改善されたソリューションが有益であり得る。
【発明の概要】
【0004】
本発明の特定の実施形態は、現在のRPA技術によってまだ完全に識別、認識、または解決されていない当技術分野の問題および必要性に対するソリューションを提供することができる。例えば、本発明のいくつかの実施形態は、MLを使用するRPAワークフローの自動アクティブ化および構成に関する。
【0005】
一実施形態では、コンピュータにより実施される方法は、RPAワークフローの確率論的アクティビティを遂行する場合に、RPAロボットによって少なくとも1つのMLモデルを呼び出すステップと、RPAロボットによって、少なくとも1つのMLモデルから少なくとも1つの信頼度値を受信するステップと、を含む。少なくとも1つの信頼度値が信頼度しきい値を超えない場合に、コンピュータにより実施される方法は、RPAロボットによって、確率論的アクティビティの後のワークフローセクションをオフにするか、取得しないか、または論理的に回避するステップを含む。少なくとも1つの信頼度値が信頼度しきい値を超える場合に、コンピュータにより実施される方法は、RPAロボットによって確率論的アクティビティの後のワークフローセクションをオンにするか、取得するか、または論理的に従うステップと、RPAロボットによって確率論的アクティビティに続くワークフローセクションを遂行するステップと、を含む。
【0006】
別の実施形態では、コンピュータプログラムは、非一時的コンピュータ可読媒体上で具現化される。プログラムは、少なくとも1つのプロセッサに、RPAワークフローの確率論的アクティビティを遂行する場合に、MLモデルを呼び出させ、MLモデルから信頼度値を受信させるように構成される。信頼度値が信頼度しきい値を超えない場合に、プログラムは、少なくとも1つのプロセッサに、確率論的アクティビティの後のワークフローセクションをオフにさせるか、取得させないか、または論理的に回避させるように構成される。信頼度値が信頼度しきい値を超える場合に、プログラムは、少なくとも1つのプロセッサに、確率論的アクティビティの後のワークフローセクションをオンにさせ、取得させ、または論理的に従わせ、確率論的アクティビティの後のワークフローセクションを遂行させるように構成される。
【0007】
さらに別の実施形態では、コンピュータにより実施される方法は、RPAワークフローの確率論的アクティビティを遂行する場合に、RPAロボットによって少なくとも1つのMLモデルを呼び出すステップと、RPAロボットによって、少なくとも1つのMLモデルから少なくとも1つの信頼度値を受信するステップと、を含む。コンピュータにより実施される方法はまた、RPAロボットによって、少なくとも1つの信頼度値を複数の信頼度しきい値範囲と比較するステップを含む。少なくとも1つの信頼度値が信頼度しきい値範囲内に入る場合に、コンピュータにより実施される方法は、RPAロボットによって、その信頼度しきい値範囲についての確率論的アクティビティの後のワークフローセクションをオンにするか、取得するか、または論理的に従うステップと、RPAロボットによって、その信頼度しきい値範囲についての確率論的アクティビティに続いてワークフローセクションを遂行するステップと、を含む。
【図面の簡単な説明】
【0008】
本発明の特定の実施形態の利点が容易に理解されるように、上記で簡単に説明した本発明のより具体的な説明は、添付の図面に示されている特定の実施形態を参照することによって提供される。これらの図面は、本発明の典型的な実施形態のみを示しており、したがってその範囲を限定するものと見なされるべきではないことを理解されたいが、本発明は、添付の図面を使用することによって追加の具体性および詳細を伴って説明および説明される。
【0009】
【
図1】本発明の一実施形態による、RPAシステムを示すアーキテクチャ図である。
【0010】
【
図2】本発明の一実施形態による、展開されたRPAシステムを示すアーキテクチャ図である。
【0011】
【
図3】本発明の一実施形態による、デザイナ、アクティビティ、およびドライバの間の関係を示すアーキテクチャ図である。
【0012】
【
図4】本発明の一実施形態による、RPAシステムを示すアーキテクチャ図である。
【0013】
【
図5】本発明の一実施形態による、MLを使用してRPAワークフローを自動的にアクティブ化および構成するように構成されたコンピューティングシステムを示すアーキテクチャ図である。
【0014】
【
図6】本発明の一実施形態による、自動アクティブ化のためにMLを使用するRPAワークフローを示す図である。
【0015】
【
図7】本発明の一実施形態による、MLを使用してRPAワークフローを自動的にアクティブ化および構成するためのプロセスを示すフローチャートである。
【0016】
【
図8】本発明の一実施形態による、MLを使用してRPAワークフローを自動的にアクティブ化および構成するための別のプロセス800を示すフローチャートである。
【発明を実施するための形態】
【0017】
いくつかの実施形態は、MLを使用するRPAワークフローの自動アクティブ化および構成に関する。いくつかの実施形態では、RPAワークフローの1つまたは複数の部分は、1つまたは複数の確率論的MLモデルに基づいてオンまたはオフにすることができる。特定の実施形態では、MLモデルは、パラメータを修正し、提供する特定のリソースの量(例えば、どれだけの電流を送るか、ダムを通してどれだけの水を許容するか、製品をいくらの価格に設定するか、など)を決定し、より最適なしきい値を決定するなどするように構成され得る。したがって、MLを実装するそのようなRPAワークフローは、決定論的論理と確率論的論理の両方のハイブリッドであってもよく、MLモデルの再訓練、信頼度しきい値の調整、ローカル/グローバル信頼度しきい値の使用、ローカル信頼度しきい値のための修飾子の提供または調整、MLモデル性能を監視する監視システムの実装などによって経時的に学習および改善することができる。
【0018】
ワークフローは、それぞれがより大きなタスクのより細かい部分を達成する一連のアクティビティを含む。典型的には、アクティビティは、別のアクティビティに直接つながるか、または関連する静的条件が満たされたときにシーケンスのセクションにつながる条件分岐論理に従う。しかしながら、いくつかの実施形態は、例えば、常に次のアクティビティに進むか、または決定論的条件に基づいてアクティビティを選択するのではなく、信頼区間を使用するなど、学習された確率論的しきい値に基づいてワークフローの一部が有効(すなわち、「アクティブ化」)であるか無効であるかを制御する訓練可能/再訓練可能MLモデルを利用する。そのようなアクティブ化しきい値は、ワークフローを遂行するロボットからのデータに基づいて経時的に学習および/または再構成することができる。例えば、RPAロボットは、決定論的な方法で実行されるワークフローから開始し、次いで、ワークフローの1つまたは複数のセクションを経時的にオンまたはオフにすること、アクティビティパラメータを修正すること、1つまたは複数のリソースの提供量を決定すること、しきい値を変更すること、またはこれらの任意の組み合わせを学習することができる。
【0019】
しきい値は、重要性、リスク、コスト、生命に対する危険性などの1つまたは複数の要因に基づいて設定されてもよい。例えば、ミッションクリティカルシステムのしきい値は非常に高くてもよい(例えば、99.9999%)。いくつかの実施形態では、しきい値自体は経時的に学習される。例えば、顧客のアクションが人間のチェックアウト店員を有するのではなくカメラおよび他のセンサによって監視される自動小売システムのコンテキストでは、ユーザーによって取られた製品が検出されるのに十分高いが、かなりの数の誤判定(すなわち、ユーザーが商品を手に取ったときに検出されるが、その後に、それを店舗内の別の場所に戻すか、または残すような場合など、ユーザーが商品を持って店舗から出なかった商品について課金される)が発生するほど高くはないように、信頼区間をバランスさせることが望ましい場合がある。このような店舗の事業目的は、消費者が持ち去った商品を可能な限り多く検出することであるが、消費者が再び店舗に戻る可能性が高く、ネガティブな経験や、実際に購入しようとしなかった商品の返金を求める煩わしさのために店舗を避けない程度に誤判定率を低く保つことである。
【0020】
そのようなシナリオでは、システムは、80%(例えば、ユーザーが実際に商品を手に取り、その商品を持って店を出たという信頼度)の初期信頼区間を有することができる。ある期間の後に、データ解析は、支払いのない製品(すなわち、商品が検出されずに店舗から出て行く顧客)の10%の損失が発生したことを明らかにすることができる。データ解析はまた、報告された誤判定率が0.1%であったことを明らかにすることができる。より高い誤判定率が許容可能であるが、製品損失率が許容不可能であると企業が判断した場合、MLモデルの信頼区間は増加され得る。あるいは、MLモデルには、最大許容誤判定率および製品損失率が提供され得、それに応じてMLモデル信頼区間を自動的に増加させ得る(例えば、85%まで上げる)。これは、誤判定率が許容できなくなるまで定期的に行われ、誤判定率が最大許容率に向かって収束するまで定期的に下降、上昇などを行うことができる。例えば、これは、ユーザーが商品を拾い上げたという99%の信頼度および1%の誤判定率に収束することができる。そのようなシステムはまた、経時的な検出率の変化(例えば、センサの劣化または故障による精度の低下、新しいセンサの実装による精度の向上など)を検出することができ、それに応じて信頼区間を調整することができる。
【0021】
特定の実施形態では、ワークフローの一部をオンにするかどうかは、擬似乱数を計算し、その数をMLモデル(例えば、少なくともしきい値がある場合には、ワークフローの部分はオンにされ、そうでない場合には、ワークフローの部分は追従されない)からの信頼度値と比較することによって決定することができる。この場合、ロボットによって遂行されるワークフローは、遂行ごとに異なってもよい。これは、例えば群挙動において有益であり得る。多数のドローンが配備されるシナリオ(例えば、100、1,000など。)では、異なるランダムな効果を有することが望ましい場合がある。例えば、ドローン群がコンサート照明に使用されており、曲にビートが発生するたびにドローンの70%がランダムに青、20%がランダムに黄、10%がランダムに赤で光ることが望ましい場合には、これは確率論的ワークフローにおける信頼度しきい値範囲を使用して実施することができる。これは、複数のゲートを有するゲート機構を提供する。そのような実施形態は、強化学習を介して訓練されてもよく、システムは、指定された制約を有する新しい状態を探索し、報酬関数が「勝利」状態を求めるために使用される。例えば、報酬関数は、拍手の音量を増加させることを含むことができ、新しいパターンを探索することができ、拍手を増加させるドローンパターンの特性を学習することができる。
【0022】
いくつかの実施形態では、複数のMLモデルの「ローカル」信頼区間に基づく「グローバル」信頼度値を使用することができる。例えば、3つの異なるMLモデル1、2、および3が画像認識などのタスクに使用され得るが、MLモデルは異なる結果を提供することができる。MLモデル1および3が、画像内の対象物がそれぞれ90%および80%の信頼度を有する犬であると判定するが、MLモデルは、対象物が90%の信頼度を有する猫であると判定し、肯定検出のためのグローバル信頼度しきい値要件が50%である場合を考える。対象物は犬として明確に識別される((0.9+0.0+0.7)/3=0.53333)が、猫としての識別((0.0+0.8+0.0)/3=0.26667)は失敗する。これは、MLモデルが同様のシナリオに適用され得るが、異なるコンテキストにおいて適用され得る転移学習に幾分類似している。
【0023】
異なるMLモデルはまた、特定のタスクに対して異なる精度を有することができる。したがって、特定の実施形態では、1つまたは複数のモデルの信頼区間に重み付けすることができる。例えば、請求書処理の場合、各モデルの精度に基づいて、MLモデル1に100%の修飾子を割り当てることができ、MLモデル2に70%の修飾子を割り当てることができ、MLモデル3に50%の修飾子を割り当てることができる。しかしながら、画像検出の場合、精度および修飾子は異なっていてもよい。
【0024】
特定の実施形態では、MLモデルは、MLモデルを使用する展開されたロボットが意図したように動作していることを保証するために、監視システムによって監視することができる。これは、ミッションクリティカルシステムにとって特に有益であり得る。例えば、特定の条件下で飛行面を自動的に制御するために航空機内でロボットが使用される場合には、航空機の動作パラメータを監視することができる。展開されたロボットが動作している航空機から収集されたデータをレビューするとき、監視者システムは、ロボットが飛行面制御を開始した直後に制御輪を引き戻す傾向がある一部のパイロットなどの統計的に有意な異常を判定することができる。次いで、管理者システムは、ワークフローの一部を無効にする、ロボットを完全に無効にする、検出された状態のパイロットに可能な修正を伴う警告を提供するなどをロボットに命令することができる。
【0025】
図1は、本発明の一実施形態による、RPAシステム100を示すアーキテクチャ図である。RPAシステム100は、開発者がワークフローを設計および実装することを可能にするデザイナ110を含む。デザイナ110は、アプリケーション統合、ならびに第三者アプリケーション、管理情報技術(IT)タスク、およびビジネスITプロセスを自動化するためのソリューションを提供することができる。デザイナ110は、ビジネスプロセスのグラフィカル表現である自動化プロジェクトの開発を容易にすることができる。簡単に言えば、デザイナ110は、ワークフローおよびロボットの開発およびデプロイメントを容易にする。
【0026】
自動化プロジェクトは、本明細書で「アクティビティ」と定義される、ワークフローで開発されたステップのカスタムセット間の遂行順序および関係の制御を開発者に与えることによって、ルールベースのプロセスの自動化を可能にする。デザイナ110の一実施形態の一商用例は、UiPath Studio(商標)である。各アクティビティは、ボタンのクリック、ファイルの読み取り、ログパネルへの書き込みなどのアクションを含むことができる。いくつかの実施形態では、ワークフローはネストまたは埋め込みされてもよい。
【0027】
いくつかのタイプのワークフローは、シーケンス、フローチャート、有限状態機械(FSM)、および/またはグローバル例外ハンドラを含むことができるが、これらに限定されない。シーケンスは、ワークフローを乱すことなく1つのアクティビティから別のアクティビティへの流れを可能にする線形プロセスに特に適することができる。フローチャートは、より複雑なビジネスロジックに特に適しており、複数の分岐論理演算子を介してより多様な方法で決定の統合およびアクティビティの接続を可能にする。FSMは、大規模なワークフローに特に適している場合がある。FSMは、条件(すなわち、遷移)またはアクティビティによってトリガされる有限数の状態をそれらの遂行において使用することができる。グローバル例外ハンドラは、遂行エラーに遭遇したときのワークフローの挙動を判定し、プロセスをデバッグするのに特に適することができる。
【0028】
ワークフローがデザイナ110で開発されると、ビジネスプロセスの遂行は、デザイナ110で開発されたワークフローを遂行する1つまたは複数のロボット130を編成するコンダクタ120によって編成される。コンダクタ120の一実施形態の一商用例は、UiPathオーケストレータ(商標)である。コンダクタ120は、環境内のリソースの作成、監視、およびデプロイメントの管理を容易にする。コンダクタ120は、第三者のソリューションおよびアプリケーションとの統合ポイントとして機能することができる。
【0029】
コンダクタ120は、集中ポイントからロボット130を接続し遂行するすべてのロボット130を管理することができる。管理され得るロボット130のタイプは、これらに限定されないが、アテンディッドロボット132、アンアテンディッドロボット134、開発ロボット(アンアテンディッドロボット134と同様であるが、開発および試験の目的で使用される)、および非生産ロボット(アテンディッドロボット132と同様であるが、開発および試験の目的で使用される)を含む。アテンディッドロボット132は、ユーザーイベントによってトリガされ、同じコンピューティングシステム上で人間と一緒に動作する。アテンディッドロボット132は、集中プロセスデプロイメントおよび記録媒体のためのコンダクタ120と共に使用することができる。アテンディッドロボット132は、人間のユーザーが様々なタスクを達成するのを助けることができ、ユーザーイベントによってトリガすることができる。いくつかの実施形態では、プロセスは、このタイプのロボットのコンダクタ120から開始することができず、および/またはロックされた画面の下で実行することができない。特定の実施形態では、アテンディッドロボット132は、ロボットトレイまたはコマンドプロンプトからのみ起動することができる。いくつかの実施形態では、アテンディッドロボット132は人間の監督下で動作するべきである。
【0030】
アンアテンディッドロボット134は、仮想環境で無人で動作し、多くのプロセスを自動化することができる。アンアテンディッドロボット134は、リモート遂行、監視、スケジューリング、および作業待ち行列のサポートの提供を担当することができる。いくつかの実施形態では、すべてのロボットタイプのデバッグを、デザイナ110で実行することができる。アテンディッドロボットおよびアンアテンディッドロボットの両方は、メインフレーム、ウェブアプリケーション、VM、エンタープライズアプリケーション(例えば、SAP(登録商標)、SalesForce(登録商標)、Oracle(登録商標)などによって製造されたもの)、およびコンピューティングシステムアプリケーション(例えば、デスクトップおよびラップトップアプリケーション、モバイルデバイスアプリケーション、ウェアラブルコンピュータアプリケーションなど)を含むがこれらに限定されない様々なシステムおよびアプリケーションを自動化することができる。
【0031】
コンダクタ120は、プロビジョニング、デプロイメント、構成、キューイング、監視、ロギング、および/または相互接続性の提供を含むがこれらに限定されない様々な機能を有することができる。プロビジョニングは、ロボット130とコンダクタ120(例えば、ウェブアプリケーション)との間の接続の作成および保守を含むことができる。デプロイメントは、遂行のために割り当てられたロボット130へのパッケージバージョンの正しい配信を保証することを含むことができる。構成は、ロボット環境およびプロセス構成の維持および配信を含むことができる。キューイングは、キューおよびキュー項目の管理を提供することを含むことができる。監視は、ロボット識別データを追跡し、ユーザー権限を維持することを含むことができる。ロギングは、データベース(例えば、SQLデータベース)および/または別のストレージ機構(例えば、大規模なデータセットを格納し、迅速にクエリする能力を提供するElasticSearch(登録商標))へのログの格納およびインデックス付けを含むことができる。コンダクタ120は、第三者のソリューションおよび/またはアプリケーションのための通信の集中ポイントとして作用することによって相互接続性を提供することができる。
【0032】
ロボット130は、デザイナ110に構築されたワークフローを実行する遂行エージェントである。ロボット130のいくつかの実施形態の一商用例は、UiPath Robots(商標)である。いくつかの実施形態では、ロボット130は、デフォルトでMicrosoft Windows(登録商標)Service Control Manager(SCM)管理サービスをインストールする。結果として、そのようなロボット130は、ローカルシステムアカウントの下でインタラクティブなWindows(登録商標)セッションを開き、Windows(登録商標)サービスの権利を有することができる。
【0033】
いくつかの実施形態では、ロボット130は、ユーザーモードで設置することができる。このようなロボット130の場合、これは、所与のロボット130が設置されているユーザーと同じ権利を有することを意味する。この特徴は、その最大の可能性で各機械の完全な利用を保証する高密度(HD)ロボットにも利用可能であり得る。いくつかの実施形態では、任意のタイプのロボット130をHD環境で構成することができる。
【0034】
いくつかの実施形態におけるロボット130は、各々が特定の自動化タスク専用であるいくつかのコンポーネントに分割される。いくつかの実施形態におけるロボットコンポーネントは、SCM管理ロボットサービス、ユーザーモードロボットサービス、エグゼキュータ、エージェント、およびコマンドラインを含むが、これらに限定されない。SCM管理ロボットサービスは、Windows(登録商標)セッションを管理および監視し、コンダクタ120と遂行ホスト(すなわち、ロボット130が遂行されるコンピューティングシステム)との間のプロキシとして機能する。これらのサービスは、ロボット130の資格情報で信頼され、管理する。コンソールアプリケーションは、ローカルシステムの下でSCMによって起動される。
【0035】
いくつかの実施形態におけるユーザーモードロボットサービスは、Windows(登録商標)セッションを管理および監視し、コンダクタ120と遂行ホストとの間のプロキシとして機能する。ユーザーモードロボットサービスは、ロボット130のための資格情報を信頼し管理することができる。SCM管理ロボットサービスがインストールされていない場合、Windows(登録商標)アプリケーションを自動的に起動することができる。
【0036】
エグゼキュータは、Windows(登録商標)セッション下で所与のジョブを実行することができる(すなわち、エグゼキュータはワークフローを遂行することができる)。エグゼキュータは、モニターごとのドット/インチ(DPI)設定を認識することができる。エージェントは、システムトレイウィンドウに利用可能なジョブを表示するWindows(登録商標)Presentation Foundation(WPF)アプリケーションであってもよい。エージェントは、サービスのクライアントであってもよい。エージェントは、ジョブの開始または停止および設定の変更を要求することができる。コマンドラインは、サービスのクライアントである。コマンドラインは、ジョブの開始を要求し、その出力を待つことができるコンソールアプリケーションである。
【0037】
上記で説明したようにロボット130のコンポーネントを分割することは、開発者、サポートユーザー、およびコンピューティングシステムが各コンポーネントが実行しているものをより容易に実行、識別、および追跡するのに役立つ。このようにして、エグゼキュータおよびサービスに対して異なるファイアウォールルールを設定するなど、特別な挙動をコンポーネントごとに構成することができる。エグゼキュータは、いくつかの実施形態では、モニターごとにDPI設定を常に認識することができる。結果として、ワークフローは、それらが作成されたコンピューティングシステムの構成にかかわらず、任意のDPIで遂行され得る。いくつかの実施形態では、デザイナ110からのプロジェクトは、ブラウザのズームレベルとは無関係であってもよい。DPIを認識していない、または意図的に認識していないとマークされたアプリケーションの場合、いくつかの実施形態ではDPIを無効にすることができる。
【0038】
図2は、本発明の一実施形態による、展開されたRPAシステム200を示すアーキテクチャ図である。いくつかの実施形態では、RPAシステム200は、
図1のRPAシステム100であってもよいし、その一部であってもよい。クライアント側、サーバー側、またはその両方は、本発明の範囲から逸脱することなく、任意の所望の数のコンピューティングシステムを含むことができることに留意されたい。クライアント側では、ロボットアプリケーション210は、エグゼキュータ212と、エージェント214と、デザイナ216と、を含む。しかしながら、いくつかの実施形態では、デザイナ216は、コンピューティングシステム210上で実行されていなくてもよい。エグゼキュータ212は、実行中のプロセスである。
図2に示すように、いくつかのビジネスプロジェクトが同時に実行されてもよい。エージェント214(例えば、Windows(登録商標)サービス)は、この実施形態ではすべてのエグゼキュータ212に対する単一の接続ポイントである。この実施形態におけるすべてのメッセージは、データベースサーバー240、インデクササーバー250、またはその両方を介してそれらをさらに処理するコンダクタ230にログされる。
図1に関して上述したように、エグゼキュータ212はロボットコンポーネントであってもよい。
【0039】
いくつかの実施形態では、ロボットは、機械名とユーザー名との間の関連付けを表す。ロボットは、複数のエグゼキュータを同時に管理することができる。同時に実行される複数のインタラクティブなセッション(例えば、Windows(登録商標)Server 2012)をサポートするコンピューティングシステムでは、複数のロボットが同時に実行され、それぞれが一意のユーザー名を使用して別々のWindows(登録商標)セッションで実行されてもよい。これは、上記ではHDロボットと呼ばれる。
【0040】
エージェント214はまた、ロボットのステータス(例えば、ロボットがまだ機能していることを示す「ハートビート」メッセージを定期的に送信する)を送信し、遂行されるパッケージの必要なバージョンをダウンロードする役割も担う。エージェント214とコンダクタ230との間の通信は、いくつかの実施形態では常にエージェント214によって開始される。通知シナリオでは、エージェント214は、ロボットにコマンド(例えば、始動、停止など)を送信するためにコンダクタ230によって後で使用されるWebSocketチャネルを開くことができる。
【0041】
サーバー側には、プレゼンテーション層(ウェブアプリケーション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)およびJavaScript(JS)を使用する。しかしながら、本発明の範囲から逸脱することなく、任意の所望のマークアップ言語、スクリプト言語、または任意の他のフォーマットを使用することができる。ユーザーは、コンダクタ230を制御するための様々なアクションを実行するために、この実施形態ではブラウザ220を介してウェブアプリケーション232からのウェブページとインタラクトする。例えば、ユーザーは、ロボットグループを作成し、ロボットにパッケージを割り当て、ロボットごとおよび/またはプロセスごとにログを解析し、ロボットを起動および停止することなどができる。
【0042】
ウェブアプリケーション232に加えて、コンダクタ230はまた、OData REST APIエンドポイント234を公開するサービス層を含む。しかしながら、本発明の範囲から逸脱することなく、他のエンドポイントが含まれてもよい。REST APIは、ウェブアプリケーション232とエージェント214の両方によって消費される。エージェント214は、この実施形態ではクライアントコンピュータ上の1つまたは複数のロボットの管理者である。
【0043】
この実施形態におけるREST APIは、構成、ロギング、監視、およびキューイング機能をカバーする。構成エンドポイントは、いくつかの実施形態では、アプリケーションユーザー、権限、ロボット、アセット、リリース、および環境を定義および構成するために使用され得る。例えば、エラー、ロボットによって送信された明示的なメッセージ、および他の環境固有の情報などの様々な情報をログに記録するために、RESTエンドポイントをロギングすることができる。開始ジョブコマンドがコンダクタ230内で使用される場合に遂行されるべきパッケージバージョンをクエリするために、デプロイメントRESTエンドポイントがロボットによって使用されてもよい。RESTエンドポイントをキューイングすることは、キューにデータを追加すること、キューからトランザクションを取得すること、トランザクションの状態を設定することなど、キューおよびキュー項目管理を担当することができる。
【0044】
RESTエンドポイントの監視は、ウェブアプリケーション232およびエージェント214を監視することができる。通知監視API236は、エージェント214の登録、エージェント214への構成設定の配信、ならびにサーバーおよびエージェント214からの通知の送信/受信に使用されるRESTエンドポイントであってもよい。通知監視API236はまた、いくつかの実施形態では、WebSocket通信を使用してもよい。
【0045】
永続層は、この実施形態におけるサーバーのペア、すなわちデータベースサーバー240(例えば、SQLサーバー)およびインデクササーバー250を含む。この実施形態におけるデータベースサーバー240は、ロボット、ロボットグループ、関連するプロセス、ユーザー、役割、スケジュールなどの構成を格納する。この情報は、いくつかの実施形態ではウェブアプリケーション232を介して管理される。データベースサーバー240は、キューおよびキュー項目を管理することができる。いくつかの実施形態では、データベースサーバー240は、(インデクササーバー250に加えて、またはその代わりに)ロボットによって記録されたメッセージを格納することができる。
【0046】
インデクササーバー250は、いくつかの実施形態ではオプションであり、ロボットによって記録された情報を格納し、インデックス付けする。特定の実施形態では、インデクササーバー250は、構成設定を通じて無効にすることができる。いくつかの実施形態では、インデクササーバー250は、オープンソースプロジェクトのフルテキスト検索エンジンであるElasticSearch(登録商標)を使用する。ロボット(例えば、ログメッセージまたは行書き込みのようなアクティビティを使用する)によってログされたメッセージは、ロギングRESTエンドポイントを介してインデクササーバー250に送信されてもよく、そこでそれらは将来の利用のためにインデックス付けされる。
【0047】
図3は、本発明の一実施形態による、デザイナ310、アクティビティ320、330、およびドライバ340の間の関係300を示すアーキテクチャ図である。上記により、開発者は、デザイナ310を使用して、ロボットによって遂行されるワークフローを開発する。ワークフローは、ユーザー定義のアクティビティ320およびUI自動化アクティビティ330を含むことができる。いくつかの実施形態は、本明細書ではコンピュータビジョン(CV)と呼ばれる、画像内の非テキスト視覚コンポーネントを識別することができる。そのようなコンポーネントに関係するいくつかのCVアクティビティは、クリック、タイプ、テキストを取得、ホバー、要素存在、リフレッシュ範囲、ハイライトなどを含み得るが、これらに限定されない。いくつかの実施形態では、クリックは、例えば、CV、光学文字認識(OCR)、ファジー文字マッチング、およびマルチアンカーを使用して要素を識別し、それをクリックする。タイプは、上記および要素内のタイプを使用して要素を識別することができる。テキストを取得し、OCRを使用して特定のテキストの位置を識別し、それをスキャンすることができる。ホバーは、要素を識別し、それをホバーすることができる。要素が存在することは、上述した技術を使用して、画面上に要素が存在するかどうかをチェックすることができる。いくつかの実施形態では、デザイナ310に実装することができるアクティビティは、数百または数千であってもよい。しかしながら、本発明の範囲から逸脱することなく、任意の数および/またはタイプのアクティビティが利用可能であり得る。
【0048】
UI自動化アクティビティ330は、下位レベルコード(例えば、CVアクティビティ)に書き込まれ、画面とのインタラクションを容易にする特別な低レベルのアクティビティのサブセットである。UI自動化アクティビティ330は、ロボットが所望のソフトウェアとインタラクトすることを可能にするドライバ340を介したこれらのインタラクションを容易にする。例えば、ドライバ340は、OSドライバ342、ブラウザドライバ344、VMドライバ346、エンタープライズアプリケーションドライバ348などを含んでもよい。
【0049】
ドライバ340は、フックを探し、キーを監視するなど、低レベルでOSとインタラクトすることができる。それらは、Chrome(登録商標)、IE(登録商標)、Citrix(登録商標)、SAP(登録商標)などとの統合を容易にすることができる。例えば、「クリック」アクティビティは、ドライバ340を介してこれらの異なるアプリケーションで同じ役割を実行する。
【0050】
図4は、本発明の一実施形態による、RPAシステム400を示すアーキテクチャ図である。いくつかの実施形態では、RPAシステム400は、
図1および/または
図2のRPAシステム100および/または200であり得るか、それらを含み得る。RPAシステム400は、ロボットを実行する複数のクライアントコンピューティングシステム410を含む。コンピューティングシステム410は、その上で実行されるウェブアプリケーションを介してコンダクタコンピューティングシステム420と通信することができる。次に、コンダクタコンピューティングシステム420は、データベースサーバー430および任意選択のインデクササーバー440と通信することができる。
【0051】
図1および
図3に関して、これらの実施形態ではウェブアプリケーションが使用されているが、本発明の範囲から逸脱することなく、任意の適切なクライアント/サーバーソフトウェアを使用できることに留意されたい。例えば、コンダクタは、クライアントコンピューティングシステム上の非ウェブベースのクライアントソフトウェアアプリケーションと通信するサーバー側アプリケーションを実行することができる。
【0052】
図5は、本発明の一実施形態による、MLを使用してRPAワークフローを自動的にアクティブ化および構成するように構成されたコンピューティングシステム500を示すアーキテクチャ図である。いくつかの実施形態では、コンピューティングシステム500は、本明細書に図示および/または記載されたコンピューティングシステムのうちの1つまたは複数であってもよい。コンピューティングシステム500は、情報を通信するためのバス505または他の通信機構と、情報を処理するためにバス505に結合されたプロセッサ510と、を含む。プロセッサ510は、中央プロセッシングユニット(CPU)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、グラフィックスプロセッシングユニット(GPU)、それらの複数のインスタンス、および/またはそれらの任意の組み合わせを含む、任意のタイプの汎用または専用プロセッサであってもよい。プロセッサ510はまた、複数の処理コアを有してもよく、コアの少なくともいくつかは、特定の機能を実行するように構成されてもよい。いくつかの実施形態では、複数並列処理が使用されてもよい。特定の実施形態では、プロセッサ510の少なくとも一方は、生体ニューロンを模倣する処理要素を含むニューロモーフィック回路であってもよい。いくつかの実施形態では、ニューロモーフィック回路は、フォンノイマンコンピューティングアーキテクチャの典型的なコンポーネントを必要としない場合がある。
【0053】
コンピューティングシステム500は、プロセッサ510によって遂行される情報および命令を格納するためのメモリ515をさらに含む。メモリ515は、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、フラッシュメモリ、キャッシュ、磁気もしくは光ディスクなどの静的ストレージ、または任意の他のタイプの非一時的コンピュータ可読媒体、またはそれらの組み合わせの任意の組み合わせで構成することができる。非一時的コンピュータ可読媒体は、プロセッサ510によってアクセス可能な任意の利用可能な媒体であってもよく、揮発性媒体、不揮発性媒体、またはその両方を含んでもよい。媒体はまた、取り外し可能、取り外し不能、またはその両方であってもよい。
【0054】
さらに、コンピューティングシステム500は、無線接続および/または有線接続を介して通信ネットワークへのアクセスを提供するためのトランシーバなどの通信デバイス520を含む。いくつかの実施形態では、通信デバイス520は、周波数分割多元接続(FDMA)、シングルキャリアFDMA(SC-FDMA)、時分割多元接続(TDMA)、符号分割多元接続(CDMA)、直交周波数分割多重方式(OFDM)、直交周波数分割多元接続(OFDMA)、移動体用グローバルシステム(GSM)通信、汎用パケット無線サービス(GPRS)、ユニバーサル移動体通信システム(UMTS)、cdma2000、広帯域CDMA(W-CDMA)、高速ダウンリンクパケットアクセス(HSDPA)、高速アップリンクパケットアクセス(HSUPA)、高速パケットアクセス(HSPA)、ロングタームエボリューション(LTE)、LTEアドバンスト(LTE-A)、802.11x、Wi-Fi、Zigbee、超広帯域無線(UWB)、802.16x、802.15、ホームノードB(HnB)、Bluetooth、無線周波数識別(RFID)、赤外線データ協会(IrDA)、近距離通信(NFC)、第5世代(5G)、新無線(NR)、それらの任意の組み合わせ、ならびに/あるいは本発明の範囲から逸脱することなく、任意の他の現在存在する、または将来実施される通信規格および/またはプロトコルを使用するように構成されてもよい。いくつかの実施形態では、通信デバイス520は、本発明の範囲から逸脱することなく、単一、アレイ、位相、切り替え、ビームフォーミング、ビームステア、それらの組み合わせ、および/または任意の他のアンテナ構成である1つまたは複数のアンテナを含むことができる。
【0055】
プロセッサ510はさらに、バス505を介して、プラズマディスプレイ、液晶ディスプレイ(LCD)、発光ダイオード(LED)ディスプレイ、電界放出ディスプレイ(FED)、有機発光ダイオード(OLED)ディスプレイ、フレキシブルOLEDディスプレイ、フレキシブル基板ディスプレイ、プロジェクションディスプレイ、4Kディスプレイ、高精細ディスプレイ、Retina(登録商標)ディスプレイ、インプレーンスイッチング(IPS)ディスプレイ、またはユーザーに情報を表示するための任意の他の適切なディスプレイなどのディスプレイ525にさらに結合される。ディスプレイ525は、抵抗性、容量性、表面弾性波(SAW)容量性、赤外線、光学イメージング、分散信号技術、音響パルス認識、フラストレート全内部反射などを使用して、タッチ(触覚)ディスプレイ、3次元(3D)タッチディスプレイ、マルチ入力タッチディスプレイ、マルチタッチディスプレイなどとして構成され得る。本発明の範囲から逸脱することなく、任意の適切なディスプレイデバイスおよび触覚I/Oが使用され得る。
【0056】
キーボード530およびコンピュータマウス、タッチパッドなどのカーソル制御デバイス535は、ユーザーがコンピューティングシステムとインターフェースすることを可能にするためにバス505にさらに結合される。しかしながら、特定の実施形態では、物理的なキーボードおよびマウスが存在しなくてもよく、ユーザーは、ディスプレイ525および/またはタッチパッド(図示せず)のみを介してデバイスとインタラクトすることができる。入力デバイスの任意のタイプおよび組み合わせを、設計上の選択事項として使用することができる。特定の実施形態では、物理的入力デバイスおよび/またはディスプレイは存在しない。例えば、ユーザーは、それと通信する別のコンピューティングシステムを介してコンピューティングシステム500と遠隔でインタラクトすることができ、またはコンピューティングシステム500は自律的に動作することができる。
【0057】
メモリ515は、プロセッサ510によって遂行されると機能を提供するソフトウェアモジュールを格納する。モジュールは、コンピューティングシステム500のためのオペレーティングシステム540を含む。モジュールは、本明細書に記載のプロセスまたはその派生物の全部または一部を実行するように構成された自動ワークフローアクティブ化および構成モジュール545をさらに含む。コンピューティングシステム500は、追加の機能を含む1つまたは複数の追加の機能モジュール550を含むことができる。
【0058】
当業者は、「システム」が、本発明の範囲から逸脱することなく、サーバー、組込みコンピューティングシステム、パーソナルコンピュータ、コンソール、パーソナルデジタルアシスタント(PDA)、携帯電話、タブレットコンピューティングデバイス、量子コンピューティングシステム、もしくは任意の他の適切なコンピューティングデバイス、またはデバイスの組み合わせとして具現化され得ることを理解するであろう。上記の機能を「システム」によって実行されるものとして提示することは、本発明の範囲を決して限定することを意図するものではなく、本発明の多くの実施形態の一例を提供することを意図している。実際、本明細書に開示する方法、システム、および装置は、クラウドコンピューティングシステムを含むコンピューティング技術と一致する局所化された形態および分散された形態で実装されてもよい。
【0059】
本明細書に記載されたシステム特徴のいくつかは、それらの実施態様の独立性をより具体的に強調するために、モジュールとして提示されていることに留意されたい。例えば、モジュールは、カスタムの超大規模集積(VLSI)回路またはゲートアレイ、ロジックチップ、トランジスタ、または他のディスクリートコンポーネントなどの既製の半導体を含むハードウェア回路として実装されてもよい。モジュールはまた、フィールドプログラマブルゲートアレイ、プログラマブルアレイロジック、プログラマブルロジックデバイス、グラフィックスプロセッシングユニットなどのプログラマブルハードウェアデバイスに実装されてもよい。
【0060】
モジュールはまた、様々なタイプのプロセッサによって遂行するためのソフトウェアに少なくとも部分的に実装されてもよい。遂行可能コードの識別されたユニットは、例えば、オブジェクト、プロシージャ、または関数として編成することができるコンピュータ命令の1つまたは複数の物理ブロックまたは論理ブロックを含むことができる。それにもかかわらず、識別されたモジュールの遂行可能ファイルは、物理的に共に配置される必要はないが、論理的に共に結合されたときにモジュールを含み、モジュールの記載された目的を達成する異なる場所に格納された異なる命令を含むことができる。さらに、モジュールは、コンピュータ可読媒体に格納されてもよく、それは、例えば、ハードディスクドライブ、フラッシュデバイス、RAM、テープ、および/または本発明の範囲から逸脱することなくデータを格納するために使用される任意の他のそのような非一時的コンピュータ可読媒体であってもよい。
【0061】
実際、遂行可能コードのモジュールは、単一の命令、または多くの命令であってもよく、いくつかの異なるコードセグメント、異なるプログラム、およびいくつかのメモリデバイスに分散されてもよい。同様に、操作データは、本明細書ではモジュール内で識別および図示されてもよく、任意の適切な形態で具現化され、任意の適切なタイプのデータ構造内に編成されてもよい。操作データは、単一のデータセットとして収集されてもよく、または異なるストレージデバイスを含む異なる場所に分散されてもよく、少なくとも部分的に、システムまたはネットワーク上の電子信号としてのみ存在してもよい。
【0062】
図6は、本発明の一実施形態による、自動アクティブ化のためにMLを使用するRPAワークフロー600を示す。RPAワークフロー600において、決定論的アクティビティ1 610は常に決定論的アクティビティ2 620をもたらし、決定論的アクティビティ2 620は常に確率論的アクティビティ630をもたらす。しかしながら、確率論的アクティビティ630は、MLモデル640を使用してデータを処理し、信頼度値を返す。例えば、MLモデル640が画像内の車を認識するように訓練され、信頼度しきい値が70%である場合には、RPAワークフロー600は、この70%信頼度しきい値が満たされた場合にのみ決定論的アクティビティ3 650に進み、決定論的アクティビティ4 660に進む。この意味で、RPAワークフロー600を遂行するロボットは、信頼度しきい値およびMLモデル640からの出力に基づいてステップ650および660をオンまたはオフにする。時間の経過と共に、信頼度しきい値は、それが適用されるシナリオによりよく適合するように修正されてもよく、MLモデルは、より正確になるように再訓練などされてもよい。
【0063】
複数のMLモデルが使用されるいくつかの実施形態では、各MLモデルからの信頼度値を組み合わせて、確率論的アクティビティの信頼度しきい値と比較されるグローバル信頼度値を決定することができる。特定の実施形態では、グローバル信頼度値は、各MLモデルの信頼度値にそれぞれの重みを適用し、重み付き信頼度値を組み合わせることによって決定される。例えば、3つのMLモデルが使用される場合、第1のMLモデルからの信頼度値に50%の重みが適用され得、第2のMLモデルからの信頼度値に30%の重みが適用され得、第3のMLモデルからの信頼度値に20%の重みが適用され得る。
【0064】
図7は、本発明の一実施形態による、MLを使用してRPAワークフローを自動的にアクティブ化および構成するためのプロセス700を示すフローチャートである。プロセスは、710において、複数の決定論的アクティビティと、MLモデルを呼び出す少なくとも1つの確率論的アクティビティと、を含むRPAワークフローを生成することから始まる。その後に、ワークフローを実施するRPAロボットが720で生成される。730において、MLモデルが呼び出され、MLモデルから信頼度値が受信される。740において信頼度値が信頼度しきい値を超えない場合(例えば、MLモデルからの単一の信頼度値、複数のMLモデルからのグローバル信頼度値など)には、750において、確率論的アクティビティに続くワークフローセクションはオフにされるか、取得されないか、または論理的に回避される。任意選択的に、信頼度しきい値は、760において上昇および下降されてもよい。特定の実施形態では、システムは、ワークフローのプロセスが所定の回数実行されるまで、所定の時間が経過するまでなど、信頼度しきい値を修正するのを待つことができる。
【0065】
740で信頼度値が信頼度しきい値を超える場合には、770で確率論的アクティビティに続くワークフローのセクションがオンにされるか、取得されるか、または論理的に有効にされ、780で確率論的アクティビティが実行された後のワークフローセクションが遂行される。任意選択的に、信頼度しきい値は、760において上昇および下降されてもよい。
【0066】
いくつかの実施形態では、信頼度しきい値の修正は、MLモデルの欠陥のために所望の結果を達成しない可能性がある。例えば、上記の自動小売システムの例を挙げると、所定の数の調整(例えば20)後に購入する商品を取るユーザーの信頼度しきい値に対する変更にかかわらず、誤判定率が許容できないほど高いままである(例えば、5%)場合を考える。790において、MLモデルの少なくとも一方が所望の結果を達成していないと判定することができる。次いで、795でMLモデルを再訓練することができる。RPAロボットが判定を行う場合、ステップ790は、RPAロボットが、MLモデルの再訓練が実行されるべきであるという指示をサーバーに送信することを含むことができる。
【0067】
図8は、本発明の一実施形態による、MLを使用してRPAワークフローを自動的にアクティブ化および構成するための別のプロセス800を示すフローチャートである。プロセスは、810において、複数の決定論的アクティビティと、MLモデルを呼び出す少なくとも1つの確率論的アクティビティとを含むRPAワークフローを生成することから始まる。820において、MLモデルが呼び出され、MLモデルから信頼度値が受信される。
【0068】
信頼度値が受信された後に、830において、信頼度値が複数の信頼度しきい値範囲と比較される。次いで、840において、信頼度値が入る信頼度しきい値範囲に対応する確率論的アクティビティ後のワークフローの後続のセクションが遂行される。任意選択的に、850において、信頼度範囲のうちの1つまたは複数を修正することができる。1つまたは複数の信頼度範囲の変更は、勝利状態が達成されるまで繰り返されてもよい。
【0069】
いくつかの実施形態では、決定論的アクティビティと確率論的アクティビティとのより複雑な混合をワークフローで使用することができる。実際、本発明の範囲から逸脱することなく、決定論的アクティビティおよび確率論的アクティビティの任意のタイプおよび組み合わせを採用することができる。実際、特定の実施形態では、ワークフローのいくつかの部分は
図7と同様であり得るが、他の部分は
図8と同様であり得る。
【0070】
図7および
図8で実行されるプロセスステップは、本発明の実施形態に従って、プロセッサが
図7および
図8で説明したプロセスの少なくとも一部を実行するための命令を符号化するコンピュータプログラムによって実行されてもよい。コンピュータプログラムは、非一時的コンピュータ可読媒体上で具現化されてもよい。コンピュータ可読媒体は、ハードディスクドライブ、フラッシュデバイス、RAM、テープ、および/またはデータを格納するために使用される任意の他のそのような媒体または媒体の組み合わせであってもよいが、これらに限定されない。コンピュータプログラムは、コンピュータ可読媒体に格納することもできる、
図7および
図8で説明したプロセスステップの全部または一部を実施するようにコンピューティングシステムのプロセッサ(例えば、
図5のコンピューティングシステム500のプロセッサ510)を制御するための符号化命令を含むことができる。
【0071】
コンピュータプログラムは、ハードウェア、ソフトウェア、またはハイブリッド実装で実施することができる。コンピュータプログラムは、互いに動作可能に通信し、表示するために情報または命令を渡すように設計されたモジュールから構成することができる。コンピュータプログラムは、汎用コンピュータ、ASIC、または任意の他の適切なデバイス上で動作するように構成することができる。
【0072】
本発明の様々な実施形態のコンポーネントは、本明細書の図に一般的に記載および図示するように、多種多様な異なる構成で配置および設計されてもよいことが容易に理解されよう。したがって、添付の図面に表される本発明の実施形態の詳細な説明は、特許請求される本発明の範囲を限定することを意図するものではなく、本発明の選択された実施形態を単に代表するものである。
【0073】
本明細書を通して説明される本発明の特徴、構造、または特性は、1つまたは複数の実施形態において任意の適切な方法で組み合わせることができる。例えば、本明細書全体を通して「特定の実施形態」、「いくつかの実施形態」、または同様の文言への言及は、実施形態に関連して説明される特定の特徴、構造、または特性が本発明の少なくとも1つの実施形態に含まれることを意味する。したがって、本明細書全体を通して、「特定の実施形態では」、「いくつかの実施形態では」、「他の実施形態では」というフレーズ、または同様の文言の出現は、必ずしもすべてが同じ実施形態のグループを指すわけではなく、記載された特徴、構造、または特性は、1つまたは複数の実施形態において任意の適切な方法で組み合わせることができる。
【0074】
本明細書を通して特徴、利点、または同様の文言を参照することは、本発明で実現され得る特徴および利点のすべてが本発明の任意の単一の実施形態であるべきであること、または本発明の任意の単一の実施形態であることを意味するものではないことに留意されたい。むしろ、特徴および利点に言及する文言は、一実施形態に関連して説明される特定の特徴、利点、または特性が本発明の少なくとも1つの実施形態に含まれることを意味すると理解される。したがって、本明細書を通して、特徴および利点、ならびに同様の文言の説明は、必ずしもそうとは限らないが、同じ実施形態を参照することができる。
【0075】
さらに、本発明の記載された特徴、利点、および特性は、1つまたは複数の実施形態において任意の適切な方法で組み合わせることができる。当業者は、特定の実施形態の特定の特徴または利点の1つまたは複数なしで本発明を実施できることを認識するであろう。他の例では、本発明のすべての実施形態には存在しない可能性がある特定の実施形態において、追加の特徴および利点が認識され得る。
【0076】
当業者は、上述の本発明が、異なる順序のステップ、および/または開示されているものとは異なる構成のハードウェア要素を用いて実施され得ることを容易に理解するであろう。したがって、本発明をこれらの好ましい実施形態に基づいて説明してきたが、本発明の趣旨および範囲内に留まりながら、特定の修正、変形、および代替構築が明らかであることは、当業者には明らかであろう。したがって、本発明の範囲を決定するために、添付の特許請求の範囲を参照すべきである。
【国際調査報告】