IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ユーアイパス,インコーポレイテッドの特許一覧

特開2023-70074ロボティックプロセスオートメーションのための長時間実行ワークフローを使用した人工知能フローの構築および管理
<>
  • 特開-ロボティックプロセスオートメーションのための長時間実行ワークフローを使用した人工知能フローの構築および管理 図1
  • 特開-ロボティックプロセスオートメーションのための長時間実行ワークフローを使用した人工知能フローの構築および管理 図2
  • 特開-ロボティックプロセスオートメーションのための長時間実行ワークフローを使用した人工知能フローの構築および管理 図3
  • 特開-ロボティックプロセスオートメーションのための長時間実行ワークフローを使用した人工知能フローの構築および管理 図4
  • 特開-ロボティックプロセスオートメーションのための長時間実行ワークフローを使用した人工知能フローの構築および管理 図5
  • 特開-ロボティックプロセスオートメーションのための長時間実行ワークフローを使用した人工知能フローの構築および管理 図6A
  • 特開-ロボティックプロセスオートメーションのための長時間実行ワークフローを使用した人工知能フローの構築および管理 図6B
  • 特開-ロボティックプロセスオートメーションのための長時間実行ワークフローを使用した人工知能フローの構築および管理 図7
  • 特開-ロボティックプロセスオートメーションのための長時間実行ワークフローを使用した人工知能フローの構築および管理 図8A
  • 特開-ロボティックプロセスオートメーションのための長時間実行ワークフローを使用した人工知能フローの構築および管理 図8B
  • 特開-ロボティックプロセスオートメーションのための長時間実行ワークフローを使用した人工知能フローの構築および管理 図8C
  • 特開-ロボティックプロセスオートメーションのための長時間実行ワークフローを使用した人工知能フローの構築および管理 図9
  • 特開-ロボティックプロセスオートメーションのための長時間実行ワークフローを使用した人工知能フローの構築および管理 図10
  • 特開-ロボティックプロセスオートメーションのための長時間実行ワークフローを使用した人工知能フローの構築および管理 図11
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023070074
(43)【公開日】2023-05-18
(54)【発明の名称】ロボティックプロセスオートメーションのための長時間実行ワークフローを使用した人工知能フローの構築および管理
(51)【国際特許分類】
   G06N 20/00 20190101AFI20230511BHJP
【FI】
G06N20/00
【審査請求】未請求
【請求項の数】28
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2022159911
(22)【出願日】2022-10-04
(31)【優先権主張番号】17/518,855
(32)【優先日】2021-11-04
(33)【優先権主張国・地域又は機関】US
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.ZIGBEE
2.BLUETOOTH
(71)【出願人】
【識別番号】520262319
【氏名又は名称】ユーアイパス,インコーポレイテッド
【氏名又は名称原語表記】UiPath,Inc.
【住所又は居所原語表記】1 Vanderbilt Avenue, 60th Floor, New York, NY 10017, United States of America
(74)【代理人】
【識別番号】110003487
【氏名又は名称】弁理士法人東海特許事務所
(72)【発明者】
【氏名】アントン マクゴネル
(72)【発明者】
【氏名】マルコ アルバン ヒダルゴ
(72)【発明者】
【氏名】プラブディープ シング
(57)【要約】      (修正有)
【課題】人工知能(AI)/機械学習(ML)モデルの訓練/再訓練のライフサイクルを管理する。
【解決手段】人工知能フローを有する長時間実行ワークフローを使用することが開示される。AI/MLモデルが、長時間実行ワークフローを遂行するロボティックプロセスオートメーション(RPA)ロボットによって呼び出されるとき、検証が望まれ得る。この検証は、ユーザーからの動的入力を含む。RPAロボットは、ユーザーからの動的入力を受信し、このデータを、代替AI/MLモデルの訓練または呼び出されたAI/MLモデルの再訓練のために使用する。長時間実行ワークフローの状態は、訓練およびサービングの両方において保存され得る。長時間実行ワークフローは、現在の遂行がMLモデルのライフサイクルのどこにあるかを追跡し続けるために使用され得る。
【選択図】図8A
【特許請求の範囲】
【請求項1】
コンピューティングシステム上で実行している現在の人工知能(AI)/機械学習(ML)モデルと、
前記現在のAI/MLモデルと同じコンピューティングシステムまたは別のコンピューティングシステム上で実行しているロボティックプロセスオートメーション(RPA)ロボットと、を備え、前記RPAロボットは、
前記現在のAI/MLモデルを呼び出すAIフローを含む長時間実行ワークフローを遂行し、
前記RPAロボットによって前記現在のAI/MLモデルへの呼び出しが行われ、前記AI/MLモデルに関連付けられた信頼度が人間による検証の閾値を下回った場合、
前記長時間実行ワークフローの遂行を一時停止し、前記人間による検証に関連する動的入力を待ち、
前記人間の検証から前記動的入力を収集し、前記動的入力は訓練データを含み、
前記動的入力を受信した後、前記長時間実行ワークフローの遂行を継続するように構成される、システム。
【請求項2】
前記RPAロボットはさらに、
収集された前記動的入力を用いて、代替AI/MLモデルを訓練するか、または前記現在のAI/MLモデルを再訓練し、
訓練された前記代替AI/MLモデルまたは再訓練された前記現在のAI/MLモデルを、前記現在のAI/MLモデルの代わりに使用するために展開するように構成される、請求項1に記載のシステム。
【請求項3】
前記RPAロボットはさらに、
前記長時間実行ワークフローの状態を保持するように構成され、
前記長時間実行ワークフローの前記状態は、前記RPAロボットが遂行中のアクティビティ、前記アクティビティに対する入力、および人間の検証データを含む、請求項1に記載のシステム。
【請求項4】
前記RPAロボットはさらに、
前記RPAロボットが遂行する前記コンピューティングシステムの電源が切られた後、前記コンピューティングシステムがクラッシュした後、または処理リソースが訓練している代替AI/MLモデルもしくは再訓練している前記現在のAI/MLモデルから離れて再割り当てされた後に、保存された前記状態に基づいて前記長時間実行ワークフローを再開するように構成される、請求項3に記載のシステム。
【請求項5】
前記長時間実行ワークフローは、ワークフローの断片化を促進する1または複数の永続化アクティビティを含む、請求項1に記載のシステム。
【請求項6】
前記RPAロボットはさらに、
前記現在のAI/MLモデルがAI/MLモデルのライフサイクルのどこにあるかを追跡するように構成され、
前記AI/MLモデルのライフサイクルは、AI/MLモデルの初期訓練フェーズと、前記初期訓練されたAI/MLモデルを用いたサービング動作フェーズと、本番動作前の前記AI/MLモデルの再訓練フェーズと、再訓練された前記AI/MLモデルが本番動作のために展開される場合の本番動作フェーズとを含む、請求項1に記載のシステム。
【請求項7】
前記現在のAI/MLモデルに関連する前記信頼度は、前記現在のAI/MLモデルによって出力される信頼スコアである、請求項1に記載のシステム。
【請求項8】
前記現在のAI/MLモデルに関連する前記信頼度は、監視AI/MLモデルによって生成され、
前記RPAロボットは、前記監視AI/MLモデルを呼び出し、前記監視AI/MLモデルから前記現在のAI/MLモデルに対する前記信頼度を受信するように構成される、請求項1に記載のシステム。
【請求項9】
前記RPAロボットは、前記現在のAI/MLモデルに対する前記信頼度を得るために確率的ビジネスルールを適用するように構成される、請求項1に記載のシステム。
【請求項10】
前記RPAロボットは、前記現在のAI/MLモデルのデータドリフトおよびコンセプトドリフトを経時的に監視するように構成される、請求項1に記載のシステム。
【請求項11】
コンピュータプログラムを格納した非一時的なコンピュータ読み取り可能な媒体であって、前記コンピュータプログラムは、少なくとも1つのプロセッサが、
現在の人工知能(AI)/機械学習(ML)モデルを呼び出す人工知能(AI)フローを含む長時間実行ワークフローを遂行し、
前記現在のAI/MLモデルに関連する信頼度を決定し、
前記AI/MLモデルに関連する前記信頼度が、人間による検証の閾値を下回った場合、
前記長時間実行ワークフローの遂行を一時停止し、前記人間による検証に関連する動的入力を待ち、
前記人間の検証から前記動的入力を収集し、前記動的入力は訓練データを含み、
前記動的入力を受信した後、前記長時間実行ワークフローの遂行を継続するように構成される、非一時的なコンピュータ読み取り可能な媒体。
【請求項12】
前記コンピュータプログラムはさらに、前記少なくとも1つのプロセッサが、
収集された前記動的入力を用いて、代替AI/MLモデルを訓練するか、または前記現在のAI/MLモデルを再訓練し、
訓練された前記代替AI/MLモデルまたは再訓練された前記現在のAI/MLモデルを、前記現在のAI/MLモデルの代わりに使用するために展開するように構成される、請求項11に記載の非一時的なコンピュータ読み取り可能な媒体。
【請求項13】
前記コンピュータプログラムはさらに、前記少なくとも1つのプロセッサが、
前記長時間実行ワークフローの状態を保持するように構成され、
前記コンピュータプログラムは、ロボティックプロセスオートメーション(RPA)ロボットである、またはそれを含み、
前記長時間実行ワークフローの前記状態は、前記RPAロボットが遂行中のアクティビティ、前記アクティビティに対する入力、および人間の検証データを含む、請求項11に記載の非一時的なコンピュータ読み取り可能な媒体。
【請求項14】
前記コンピュータプログラムはさらに、前記少なくとも1つのプロセッサが、
前記RPAロボットが遂行するコンピューティングシステムの電源が切られた後、前記コンピューティングシステムがクラッシュした後、または処理リソースが訓練している代替AI/MLモデルもしくは再訓練している前記現在のAI/MLモデルから離れて再割り当てされた後に、保存された前記状態に基づいて前記長時間実行ワークフローを再開するように構成される、請求項13に記載の非一時的なコンピュータ読み取り可能な媒体。
【請求項15】
前記コンピュータプログラムはさらに、前記少なくとも1つのプロセッサが、
前記現在のAI/MLモデルがAI/MLモデルのライフサイクルのどこにあるかを追跡するように構成され、
前記AI/MLモデルのライフサイクルは、AI/MLモデルの初期訓練フェーズと、前記初期訓練されたAI/MLモデルを用いたサービング動作フェーズと、本番動作前の前記AI/MLモデルの再訓練フェーズと、再訓練された前記AI/MLモデルが本番動作のために展開される場合の本番動作フェーズを含む、請求項11に記載の非一時的なコンピュータ読み取り可能な媒体。
【請求項16】
前記現在のAI/MLモデルに関連する前記信頼度は、前記現在のAI/MLモデルによって出力される信頼スコアである、請求項11に記載の非一時的なコンピュータ読み取り可能な媒体。
【請求項17】
前記現在のAI/MLモデルに関連する前記信頼度は、監視AI/MLモデルによって生成され、
前記コンピュータプログラムは、前記少なくとも1つのプロセッサが、前記監視AI/MLモデルを呼び出し、前記監視AI/MLモデルから前記現在のAI/MLモデルに対する前記信頼度を受信するように構成される、請求項11に記載の非一時的なコンピュータ読み取り可能な媒体。
【請求項18】
前記コンピュータプログラムは、前記少なくとも1つのプロセッサが、前記現在のAI/MLモデルに対する前記信頼度を得るために確率的ビジネスルールを適用するように構成される、請求項11に記載の非一時的なコンピュータ読み取り可能な媒体。
【請求項19】
前記コンピュータプログラムは、前記少なくとも1つのプロセッサが、前記現在のAI/MLモデルのデータドリフトおよびコンセプトドリフトを経時的に監視するように構成される、請求項11に記載の非一時的なコンピュータ読み取り可能な媒体。
【請求項20】
現在の人工知能(AI)/機械学習(ML)モデルを呼び出す人工知能(AI)フローを含む長時間実行ワークフローを遂行するためのコンピュータプログラム命令を格納するメモリと、
前記コンピュータプログラム命令を遂行するように構成された少なくとも1つのプロセッサとを含み、前記コンピュータプログラム命令は、前記少なくとも1つのプロセッサが、
前記現在のAI/MLモデルに関連する信頼度を決定し、
前記AI/MLモデルに関連する前記信頼度が、人間による検証の閾値を下回った場合、
前記長時間実行ワークフローの遂行を一時停止し、前記人間による検証に関連する動的入力を待ち、
前記人間の検証から前記動的入力を収集し、前記動的入力は訓練データを含む、コンピューティングシステム。
【請求項21】
前記コンピュータプログラム命令はさらに、前記少なくとも1つのプロセッサが、
収集された前記動的入力を用いて、代替AI/MLモデルを訓練するか、または前記現在のAI/MLモデルを再訓練し、
訓練された前記代替AI/MLモデルまたは再訓練された前記現在のAI/MLモデルを、前記現在のAI/MLモデルの代わりに使用するために展開するように構成される、請求項20に記載のコンピューティングシステム。
【請求項22】
前記コンピュータプログラム命令はさらに、前記少なくとも1つのプロセッサが、
前記長時間実行ワークフローの状態を保持するように構成され、
前記コンピュータプログラム命令は、ロボティックプロセスオートメーション(RPA)ロボットである、またはそれを含み、
前記長時間実行ワークフローの前記状態は、前記RPAロボットが遂行中のアクティビティ、前記アクティビティに対する入力、および人間の検証データを含む、請求項20に記載のコンピューティングシステム。
【請求項23】
前記コンピュータプログラム命令はさらに、前記少なくとも1つのプロセッサが、
前記RPAロボットが遂行するコンピューティングシステムの電源が切られた後、前記コンピューティングシステムがクラッシュした後、または処理リソースが訓練している代替AI/MLモデルもしくは再訓練している前記現在のAI/MLモデルから離れて再割り当てされた後に、保存された前記状態に基づいて前記長時間実行ワークフローを再開するように構成される、請求項22に記載のコンピューティングシステム。
【請求項24】
前記コンピュータプログラム命令はさらに、前記少なくとも1つのプロセッサが、
前記現在のAI/MLモデルがAI/MLモデルのライフサイクルのどこにあるかを追跡するように構成され、
前記AI/MLモデルのライフサイクルは、AI/MLモデルの初期訓練フェーズと、前記初期訓練されたAI/MLモデルを用いたサービング動作フェーズと、本番動作前の前記AI/MLモデルの再訓練フェーズと、再訓練された前記AI/MLモデルが本番動作のために展開される場合の本番動作フェーズを含む、請求項20に記載のコンピューティングシステム。
【請求項25】
前記現在のAI/MLモデルに関連する前記信頼度は、前記現在のAI/MLモデルによって出力される信頼スコアである、請求項20に記載のコンピューティングシステム。
【請求項26】
前記現在のAI/MLモデルに関連する前記信頼度は、監視AI/MLモデルによって生成され、
前記コンピュータプログラム命令は、前記少なくとも1つのプロセッサが、前記監視AI/MLモデルを呼び出し、前記監視AI/MLモデルから前記現在のAI/MLモデルに対する前記信頼度を受信するように構成される、請求項20に記載のコンピューティングシステム。
【請求項27】
前記コンピュータプログラム命令は、前記少なくとも1つのプロセッサが、前記現在のAI/MLモデルに対する前記信頼度を得るために確率的ビジネスルールを適用するように構成される、請求項20に記載のコンピューティングシステム。
【請求項28】
前記コンピュータプログラム命令は、前記少なくとも1つのプロセッサが、前記現在のAI/MLモデルのデータドリフトおよびコンセプトドリフトを経時的に監視するように構成される、請求項20に記載のコンピューティングシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は概して、人工知能(AI)および機械学習(ML)に関し、より具体的には、AIフローで長時間実行ワークフローを使用して、AI/MLモデルの訓練/再訓練ライフサイクルを管理することに関する。
【背景技術】
【0002】
Google AutoML(登録商標)およびAzure(登録商標)MLなど、現在のAIツールは基本的にワークフローのようなものである。これらのシステムには、パイプラインと呼ばれる動作のセットが提供される。この機能は、データ変換、表形式データの準備、ビニング、およびクラスタリングなどの機能を提供する。これらは、ユーザーがワークプレースにドラッグアンドドロップすることで、あるコンポーネントから別のコンポーネントにデータを視覚的に送り込み得る基本的な動作である。例は、表形式のデータの準備を含み、この場合、データは、表形式のデータの値を取り込み、それらを個別のクラスに捨ててから、実際のモデルトレーナーに渡すビニングシステムに送り込まれる。
【0003】
しかし、AI/MLモデルの動的入力は、これらのツールでは提供されない。したがって、改良されたアプローチが有益であり得る。
【発明の概要】
【0004】
本発明の特定の実施形態は、現在のAI技術によってまだ十分に特定されていない、評価されていない、または解決されていない本分野における問題およびニーズのソリューションを提供し得る。例えば、本発明のいくつかの実施形態は、AI/MLモデルの訓練/再訓練のライフサイクルを管理するために、AIフローで長時間実行ワークフローを使用することに関する。
【0005】
実施形態では、システムは、コンピューティングシステム上で実行する現在のAI/MLモデルを含む。システムはまた現在のAI/MLモデルと同じコンピューティングシステムまたは別のコンピューティングシステム上で実行しているRPAロボットを含む。RPAロボットは、現在のAI/MLモデルを呼び出すAIフローを含む長時間実行ワークフローを遂行するように構成される。RPAロボットによって現在のAI/MLモデルに呼び出しが行われ、AI/MLモデルに関連する信頼度が人間による検証の閾値を下回った場合、RPAロボットは、長時間実行ワークフローの遂行を一時停止し、人間による検証に係る動的入力を待ち、訓練データを含む人間の検証からの動的入力を収集し、そして動的入力を受信した後に長時間実行ワークフローの遂行を継続するよう構成される。
【0006】
別の実施形態では、非一時的なコンピュータ読み取り可能な媒体は、コンピュータプログラムを格納する。コンピュータプログラムは、少なくとも1つのプロセッサが、現在のAI/MLモデルを呼び出すAIフローを含む長時間実行ワークフローを遂行し、現在のAI/MLモデルに関連する信頼度を決定するように構成される。AI/MLモデルに関連する信頼度が人間による検証の閾値を下回った場合、コンピュータプログラムは、少なくとも1つのプロセッサが、長時間実行ワークフローの遂行を一時停止し、人間による検証に係る動的入力を待ち、訓練データを含む人間の検証からの動的入力を収集し、そして動的入力を受信した後に長時間実行ワークフローの遂行を継続するよう構成される。
【0007】
さらに別の実施形態では、コンピューティングシステムは、現在のAI/MLモデルを呼び出すAIフローを含む長時間実行ワークフローを遂行するためのコンピュータプログラム命令を格納するメモリを含む。コンピューティングシステムはまた、コンピュータプログラム命令を遂行するように構成された少なくとも1つのプロセッサを含む。コンピュータプログラム命令は、少なくとも1つのプロセッサが、現在のAI/MLモデルに関連する信頼度を決定するに構成される。AI/MLモデルに関連する信頼度が人間による検証の閾値を下回った場合、コンピュータプログラム命令は、少なくとも1つのプロセッサが、長時間実行ワークフローの遂行を一時停止し、人間による検証に係る動的入力を待ち、そして人間の検証からの動的入力を収集するよう構成される。動的入力は、訓練データを含む。
【図面の簡単な説明】
【0008】
本発明の特定の実施形態の利点が容易に理解されるように、上記で簡単に説明した本発明のより特定の説明は、添付の図面に図示されている特定の実施形態を参照して描写される。これらの図面は、本発明の典型的な実施形態のみを描いており、したがって、その範囲を限定するものとは考えられないことが理解されるべきであるが、本発明は、以下の添付の図面を使用することにより、さらなる特定および詳細をもって描写され、説明されるであろう。
【0009】
図1】本発明の実施形態による、RPAシステムを示すアーキテクチャ図である。
【0010】
図2】本発明の実施形態による、展開したRPAシステムを示すアーキテクチャ図である。
【0011】
図3】本発明の実施形態による、デザイナ、アクティビティ、およびドライバの間の関係を示すアーキテクチャ図である。
【0012】
図4】本発明の実施形態による、RPAシステムを示すアーキテクチャ図である。
【0013】
図5】本発明の実施形態による、長時間実行ワークフローを使用してAIフローを構築および管理するように構成されたコンピューティングシステムを示すアーキテクチャ図である。
【0014】
図6A】本発明の実施形態による、画像内のグラフィカル要素を認識するように訓練されたニューラルネットワークの例を示す。
【0015】
図6B】本発明の実施形態によるニューロンの例を示す。
【0016】
図7】本発明の実施形態による、AIスキルスタジオのユーザーインターフェースを示す。
【0017】
図8A】本発明の実施形態による、コンダクタアプリケーションのプロセスデザイナの設計図を示す。
図8B】本発明の実施形態による、コンダクタアプリケーションのプロセスデザイナの設計図を示す。
【0018】
図8C】本発明の実施形態による、コンダクタアプリケーションのプロセスデザイナの設計図を示す。
【0019】
図9】本発明の実施形態による、長時間実行ワークフローを使用してAIフローを構築および管理するように構成されたシステムを示すアーキテクチャ図である。
【0020】
図10】本発明の実施形態による、AIを使用する例示的な長時間実行ワークフローのフローを示すフロー図である。
【0021】
図11】本発明の実施形態による、AIフローを構築および管理するために長時間実行ワークフローを使用するためのプロセスを示すフローチャートである。
【0022】
別段の記載がない限り、類似の参照文字は、添付の図面全体で一貫して対応する特徴を示す。
【発明を実施するための形態】
【0023】
(実施形態の詳細な説明)
いくつかの実施形態は、人工知能(AI)/機械学習(ML)モデルの訓練/再訓練のライフサイクルを管理するために、AIフローを有する長時間実行ワークフローを使用することが開示される。AI/MLモデルが、長時間実行ワークフローを遂行するロボティックプロセスオートメーション(RPA)ロボットによって呼び出されるとき、検証が望まれ得る。この検証は、ユーザーからの動的入力を含む。RPAロボットは、ユーザーからの動的入力を受信し、このデータを、代替AI/MLモデルの訓練または呼び出されたAI/MLモデルの再訓練のために使用する。長時間実行ワークフローの状態は、訓練および提供の両方において保存され得る。長時間実行ワークフローは、現在の遂行がパイプラインのどこにあるかを追跡し続けるために使用され得る。
【0024】
いくつかの実施形態におけるRPAのための長時間実行ワークフローは、サービスオーケストレーション、人間の介入、およびアンアテンディッド環境における長時間実行トランザクションをサポートするマスタープロジェクトである。人間の介入は、特定のプロセスが、アクティビティの次のステップに進む前に、例外処理、承認、または検証のために人間の入力を必要とする場合に登場する。この場合、プロセスの遂行は一時停止され、人間のタスクが完了するまでRPAロボットを開放する。
【0025】
長時間実行ワークフローは、永続化アクティビティを介してワークフローの断片化をサポートしてもよく、呼び出しプロセスおよび非ユーザーインタラクションアクティビティと組み合わされ、人間のタスクをRPAロボットタスクでオーケストレーションし得る。長時間実行ワークフローは、迅速な遂行を促進するためにセッションで実行し得る。いくつかの実施形態では、長時間実行ワークフローは、アプリケーションプログラミングインターフェース(API)呼び出しを実行し、かつ長時間実行ワークフローセッションで実行するアクティビティを含み得るバックグラウンドプロセスをオーケストレーションしてもよい。これらのアクティビティは、いくつかの実施形態では、呼び出しプロセスアクティビティによって呼び出され得る。ユーザーセッションで実行するユーザーインタラクションアクティビティを有するプロセスは、コンダクタアクティビティからジョブを開始することによって呼び出され得る(コンダクタは、本明細書で後により詳細に説明する)。ユーザーは、いくつかの実施形態では、コンダクタでフォームを完成させる必要があるタスクを通じてインタラクションし得る。RPAロボットにフォームタスクが完了するのを待たせ、その後、長時間実行ワークフローを再開させるアクティビティが含まれ得る。
【0026】
いくつかの実施形態では、MLプロセスは、それ自体がワークフローである。AI/MLモデルのライフサイクルのステップ、すなわち、最初の訓練から、最初に訓練されたAI/MLモデルの遂行、再訓練、再訓練されたAI/MLモデルによるサービング動作、ドリフトするAI/MLモデルを人間の検証および訓練フェーズに戻す、などを追跡して、システムが、AI/MLのプロセスのどこにいるのかを知ることができるようにし得る。例えば、いくつかの実施形態では、AI/MLモデルの訓練/再訓練の長時間実行ワークフローがRPAロボットによって遂行されている場合、長時間実行ワークフローの状態は、定期的におよび/または何らかのトリガ(例えば、達成されたタスク、AI/MLモデルの更新など)に基づいて保存され得る。訓練/再訓練を実行するコンピューティングシステムの電源が切れたりまたはクラッシュしたりした場合、コンピューティングシステムが起動し直されたりまたは回復したりした後に、訓練/再訓練はこの保存された状態から再開し得る。各訓練または再訓練フェーズは、AI/MLモデルが特定の目的を達成するために訓練され、人間の指導を受け、訓練が再開され、さらに人間の指導を受けるなど、複数のステップ/状態を有し得る。
【0027】
このような実施形態は、有限状態機械(FSM)にやや類似した方法で実行し得る。システムは、RPAロボットがフローのどのステップにいるか、所定のステップまたはアクティビティが自動化され得るかどうか、ユーザー入力が必要であるかどうかなどを追跡する。AI/MLモデルの再訓練は、RPAロボットまたはAI/MLモデルを呼び出す他のプロセスを停止させることなく再訓練を実行する非同期プロセスであり得る。AI/MLモデルのバージョンが、AI/MLモデルの現在展開されているバージョンよりも優れた性能を有するように訓練される場合、AI/MLモデルの優れたバージョンがスワップインされかつ使用されて、RPAロボット/プロセスを呼び出すことに役立ち得る。これは、スワップが発生したことをRPAロボット/プロセスに情報提供することなく発生し得る。
【0028】
いくつかの実施形態では、再訓練パイプラインに必要な全ての情報が保存され得る。これは、AI/MLモデルの入力/出力、再訓練パイプラインのステップ、人間のレビュアーによって提供されるラベル付き修正などを含んでもよい。このように、システムは、MLライフサイクル全体にわたってフロー内のロケーションを追跡し得る。
【0029】
このような状態保存は、多くのシナリオで有用であり得る。例えば、サーバーが再訓練にまたは再訓練中に利用できない場合を考えてみると、サーバーがより優先度の高い処理の実行を任される。また、自動化されたプロセスには管理者の入力が必要で、その管理者がボトルネックとなり、プロセスは承認を待つ必要がある場合も考えてみる。このように、複数のプロセスが同じチョークポイントでハングアップし得る。AI/MLモデルが停止して待つことができる他のシナリオは、限定されないが、データまたはモデルドリフトが閾値を越えて検出された場合、新しいシナリオが証明されていない信頼度で検出された場合(例えば、自動運転車用にコンピュータビジョンを提供するAI/MLモデルが道路標識を検出し始めるが、検出信頼度はGPSマップなどの異なるメカニズムを使用して動作する別のAI/MLモデルに取って代わるために本番環境で使用するにはまだ十分に高くない)などを含み得る。
【0030】
データサイエンスフローでは、UiPath(登録商標)によるAI Center(商標)などのAIセンターシステムが、サービングフェーズ、訓練フェーズ、および再訓練フェーズで使用され得る。いくつかの実施形態はさらに、ユーザーが、長時間実行ワークフローがこれらのフェーズに使用され得るカスタマイズされたデータパイプラインを構築することを可能にする。そのような実施形態は、データ準備、特徴づけ、モデル構築、モデル再訓練、モデル提供、および長時間実行ワークフローを促進し得る。AI/MLモデルの訓練はある程度の時間がかかり得、インスタンスオペレータが訓練されているときに、提供されているAI/MLモデルをシャットダウンすることは、ユーザーにとってしばしば好ましくない。例えば、AI/MLモデルが既存のAI/MLモデルとは異なるメカニズムを使用するように訓練されているが、新しいAI/MLモデルの性能がまだ許容できない場合、新しいAI/MLモデルのインスタンスは、新しいAI/MLモデルが本番環境展開に十分であるまで保存、追跡、および再訓練され得る。このため、いくつかの実施形態は、異なるコンポーネントにわたって状態完全な変更を実行し、追跡する。例えば、AI/MLモデルがパイプラインのどこにあるのかに関する完全な情報が保存され得る。
【0031】
RPAデザイナアプリケーションなどのRPAワークフローツールは、いくつかの実施形態では、AIフローを構築および管理するための長時間実行ワークフローを含むように使用され得る。例えば、光学的文字認識(OCR)アクティビティは、ファイル転送プロトコル(FTP)ロケーションから文書を取り、OCRを用いて文書をデジタル化し、そしてデジタル化された文書を下流のアクティビティに送り込み得る。この下流のアクティビティは、抽出を実行し、またはエンティティ定義など、後の処理のためにデータを保存し得る。このシステムは、より柔軟で、従来のAIフレームワークによって公開された機能だけに制約されない場合がある。機能の各セットがそれ自身のAI/MLモデルまたはいくつかの実施形態におけるルールベースのシステムであってもよいので、この柔軟性は、部分的に生じ得る。従来、全てのAI/MLモデルは、モノリシックユニットとして実行される。しかしながら、いくつかの実施形態では、AI/MLモデルのチェーンまたはパイプラインにおける個々のAI/MLモデルは、新しいシナリオに適合するように交換され得る。例えば、英語OCRを実行するためのAI/MLモデルは、日本語の請求書を処理するために、日本語OCRを実行するものと交換され得る。検証ステップは、いくつかの実施形態では、文書の各タイプにカスタムであるように生成され得る。例えば、請求書を処理することは、発注書を処理することとは異なる検証ロジックを必要とし得る。
【0032】
AIシステムにおいて、ヒューマンインザループ(human-in-the-loop)による検証でフィードバックループを完成させることは難しいステップである。収集されたデータがAI/MLモデルを適切に訓練/再訓練するために、人間からどの程度のデータが収集されるべきかは、しばしば知られていない。例えば、人間のレビュアーが不正確な場合、悪い例が訓練データに含まれるため、AI/MLモデルの学習/再学習にはより多くのデータが必要となる。また、データのタイプが分からない場合もある。実際の例では、船の赤い栓は、以前に船に乗っていたか、またはさもなくばそれが消火栓であることを知っていたレビュアーによってラベル付けされた。しかし、以前その栓に遭遇したことがない他のレビュアーは、栓を蛇口と誤ってラベルしてしまった。
【0033】
従来のAIフレームワークはシングルパスモデルジェネレータである。AI/MLモデルは、転移学習を行い、パラメータを再度ロックし、そして新しいデータのバッチに送り込むことで再訓練され得る。しかし、これは、これらのシステムが自動的に行うことはできない時間のかかる手動プロセスである。
【0034】
いくつかの実施形態は、フィードバックループを完成させる長時間実行ワークフローおよびヒューマンインザループの検証を採用する。RPAは、任意のルールを設定するために使用され得る。例えば、企業は、AI/MLモデルの信頼スコアが90%を下回る場合、AI/MLモデルを本番環境に投入したくない場合がある、または企業は、信頼スコアが90%を下回る場合、本番環境でAI/MLモデルのみに依存したいと思う場合がある。そのようなルールは、RPAワークフローで設定され得、AI/MLモデルを本番環境に入れるべきかどうかを統治し得る。さらに、いくつかの実施形態では、AI/MLモデル、ルールセット、および展開または再訓練の基準は、より柔軟性を提供するために一緒に連鎖され得る。
【0035】
いくつかの実施形態では、AIフローを含む長時間実行ワークフローを実装するRPAロボット(複数可)が、修正が行われた画面上の要素、およびAI/MLモデルが予測したことを人間が検証した場所などの人間による検証結果を受信した後、これらの結果は、AI/MLモデルの再訓練のために保存され得る。いくつかの実施形態では、複雑性はユーザーに公開されないかもしれないが、長時間実行ワークフローロジックは、同じスキーマにおいて、AI/MLモデルが再訓練のためにマークされることを確実にする。人間のレビュアーによって検証された各新しいデータポイントは、AI/MLモデルを自動的に更新し、改善するために使用され得る。再訓練は、一定期間経過後に、一定量のデータがデータサイエンティストにより収集され、手動で開始された後に、またはこれらのいずれかの組み合わせなど、定期的に行われ得る。
【0036】
電子メールの分類を例にとって考えてみる。電子メールは、特定のカテゴリを自動的に割り当てるように訓練されたAI/MLモデルによって、特定のカテゴリを自動的に割り当て得る。RPAロボットが電子メールを解析し、電子メールの内容(例えば、送信者、受信者(複数)、件名、本文)をAI/MLモデルに送信し得、これは、製品問い合わせ、クレジットカード請求に関する顧客の苦情などの分類を返送する。AI/MLモデルの信頼スコアが特定の人間のレビュー閾値を下回る場合、電子メールおよび予測された分類は、人間のレビュアーに送信され得る。その後、人間のレビュアーは、電子メールを読み、分類を維持するか、またはそれを修正するかを選択し得る。肯定的な例と否定的な例の両方が、AI/MLモデルの再訓練のために格納され、使用され得る。AI/MLモデルの信頼スコアが人間のレビュー閾値を超える場合、AI/MLモデルは、人間の入力なしに自動的に実行し得る。RPAロボットまたは他の何らかのプロセスは、AI/MLモデルの性能を監視し続け、AI/MLモデルの精度が時間の経過とともに(例えば、データドリフトまたはコンセプトドリフトにより)人間のレビュー閾値を下回る場合、人間のレビューを復活させ得る。
【0037】
図1は、本発明の実施形態による、RPAシステム100を示すアーキテクチャ図である。RPAシステム100は、開発者がワークフローを設計して実装することを可能にするデザイナ110を含む。デザイナ110は、アプリケーション統合のためのソリューションを提供するとともに、サードパーティアプリケーション、管理情報技術(IT)タスク、およびビジネスITプロセスを自動化する。デザイナ110は、ビジネスプロセスのグラフィック表現である自動化プロジェクトの開発を容易にし得る。簡単に言えば、デザイナ110は、ワークフローおよびロボットの開発および展開を容易にする。
【0038】
自動化プロジェクトは、本明細書で「アクティビティ」と定義されるワークフローで開発されたステップのカスタムセット間の遂行順序および関係の制御を開発者に与えることにより、ルールベースのプロセスの自動化を可能にする。デザイナ110の実施形態の商業的な一例は、UiPath Studio(商標)である。各アクティビティは、ボタンをクリックする、ファイルを読む、ログパネルに書き込むなどのアクションを含み得る。いくつかの実施形態では、ワークフローは入れ子になっているか、または埋め込まれ得る。
【0039】
ワークフローのいくつかのタイプには、シーケンス、フローチャート、有限状態機械(FSM)、および/またはグローバル例外ハンドラなどを含み得るが、これらに限定されない。シーケンスは、ワークフローを乱雑にすることなく、あるアクティビティから別のアクティビティへのフローを可能にする、線形プロセスに特に適し得る。フローチャートは、特により複雑なビジネスロジックに適し得、複数の分岐ロジックオペレータを介して、より多様な方法で意思決定の統合およびアクティビティの接続を可能にする。FSMは、大規模なワークフローに特に適し得る。FSMは、条件(すなわち、遷移)またはアクティビティによりトリガされる有限の数の状態をそれらの遂行中に使用し得る。グローバル例外ハンドラは、遂行エラーに遭遇したときのワークフローの挙動を決定したり、プロセスをデバッグしたりするのに特に適し得る。
【0040】
ワークフローがデザイナ110内で開発されると、ビジネスプロセスの遂行は、コンダクタ120によって調整され、デザイナ110内で開発されたワークフローを遂行する1または複数のロボット130を調整する。コンダクタ120の実施形態の商業的な一例は、UiPath Orchestrator(商標)である。コンダクタ120は、環境におけるリソースの生成、監視、および展開の管理を容易にする。コンダクタ120は、サードパーティのソリューションおよびアプリケーションとの統合ポイントとして動作し得る。
【0041】
コンダクタ120は、全てのロボット130を管理し得、ロボット130を集中ポイントから接続して遂行する。管理され得るロボット130のタイプには、アテンディッドロボット132、アンアテンディッドロボット134、開発ロボット(アンアテンディッドロボット134と同様であるが、開発およびテストの目的で使用される)、および非生産ロボット(アテンディッドロボット132と同様であるが、開発およびテストの目的で使用される)が含まれるが、これらに限定されない。アテンディッドロボット132は、ユーザーイベントによってトリガされ、同じコンピューティングシステム上で人と並んで動作する。アテンディッドロボット132は、集中プロセスデプロイメントおよびロギング媒体のためのコンダクタ120とともに使用され得る。アテンディッドロボット132は、人のユーザーが様々なタスクを達成するのを支援してもよく、ユーザーイベントによってトリガされてもよい。いくつかの実施形態では、プロセスは、このタイプのロボット上でコンダクタ120から開始することができず、および/またはそれらはロックされた画面の下で実行することができない。特定の実施形態では、アテンディッドロボット132は、ロボットトレイからまたはコマンドプロンプトからのみ起動され得る。アテンディッドロボット132は、いくつかの実施形態では、人の監督下で動作することが好ましい。
【0042】
アンアテンディッドロボット134は、仮想環境で無人で動作し、多くのプロセスを自動化し得る。アンアテンディッドロボット134は、リモート遂行、監視、スケジューリング、および作業キューのサポートの提供を担当し得る。全てのロボットタイプのためのデバッグは、いくつかの実施形態では、デザイナ110で実行され得る。アテンディッドロボットおよびアンアテンディッドロボットの両方は、メインフレーム、ウェブアプリケーション、VM、エンタープライズアプリケーション(例えば、SAP(登録商標)、SalesForce(登録商標)、Oracle(登録商標)などにより生成されたもの)、およびコンピューティングシステムアプリケーション(例えば、デスクトップおよびラップトップアプリケーション、モバイルデバイスアプリケーション、ウェアラブルコンピュータアプリケーションなど)を含むが、これらに限定されない様々なシステムおよびアプリケーションを自動化し得る。
【0043】
コンダクタ120は、プロビジョニング、展開、構成、キューイング、監視、ロギング、および/または相互接続性の提供を含むがこれらに限定されない様々な能力を有し得る。プロビジョニングは、ロボット130とコンダクタ120(例えば、ウェブアプリケーション)との間の接続を作成し、維持することを含み得る。展開は、遂行のために割り当てられたロボット130へのパッケージバージョンの正しい配信を保証することを含み得る。構成は、ロボット環境およびプロセス構成の維持および配信を含み得る。キューイングは、キューおよびキュー項目の管理を提供することを含み得る。監視は、ロボットの特定データを追跡し、ユーザーの権限を維持することを含み得る。ロギングは、データベース(例えば、SQLデータベース)および/または別のストレージメカニズム(例えば、大規模なデータセットを格納し、迅速にクエリを実行する能力を提供するElasticSearch(登録商標))へのログの保存およびインデックス作成を含み得る。コンダクタ120は、サードパーティのソリューションおよび/またはアプリケーションのための通信の集中点として操作することにより、相互接続性を提供し得る。
【0044】
ロボット130は、デザイナ110で構築されたワークフローを実行する遂行エージェントである。ロボット(複数可)130のいくつかの実施形態の1つの商業的な例は、UiPath Robots(商標)である。いくつかの実施形態では、ロボット130は、デフォルトで、Microsoft Windows(登録商標)Service Control Manager(SCM)管理サービスをインストールする。その結果、このようなロボット130は、ローカルシステムアカウントの下でインタラクティブなWindows(登録商標)セッションを開くことができ、Windows(登録商標)サービスの権利を有し得る。
【0045】
いくつかの実施形態では、ロボット130は、ユーザーモードで設置され得る。このようなロボット130については、所定のロボット130が設置されているユーザーと同じ権利を有することを意味する。この特色はまた、各マシンを最大限に全活用することを保証する高密度(HD)ロボットにも利用可能であり得る。いくつかの実施形態では、いずれかのタイプのロボット130は、HD環境で構成され得る。
【0046】
いくつかの実施形態におけるロボット130は、複数のコンポーネントに分割され、それぞれが特定の自動化タスクに特化されている。いくつかの実施形態におけるロボットコンポーネントは、SCM管理ロボットサービス、ユーザーモードロボットサービス、エグゼキュータ、エージェント、およびコマンドラインを含むが、これらに限定されない。SCM管理ロボットサービスは、Windows(登録商標)セッションを管理および監視し、コンダクタ120と遂行ホスト(すなわち、ロボット130が遂行されるコンピューティングシステム)との間のプロキシとして動作する。これらのサービスは、ロボット130の資格情報を任されて管理する。コンソールアプリケーションは、ローカルシステム下のSCMにより起動される。
【0047】
いくつかの実施形態におけるユーザーモードロボットサービスは、Windows(登録商標)セッションを管理および監視し、コンダクタ120と遂行ホストとの間のプロキシとして動作する。ユーザーモードロボットサービスは、ロボット130の資格情報を任されて管理し得る。SCM管理ロボットサービスがインストールされていない場合、Windows(登録商標)アプリケーションが自動的に起動され得る。
【0048】
エグゼキュータは、Windows(登録商標)セッションの下で与えられたジョブを遂行し得る(つまり、ワークフローを遂行し得る。エグゼキュータは、モニタ毎のドットパーインチ(DPI)設定を意識し得る。エージェントは、システムトレイウィンドウに利用可能なジョブを表示するWindows(登録商標) Presentation Foundation(WPF)アプリケーションであり得る。エージェントはサービスのクライアントとなり得る。エージェントは、ジョブの開始または停止、設定の変更を依頼し得る。コマンドラインはサービスのクライアントである。コマンドラインは、ジョブの開始を要求し、その出力を待つことができるコンソールアプリケーションである。
【0049】
上で説明したように、ロボット130のコンポーネントが分割されていることは、開発者、サポートユーザー、およびコンピューティングシステムが、各コンポーネントが何を遂行しているかをより容易に実行し、特定し、および追跡するのに役立つ。この方法では、エグゼキュータとサービスに異なるファイアウォールルールを設定するなど、コンポーネントごとに特別な挙動を構成し得る。エグゼキュータは常に、いくつかの実施形態では、モニタごとのDPI設定を認識し得る。その結果、ワークフローは、ワークフローが作成されたコンピューティングシステムの構成に関係なく、いずれかのDPIで遂行し得る。また、いくつかの実施形態では、デザイナ110からのプロジェクトは、ブラウザのズームレベルに依存しないようにし得る。DPIを認識していないまたは意図的に認識していないとマークされているアプリケーションの場合、いくつかの実施形態ではDPIを無効にし得る。
【0050】
図2は、本発明の実施形態による、展開したRPAシステム200を示すアーキテクチャ図である。いくつかの実施形態では、RPAシステム200は、図1のRPAシステム100であってもよく、またはその一部であってもよい。クライアント側、サーバー側、またはその両方が、本発明の範囲から逸脱することなく、いずれかの所望の数のコンピューティングシステムを含むことができることに留意すべきである。クライアント側では、ロボットアプリケーション210は、エグゼキュータ212、エージェント214、およびデザイナ216を含む。しかし、いくつかの実施形態では、デザイナ216は、コンピューティングシステム210上で実行されていなくてもよい。エグゼキュータ212はプロセスを実行している。図2に示すように、複数のビジネスプロジェクトが同時に実行され得る。エージェント214(例えば、Windows(登録商標)サービス)は、本実施形態では、全てのエグゼキュータ212のための単一の接続ポイントである。この実施形態における全てのメッセージは、コンダクタ230に記録され、それは、データベースサーバー240、インデクササーバー250、またはその両方を介して、それらをさらに処理する。図1に関して上述したように、エグゼキュータ212は、ロボットコンポーネントであり得る。
【0051】
いくつかの実施形態では、ロボットは、マシン名とユーザー名との間の関連付けを表す。ロボットは、複数のエグゼキュータを同時に管理し得る。同時に実行される複数のインタラクティブセッションをサポートするコンピューティングシステム(Windows(登録商標)Server 2012など)では、複数のロボットが同時に実行され得、それぞれが一意のユーザー名を使用して別々のWindows(登録商標)セッションで実行され得る。これは、上記のHDロボットと呼ばれる。
【0052】
エージェント214はまた、ロボットの状態を送信し(例えば、ロボットがまだ機能していることを示す「ハートビート」メッセージを定期的に送信する)、遂行されるパッケージの要求されるバージョンをダウンロードすることにも責任を負う。エージェント214とコンダクタ230との間の通信は、いくつかの実施形態では、常にエージェント214によって開始される。通知シナリオでは、エージェント214は、後にコンダクタ230によってロボットにコマンド(例えば、開始、停止など)を送信するために使用されるWebSocketチャネルを開いてもよい。
【0053】
サーバー側には、プレゼンテーション層(ウェブアプリケーション232、オープンデータプロトコル(OData)代表状態転送(REST)アプリケーションプログラミングインターフェース(API)エンドポイント234、通知および監視236)、サービス層(API実装/ビジネスロジック238)、永続層(データベースサーバー240、インデクササーバー250)が含まれる。コンダクタ230は、ウェブアプリケーション232、OData REST APIエンドポイント234、通知および監視236、ならびにAPI実装/ビジネスロジック238を含む。いくつかの実施形態では、ユーザーがコンダクタ230のインターフェース(例えば、ブラウザ220を介して)で実行するほとんどのアクションは、様々なAPIを呼び出すことによって実行される。このような動作は、本発明の範囲を逸脱することなく、ロボット上でのジョブの起動、キュー内のデータの追加/削除、無人で実行するジョブのスケジューリングなどを含み得るが、これらに限定されない。ウェブアプリケーション232は、サーバープラットフォームのビジュアル層である。この実施形態では、ウェブアプリケーション232は、ハイパーテキストマークアップ言語(HTML)およびジャバスクリプト(JS)を使用する。しかし、本発明の範囲を逸脱することなく、いずれかの所望のマークアップ言語、スクリプト言語、または他のいずれかのフォーマットを使用し得る。ユーザーは、コンダクタ230を制御するための様々な動作を実行するために、本実施形態ではブラウザ220を介してウェブアプリケーション232からのウェブページとインタラクションする。例えば、ユーザーは、ロボットグループを作成し、ロボットへのパッケージの割り当てを行い、ロボット毎および/またはプロセス毎のログを解析し、ロボットを起動しおよび停止などし得る。
【0054】
ウェブアプリケーション232に加えて、コンダクタ230は、OData REST APIエンドポイント234を公開するサービス層も含む。しかし、本発明の範囲を逸脱することなく、他のエンドポイントが含まれていてもよい。REST APIは、ウェブアプリケーション232とエージェント214の両方により消費される。エージェント214は、本実施形態では、クライアントコンピュータ上の1または複数のロボットのスーパーバイザである。
【0055】
本実施形態のREST APIは、構成、ロギング、監視、およびキューイング機能をカバーする。構成エンドポイントは、いくつかの実施形態では、アプリケーションのユーザー、権限、ロボット、アセット、リリース、および環境を定義し、構成するために使用されてもよい。ロギングRESTエンドポイントは、例えば、エラー、ロボットによって送信された明示的なメッセージ、およびその他の環境固有の情報など、様々な情報をログに記録するために使用され得る。デプロイメントRESTエンドポイントは、コンダクタ230においてジョブ開始コマンドが使用された場合に遂行されるべきパッケージのバージョンを問い合わせるためにロボットにより使用されてもよい。キューイングRESTエンドポイントは、キューへのデータの追加、キューからのトランザクションの取得、トランザクションのステータスの設定など、キューおよびキューアイテムの管理を担ってもよい。
【0056】
RESTエンドポイントの監視は、ウェブアプリケーション232およびエージェント214を監視してもよい。通知および監視API236は、エージェント214の登録、エージェント214への構成設定の配信、ならびにサーバーおよびエージェント214からの通知の送受信に使用されるRESTエンドポイントであってもよい。通知および監視API236は、いくつかの実施形態では、WebSocket通信を使用してもよい。
【0057】
永続層は、本実施形態では、一対のサーバー-データベースサーバー240(例えば、SQLサーバー)およびインデクササーバー250を含む。本実施形態におけるデータベースサーバー240は、ロボット、ロボットグループ、関連するプロセス、ユーザー、役割、スケジュールなどの構成を格納する。この情報は、いくつかの実施形態では、ウェブアプリケーション232を介して管理される。データベースサーバー240は、キューおよびキューアイテムを管理してもよい。いくつかの実施形態では、データベースサーバー240は、ロボットにより記録されたメッセージを(インデクササーバー250に加えて、またはそれに代えて)格納してもよい。
【0058】
いくつかの実施形態では任意であるが、インデクササーバー250は、ロボットにより記録された情報を保存し、インデックスを作成する。特定の実施形態では、インデクササーバー250は、構成設定を介して無効化されてもよい。いくつかの実施形態では、インデクササーバー250は、オープンソースプロジェクトの全文検索エンジンであるElasticSearch(登録商標)を使用する。ロボットにより記録されたメッセージ(例えば、ログメッセージまたはライン書き込みのようなアクティビティを使用して)は、ロギングRESTエンドポイント(複数可)を介してインデクササーバー250に送信されてもよく、そこで将来の利用のためにそれらはインデックス化される。
【0059】
図3は、本発明の実施形態による、デザイナ310、アクティビティ320、330、ドライバ340、およびAI/MLモデル350の間の関係300を示すアーキテクチャ図である。以上のように、開発者は、デザイナ310を用いて、ロボットによって遂行されるワークフローを開発する。ワークフローは、ユーザー定義のアクティビティ320およびUIオートメーションアクティビティ330を含んでもよい。ユーザー定義アクティビティ320および/またはUIオートメーションアクティビティ330は、いくつかの実施形態では、ロボットが動作しているコンピューティングシステムに対してローカルに、および/またはそれに対してリモートに位置され得、1または複数のAI/MLモデル350を呼び出し得る。いくつかの実施形態では、画像中の非テキストの視覚的コンポーネントを特定することができ、これは、本明細書ではコンピュータビジョン(CV)と呼ばれる。このようなコンポーネントに関連するいくつかのCVアクティビティは、クリック、タイプ、テキストを取得、ホバー、要素の有無を検出、スコープの更新、ハイライトなどを含み得るが、これらに限定されない。いくつかの実施形態では、クリックは、例えば、CV、光学的文字認識(OCR)、ファジーテキストマッチング、およびマルチアンカーを使用して要素を特定し、それをクリックする。タイプは、上記および要素内のタイプを用いて要素を特定してもよい。テキストの取得は、特定のテキストの場所を特定し、OCRを使用してそれをスキャンし得る。ホバーは、要素を特定し、その上にホバーし得る。要素の有無の検出は、上述した技法を用いて、画面上に要素の有無を検出するかどうかを確認し得る。いくつかの実施形態では、デザイナ310に実装され得る数百または数千でさえのアクティビティが存在してもよい。しかし、本発明の範囲を逸脱することなく、いずれかの数および/またはアクティビティのタイプを利用することができる。
【0060】
UIオートメーションアクティビティ330は、低レベルのコード(例えば、CVアクティビティ)で記述され、画面とのインタラクションを促進する特別な低レベルのアクティビティのサブセットである。UIオートメーションアクティビティ330は、ロボットが所望のソフトウェアとインタラクションすることを可能にするドライバ340および/またはAI/MLモデル350を介して、これらのインタラクションを促進する。例えば、ドライバ340は、OSドライバ342、ブラウザドライバ344、VMドライバ346、エンタープライズアプリケーションドライバ348などを含み得る。コンピューティングシステムとのインタラクションを実行するために、1または複数のAI/MLモデル350はUIオートメーションアクティビティ330によって使用され得る。いくつかの実施形態では、AI/MLモデル350は、ドライバ340を増強するか、またはそれらを完全に置き換え得る。実際、特定の実施形態では、ドライバ340は含まれない。
【0061】
ドライバ340は、フックを探したり、キーを監視したりするなど、低レベルでOSとインタラクションしてもよい。それらは、Chrome(登録商標)、IE(登録商標)、Citrix(登録商標)、SAP(登録商標)などとの統合を促進してもよい。例えば、「クリック」アクティビティは、ドライバ340を介して、これらの異なるアプリケーションにおいて同じ役割を果たす。
【0062】
図4は、本発明の実施形態による、RPAシステム400を示すアーキテクチャ図である。いくつかの実施形態では、RPAシステム400は、図1および/または図2のRPAシステム100および/または200であってもよいし、それを含んでもよい。RPAシステム400は、ロボットを実行する複数のクライアントコンピューティングシステム410を含む。コンピューティングシステム410は、その上で実行されるウェブアプリケーションを介してコンダクタコンピューティングシステム420と通信することができる。コンダクタコンピューティングシステム420は、順番に、データベースサーバー430および任意のインデクササーバー440と通信することができる。
【0063】
図1および図3に関して、これらの実施形態ではウェブアプリケーションが使用されているが、本発明の範囲から逸脱することなく、任意の適切なクライアント/サーバーソフトウェアを使用することができることに留意すべきである。例えば、コンダクタは、クライアントコンピューティングシステム上で、非ウェブベースのクライアントソフトウェアアプリケーションと通信するサーバーサイドアプリケーションを実行してもよい。
【0064】
図5は、本発明の実施形態による、長時間実行ワークフローを使用してAIフローを構築および管理するように構成されたコンピューティングシステム500を示すアーキテクチャ図である。いくつかの実施形態では、コンピューティングシステム500は、本明細書に描かれたおよび/または記載された1または複数のコンピューティングシステムであってもよい。コンピューティングシステム500は、情報を通信するためのバス505または他の通信機構と、情報を処理するためのバス505に結合されたプロセッサ(複数可)510とを含む。プロセッサ(複数可)510は、中央処理ユニット(CPU)、特定用途集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、グラフィックスプロセッシングユニット(GPU)、それらの複数のインスタンス、および/またはそれらのいずれかの組み合わせを含む、いずれかのタイプの一般的または特定用途向けプロセッサであり得る。プロセッサ(複数可)510はまた、複数の処理コアを有してもよく、コアの少なくとも一部は、特定の機能を実行するように構成され得る。いくつかの実施形態では、複数並列処理が使用されてもよい。特定の実施形態では、少なくとも1つのプロセッサ(複数可)510は、生物学的ニューロンを模倣する処理要素を含むニューロモーフィック回路であり得る。いくつかの実施形態では、ニューロモーフィック回路は、フォンノイマンコンピューティングアーキテクチャの典型的なコンポーネントを必要としない場合がある。
【0065】
コンピューティングシステム500は、プロセッサ(複数可)510によって遂行される情報および命令を格納するためのメモリ515をさらに含む。メモリ515は、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、フラッシュメモリ、キャッシュ、磁気ディスクもしくは光ディスクなどの静的記憶装置、または他のタイプの非一時的なコンピュータ読み取り可能な媒体、あるいはそれらのいずれかの組み合わせで構成され得る。非一時的なコンピュータ読み取り可能な媒体は、プロセッサ(複数可)510によりアクセス可能ないずれかの利用可能な媒体であってもよく、揮発性媒体、不揮発性媒体または両方などを含み得る。また、媒体は、取り外し可能なもの、取り外し不可能なもの、または両方であってもよい。
【0066】
さらに、コンピューティングシステム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または複数のアンテナを含み得る。
【0067】
プロセッサ(複数可)510は、バス505を介して、プラズマディスプレイ、液晶ディスプレイ(LCD)、発光ダイオード(LED)ディスプレイ、電界放出ディスプレイ(FED)、有機発光ダイオード(OLED)ディスプレイ、フレキシブルOLEDディスプレイ、フレキシブル基板ディスプレイ、プロジェクションディスプレイ、4Kディスプレイ、高精細ディスプレイ、Retina(登録商標)ディスプレイ、IPS(In-Plane Switching)ディスプレイ、またはユーザーに情報を表示するためのいずれかの他の適切なディスプレイなどのディスプレイ525にさらに結合されている。ディスプレイ525は、抵抗方式、静電容量方式、表面弾性波(SAW)静電容量方式、赤外線方式、光学イメージング方式、分散信号方式、音響パルス認識方式、フラストレート全内部反射方式などを用いて、タッチ(ハプティック)ディスプレイ、3次元(3D)タッチディスプレイ、マルチ入力タッチディスプレイ、マルチタッチディスプレイなどとして構成されていてもよい。本発明の範囲を逸脱することなく、いずれかの好適な表示デバイスおよびハプティックI/Oを使用することができる。
【0068】
コンピュータマウス、タッチパッドなどのようなキーボード530およびカーソル制御デバイス535は、ユーザーがコンピューティングシステムとインターフェースすることを可能にするために、バス505にさらに結合されている。しかしながら、特定の実施形態では、物理的なキーボードおよびマウスが存在しない場合があり、ユーザーは、ディスプレイ525および/またはタッチパッド(図示せず)のみを介してデバイスとインタラクションすることができる。任意の入力デバイスの種類および組み合わせは、設計の選択の問題として使用され得る。特定の実施形態では、物理的な入力デバイスおよび/またはディスプレイは存在しない。例えば、ユーザーは、コンピューティングシステム500と通信している別のコンピューティングシステムを介してリモートでそれとインタラクションしてもよいし、コンピューティングシステム500は自律的に動作してもよい。
【0069】
メモリ515は、プロセッサ(複数可)510により遂行されたときに機能を提供するソフトウェアモジュールを格納する。モジュールは、コンピューティングシステム500のためのオペレーティングシステム540を含む。モジュールはさらに、本明細書に記載されたプロセスの全部もしくは一部またはその派生物を実行するように構成された長時間実行ワークフローモジュール545を含む。コンピューティングシステム500は、付加的な機能を含む1または複数の付加的な機能モジュール550を含み得る。
【0070】
当業者であれば、「システム」は、本発明の範囲から逸脱することなく、サーバー、組み込みコンピューティングシステム、パーソナルコンピュータ、コンソール、パーソナルデジタルアシスタント(PDA)、携帯電話、タブレットコンピューティングデバイス、量子コンピューティングシステム、または他のいずれかの適切なコンピューティングデバイス、またはデバイスの組み合わせとして具現化され得ることを理解するであろう。上述した機能を「システム」により実行されるものとして提示することは、何ら本発明の範囲を限定することを意図するものではなく、本発明の多くの実施形態の一例を提供することを意図するものである。実際、本明細書に開示された方法、システム、および装置は、クラウドコンピューティングシステムを含むコンピューティング技法と整合性のあるローカライズされた形態および分配された形態で実装されてもよい。コンピューティングシステムは、ローカルエリアネットワーク(LAN)、モバイル通信ネットワーク、衛星通信ネットワーク、インターネット、パブリッククラウドまたはプライベートクラウド、ハイブリッドクラウド、サーバーファーム、それらのいずれかの組み合わせなどの一部またはその他の方法でアクセス可能であり得る。本発明の範囲から逸脱することなく、任意の局所または分散アーキテクチャが使用され得る。
【0071】
本明細書で説明するシステム特色のいくつかは、実装の独立性をより強調するために、モジュールとして提示されていることに留意すべきである。例えば、モジュールは、カスタムの非常に大規模な集積(VLSI)回路またはゲートアレイ、ロジックチップ、トランジスタ、または他の個別部品のような既製の半導体を含むハードウェア回路として実装され得る。また、モジュールは、フィールドプログラマブルゲートアレイ、プログラマブルアレイロジック、プログラマブルロジックデバイス、グラフィックス処理ユニットなどのプログラマブルハードウェアデバイスに実装され得る。
【0072】
モジュールはまた、様々なタイプのプロセッサにより遂行されるためのソフトウェアに少なくとも部分的に実装され得る。例えば、遂行可能コードの特定された単位は、例えば、オブジェクト、プロシージャ、または関数として編成されていてもよいコンピュータ命令の1または複数の物理的または論理的なブロックを含み得る。それにもかかわらず、遂行可能な特定されたモジュールは、物理的に一緒に配置されている必要はなく、論理的に結合されたときにモジュールを含み、モジュールのために述べられた目的を達成するために、異なる場所に格納された別々の命令を含んでいてもよい。さらに、モジュールは、例えば、ハードディスクドライブ、フラッシュデバイス、RAM、テープのような非一時的なコンピュータ読み取り可能な媒体、および/または本発明の範囲から逸脱することなくデータを格納するために使用される他のいずれかの非一時的なコンピュータ読み取り可能な媒体に格納されていてもよい。
【0073】
実際、遂行可能コードのモジュールは、単一の命令であってもよいし、多数の命令であってもよいし、さらには、複数の異なるコードセグメント、異なるプログラム間、および複数のメモリデバイス間に分散されていてもよい。同様に、動作データは、モジュール内で特定され、ここで示されてもよく、いずれかの適切なタイプのデータ構造体内でいずれかの適切な形態で具現化され、組織化され得る。動作データは、単一のデータセットとして収集されてもよいし、または異なる記憶デバイスにわたり異なる場所に分散されていてもよく、少なくとも部分的には、単にシステムまたはネットワーク上の電子信号として存在していてもよい。
【0074】
図6Aは、本発明の実施形態による、画像内のグラフィカル要素を認識するように訓練されたニューラルネットワーク600の例を示す。ここで、ニューラルネットワーク600は、入力層の入力「ニューロン」1~Iに関する入力として、1920×1080の画面のスクリーンショット画像のピクセルを受信する。この場合、Iは、スクリーンショット画像のピクセルの総数である2,073,600である。
【0075】
ニューラルネットワーク600はまた、多数の隠れ層を含む。深層学習ニューラルネットワーク(DLNN)と浅い学習ニューラルネットワーク(SLNN)はどちらも通常複数の層を有するが、SLNNは場合によっては1または2つの層しか持たず、通常はDLNNよりも少ない場合がある。典型的に、ニューラルネットワークのアーキテクチャは、ニューラルネットワーク600の場合のように、入力層、複数の中間層、および出力層を含む。
【0076】
多くの場合、DLNNは多くの層(10、50、200など)を有し、後続の層は通常、前の層からの機能を再利用して、より複雑で一般的な関数を計算する。一方、SLNNは少数のレイヤーしか有さず、生データサンプルからエキスパート機能が事前に作成されるため、比較的迅速に訓練する傾向がある。ただし、特徴抽出は面倒である。DLNNは通常、エキスパート機能を必要としないが、訓練に時間がかかり、より多くの層を有する傾向がある。
【0077】
どちらのアプローチでも、層は訓練セットで同時に訓練され、通常は分離された交差検証セットでオーバーフィッティングをチェックする。両方の技法でも優れた結果が得られ、両方のアプローチにかなりの熱意がある。個々の層の最適なサイズ、形状、および数は、それぞれのニューラルネットワークによって対処される問題に依存する。
【0078】
図6Aに戻ると、入力層として提供されるピクセルは、隠れ層1のJ個のニューロンへの入力として供給される。この例では、すべてのピクセルが各ニューロンに供給されるが、限定されないが、フィードフォワードネットワーク、ラジアルベーシスネットワーク、ディープフィードフォワードネットワーク、ディープコンボリューションインバースグラフィックスネットワーク、コンボリューションニューラルネットワーク、リカレントニューラルネットワーク、人工ニューラルネットワーク、長期/短期記憶ネットワーク、ゲーテッドリカレントユニットネットワーク、生成的敵対ネットワーク、リキッドステートマシン、オートエンコーダ、変分オートエンコーダ、ノイズ除去オートエンコーダ、スパースオートエンコーダ、エクストリームラーニングマシン、エコー状態ネットワーク、マルコフ連鎖、ホップフィールドネットワーク、ボルツマンマシン、制限付きボルツマンマシン、深層残差ネットワーク、コホーネンネットワーク、ディープビリーフネットワーク、ディープコンボリューションネットワーク、サポートベクターマシン、ニューラルチューリングマシン、または本発明の範囲から逸脱しない任意の他の適切なタイプまたは組み合わせのニューラルネットワークを含む、個々にまたは組み合わせて使用され得るさまざまなアーキテクチャが可能である。
【0079】
隠れ層2は隠れ層1から入力を受信し、隠れ層3は隠れ層2から入力を受信し、最後の隠れ層がその出力を出力層の入力として提供するまで、全ての隠れ層について同じように行われる。ニューロンI、J、K、およびLの数は必ずしも等しくなく、したがって、本発明の範囲から逸脱することなく、ニューラルネットワーク600の所定の層に対して任意の所望の数の層を使用することができることに留意されたい。実際、特定の実施形態では、所与の層におけるニューロンのタイプは、すべて同じでなくてもよい。
【0080】
ニューラルネットワーク600は、画像内で発見されたと考えられるグラフィカル要素に信頼スコアを割り当てるように訓練される。許容できないほど低い尤度を有するマッチングを減らすために、いくつかの実施形態では、信頼閾値を満たすかまたはそれを超える信頼スコアを有するそれらの結果のみが提供され得る。例えば、信頼閾値が80%である場合、この量を超える信頼スコアを有する出力が使用され、残りは無視されてもよい。この場合、出力層は、2つのテキストフィールド、テキストラベル、およびサブミットボタンが見つけられたことを示す。ニューラルネットワーク600は、本発明の範囲から逸脱することなく、これらの要素の位置、寸法、画像、および/または信頼スコアを提供してもよく、これは、この出力を所定の目的のために使用するRPAロボットまたは別のプロセスによってその後使用され得る。
【0081】
ニューラルネットワークは、典型的には信頼スコアを有する確率的構築物であることに留意されたい。これは、AI/MLモデルが、訓練中に類似の入力が正しく特定された頻度に基づいて学習したスコアであり得る。例えば、テキストフィールドは、しばしば長方形の形状と白い背景を有する。ニューラルネットワークは、これらの特徴を有するグラフィカル要素を高い信頼度で特定することを学習し得る。信頼スコアの一般的なタイプは、0と1の間の10進数(信頼度のパーセンテージとして解釈可能)、負の∞と正の∞の間の数、または表現のセット(例えば、「低」、「中」、および「高」)を含む。また、より正確な信頼スコアを得る試みとして、温度スケーリング、バッチ正規化、重み減衰、負対数尤度(NLL)など、さまざまな後処理較正技法が採用され得る。
【0082】
ニューラルネットワークの「ニューロン」は、通常、生体ニューロンの機能に基づく数学的関数である。ニューロンは、重み付けされた入力を受信し、それらが出力を次の層に渡すかどうかを統治する和および活性化関数を有する。この活性化関数は、値が閾値を下回っている場合は何も起こらない非線形の閾値付きアクティビティ関数であり得、関数が閾値を超えると線形に応答する(つまり、正規化線形単位(ReLU)非線形性)。実際のニューロンはほぼ同様のアクティビティ関数を有し得るため、深層学習では合計関数およびReLU関数が使用される。線形変換を介して、情報が差し引かれたり、追加されたりするなどされ得る。本質的に、ニューロンは、それらの基礎となる数学的関数によって統治される次の層に出力を渡すゲーティング関数として機能する。いくつかの実施形態では、少なくともいくつかのニューロンに対して異なる関数が使用され得る。
【0083】
【0084】
【0085】
【0086】
この場合、ニューロン610は単層パーセプトロンである。しかしながら、本発明の範囲から逸脱することなく、任意の適切なニューロンタイプまたはニューロンタイプの組み合わせが使用され得る。
【0087】
目標、つまり「報酬関数」がしばしば採用される。この例では、目標は画像内のグラフィカル要素を正しく特定することである。報酬関数は、状態空間の検索を導き、目標(例えば、グラフィカル要素の成功した特定、RPAワークフローのアクティビティの次のシーケンスの成功した特定、など)の達成を試みるために、短期および長期の両方の報酬を使用して中間遷移およびステップを探索する。
【0088】
訓練中、さまざまなラベル付きデータ(この場合は画像)がニューラルネットワーク600を介して供給される。特定に成功すると、ニューロンへの入力の重みが強化されるが、特定に失敗すると、それらの重みが弱まる。平均二乗誤差(MSE)または勾配降下などのコスト関数を使用して、わずかに間違っている予測を、大きく間違っている予測よりもはるかに少ない罰で済むようにし得る。AI/MLモデルの性能が一定回数の訓練反復後に改善されない場合、データサイエンティストは報酬関数を変更し、特定されていないグラフィカル要素がどこにあるかを示し、誤特定されたグラフィカル要素の修正を提供するなどし得る。
【0089】
バックプロパゲーションは、フィードフォワードニューラルネットワークでシナプスの重みを最適化するための手法である。バックプロパゲーションは、ニューラルネットワークの隠れ層を「ポップアップ」して、各ノードがどれだけの損失を負担しているかを確認し、その後、誤差率の高いノードに低い重みを与え、逆もまた同様、損失を最小化するように重みを更新するために使用され得る。つまり、バックプロパゲーションは、データサイエンティストが実際の出力と所望の出力との差を最小にするように、重みを繰り返し調整することを可能にする。
【0090】
バックプロパゲーションのアルゴリズムは、数学的に最適化理論に基づいている。教師あり学習では、出力が既知の訓練データをニューラルネットワークに通し、既知の目標出力からコスト関数を用いて誤差を計算し、これがバックプロパゲーションの誤差を与える。誤差は出力で計算され、この誤差は、誤差を最小化するネットワークの重みの修正に変換される。
【0091】
【0092】
【0093】
【0094】
【0095】
【0096】
AI/MLモデルは、それが良好な精度のレベル(例えば、検出のためのF2またはF4閾値を使用して97%以上、約2000エポック)に達するまで、複数のエポックにわたって訓練される。この精度レベルは、いくつかの実施形態では、F1スコア、F2スコア、F4スコア、または本発明の範囲から逸脱しない任意の他の適切な技法を使用して決定され得る。訓練データで一旦訓練されると、AI/MLモデルは、AI/MLモデルが以前に遭遇したことのない評価データのセットでテストされる。これは、AI/MLモデルが、訓練データ中のグラフィカル要素をよく特定するが、他の画像にうまく一般化しないような「過剰適合」をしないことを保証するのに役立つ。
【0097】
いくつかの実施形態では、どのような精度レベルが達成され得るかは、知られていない場合がある。したがって、評価データを分析する際にAI/MLモデルの精度が下がり始めている場合(すなわち、モデルは訓練データでは良好に実行しているが、評価データでは性能が低下し始めている)、AI/MLモデルは、訓練データ(および/または新しい訓練データ)におけるさらなる訓練のエポックを経ることができる。いくつかの実施形態では、AI/MLモデルは、精度が特定のレベルに達した場合、または訓練されたAI/MLモデルの精度が既存の展開されたAI/MLモデルより優れている場合にのみ展開される。
【0098】
特定の実施形態では、訓練されたAI/MLモデルの収集は、対象グラフィカル要素(例えば、画像用のもの、テキストフィールド用の別のもの、ラジオボタン用の別のものなど)のタイプごとにAI/MLモデルを採用する、AI/MLモデルを採用してOCRを実行する、さらに別のAI/MLモデルを展開してグラフィカル要素間の近接関係を認識する、さらに別のAI/MLモデルを採用して他のAI/MLモデルからの出力に基づいてRPAワークフローを生成するなど、タスクを実現するために使用され得る。例えば、これにより、AI/MLモデルが集合的にセマンティックオートメーションを可能にし得る。CVおよびOCRは、例えば、畳み込みおよび/またはリカレントニューラルネットワーク(RNN)を使用して実行され得る。
【0099】
いくつかの実施形態では、最先端の文、テキスト、および画像埋め込み用のPython(商標)フレームワークであるSentenceTransformers(商標)などのトランスフォーマーネットワークを使用することができる。このようなトランスフォーマーネットワークは、高いスコアと低いスコアの両方を持つ単語およびフレーズの関連付けを学習する。これは、AI/MLモデルを訓練して、何が入力に近く、何がそうでないかをそれぞれ決定する。単語/フレーズの対だけを使用するのではなく、トランスフォーマーネットワークは、フィールド長およびフィールドタイプも使用してもよい。
【0100】
いくつかの実施形態では、機械学習パイプラインを構築するためにAIスキルスタジオが使用され得る。このようなAIスキルスタジオ700は、図7に示される。AIスキルスタジオ700は、技術的に高度なデータ科学者と市民データ科学者の両方が、データ取り込み、前処理、(再)訓練、提供、および後処理のためのMLパイプラインを構築することを可能にする。このような機能は、RPAデザイナアプリケーションに組み込まれ得、1つのアプリケーションでRPA開発者とデータ科学者の両方が必要とする機能を提供する。
【0101】
インターフェースモードペイン710を使用して、ユーザーは、MLパイプラインを構築するか、または既存のMLパイプラインをテストするかを選択し得る。MLパイプライン設計ペイン720は、ユーザーがMLコンポーネントペイン730からMLコンポーネントをドラッグして、所望のMLパイプラインを構築することを可能にする。例えば、ユーザーは、MLパイプラインの入力、MLパイプラインにおけるAI/MLモデルのロケーションおよびその間のフロー、ならびにMLパイプラインの出力を定義し得る。いくつかの実施形態では、ユーザーは、各コンポーネントをクリックすることによって個別にそれを設定し得る。MLパイプラインフローは、図7に示すように、直列、並列、またはそれらの組み合わせで接続されたAI/MLモデルを含み得る。
【0102】
図8Aおよび図8Bは、本発明の実施形態による、コンダクタアプリケーション800のプロセスデザイナの設計図を示す。この例では、情報技術(IT)業務における予防保守のための異常検出を実行するために、AI対応の長時間実行ワークフローが実装される。このビューは、ユーザーがロボット、マシン、プロセス、MLスキル、ジョブ、スケジュール、プロセス設計、資産、およびキューに関連するビューを選択することができるタスク選択ペイン802を含む。MLスキルは、AIを使用した経験のないユーザーが潜在的にフローにプラグインされ得る(例えば、ドラッグアンドドロップされることによって)AI/MLモデルである。例えば、あるMLスキルは、入力として収益のセットに基づいて予測を実行してもよく、そのMLスキルに連結された別のMLスキルは、入力として予測を取り、将来の売上に対する予測を行うなどしてもよい。キューは、ロボットとコンダクタアプリケーションとの間、2または複数のロボットの間などで利用可能な、複数のタイプのデータを潜在的に格納するコンテナであってよい。RPAプロセスは、RPAロボットによって実行される動作である。
【0103】
ビュータイプメニュー804により、ユーザーは設計ビューとランタイムビューの間で選択し得る。設計ビューは、図8Aおよび図8Bに示される。一方、ランタイムビューは(例えば、図8Cを参照)、入力が期待されない場合は透過的に実行し得る、あるいは入力が要求される場合入力を入力するユーザー用の場所を提供および/または予期せぬエラーが生じる場合情報を表示するかもしくは支援を要求し得る。特定の実施形態は、MLスキル812の信頼レベルがある量を下回る場合、人間の入力が要求され得る。これは、長時間実行ワークフローによって促進され得る。プロセスデザイナペイン806は、ユーザーがコンポーネントペイン808からデザイナペイン806にコンポーネントをドラッグし、それらを相互接続することを可能にする。
【0104】
データベース810(例えば、Splunk(商標)リアルタイムログデータベース)は、比較的複雑なオンプレミスITインフラストラクチャに関連するログを捕捉する。データ科学者は、いくつかの実施形態では、図7に示されるものと同様の方法で、データストリーミングパイプをデータベース810に接続するMLパイプラインを作成する。ここではMLスキル812が示されているが、これは、MLパイプライン、別のワークフローなどに抽象化され得ることに留意されたい。特定の実施形態では、連鎖したMLスキルは、プロセスデザイナペイン806に追加され、かつ表示され得る。MLパイプラインは、例えば、図7のAIスキルスタジオ700またはUiPath AI Skills Studio(商標)などのAIスキルスタジオにおいて作成された異常検出AI/MLモデルに供給される。
【0105】
異常がMLスキル812によって検出されるとき、その出力は、第1のキュー814(例えば、UiPath(登録商標)キュー)に渡される。異常のタイプに基づいて、第1のキュー814は、MLスキル812によって検出された異常に対する修正の共通セットを試みるために、いくつかの実施形態において多くの異なるワークフローのうちの1つをトリガし得る。この例では、ワークフロー(またはRPAプロセス)816、818、820、822は、遂行されると、成功または失敗した修復が発生したかどうかを記述する第2のキュー824のための項目を生成する。キュー項目は、本発明の範囲から逸脱することなく、任意の所望のデータ型(複数可)であり得る。コンダクタアプリケーション、RPAロボットなどは、キューからこれらのデータ項目を取得し、それらを処理してもよい。項目は、いくつかの実施形態では、JSONを使用してキューに押し込まれ得る。
【0106】
成功した場合、異常検出パイプラインのパフォーマンスを経時的に改善するために、ラベルを付けて再訓練データストア(図示せず)にデータを送信する、成功した修復のためのRPAプロセス826がトリガされる。しかし、修復が失敗した場合、失敗した結果のための第3のキュー830に項目を追加する、失敗した修復のためのRPAプロセス828がトリガされる。問題は、高い優先度でITサービス管理(ITSM)システムに追加されてもよく、人間の修復データは、ITSMシステムから受信されて、RPAプロセス832を介して異常検出パイプラインの性能を改善するために再訓練データストアに送信され得る。MLパイプラインが対処できなかったこれらの修復は、再訓練中のMLパイプラインの精度を向上させるために特に有益であり得る。
【0107】
この場合、MLパイプラインは、長時間実行プロセスの最初であり、出力に基づいて遂行される後続のワークフローをトリガする。しかしながら、MLパイプラインは、本発明の範囲から逸脱することなく、長時間実行プロセスにおける任意の所望のロケーションに含まれ得る。実際、特定の実施形態では、複数のMLパイプラインがさまざまなロケーションで使用され得る。
【0108】
AI/MLモデルを長時間実行ワークフローに効果的に組み込むために、最初にソリューションアーキテクトまたはプロセスエキスパートがエンドツーエンドのフローをマッピングし得る。これは、最初に高レベルの「タスク」を設計することによって達成され得、その後、「タスク」は個々のコンポーネントを設計し構築するためにRPA開発者またはデータ科学者に割り当てられ得る。図8Aでは、異常検出器MLスキル812が選択され、そのプロパティがコンポーネントペイン808に示される。図8Bでは、サーバーから非クリティカルなプロセスを削除するためのRPAプロセス820が選択され、そのプロパティがコンポーネントペイン808に示される。このメカニズムにより、ユーザーは個々のコンポーネントを設定し得る。
【0109】
図8Cは、本発明の実施形態による、コンダクタアプリケーションのプロセスデザイナ800の設計図を示す。この実施形態では、ランタイムビューは、自動修復プロセスが機能しているとき、人間に入力を促す必要がない場合がある。しかしながら、ここでは、システムが問題に自動的に対処できなかったとき、ユーザー入力ペイン840は、コメントテキストボックス842にコメントを提供するように技術専門家を促す。次に、技術専門家は、提出ボタン844を使用してコメントを提出する、または、記録アクションボタン846を使用して彼または彼女の修復アクションを記録するようにプロセスデザイナ800に指示し得る。記録されたアクションは、その後、データベース810に保存され、MLスキル812を再訓練するために使用され得る。
【0110】
図9は、本発明の実施形態による、長時間実行ワークフローを使用してAIフローを構築および管理するように構成されたシステム900を示すアーキテクチャ図である。システム900は、デスクトップコンピュータ902、タブレット904、スマートフォン906などのユーザーコンピューティングシステムを含む。しかしながら、スマートウォッチ、ラップトップコンピュータなどを含むが、これらに限定されない、任意の所望のコンピューティングシステムが本発明の範囲から逸脱せずに使用され得る。また、図9には3つのユーザーコンピューティングシステムが示されているが、本発明の範囲から逸脱することなく、任意の適切な数のコンピューティングシステムが使用され得る。例えば、いくつかの実施形態では、数十、数百、数千、または数百万のコンピューティングシステムが使用されてもよい。
【0111】
各コンピューティングシステム902、904、906は、特定のタスク(例えば、1または複数のAI/MLモデル932、連鎖した(例えば、直列、並列、またはそれらの組み合わせ)または非連鎖のいずれか)の性能におけるAI/MLモデル(複数可)を呼び出す長時間実行ワークフローの全てまたは一部を遂行するRPAロボット910、912、914をそれぞれ有する。例えば、1または複数のRPAロボット910、912、914は、それぞれのコンピューティングシステム上でユーザーが何をしているかを認識するためにCVを使用するように訓練されたAI/MLモデルを呼び出し得る。コンピューティングシステム902、904、906は、ネットワーク920(例えば、ローカルエリアネットワーク(LAN)、モバイル通信ネットワーク、衛星通信ネットワーク、インターネット、それらのいずれかの組み合わせなど)を介して、AI/MLモデル932の遂行の要求および関連する入力情報などの情報をサーバー930に送信する。いくつかの実施形態では、サーバー930は、パブリッククラウドアーキテクチャ、プライベートクラウドアーキテクチャ、ハイブリッドクラウドアーキテクチャなどの一部であってもよい。特定の実施形態では、サーバー930は、単一のコンピューティングシステム930上で複数のソフトウェアベースのサーバーをホストしてもよい。いくつかの実施形態では、サーバー930は、1または複数の仮想マシン(VM)を介して実装され得る。サーバー930は、1または複数のRPAロボット910、912、914によって呼び出され、自動化を完了する際にそれぞれの呼び出すRPAロボットを支援する情報を提供する、本実施形態におけるAI/MLモデル932を含む。いくつかの実施形態では、RPAロボット910によって呼び出されるAI/MLモデル932は、統計的モデリング(例えば、隠れマルコフモデル(HMM))などのさまざまな機能を実行する複数の層を有し得、深層学習技術(例えば、長短期記憶(LSTM)深層学習、以前の隠れ状態のエンコードなど)を利用してユーザーインタラクションのシーケンスを特定し得る。
【0112】
サーバー930は、長時間実行ワークフローに関連するサーバーセッションを実行し、コンピューティングシステム902、904、906は、自身のクライアントセッションを実行する。いくつかの実施形態では、コンピューティングシステム902、904、906の複数のRPAロボット910、912、914は、同じ長時間実行ワークフローに関連してもよく、または長時間実行ワークフローはRPAロボット910、912、914の1つとサーバー930との間であってもよい。各長時間実行ワークフローに対して、サーバー930上に別々のサーバーセッションが存在してもよい。
【0113】
非限定的な例として、コンピューティングシステム902の顧客RPAロボット910が、コンピューティングシステム904の顧客サービスRPAロボット912によるアクションも必要とする長時間実行ワークフローを遂行している場合を考える。顧客RPAロボット910は、顧客サービスRPAロボット912からの応答を必要とするそのワークフローの時点に達し得る。次に、顧客RPAロボット910は、必要な情報(例えば、請求書のコピーが添付された請求書に関する問い合わせ)を有する要求を顧客サービスRPAロボット912に送信し、待つ。顧客サービスRPAロボット912は、要求を受信し、サーバー930を介して、請求書に対する文書処理を行うAI/MLモデル932を呼び出す。そして、顧客サービスRPAロボット912は、AI/MLモデル932からの文書処理出力を受信し、請求書の不一致とソリューションを決定し、この情報を顧客RPAロボット910に送信する。顧客RPAロボット910は、その後、この情報を用いてそのワークフローを再開する。これは、長時間実行ワークフローを使用する可能な多くの機能の一例である。
【0114】
人間のレビュアーは、コンピューティングシステム950上のレビューアプリケーション952を介して、サーバー930に検証データを提供し得る。例えば、人間のレビュアーは、AI/MLモデル932による予測が正確であることを検証してもよいし、そうでなければ修正を提供してもよい。この動的入力は、次に、AI/MLモデル932を再訓練するための訓練データとして保存され、そしていくつかの実施形態ではデータベース940に格納され得る。
【0115】
いくつかの実施形態では、複数のAI/MLモデルが使用され得る。各AI/MLモデルは、データ上で実行するアルゴリズム(またはモデル)であり、AI/MLモデル自体は、例えば、訓練データにおいて訓練された、訓練された人工「ニューロン」のDLNNであり得る。AI/MLモデルは、直列、並列、またはそれらの組み合わせで実行され得る。
【0116】
AI/MLモデルは、限定されないが、シーケンス抽出モデル、クラスタリング検出モデル、視覚成分検出モデル、テキスト認識モデル(例えば、OCR)、音声-テキスト翻訳モデル、またはそれらのいずれかの組み合わせを含み得る。しかし、本発明の範囲から逸脱することなく、AI/MLモデルの任意の所望の数およびタイプ(複数可)が使用され得る。複数のAI/MLモデルを使用することで、システムが画面で何が起こっているのかのグローバルな画像を展開し得る。例えば、あるAI/MLモデルはOCRを実行することができ、別のものはボタンを検出することができ、別のものはシーケンスを比較することができる、などである。パターンは、AI/MLモデルによって個別に決定されてもよいし、または複数のAI/MLモデルによって集合的に決定されてもよい。
【0117】
図10は、本発明の実施形態による、AIを使用する例示的な長時間実行ワークフローのフロー1000を示すフロー図である。RPAロボット1は、本実施形態では、セッションAで顧客のコンピューティングシステム上で実行する顧客ロボットである。RPAロボット2は、顧客サービスエージェントのコンピューティングシステム上で動作する顧客サービスロボットであってもよいし、または潜在的には、自動的に顧客を支援しようとするアンアテンディッドロボットであってもよい。RPAロボット2はセッションBで実行する。サーバーはセッションCで、AI/MLモデルの要求を聞き、AI/MLモデルを遂行させ、AI/MLモデルの遂行結果を返すプロセス(例えば、RPAロボットまたは他のプロセス)を実行する。
【0118】
この例は、上記の図9に関する例を反映しており、ユーザーは、請求書に関する問題を有する。顧客は、請求書の不一致に関する情報および請求書に関連するファイル(例えば、PDFファイル、請求書へのHTTPリンクなど)をRPAロボット1に提供し、これは、SendMessageアクティビティを介してRPAロボット2にこの情報を送信する。その後、RPAロボット1はソリューションを待つ。
【0119】
RPAロボット2は、ReceiveMessageアクティビティ(例えば、要求を聞くリスナーアクティビティ)を介してRPAロボット1から情報を受信し、AI/MLモデルに依存して文書処理を実行する。例えば、AI/MLモデルは、テキスト認識を行い、請求書の種類と形式を決定し、請求書から特定の関連データを引き出すなどしてもよい。RPAロボット2は、文書またはリンク、および潜在的に顧客からの問題に関する情報を、SendMessageアクティビティを介してサーバーに送信し、待つ。サーバープロセス(例えば、RPAロボット)は、ReceiveMessageアクティビティを介してRPAロボット2からこの情報を受信し、この情報を使用して適切なAI/MLモデルを遂行させる。次に、サーバープロセスは、AI/MLモデルからの結果をRPAロボット2に送信し、それは、結果を自動的または顧客サービスエージェントの支援を受けて処理し、ソリューションを決定する。そして、ソリューションはRPAロボット1に送られ、これは顧客にソリューションを提供する。
【0120】
図11は、本発明の実施形態による、AIフローを構築および管理するために長時間実行ワークフローを使用するためのプロセス1100を示すフローチャートである。プロセスは、1105で、AI/MLモデルを呼び出すAIフローを含む1または複数のRPAロボットを介して、長時間実行ワークフローを遂行することから始まる。AIフローを遂行するRPAロボット(複数可)は、本実施形態におけるステップ1105の一部として、人間のレビューが実行されるべきかどうかを決定するために、AI/MLモデルによってなされた予測に対する信頼スコアおよび/またはMLモデルの信頼度(これは、しばしば規範に対する分布である)にだけ依存しない1または複数の他の技法を監視する。これらの他の技法は、AI/MLモデル信頼度の潜在的な不正確さを切り離す。これらの他の技法はまた、高い信頼スコアを出力しているAI/MLモデルに対して、あまりにも多くの誤判定が受信されているかどうかを監視することができ得る。
【0121】
このような技法の1つは、監視が行われているAI/MLモデルが行っていることを超越した別の監視するAI/MLモデルを訓練することである。監視するAI/MLモデルは、監視されるAI/MLモデルにより出力される信頼スコアのパターンを認識し、監視されるAI/MLモデルの結果を人間に渡すべきか否かに関するより高い信頼スコアを取得するように訓練され得る。より具体的には、監視するAI/MLモデルは、監視されるAI/MLモデルからの予測、関連する信頼スコア、および監視されるAI/MLモデルに対する1または複数の人間のレビュー期間中に得られた人間による検証結果を使用して訓練され得る。
【0122】
使用され得る別の技法は、本質的に確率的であるヒューリスティックなビジネスルールを適用することである。これらは、時間ウィンドウにわたる支払額(例えば、ある時間帯はより高く重要な請求額を有する傾向がある)、提出量傾向(例えば、ある時間帯はより多くの顧客苦情を有する傾向がある)、提出物のタイプ(例えば、あるタイプの苦情は誤って分類される可能性が高くなる傾向がある)等の統計式に基づき得る。AI/MLモデルの信頼スコア、1または複数の他の技法によって提供される信頼度、あるいはそれらの組み合わせが、1110で人間による検証の閾値を下回る場合、プロセス1100は、人間のレビューおよび再訓練部分に進む。
【0123】
上記の監視する技法は、データドリフト(すなわち、AI/MLモデルがより正確でなくなるようにデータが変化している)およびコンセプトドリフト(すなわち、データの変化が不正確さに実質的に寄与せずにAI/MLモデルによってなされる予測がより正確でなくなっている)を監視することが可能であり得る。これらの監視する技法により、再訓練データが収集されるまでの間、プロセス1100は応急処置として人間のレビューが必要となる場合がある。その後、AI/MLモデルは、人間のレビューがもはや必要とされない点まで精度を向上させることを目標として再訓練され得る。
【0124】
いくつかの実施形態では、長時間実行ワークフローは、ワークフローの断片化を促進する1または複数の永続化アクティビティを含む。AI/MLモデルが以前に訓練された場合、トリガの有無にかかわらず、RPAワークフローの現在の状態が1115で保存され、AI/MLモデルがAI/MLモデルライフサイクルのどこにあるかが1120で追跡される。RPAワークフローの状態は、RPAロボットがプロセスのどこにいるか(すなわち、RPAロボットがどのアクティビティを遂行しているか)、そのアクティビティのための入力(例えば、そのアクティビティをキックオフした入力データおよびトリガ)、および人間による検証データなど、RPAワークフローを遂行するRPAロボット(複数可)のメタデータを含んでもよい。いくつかの実施形態では、状態データは、RPAロボットが遂行している場所ではなく、コンダクタアプリケーションがある場所(例えば、サーバー上)に格納され得る。
【0125】
いくつかの実施形態におけるAI/MLモデルのライフサイクルは、初期訓練、初期訓練されたAI/MLモデルによるサービング動作、AI/MLモデルの再訓練、再訓練されたAI/MLモデルの本番環境動作、およびAI/MLモデルの精度が閾値を下回った場合にAI/MLモデルを人間のレビュープロセスに送り返すことを含む。また、いくつかの実施形態では、ステップ1115は、トリガに基づいて、RPAワークフローの状態および長時間実行ワークフローにおけるロケーションを定期的に保存するために実施され得る。訓練データが1125で受信され(例えば、AI/MLモデルの初期訓練またはその再訓練のために)、そして再訓練基準が満たされている場合(例えば、ある量の再訓練データが収集される、ある数の例が収集される、ある期間が経過する、人間が手動で再訓練を開始する、など)、長時間実行ワークフローは、1130で代替AI/MLモデルを訓練するかまたはAI/MLモデルを再訓練し、新しい訓練されたAI/MLモデルまたは再訓練されたAI/MLモデルが1135で展開され、長時間実行ワークフローの遂行は1105で継続する。新たに訓練されたもしくは再訓練されたAI/MLモデルおよび/または1もしくは複数の他の技法の信頼度が、1110で依然として人間による検証の閾値を超えない場合、プロセス1100の人間のレビューおよび再訓練部分は、繰り返され得る。
【0126】
長時間実行ワークフローがAI/MLモデルによって生成された例外に遭遇した場合、またはさもなくば1140で人間による検証を必要とする場合、長時間実行ワークフローの遂行は一時中断され、1または複数のRPAロボットは1145で必要とされる検証に関する動的入力を待つ。動的入力が受信された後、長時間実行ワークフローの遂行は、1150で継続する。いくつかの実施形態では、長時間実行ワークフローの遂行の再開は、コンピューティングシステムの電源が切られた後、コンピューティングシステムがクラッシュした後、または処理リソースがAI/MLモデル訓練もしくは再訓練から離れて再割り当てされた後の保存状態およびロケーションに基づく。
【0127】
図11で実行されるプロセスステップは、本発明の実施形態に従って、図11で説明したプロセス(複数可)の少なくとも一部を実行するようにプロセッサ(複数可)への命令をエンコードするコンピュータプログラムによって実行されてもよい。コンピュータプログラムは、非一時的なコンピュータ読み取り可能な媒体に格納されていてもよい。コンピュータ読み取り可能な媒体は、ハードディスクドライブ、フラッシュデバイス、RAM、テープ、および/またはデータを格納するために使用される他のそのような媒体または媒体の組み合わせであってもよいが、これらに限定されるものではない。コンピュータプログラムは、図11に記載されたプロセスステップの全部または一部を実装するために、コンピューティングシステム(例えば、図5のコンピューティングシステム500のプロセッサ(複数可)510)のプロセッサ(複数可)を制御するためのコード化された命令を含んでもよく、これはまた、コンピュータ読み取り可能な媒体に格納されてもよい。
【0128】
コンピュータプログラムは、ハードウェア、ソフトウェア、またはハイブリッド実装で実装され得る。コンピュータプログラムは、互いに動作可能な通信を行うモジュールで構成され得、情報または指示をディスプレイに送るように設計されている。コンピュータプログラムは、汎用コンピュータ、ASIC、またはいずれかの他の好適なデバイスで動作するように構成され得る。
【0129】
本発明の様々な実施形態のコンポーネントは、本明細書に一般的に記載され、図示されているように、様々な異なる構成で配置され、設計されてもよいことが、容易に理解されるであろう。したがって、添付の図に表されるような本発明の実施形態の詳細な説明は、特許請求されるような本発明の範囲を限定することを意図するものではなく、本発明の選択された実施形態を代表するものにすぎない。
【0130】
本明細書を通して記載された本発明の特色、構造、または特徴は、1または複数の実施形態では、いずれかの好適な方法で組み合わせられ得る。例えば、本明細書全体を通して「特定の実施形態」、「いくつかの実施形態」、または類似の言語を参照することは、実施形態に関連して記載された特定の特色、構造、または特徴が、本発明の少なくとも1つの実施形態に含まれていることを意味する。したがって、本明細書全体を通して「特定の実施形態では」、「いくつかの実施形態では」、「他の実施形態では」、または類似の言語の出現は、必ずしも全ての実施形態の同じグループを指すものではなく、記載された特色、構造、または特徴は、1または複数の実施形態ではいずれかの好適な方法で組み合わせられ得る。
【0131】
本明細書全体を通して特色、利点、または類似の言語への参照は、本発明で実現され得る特色および利点の全てが、本発明のいずれかの単一の実施形態にあるべきであること、または本発明のいずれかの実施形態であることを意味するものではないことに留意すべきである。むしろ、特色および利点に言及する言語は、実施形態に関連して記載された特定の特色、利点、または特徴が、本発明の少なくとも1つの実施形態に含まれることを意味すると理解される。したがって、本明細書全体での特色および利点の議論、ならびに類似の言語は、同じ実施形態を参照することができるが、必ずしもその必要性はない。
【0132】
さらに、本発明の記載された特色、利点、および特徴は、1または複数の実施形態では、いずれかの好適な方法で組み合わせることができる。関連する技術の当業者は、本発明が、1または複数の特定の実施形態の特定の特徴または利点なしに実施され得ることを認識するであろう。他の例では、追加の特徴および利点は、本発明の全ての実施形態には存在しないかもしれない特定の実施形態では認識され得る。
【0133】
本分野における通常の技術を有する者は、上述したような本発明を、異なる順序でのステップを用いて、および/または開示されているものとは異なる構成のハードウェア要素を用いて実施することができることを容易に理解するであろう。したがって、本発明は、これらの好ましい実施形態に基づいて説明されてきたが、本発明の精神および範囲内にとどまりながら、特定の変更、変形、および代替的な構成が明らかになることは、当業者には明らかであろう。したがって、本発明の範囲を決定するためには、添付の特許請求の範囲を参照すべきである。

図1
図2
図3
図4
図5
図6A
図6B
図7
図8A
図8B
図8C
図9
図10
図11
【外国語明細書】