(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-12-06
(54)【発明の名称】ロボティックプロセスオートメーションアーキテクチャならびに機械学習モデルのホスティング、監視、および再訓練のためのプロセス
(51)【国際特許分類】
G06N 3/10 20060101AFI20231129BHJP
【FI】
G06N3/10
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2021577273
(86)(22)【出願日】2021-10-28
(85)【翻訳文提出日】2022-03-09
(86)【国際出願番号】 US2021056924
(87)【国際公開番号】W WO2022115198
(87)【国際公開日】2022-06-02
(31)【優先権主張番号】202011051236
(32)【優先日】2020-11-25
(33)【優先権主張国・地域又は機関】IN
(32)【優先日】2021-01-07
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】202011051237
(32)【優先日】2020-11-25
(33)【優先権主張国・地域又は機関】IN
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】520262319
【氏名又は名称】ユーアイパス,インコーポレイテッド
【氏名又は名称原語表記】UiPath,Inc.
【住所又は居所原語表記】1 Vanderbilt Avenue, 60th Floor, New York, NY 10017, United States of America
(74)【代理人】
【識別番号】100180781
【氏名又は名称】安達 友和
(74)【代理人】
【識別番号】100182903
【氏名又は名称】福田 武慶
(72)【発明者】
【氏名】シャシャンク シュリヴァスタヴァ
(57)【要約】
ML機械学習(ML)モデルをホスティング、監視、および再訓練するためのロボティックプロセスオートメーション(RPA)アーキテクチャおよびプロセスが開示される。再訓練は、MLモデルライフサイクルの重要な部分である。再訓練は、MLモデルのタイプおよびMLモデルが訓練されるデータに依存し得る。安全なストレージ層を使用して、再訓練のためにRPAロボットからのデータを格納することができる。この再訓練は、自動的に、遠隔で、ユーザーの関与なしに実行することができる。
【特許請求の範囲】
【請求項1】
1つまたは複数の機械学習(ML)モデルを呼び出すように構成された1つまたは複数のロボティックプロセスオートメーション(RPA)ロボットと、
前記1つまたは複数のMLモデルを格納し、前記1つまたは複数のRPAロボットのうちのそれぞれのRPAロボットからの呼び出しに応じて前記1つまたは複数のMLモデルを遂行するように構成された人工知能(AI)センターと、を含み、
前記AIセンターは、
前記MLモデルのための複数のデータセットを格納し、各データセットが論理的または物理的グループ化において類似のタイプのデータを含み、
訓練条件が満たされた場合、または前記MLモデルの訓練構成で指定された前記複数のデータセットのサブセットを使用して再訓練が手動で要求された場合に、前記1つまたは複数のMLモデルのうちの1つのMLモデルを再訓練し、前記1つまたは複数のRPAロボットによって呼び出される前記再訓練されたMLモデルを展開する、ように構成される、システム。
【請求項2】
前記AIセンターは、
1つまたは複数の再訓練パイプラインを実行するように構成された訓練クラスタと、
前記1つまたは複数のMLモデルの作成/読み取り/更新/削除(CRUD)操作を実行し、前記訓練クラスタの再訓練パイプラインに前記1つまたは複数のMLモデルの再訓練を開始させるように構成されたコア・マイクロサービス・クラスタと、
前記1つまたは複数のMLモデルを遂行し、前記遂行の結果を前記1つまたは複数のRPAロボットの呼び出しRPAロボットに提供するように構成されたMLサービスクラスタと、を含む、請求項1に記載のシステム。
【請求項3】
前記1つまたは複数のRPAロボットのうちの少なくとも1つのRPAワークフローは、前記それぞれのRPAロボットが再訓練のためにデータをアップロードするための格納場所を含むデータプッシュアクティビティを含む、請求項1に記載のシステム。
【請求項4】
前記1つまたは複数のRPAロボットのうちの少なくとも1つのRPAロボットは、ローカルデータ、リモートデータベースに格納されたデータ、またはその両方を通して繰り返し、再訓練のために前記データを前記AIセンターのストレージに送信するように構成される、請求項1に記載のシステム。
【請求項5】
前記複数のデータセットは、再訓練中にMLモデルへのポインタとして提示され、前記MLモデルは、前記それぞれのポインタを介して再訓練のための前記複数のデータセットの前記サブセットにアクセスするように再訓練される、請求項1に記載のシステム。
【請求項6】
前記AIセンターは、
再訓練されている前記MLモデルの1つまたは複数の性能尺度を受信し、
前記再訓練中に前記1つまたは複数の性能尺度に対する1つまたは複数のスコアを生成するようにさらに構成される、請求項1に記載のシステム。
【請求項7】
前記1つまたは複数のスコアの変化が、再訓練が複数回実行されるにつれて経時的に追跡される、請求項6に記載のシステム。
【請求項8】
前記AIセンターは、再訓練のためのデータポイントの数、再訓練データが収集される頻度、収集される再訓練データの量、再訓練のための1つまたは複数のトリガ、またはそれらの組み合わせを調整するように構成される、請求項1に記載のシステム。
【請求項9】
前記1つまたは複数のRPAロボットのうちの少なくとも1つのRPAワークフローは、再訓練のためのデータポイントの数、再訓練データが収集される頻度、収集される再訓練データの量、再訓練のための1つまたは複数のトリガ、またはそれらの組み合わせを調整するように構成される、請求項1に記載のシステム。
【請求項10】
前記AIセンターは、前記1つまたは複数のRPAロボットが前記1つまたは複数のMLモデルを呼び出し、前記MLモデルの遂行の結果を受信することを許可するが、前記1つまたは複数のRPAロボットが前記1つまたは複数のMLモデル自体にアクセスすることを許可しない、請求項1に記載のシステム。
【請求項11】
コンピュータプログラムを格納する非一時的コンピュータ可読媒体であって、前記コンピュータプログラムは、少なくとも1つのプロセッサに、
複数の機械学習(ML)モデルおよび前記MLモデルのための複数のデータセットを格納させ、各データセットが論理的または物理的グループ化において類似のタイプのデータを含み、
訓練条件が満たされた場合、または前記MLモデルの訓練構成で指定された前記複数のデータセットのサブセットを使用して再訓練が手動で要求された場合に、前記複数のMLモデルのうちの1つのMLモデルを再訓練させ、前記再訓練されたMLモデルを、1つまたは複数のロボティックプロセスオートメーション(RPA)ロボットによって呼び出されるように利用可能にすることによって、前記再訓練されたMLモデルを展開させる、
ように構成される、非一時的コンピュータ可読媒体。
【請求項12】
前記複数のデータセットは、再訓練中にMLモデルへのポインタとして提示され、前記MLモデルは、前記それぞれのポインタを介して再訓練のための前記複数のデータセットの前記サブセットにアクセスするように再訓練される、請求項11に記載の非一時的コンピュータ可読媒体。
【請求項13】
前記コンピュータプログラムは、前記少なくとも1つのプロセッサに、
再訓練されている前記MLモデルの1つまたは複数の性能尺度を受信させ、
前記再訓練中に前記1つまたは複数の性能尺度に対する1つまたは複数のスコアを生成させる、ようにさらに構成される、請求項11に記載の非一時的コンピュータ可読媒体。
【請求項14】
前記1つまたは複数のスコアの変化は、再訓練が複数回実行されるにつれて経時的に追跡される、請求項13に記載の非一時的コンピュータ可読媒体。
【請求項15】
前記コンピュータプログラムは、前記少なくとも1つのプロセッサに、
再訓練のためのデータポイントの数、再訓練データが収集される頻度、収集される再訓練データの量、再訓練のための1つまたは複数のトリガ、またはそれらの組み合わせを調整させるようにさらに構成される、請求項11に記載の非一時的コンピュータ可読媒体。
【請求項16】
前記コンピュータプログラムは、前記少なくとも1つのプロセッサに、
前記1つまたは複数のRPAロボットが前記複数のMLモデルを呼び出し、前記MLモデルの遂行の結果を受信することを許可させ、
前記1つまたは複数のRPAロボットが前記複数のMLモデル自体のうちの少なくとも1つにアクセスすることを防止させる、ようにさらに構成される、請求項11に記載の非一時的コンピュータ可読媒体。
【請求項17】
1つまたは複数の再訓練パイプラインを実行するように構成された訓練クラスタと、
1つまたは複数の機械学習(ML)モデルの作成/読み取り/更新/削除(CRUD)操作を実行し、前記訓練クラスタの再訓練パイプラインに前記1つまたは複数のMLモデルの再訓練を開始させるように構成されたコア・マイクロサービス・クラスタと、
前記1つまたは複数のMLモデルを遂行し、前記遂行の結果を呼び出しロボティックプロセスオートメーション(RPA)ロボットに提供するように構成されたMLサービスクラスタと、
を含む人工知能(AI)センター。
【請求項18】
前記訓練クラスタは、訓練条件が満たされた場合、または前記MLモデルの訓練構成で指定された前記複数のデータセットのサブセットを使用して再訓練が手動で要求された場合に、前記1つまたは複数のMLモデルのうちの1つのMLモデルを再訓練するように構成される、請求項17に記載のAIセンター。
【請求項19】
前記コア・マイクロサービス・クラスタは、前記RPAロボットによって呼び出される前記MLサービスクラスタに前記再訓練されたMLモデルを展開するように構成される、請求項18に記載のAIセンター。
【請求項20】
前記複数のデータセットは、再訓練中にMLモデルへのポインタとして提示され、前記MLモデルは、前記それぞれのポインタを介して再訓練のための前記複数のデータセットの前記サブセットにアクセスするように再訓練される、請求項18に記載のAIセンター。
【請求項21】
前記AIセンターは、再訓練のためのデータポイントの数、再訓練データが収集される頻度、収集される再訓練データの量、再訓練のための1つまたは複数のトリガ、またはそれらの組み合わせを調整するように構成される、請求項17に記載のAIセンター。
【請求項22】
前記MLサービスクラスタは、前記1つまたは複数のRPAロボットが前記1つまたは複数のMLモデルを呼び出し、前記MLモデルの遂行の結果を受信することを許可するが、前記1つまたは複数のRPAロボットが前記1つまたは複数のMLモデル自体にアクセスすることを許可しない、請求項17に記載のAIセンター。
【発明の詳細な説明】
【技術分野】
【0001】
(関連出願の相互参照)
本出願は、2021年1月7日に出願された米国特許出願第17/143,392号の利益を主張し、上記出願は、2020年11月25日に出願されたインド特許出願第202011051237号および2020年11月25日に出願されたインド特許出願第202011051236号の利益を主張する。これらの先願の主題は、その全体が参照により本明細書に組み込まれる。
【0002】
本発明は、一般に、ロボティックプロセスオートメーション(RPA)用の人工知能(AI)に関し、より具体的には、機械学習(ML)モデルをホスティング、監視、および再訓練するためのRPAアーキテクチャおよびプロセスに関する。
【背景技術】
【0003】
MLは、定義が困難であり、変動性が高く、確率的手法を必要とするステップを自動化するために、RPAにおいて有益であり得る。しかしながら、RPAにおけるMLは、現在、実用的な操作運用ビヒクルを欠いている。より具体的には、MLは、高速MLを提供するためにビジネスプロセスにシームレスにプラグインされるべきである。
【0004】
RPAとMLとがシームレスに作業することを妨げる3つの重要な障壁、すなわち操作、技術、およびプロセスがある。操作の観点から、ロボット操作センター(ROC)およびデータサイエンスチームは、通常、異なるスキルセット、フォーカス、およびビジネス上の優先順位を有するサイロとして独立して存在する。技術的観点から、RPA開発者は、ロボットによって実行される自動化を構築、展開、および管理するためにRPAプラットフォームを使用する。一方、データサイエンティストは専用のMLモデリングツールを使用する。現在、アプリケーション・プログラミング・インターフェース(API)としてMLモデルをパブリッシュすることは、Azure(登録商標)、Google(登録商標)、Amazon(登録商標)などのプラットフォームを介して行われている。MLモデルは、HTTPを介して公開される。しかし、ユーザーは、APIを利用するためのコードを書く必要がある。
【0005】
これらのツール、パイプライン、および技術は現在切断されており、RPAとMLは別々のプロセスとして管理されている。MLモデルを組み込むことを試みるとき、ROCは、モデルが正しい出力を生成しているかどうか、またはモデルが更新されたかどうかを知らない。また、データサイエンスチームは、モデルが正しく使用されているかどうか、およびモデルがどの程度有用であるかを知らない。例えば、データサイエンティストは、現在、ワークフローに含めるためにスキーマ定義をRPA開発者に渡す簡単な機構を持っていない。また、RPA開発者がMLモデルを展開するためのエンドポイントが変更されるかどうか、またはMLモデルがどの他のタスクに使用されているかも不明である。さらに、データサイエンティストには、モデルが破損した原因(例えば、データサイエンティストは、エンドポイントが到達可能であるかどうかを知らない場合がある)や、入力データが変化した場合にモデルを再訓練してワークフローを更新する方法は知られていない。これにより、RPAとMLとの間に基本的な切断が生じる。したがって、RPAとMLとの統合に対する改善された手法、およびMLモデル管理が有益であり得る。
【発明の概要】
【0006】
本発明の特定の実施形態は、現在のRPA技術によってまだ完全に識別、認識、または解決されていない当技術分野の問題および必要性に対するソリューションを提供することができる。例えば、本発明のいくつかの実施形態は、MLモデルをホスティング、監視、および再訓練するためのRPAアーキテクチャおよびプロセスに関する。
【0007】
一実施形態では、システムは、1つまたは複数のMLモデルを呼び出すように構成された1つまたは複数のRPAロボットを含む。システムはまた、1つまたは複数のMLモデルを格納し、1つまたは複数のRPAロボットのそれぞれのRPAロボットからの呼び出し時に1つまたは複数のMLモデルを遂行するように構成されたAIセンターを含む。AIセンターはまた、MLモデル用の複数のデータセットを格納するように構成される。各データセットは、論理的または物理的グループ化において類似のタイプのデータを含む。AIセンターは、訓練条件が満たされた場合、またはMLモデルの訓練構成で指定された複数のデータセットのサブセットを使用して再訓練が手動で要求された場合に、1つまたは複数のMLモデルのうちの1つのMLモデルを再訓練し、1つまたは複数のRPAロボットによって呼び出される再訓練されたMLモデルを展開するようにさらに構成される。
【0008】
別の実施形態では、非一時的コンピュータ可読媒体がコンピュータプログラムを格納する。コンピュータプログラムは、少なくとも1つのプロセッサに、複数のMLモデルと、MLモデル用の複数のデータセットと、を格納させるように構成される。各データセットは、論理的または物理的グループ化において類似のタイプのデータを含む。コンピュータプログラムはまた、訓練条件が満たされた場合、またはMLモデルの訓練構成で指定された複数のデータセットのサブセットを使用して再訓練が手動で要求された場合に、少なくとも1つのプロセッサに複数のMLモデルのうちの1つのMLモデルを再訓練させるように構成される。コンピュータプログラムは、再訓練されたMLモデルを1つまたは複数のRPAロボットによって呼び出されるように利用可能にすることによって、少なくとも1つのプロセッサに再訓練されたMLモデルを展開させるようにさらに構成される。
【0009】
さらに別の実施形態では、AIセンターは、1つまたは複数の再訓練パイプラインを実行するように構成された訓練クラスタと、1つまたは複数のMLモデルの作成/読み取り/更新/削除(CRUD)動作を実行し、訓練クラスタの再訓練パイプラインに1つまたは複数のMLモデルの再訓練を開始させるように構成されたコア・マイクロサービス・クラスタと、を含む。AIセンターはまた、1つまたは複数のMLモデルを遂行し、遂行の結果を呼び出しRPAロボットに提供するように構成されたMLサービスクラスタを含む。
【0010】
さらに別の実施形態では、システムは、MLモデルをコンテナに格納し、RPAロボットからの呼び出し時に格納されたMLモデルを遂行するように構成されたAIセンターを含む。MLモデルを含むコンテナの内容が暗号化もしくは難読化されるか、MLモデルが暗号化されるか、またはその両方である。
【0011】
別の実施形態では、AIセンターは、コンピュータプログラム命令を記憶するメモリと、コンピュータプログラム命令を遂行するように構成された少なくとも1つのプロセッサと、を含む。コンピュータプログラム命令は、少なくとも1つのプロセッサに、複数のMLモデルの複数のデータセットを格納させるように構成される。各データセットは、論理的または物理的グループ化において類似のタイプのデータを含む。コンピュータプログラム命令はまた、MLモデルの訓練構成において指定された複数のデータセットのサブセットを使用して、または要求に応じて手動で、訓練条件が満たされた場合に、少なくとも1つのプロセッサに、複数のMLモデルのうちの1つのMLモデルを再訓練させるように構成される。コンピュータプログラム命令は、少なくとも1つのプロセッサに、再訓練されているMLモデルの1つまたは複数の性能尺度を受信させ、再訓練中に1つまたは複数の性能尺度の1つまたは複数のスコアを生成させるようにさらに構成される。1つまたは複数のスコアが改善すると、コンピュータプログラム命令は、少なくとも1つのプロセッサに、MLモデルの以前のバージョンの代わりに再訓練されたMLモデルを展開させるか、またはMLモデルの再訓練されたバージョンを展開させ、MLモデルの再訓練されたバージョンとMLモデルの以前のバージョンの両方を使用させ、最も高い信頼度を有する結果を選択させるように構成される。
【0012】
さらに別の実施形態では、コンピュータにより実施される方法は、AIセンターによって、MLモデルをコンテナに格納するステップを含む。コンピュータにより実施される方法はまた、RPAロボットからの呼び出し時に、AIセンターによって、格納されたMLモデルを遂行するステップを含む。MLモデルを含むコンテナの内容が暗号化もしくは難読化されるか、MLモデルが暗号化されるか、またはその両方である。
【図面の簡単な説明】
【0013】
本発明の特定の実施形態の利点が容易に理解されるように、上記で簡単に説明した本発明のより具体的な説明は、添付の図面に示されている特定の実施形態を参照することによって提供される。これらの図面は、本発明の典型的な実施形態のみを示しており、したがってその範囲を限定するものと見なされるべきではないことを理解されたいが、本発明は、添付の図面を使用することによって追加の具体性および詳細を伴って説明および説明される。
【0014】
【
図1】本発明の一実施形態による、RPAシステムを示すアーキテクチャ図である。
【0015】
【
図2】本発明の一実施形態による、展開されたRPAシステムを示すアーキテクチャ図である。
【0016】
【
図3】本発明の一実施形態による、デザイナ、アクティビティ、およびドライバの間の関係を示すアーキテクチャ図である。
【0017】
【
図4】本発明の一実施形態による、RPAシステムを示すアーキテクチャ図である。
【0018】
【
図5】本発明の一実施形態による、MLモデルをホスト、監視、および再訓練するように、またはそうするシステムの一部として動作するように構成されたコンピューティングシステムを示すアーキテクチャ図である。
【0019】
【
図6A】本発明の一実施形態による、MLモデルをホスティング、監視、および再訓練するためのRPAアーキテクチャを示すアーキテクチャ図である。
【
図6B】本発明の一実施形態による、MLモデルをホスティング、監視、および再訓練するためのRPAアーキテクチャを示すアーキテクチャ図である。
【0020】
【
図7】本発明の一実施形態による、MLモデルのホスティング、監視、および再訓練を実行するように構成されたシステムを示すアーキテクチャ図である。
【0021】
【
図8】本発明の一実施形態による、低コードMLモデルパイプライン作成インターフェースを示す図である。
【0022】
【
図9】本発明の一実施形態による、MLモデルをホスティング、監視、および再訓練するためのプロセスを示すフローチャートである。
【0023】
別段の指示がない限り、同様の符号は、添付の図面を通して一貫して対応する特徴を示す。
【発明を実施するための形態】
【0024】
いくつかの実施形態は、MLモデルをホスティング、監視、および再訓練するためのRPAアーキテクチャおよびプロセスに関する。再訓練は、MLモデルライフサイクルの重要な部分である。再訓練は、MLモデルのタイプ(例えば、そのアルゴリズムのアーキテクチャ)およびMLモデルが訓練されるデータに依存し得る。いくつかの実施形態は、テナントが訓練したいデータを含むことができる安全なテナントレベルのストレージ層を使用し、RPAロボットはこのストレージ層とインタラクトすることができる。データは経時的に収集されてもよく(例えば、ユーザーコンピューティングシステム、サーバー、モバイルデバイス、それらの組み合わせなどから)、RPAロボットはこのデータをストレージ層に提供することができる。
【0025】
いくつかの実施形態では、MLモデルを再訓練するためのロジックは、MLモデルの挙動に基づく。MLモデルは、訓練/再訓練に使用されるデータがMLモデルの挙動を様々な程度に変化させ得るデータに対して異なる感度を有する。また、あるMLモデルから別のMLモデルへの再訓練には、異なる量のデータが必要とされ得る。いくつかのMLモデルは、少数のサンプルまたはデータポイントを使用して再訓練され得るが、他のMLモデルは、効果的に訓練/再訓練されるために数百、数千、数万、またはそれ以上のサンプルまたはデータポイントを必要とし得る。さらに、MLモデルは、数値またはテキストデータ、文書、スクリーンショット、画像などの異なるタイプの訓練データを必要とする場合がある。
【0026】
いくつかの実施形態では、RPAロボットのワークフローに含まれる場合、RPAロボットがストレージがどこにあるかを自動的に認識し、データをアップロードすることを可能にするデータプッシュアクティビティがある。それに加えてまたはその代わりに、RPAロボットは、ローカルデータおよび/またはリモートデータベースに格納されたデータを通して繰り返し、次いでこのデータをストレージ層に送信することができる。しかしながら、いくつかの実施形態では、人間はアプリケーション(例えば、デスクトップアプリケーション、ウェブブラウザ、携帯電話アプリケーションなど)を使用し、そこからデータをアップロードすることができる。経時的にストレージ層で収集されるデータは、異なるタイプのデータ(例えば、データセット)のグループ化を可能にすることができる。同様のタイプのデータは、論理的または物理的なグループにすることができる。いくつかの実施形態では、ユーザーは、訓練したいMLモデルを選択し、MLモデルを訓練したいデータセットを選択し、再訓練をいつ行いたいか(例えば、要求に応じて、または定期的に)を選択することができる。
【0027】
いくつかの実施形態では、データセットは、MLモデルがデータセット内のデータにアクセスするためのポインタとして提示されてもよい。MLモデルは、MLモデルが最後に訓練されたときに利用できなかった新しいデータ、古いデータと新しいデータとの組み合わせ、完全なデータセットなどに基づいて再訓練され得る。MLモデルは、新しいデータが取得されるにつれて、経時的により正確になり得る。
【0028】
いくつかの実施形態では、ユーザーは、使用したい性能尺度を選択することができ、システムは、選択された性能尺度に基づいて再訓練されたMLモデルの1つまたは複数のスコアを生成する。スコアが改善する場合、再訓練されたMLモデルは、ユーザーが望む場合に自動的に前のバージョンの代わりに使用され得る。そうでなければ、ユーザーに通知され、再訓練バージョンを展開することが望ましいかどうかを決定することができる。いくつかの実施形態では、スコアの変化を経時的に追跡することができ、精度の改善と低下の両方を強調する。次いで、ユーザーまたはシステムは、何が負のドリフトを引き起こしているかを判定しようと試みることができる。
【0029】
いくつかの実施形態では、使用されるデータの量は自動的に調整されてもよい。例えば、本発明の範囲から逸脱することなく、ユーザーがデータポイントの数、データが収集される頻度、収集されるデータの量、再訓練のためのトリガ、および/または任意の他の適切な訓練パラメータを調整することを可能にする訓練インターフェースが提供され得る。
【0030】
いくつかの実施形態のアーキテクチャは、知的財産(IP)の盗難を軽減または防止するのに役立ち得る。例えば、いくつかのホストされたMLモデルは、顧客によって提供されない場合があり、ホスティングアーキテクチャを提供する会社に専有される場合がある。これらのMLモデルは、説明のみによって利用可能にされ、ユーザーのRPAロボットに呼び出し可能にされてもよく、MLモデル自体は、ユーザーまたは呼び出しRPAロボットに提供されなくてもよい。むしろ、MLモデル遂行の結果のみが提供されてもよい。
【0031】
いくつかの実施形態は、顧客サイトでのIP盗難を軽減または防止することができる。例えば、MLモデルを含むDocker(商標)コンテナのコンテンツが暗号化もしくは難読化されてもよく、および/またはMLモデル自体が暗号化されてもよい。これにより、RPAサービスプロバイダは、それ自身の独自のMLモデル(含まれる場合)がコピーまたはリバースエンジニアリングされるリスクを抑えて、ML操作プラットフォームを顧客サイトに展開することができる。
【0032】
いくつかの実施形態では、RPA用の低コードMLモデルデプロイメントおよび訓練システムを提供することができる。MLパッケージは、ユーザーによるコーディングなしで1クリックで展開することができる。例えば、ユーザーは、MLモデルのカタログから選択し、選択されたMLモデルをターゲットコンピューティング環境(例えば、シングルノードコンピュータネットインストール、マルチノードインストールなど)に展開することができる。特定の実施形態では、ユーザーは、ボタンのシングルクリックでMLモデルを訓練することができる。そのような実施形態は、ユーザーが技術的知識を有することを必要としない場合があり、ユーザーは、手動プログラミングなしでこの機能をRPAワークフローにプラグインすることができる。
【0033】
いくつかの実施形態では、ユーザーは、複数のMLモデルを一緒にチェーン化することができる。これは、特定のロジックまたは構成に基づくことができる。MLモデルのネットワークは、潜在的にシステムが最も適切である可能性が高いと判定したMLモデルを用いて、インターフェース内のユーザーに利用可能にすることができる。例えば、ユーザーがボタンをクリックするアクティビティのMLモデルを追加しようとしている場合、グラフィカル要素認識MLモデルが提案され得る。次いで、ユーザーは、MLモデルを選択し、所望の結果を達成するために必要に応じてそれらをチェーン化することができる。
【0034】
AI/MLモデルのチェーン化は、クライアント側、サーバー側、またはその両方で行われ得る。クライアント側の連鎖について、RPA開発者は、RPAワークフローにおいて連鎖ロジックを手動で開発することができる。例えば、RPA開発者は、1つのAI/MLモデルを呼び出すアクティビティ、モデル遂行結果を別のAI/MLモデルに供給するシーケンスで別のアクティビティに供給するアクティビティなどを含み得る。
【0035】
サーバー側では、グラフに互いに接続可能なAI/MLモデルが提供されてもよいし、複数のAI/MLモデルを互いに接続可能なワークフローが作成されてもよい。例えば、ユーザーは、グラフ内のAI/MLモデルを見て、それらを自分が望むように一緒にチェーン化することができる。クライアント側およびサーバー側の両方の連鎖について、ユーザーは、直列AI/MLモデル接続、並列接続、またはそれらの組み合わせを作成することができる。
【0036】
いくつかの実施形態では、ML操作プラットフォームの機能は、1つのコンピューティングシステム(例えば、単一のサーバー)に含まれ得る。このコンピューティングシステムは、例えば、RPAサービスプロバイダによって遠隔でホストされるのではなく、クライアントサイトに配置されてもよい。そのようなコンピューティングシステムは、ホストされたクラウドシステム上で提供することができる機能をローカルに提供することができるという意味で「クラウド様」機能を提供することができる。そのような実施形態は、特定のヘルスケアアプリケーション、金融サービスアプリケーションなどのためにコンピューティングシステムが規制上またはセキュリティ上の理由でグリッドから外れなければならないエアギャップシナリオに特に有用であり得る。そのようなシナリオでは、特定の特権ユーザーおよび/または他のコンピューティングシステムは、ML動作プラットフォームを提供するコンピューティングシステムにアクセスすることができる。
【0037】
いくつかの実施形態では、ユーザーが訓練/再訓練のためにデータをマーク/ラベル付けすることができるラベリングツールを有するアプリケーションを提供することができる。次いで、ラベル付けされたデータを、訓練/再訓練のためのデータセットにプッシュすることができる。ユーザーがデータを検証することができる検証機能も提供され得る。
【0038】
図1は、本発明の一実施形態による、RPAシステム100を示すアーキテクチャ図である。RPAシステム100は、開発者がワークフローを設計および実装することを可能にするデザイナ110を含む。デザイナ110は、アプリケーション統合、ならびにサードパーティアプリケーション、管理情報技術(IT)タスク、およびビジネスITプロセスを自動化するためのソリューションを提供することができる。デザイナ110は、ビジネスプロセスのグラフィカル表現である自動化プロジェクトの開発を容易にすることができる。簡単に言えば、デザイナ110は、ワークフローおよびロボットの開発およびデプロイメントを容易にする。
【0039】
自動化プロジェクトは、本明細書で「アクティビティ」と定義される、ワークフローで開発されたステップのカスタムセット間の遂行順序および関係の制御を開発者に与えることによって、ルールベースのプロセスの自動化を可能にする。デザイナ110の一実施形態の一商用例は、UiPath Studio(商標)である。各アクティビティは、ボタンのクリック、ファイルの読み取り、ログパネルへの書き込みなどのアクションを含むことができる。いくつかの実施形態では、ワークフローはネストまたは埋め込みされてもよい。
【0040】
いくつかのタイプのワークフローは、シーケンス、フローチャート、有限状態機械(FSM)、および/またはグローバル例外ハンドラを含むことができるが、これらに限定されない。シーケンスは、ワークフローを乱すことなく1つのアクティビティから別のアクティビティへの流れを可能にする線形プロセスに特に適し得る。フローチャートは、より複雑なビジネスロジックに特に適しており、複数の分岐論理演算子を介してより多様な方法で決定の統合およびアクティビティの接続を可能にする。FSMは、大規模なワークフローに特に適している場合がある。FSMは、条件(すなわち、遷移)またはアクティビティによってトリガされる有限数の状態をそれらの遂行において使用することができる。グローバル例外ハンドラは、遂行エラーに遭遇したときのワークフローの挙動を判定し、プロセスをデバッグするのに特に適し得る。
【0041】
ワークフローがデザイナ110で開発されると、ビジネスプロセスの遂行は、デザイナ110で開発されたワークフローを遂行する1つまたは複数のロボット130を編成するコンダクタ120によって編成される。コンダクタ120の一実施形態の一商用例は、UiPathオーケストレータ(商標)である。コンダクタ120は、環境内のリソースの作成、監視、およびデプロイメントの管理を容易にする。コンダクタ120は、第三者のソリューションおよびアプリケーションとの統合ポイントとして機能することができる。
【0042】
コンダクタ120は、集中ポイントからロボット130を接続し遂行するすべてのロボット130を管理することができる。管理され得るロボット130のタイプは、これらに限定されないが、アテンディッドロボット132、アンアテンディッドロボット134、開発ロボット(アンアテンディッドロボット134と同様であるが、開発および試験の目的で使用される)、および非生産ロボット(アテンディッドロボット132と同様であるが、開発および試験の目的で使用される)を含む。アテンディッドロボット132は、ユーザーイベントによってトリガされ、同じコンピューティングシステム上で人間と一緒に動作する。アテンディッドロボット132は、集中プロセスデプロイメントおよび記録媒体のためのコンダクタ120と共に使用することができる。アテンディッドロボット132は、人間のユーザーが様々なタスクを達成するのを助けることができ、ユーザーイベントによってトリガすることができる。いくつかの実施形態では、プロセスは、このタイプのロボットのコンダクタ120から開始することができず、および/またはロックされた画面の下で実行することができない。特定の実施形態では、アテンディッドロボット132は、ロボットトレイまたはコマンドプロンプトからのみ起動することができる。いくつかの実施形態では、アテンディッドロボット132は人間の監督下で動作するべきである。
【0043】
アンアテンディッドロボット134は、仮想環境で無人で動作し、多くのプロセスを自動化することができる。アンアテンディッドロボット134は、リモート遂行、監視、スケジューリング、および作業待ち行列のサポートの提供を担当することができる。いくつかの実施形態では、すべてのロボットタイプのデバッグを、デザイナ110で実行することができる。アテンディッドロボットおよびアンアテンディッドロボットの両方は、メインフレーム、ウェブアプリケーション、VM、エンタープライズアプリケーション(例えば、SAP(登録商標)、SalesForce(登録商標)、Oracle(登録商標)などによって製造されたもの)、およびコンピューティングシステムアプリケーション(例えば、デスクトップおよびラップトップアプリケーション、モバイルデバイスアプリケーション、ウェアラブルコンピュータアプリケーションなど)を含むがこれらに限定されない様々なシステムおよびアプリケーションを自動化することができる。
【0044】
コンダクタ120は、プロビジョニング、デプロイメント、構成、キューイング、監視、ロギング、および/または相互接続性の提供を含むがこれらに限定されない様々な機能を有することができる。プロビジョニングは、ロボット130とコンダクタ120(例えば、ウェブアプリケーション)との間の接続の作成および保守を含むことができる。デプロイメントは、遂行のために割り当てられたロボット130へのパッケージバージョンの正しい配信を保証することを含むことができる。構成は、ロボット環境およびプロセス構成の維持および配信を含むことができる。キューイングは、キューおよびキュー項目の管理を提供することを含むことができる。監視は、ロボット識別データを追跡し、ユーザー権限を維持することを含むことができる。ロギングは、データベース(例えば、SQLデータベース)および/または別のストレージ機構(例えば、大規模なデータセットを格納し、迅速にクエリする能力を提供するElasticSearch(登録商標))へのログの格納およびインデックス付けを含むことができる。コンダクタ120は、第三者のソリューションおよび/またはアプリケーションのための通信の集中ポイントとして作用することによって相互接続性を提供することができる。
【0045】
ロボット130は、デザイナ110に構築されたワークフローを実行する遂行エージェントである。ロボット130のいくつかの実施形態の一商用例は、UiPath Robots(商標)である。いくつかの実施形態では、ロボット130は、デフォルトでMicrosoft Windows(登録商標)Service Control Manager(SCM)管理サービスをインストールする。結果として、そのようなロボット130は、ローカルシステムアカウントの下でインタラクティブなWindows(登録商標)セッションを開き、Windows(登録商標)サービスの権利を有することができる。
【0046】
いくつかの実施形態では、ロボット130は、ユーザーモードで設置することができる。このようなロボット130の場合、これは、所与のロボット130が設置されているユーザーと同じ権利を有することを意味する。この特徴は、その最大の可能性で各機械の完全な利用を保証する高密度(HD)ロボットにも利用可能であり得る。いくつかの実施形態では、任意のタイプのロボット130をHD環境で構成することができる。
【0047】
いくつかの実施形態におけるロボット130は、各々が特定の自動化タスク専用であるいくつかのコンポーネントに分割される。いくつかの実施形態におけるロボットコンポーネントは、SCM管理ロボットサービス、ユーザーモードロボットサービス、エグゼキュータ、エージェント、およびコマンドラインを含むが、これらに限定されない。SCM管理ロボットサービスは、Windows(登録商標)セッションを管理および監視し、コンダクタ120と遂行ホスト(すなわち、ロボット130が遂行されるコンピューティングシステム)との間のプロキシとして機能する。これらのサービスは、ロボット130の資格情報で信頼され、管理する。コンソールアプリケーションは、ローカルシステムの下でSCMによって起動される。
【0048】
いくつかの実施形態におけるユーザーモードロボットサービスは、Windows(登録商標)セッションを管理および監視し、コンダクタ120と遂行ホストとの間のプロキシとして機能する。ユーザーモードロボットサービスは、ロボット130のための資格情報を信頼し管理することができる。SCM管理ロボットサービスがインストールされていない場合、Windows(登録商標)アプリケーションを自動的に起動することができる。
【0049】
エグゼキュータは、Windows(登録商標)セッション下で所与のジョブを実行することができる(すなわち、エグゼキュータはワークフローを遂行することができる)。エグゼキュータは、モニターごとのドット/インチ(DPI)設定を認識することができる。エージェントは、システムトレイウィンドウに利用可能なジョブを表示するWindows(登録商標)Presentation Foundation(WPF)アプリケーションであってもよい。エージェントは、サービスのクライアントであってもよい。エージェントは、ジョブの開始または停止および設定の変更を要求することができる。コマンドラインは、サービスのクライアントである。コマンドラインは、ジョブの開始を要求し、その出力を待つことができるコンソールアプリケーションである。
【0050】
上記で説明したようにロボット130のコンポーネントを分割することは、開発者、サポートユーザー、およびコンピューティングシステムが各コンポーネントが実行しているものをより容易に実行、識別、および追跡するのに役立つ。このようにして、エグゼキュータおよびサービスに対して異なるファイアウォールルールを設定するなど、特別な挙動をコンポーネントごとに構成することができる。エグゼキュータは、いくつかの実施形態では、モニターごとにDPI設定を常に認識することができる。結果として、ワークフローは、それらが作成されたコンピューティングシステムの構成にかかわらず、任意のDPIで遂行され得る。いくつかの実施形態では、デザイナ110からのプロジェクトは、ブラウザのズームレベルとは無関係であってもよい。DPIを認識していない、または意図的に認識していないとマークされたアプリケーションの場合、いくつかの実施形態ではDPIを無効にすることができる。
【0051】
図2は、本発明の一実施形態による、展開されたRPAシステム200を示すアーキテクチャ図である。いくつかの実施形態では、RPAシステム200は、
図1のRPAシステム100であってもよいし、その一部であってもよい。クライアント側、サーバー側、またはその両方は、本発明の範囲から逸脱することなく、任意の所望の数のコンピューティングシステムを含むことができることに留意されたい。クライアント側では、ロボットアプリケーション210は、エグゼキュータ212と、エージェント214と、デザイナ216と、を含む。しかしながら、いくつかの実施形態では、デザイナ216は、コンピューティングシステム210上で実行されていなくてもよい。エグゼキュータ212は、実行中のプロセスである。
図2に示すように、いくつかのビジネスプロジェクトが同時に実行されてもよい。エージェント214(例えば、Windows(登録商標)サービス)は、この実施形態ではすべてのエグゼキュータ212に対する単一の接続ポイントである。この実施形態におけるすべてのメッセージは、データベースサーバー240、インデクササーバー250、またはその両方を介してそれらをさらに処理するコンダクタ230にログされる。
図1に関して上述したように、エグゼキュータ212はロボットコンポーネントであってもよい。
【0052】
いくつかの実施形態では、ロボットは、機械名とユーザー名との間の関連付けを表す。ロボットは、複数のエグゼキュータを同時に管理することができる。同時に実行される複数のインタラクティブなセッション(例えば、Windows(登録商標)Server 2012)をサポートするコンピューティングシステムでは、複数のロボットが同時に実行され、それぞれが一意のユーザー名を使用して別々のWindows(登録商標)セッションで実行されてもよい。これは、上記ではHDロボットと呼ばれる。
【0053】
エージェント214はまた、ロボットのステータス(例えば、ロボットがまだ機能していることを示す「ハートビート」メッセージを定期的に送信する)を送信し、遂行されるパッケージの必要なバージョンをダウンロードする役割も担う。エージェント214とコンダクタ230との間の通信は、いくつかの実施形態では常にエージェント214によって開始される。通知シナリオでは、エージェント214は、ロボットにコマンド(例えば、始動、停止など)を送信するためにコンダクタ230によって後で使用されるWebSocketチャネルを開くことができる。
【0054】
サーバー側には、プレゼンテーション層(ウェブアプリケーション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)およびJavaScript(JS)を使用する。しかしながら、本発明の範囲から逸脱することなく、任意の所望のマークアップ言語、スクリプト言語、または任意の他のフォーマットを使用することができる。ユーザーは、コンダクタ230を制御するための様々なアクションを実行するために、この実施形態ではブラウザ220を介してウェブアプリケーション232からのウェブページとインタラクトする。例えば、ユーザーは、ロボットグループを作成し、ロボットにパッケージを割り当て、ロボットごとおよび/またはプロセスごとにログを分析し、ロボットを起動および停止することなどができる。
【0055】
ウェブアプリケーション232に加えて、コンダクタ230はまた、OData REST APIエンドポイント234を公開するサービス層を含む。しかしながら、本発明の範囲から逸脱することなく、他のエンドポイントが含まれてもよい。REST APIは、ウェブアプリケーション232とエージェント214の両方によって消費される。エージェント214は、この実施形態ではクライアントコンピュータ上の1つまたは複数のロボットの管理者である。
【0056】
この実施形態におけるREST APIは、構成、ロギング、監視、およびキューイング機能をカバーする。構成エンドポイントは、いくつかの実施形態では、アプリケーションユーザー、権限、ロボット、アセット、リリース、および環境を定義および構成するために使用され得る。例えば、エラー、ロボットによって送信された明示的なメッセージ、および他の環境固有の情報などの様々な情報をログに記録するために、RESTエンドポイントをロギングすることができる。開始ジョブコマンドがコンダクタ230内で使用される場合に遂行されるべきパッケージバージョンをクエリするために、デプロイメントRESTエンドポイントがロボットによって使用されてもよい。RESTエンドポイントをキューイングすることは、キューにデータを追加すること、キューからトランザクションを取得すること、トランザクションの状態を設定することなど、キューおよびキュー項目管理を担当することができる。
【0057】
RESTエンドポイントの監視は、ウェブアプリケーション232およびエージェント214を監視することができる。通知監視API236は、エージェント214の登録、エージェント214への構成設定の配信、ならびにサーバーおよびエージェント214からの通知の送信/受信に使用されるRESTエンドポイントであってもよい。通知監視API236はまた、いくつかの実施形態では、WebSocket通信を使用してもよい。
【0058】
永続層は、この実施形態におけるサーバーのペア、すなわちデータベースサーバー240(例えば、SQLサーバー)およびインデクササーバー250を含む。この実施形態におけるデータベースサーバー240は、ロボット、ロボットグループ、関連するプロセス、ユーザー、役割、スケジュールなどの構成を格納する。この情報は、いくつかの実施形態ではウェブアプリケーション232を介して管理される。データベースサーバー240は、キューおよびキュー項目を管理することができる。いくつかの実施形態では、データベースサーバー240は、(インデクササーバー250に加えて、またはその代わりに)ロボットによって記録されたメッセージを格納することができる。
【0059】
インデクササーバー250は、いくつかの実施形態ではオプションであり、ロボットによって記録された情報を格納し、インデックス付けする。特定の実施形態では、インデクササーバー250は、構成設定を通じて無効にすることができる。いくつかの実施形態では、インデクササーバー250は、オープンソースプロジェクトのフルテキスト探索エンジンであるElasticSearch(登録商標)を使用する。ロボット(例えば、ログメッセージまたは行書き込みのようなアクティビティを使用する)によってログされたメッセージは、ロギングRESTエンドポイントを介してインデクササーバー250に送信されてもよく、そこでそれらは将来の利用のためにインデックス付けされる。
【0060】
図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に実装することができるアクティビティは、数百または数千であってもよい。しかしながら、本発明の範囲から逸脱することなく、任意の数および/またはタイプのアクティビティが利用可能であり得る。
【0061】
UI自動化アクティビティ330は、下位レベルコード(例えば、CVアクティビティ)に書き込まれ、画面とのインタラクションを容易にする特別な低レベルのアクティビティのサブセットである。UI自動化アクティビティ330は、ロボットが所望のソフトウェアとインタラクトすることを可能にするドライバ340および/またはAI/MLモデルを介したこれらのインタラクションを容易にする。例えば、ドライバ340は、OSドライバ342、ブラウザドライバ344、VMドライバ346、エンタープライズアプリケーションドライバ348などを含むことができる。AI/MLモデル350のうちの1つまたは複数は、コンピューティングシステムとのインタラクションの実行を決定するためにUI自動化アクティビティ330によって使用され得る。いくつかの実施形態では、AI/MLモデル350は、ドライバ340を増強するか、それらを完全に置き換えることができる。実際、特定の実施形態では、ドライバ340は含まれない。
【0062】
ドライバ340は、フックを探し、キーを監視するなど、低レベルでOSとインタラクトすることができる。それらは、Chrome(登録商標)、IE(登録商標)、Citrix(登録商標)、SAP(登録商標)などとの統合を容易にすることができる。例えば、「クリック」アクティビティは、ドライバ340を介してこれらの異なるアプリケーションで同じ役割を実行する。
【0063】
図4は、本発明の一実施形態による、RPAシステム400を示すアーキテクチャ図である。いくつかの実施形態では、RPAシステム400は、
図1および/または
図2のRPAシステム100および/または200であり得るか、それらを含み得る。RPAシステム400は、ロボットを実行する複数のクライアントコンピューティングシステム410を含む。コンピューティングシステム410は、その上で実行されるウェブアプリケーションを介してコンダクタコンピューティングシステム420と通信することができる。次に、コンダクタコンピューティングシステム420は、データベースサーバー430および任意選択のインデクササーバー440と通信することができる。
【0064】
図1および
図3に関して、これらの実施形態ではウェブアプリケーションが使用されているが、本発明の範囲から逸脱することなく、任意の適切なクライアント/サーバーソフトウェアを使用できることに留意されたい。例えば、コンダクタは、クライアントコンピューティングシステム上の非ウェブベースのクライアントソフトウェアアプリケーションと通信するサーバー側アプリケーションを実行することができる。
【0065】
図5は、本発明の一実施形態による、AI/MLモデルをホスト、監視、および再訓練するように、またはそうするシステムの一部として動作するように構成されたコンピューティングシステム500を示すアーキテクチャ図である。いくつかの実施形態では、コンピューティングシステム500は、本明細書に図示および/または記載されたコンピューティングシステムのうちの1つまたは複数であってもよい。コンピューティングシステム500は、情報を通信するためのバス505または他の通信機構と、情報を処理するためにバス505に結合されたプロセッサ510と、を含む。プロセッサ510は、中央プロセッシングユニット(CPU)、特定用途集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、グラフィックスプロセッシングユニット(GPU)、それらの複数のインスタンス、および/またはそれらの任意の組み合わせを含む、任意のタイプの汎用または専用プロセッサであってもよい。プロセッサ510はまた、複数の処理コアを有してもよく、コアの少なくともいくつかは、特定の機能を実行するように構成されてもよい。いくつかの実施形態では、複数並列処理が使用されてもよい。特定の実施形態では、プロセッサ510の少なくとも一方は、生体ニューロンを模倣する処理要素を含むニューロモーフィック回路であってもよい。いくつかの実施形態では、ニューロモーフィック回路は、フォン・ノイマン・コンピューティングアーキテクチャの典型的なコンポーネントを必要としない場合がある。
【0066】
コンピューティングシステム500は、プロセッサ510によって遂行される情報および命令を格納するためのメモリ515をさらに含む。メモリ515は、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、フラッシュメモリ、キャッシュ、磁気もしくは光ディスクなどの静的ストレージ、または任意の他のタイプの非一時的コンピュータ可読媒体、またはそれらの組み合わせの任意の組み合わせで構成することができる。非一時的コンピュータ可読媒体は、プロセッサ510によってアクセス可能な任意の利用可能な媒体であってもよく、揮発性媒体、不揮発性媒体、またはその両方を含んでもよい。媒体はまた、取り外し可能、取り外し不能、またはその両方であってもよい。
【0067】
さらに、コンピューティングシステム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つまたは複数のアンテナを含むことができる。
【0068】
プロセッサ510はさらに、バス505を介して、プラズマディスプレイ、液晶ディスプレイ(LCD)、発光ダイオード(LED)ディスプレイ、電界放出ディスプレイ(FED)、有機発光ダイオード(OLED)ディスプレイ、フレキシブルOLEDディスプレイ、フレキシブル基板ディスプレイ、プロジェクションディスプレイ、4Kディスプレイ、高精細ディスプレイ、Retina(登録商標)ディスプレイ、インプレーンスイッチング(IPS)ディスプレイ、またはユーザーに情報を表示するための任意の他の適切なディスプレイなどのディスプレイ525にさらに結合される。ディスプレイ525は、抵抗性、容量性、表面弾性波(SAW)容量性、赤外線、光学イメージング、分散信号技術、音響パルス認識、フラストレート全内部反射などを使用して、タッチ(触覚)ディスプレイ、3次元(3D)タッチディスプレイ、マルチ入力タッチディスプレイ、マルチタッチディスプレイなどとして構成され得る。本発明の範囲から逸脱することなく、任意の適切なディスプレイデバイスおよび触覚I/Oが使用され得る。
【0069】
キーボード530およびコンピュータマウス、タッチパッドなどのカーソル制御デバイス535は、ユーザーがコンピューティングシステムとインターフェースすることを可能にするためにバス505にさらに結合される。しかしながら、特定の実施形態では、物理的なキーボードおよびマウスが存在しなくてもよく、ユーザーは、ディスプレイ525および/またはタッチパッド(図示せず)のみを介してデバイスとインタラクトすることができる。入力デバイスの任意のタイプおよび組み合わせを、設計上の選択事項として使用することができる。特定の実施形態では、物理的入力デバイスおよび/またはディスプレイは存在しない。例えば、ユーザーは、それと通信する別のコンピューティングシステムを介してコンピューティングシステム500と遠隔でインタラクトすることができ、またはコンピューティングシステム500は自律的に動作することができる。
【0070】
メモリ515は、プロセッサ510によって遂行されると機能を提供するソフトウェアモジュールを格納する。モジュールは、コンピューティングシステム500のためのオペレーティングシステム540を含む。モジュールは、本明細書に記載のプロセスまたはその派生物の全部または一部を実行するように構成されたAI/MLモデルホスティング、監視、および再訓練モジュール545をさらに含む。コンピューティングシステム500は、追加の機能を含む1つまたは複数の追加の機能モジュール550を含むことができる。
【0071】
当業者は、「システム」が、本発明の範囲から逸脱することなく、サーバー、組込みコンピューティングシステム、パーソナルコンピュータ、コンソール、パーソナルデジタルアシスタント(PDA)、携帯電話、タブレットコンピューティングデバイス、量子コンピューティングシステム、もしくは任意の他の適切なコンピューティングデバイス、またはデバイスの組み合わせとして具現化され得ることを理解するであろう。上記の機能を「システム」によって実行されるものとして提示することは、本発明の範囲を決して限定することを意図するものではなく、本発明の多くの実施形態の一例を提供することを意図している。実際、本明細書に開示する方法、システム、および装置は、クラウドコンピューティングシステムを含むコンピューティング技術と一致する局所化された形態および分散された形態で実装されてもよい。コンピューティングシステムは、ローカルエリアネットワーク(LAN)、移動通信ネットワーク、衛星通信ネットワーク、インターネット、パブリッククラウドもしくはプライベートクラウド、ハイブリッドクラウド、サーバーファーム、それらの任意の組み合わせなどの一部であるか、またはそれらによってアクセス可能であり得る。本発明の範囲から逸脱することなく、任意の局所化されたまたは分散されたアーキテクチャが使用されてもよい。
【0072】
本明細書に記載されたシステム特徴のいくつかは、それらの実施態様の独立性をより具体的に強調するために、モジュールとして提示されていることに留意されたい。例えば、モジュールは、カスタムの超大規模集積(VLSI)回路またはゲートアレイ、ロジックチップ、トランジスタ、または他のディスクリートコンポーネントなどの既製の半導体を含むハードウェア回路として実装されてもよい。モジュールはまた、フィールドプログラマブルゲートアレイ、プログラマブルアレイロジック、プログラマブルロジックデバイス、グラフィックスプロセッシングユニットなどのプログラマブルハードウェアデバイスに実装されてもよい。
【0073】
モジュールはまた、様々なタイプのプロセッサによって遂行するためのソフトウェアに少なくとも部分的に実装されてもよい。遂行可能コードの識別されたユニットは、例えば、オブジェクト、プロシージャ、または関数として編成することができるコンピュータ命令の1つまたは複数の物理ブロックまたは論理ブロックを含むことができる。それにもかかわらず、識別されたモジュールの遂行可能ファイルは、物理的に共に配置される必要はないが、論理的に共に結合されたときにモジュールを含み、モジュールの記載された目的を達成する異なる場所に格納された異なる命令を含むことができる。さらに、モジュールは、コンピュータ可読媒体に格納されてもよく、それは、例えば、ハードディスクドライブ、フラッシュデバイス、RAM、テープ、および/または本発明の範囲から逸脱することなくデータを格納するために使用される任意の他のそのような非一時的コンピュータ可読媒体であってもよい。
【0074】
実際、遂行可能コードのモジュールは、単一の命令、または多くの命令であってもよく、いくつかの異なるコードセグメント、異なるプログラム、およびいくつかのメモリデバイスに分散されてもよい。同様に、操作データは、本明細書ではモジュール内で識別および図示されてもよく、任意の適切な形態で具現化され、任意の適切なタイプのデータ構造内に編成されてもよい。操作データは、単一のデータセットとして収集されてもよく、または異なるストレージデバイスを含む異なる場所に分散されてもよく、少なくとも部分的に、システムまたはネットワーク上の電子信号としてのみ存在してもよい。
【0075】
図6Aおよび
図6Bは、本発明の一実施形態による、MLモデルをホスティング、監視、および再訓練するためのRPAアーキテクチャ600を示すアーキテクチャ図である。アーキテクチャ600は、AIセンタークライアント階層650、AIセンターサービス階層660、およびAIセンターストレージ階層670を含む。AIセンターサービス階層660内のサービスコンポーネントは、この実施形態では、クラウドネット(k8s)クラスタ内でホストされる。しかしながら、いくつかの実施形態では、本発明の範囲から逸脱することなく、単一のk8sクラスタを使用することができる。
【0076】
この実施形態のクライアント階層650では、クラウドRPA610は、AIセンターユーザー604などのユーザーを登録することができ、組織からの他のユーザーに様々なサービスを使用するように招待することができるサービスとしてのソフトウェア(SaaS)を提供するクラウドプラットフォーム(例えば、パブリッククラウド、プライベートクラウド、ハイブリッドクラウドなど)である。管理者602は、組織内のユーザーに対してAIセンターを有効にする能力を有することができる。管理者602はまた、そのアカウントの下でテナント/グループにライセンスを割り当てることができる。いくつかの実施形態では、クラウドRPA610とAIセンターとの間の典型的なインタラクションは、AIセンターを有効化/無効化し、MLスキルを展開するために使用できるテナントへのライセンスの割り当てである。AIセンターサービス階層660によって供給される使用統計611はまた、クラウドRPA610を介して管理者602によってアクセス可能である。
【0077】
ユーザー604(例えば、MLエンジニア、プロセスエンジニア、またはデータサイエンティスト)は、AIアプリケーション614の一部として事前構成されたMLモデルを構築する。いくつかの実施形態では、AIアプリケーション614は、ユーザーがMLモデルのライフサイクルを作成および管理することができるUIを提供するウェブアプリケーションである。RPA開発者606は、RPAデザイナ616(例えば、UiPath Studio(商標))によってワークフローを開発し、ワークフローはその後に、RPAロボット618を作成するために使用される。RPAデザイナ616およびRPAロボット618は、コンダクタ612と通信して構成およびトークンをフェッチし、AIセンターサービス階層660のAIセンターサービスにアクセスする。いくつかの実施形態では、認証および許可されたクライアントのみがコンダクタ612からデータを取得することができる。クライアントが認可されている場合、トークンが有効である間にサービス階層660へのアクセスを可能にするトークンが提供されてもよい。
【0078】
RPAロボット618は、それらが動作しているコンピューティングシステムおよび/またはそれらがアクセスすることができる任意の他のデータソースまたはストレージからデータを取得することができる。このデータは、RPAロボット618によって、それぞれAPIゲートウェイ632、642を介してコアマイクロサービスまたはMLスキルに送信され得る。MLスキル646、647、648は、例えば、MLパッケージの消費者対応のライブデプロイメントであり得る。いくつかの実施形態におけるロボット618の役割は、異なる場所(例えば、ブロブ/ファイルストレージおよび/またはデータストリームからのデータ)から異なるタイプのデータを取得し、それをMLスキルに供給すること、ならびにMLスキル646、647、648の出力を取得し、それを所望のストレージおよび/またはストリームにプッシュすることである。いくつかの実施形態では、RPAロボット618はデータセットにデータをアップロードすることもできる。
【0079】
RPA開発者606は、RPAデザイナ616を使用してRPAワークフローを構築し、ユーザー604はMLモデルを構築し、それらをコンダクタ612またはAIアプリケーション614にアップロードする。プロビジョニング、作成/読み取り/更新/削除(CRUD)、およびMLスキル(およびそれぞれのMLモデル)のリスト化は、コアサービスからMLモデルのメタデータを受信するAPIゲートウェイ632を介して行われる。ロボット618はまた、それらの動作のためにモデル(例えば、MLスキル646、647、648)を遂行するMLスキルを消費する。
【0080】
APIゲートウェイ632との通信に関して、クラウドRPA610は、テナントプロビジョニング(TP)情報を送信する。本実施形態におけるTP情報は、テナントに関するメタデータである。テナントは、MLモデルおよびその顧客に関連するデータを所有する顧客の論理的ユニットである。このメタデータは、コンダクタテナントへの参照、名前および場所などのいくつかの基本的な詳細を含むことができる。
【0081】
AIアプリケーション614は、コアエンティティ(CE)のCRUDを実行する。本実施形態におけるコアエンティティは、他のエンティティ(例えば、MLパッケージ、MLスキル、テナント、プロジェクト、監査ログ、データセットなど)との関係を有するデータベースに格納されたメタデータテーブルである。コンダクタ612またはAIアプリケーション614は、MLスキル(LS)をリスト化し、RPAロボット618は、MLスキルをリスト化する。コンダクタ612および/またはAIアプリケーション614は、MLスキルをリスト化して、MLスキルに対するCRUD操作に関与する管理者に詳細を示すことができるが、RPAロボット618は、RPA開発者がMLスキルを選択し、それをRPAワークフローで使用することができるように、読み取り専用MLスキルリストを示すことができる。RPAロボットはまた、MLサービスクラスタ640のAPIゲートウェイ642を介してMLスキル646、647、648から予測を受信する。
【0082】
この実施形態におけるサービス階層694のサービスは、訓練クラスタ620、コア・マイクロサービス・クラスタ630、およびMLサービスクラスタ640の3つのk8sクラスタを含む。コア・マイクロサービス・クラスタは、この実施形態ではデータベース633を使用することができるAPIゲートウェイ632を含む。同様に、MLサービスクラスタ640は、データベース643を使用することができるAPIゲートウェイ642を含む。データベース633、643は、入ってくる要求を検証するために使用され得るそれぞれのAPIゲートウェイ632、642の構成および規則を格納する。APIゲートウェイ632、642は、不正使用、乱用、盗難、サービス妨害攻撃などを防ぐためにサービス/スキルの前に位置するサービスである。ゲートウェイ632、642は、要求を検証し、より多くのセキュリティポリシーを適用して背後のリソースを保護することもできる。次いで、ゲートウェイ632、642は、ゲートウェイ632、642の背後に存在するサービスからの検証された要求についての情報を返す。
【0083】
AIトレーナ634は、訓練クラスタ620の再訓練パイプライン622、624、626を介してMLモデルの再訓練を容易にするサービスである。再訓練パイプライン622、624、626は、異なるテナントのために訓練クラスタ620で実行される訓練ジョブである。AIトレーナ634は、AIアプリケーション614で再訓練パイプライン622、624、626を作成するときにユーザーが指定した内容に基づいて、必要なコンピューティングリソース(例えば、CPUリソース設定、GPUリソース設定、RAM割り当てなど)を有する訓練ジョブを作成するように訓練クラスタ620に命令する。所与の訓練ジョブが完了すると、生成されたアーチファクトをストレージ(例えば、ブロブストレージ672)にブッシュすることができ、リソースを解放することができる。
【0084】
AIヘルパー635は、非同期操作、ステートマシン管理、ストレージ抽象化およびアクセスなどの内部ユーティリティサービスの集合を提供する。AIパッケージマネージャ636は、コンダクタ612および/またはAIアプリケーション614によって呼び出されるMLパッケージおよびプロジェクトCRUDならびに関連するREST APIを提供する。AIディプロイア637は、必要な依存関係を有するMLモデルの画像(例えば、Docker(商標)画像)を構築し、コンテナレジストリ674にプッシュし、MLサービスクラスタ640のKubernetes APIとインタラクトして、MLスキル646、647、648のMLスキルとしてコンテナを配備する。上記のように、いくつかの実施形態では、Docker(商標)を使用してMLモデル画像をパッケージ化することができる。
【0085】
コア・マイクロサービス・クラスタ630はメッセージブローカ638を含み、これは、長時間実行および非同期タスクをサポートするパブリッシュ/サブスクライブモデルベースのメッセージング機能を提供するマルチテナントサーバーである。ブロブストレージ672は、MLモデルおよび他の依存ファイルを格納するためのマルチテナントストレージを提供する。コンテナレジストリ674は、顧客がアップロードしたMLモデルのドッカー画像を格納するためのマルチテナント専用コンテナレジストリを提供する。SQLサーバー676は、MLスキル、MLパッケージ、データセットなどのためのメタデータを格納する。イベント/ログストレージ678は、k8sクラスタ620、630、640内で動作するアプリケーション/ポッドのログおよびメトリックを格納する。k8sクラスタ620、630、640とイベント/ログストレージ678との間の接続は存在するが、それらは
図6Bには示されていない。
【0086】
サービスメッシュコントローラ644(例えば、Istio(商標))は、MLスキル646、647、648のためのトラフィックルーティングルール、監視などのサービスメッシュ機能を提供する。MLスキル646、647、648に出入りできるものは、サービスメッシュコントローラ644によって制御される。サービスメッシュコントローラ644は、MLスキルのためのネットワーキングポリシーおよび監視ポリシーをプッシュする。例えば、サービスメッシュコントローラ644は、要求が来る可能性のあるインターネットプロトコル(IP)アドレスを制御し、ウイルスをブロックし、顧客が独自のコードをダウンロードすること、および/または特定のポートにアクセスすることをブロックすることなどができる。APIゲートウェイ642は、MLスキル646、647、648に対するクライアント要求を検証する。
【0087】
MLモデルが検証および展開され、MLスキル646、647、648としてRPAロボット618に利用可能になると、RPAロボット618が動作中にMLモデルを使用するアクティビティに達した場合に、RPAロボット618は、要求および関連するデータをMLサービスクラスタ640のAPIゲートウェイ642に送信する。しかしながら、いくつかの実施形態では、MLモデルの遂行のためのデータは、RPAロボット618とは異なるソースによって補足されてもよく、または完全に異なるソースからもたらされてもよいことに留意されたい。
【0088】
所与のRPAロボット618のML動作のためのデータは、サービスメッシュコントローラ644を介して適切なMLスキル646、647、648にルーティングされる。次いで、MLスキル646、647、648からの出力は、APIゲートウェイ642を介して適切なRPAロボット618に送り返される。次いで、ロボットは、このデータを使用してそのMLアクティビティを実行する。特定のMLアクティビティについて、ロボット618は、MLスキル646、647、648にデータを複数回送信および/またはMLスキルからデータを受信することができることに留意されたい。
【0089】
しかしながら、MLスキル646、647、648が配備されると、MLスキル646、647、648のさらなる管理が望ましい。いくつかの実施形態における再訓練は、MLモデルのタイプおよびMLモデルが訓練されるデータに依存し得る。いくつかの実施形態は、テナントが訓練したいデータを含むことができるAIセンターストレージ階層670を使用し、RPAロボット618はAIセンターストレージ階層670とインタラクトすることができる。データは経時的に収集されてもよく、RPAロボット618はこのデータをAIセンターストレージ階層670に提供することができる。いくつかの実施形態では、訓練データはブロブストレージ672に格納される。
【0090】
例えば、RPAロボット618は、それぞれのRPAロボット618がAIセンターストレージ階層670がどこにあるかを自動的に認識し、データをアップロードすることを可能にするRPAワークフローのアクティビティを介して、AIセンターストレージ階層670にデータをプッシュし続けることができる。それに加えてまたはその代わりに、RPAロボット618は、ローカルデータおよび/またはAIセンターストレージ階層670の外側のリモートデータベースに格納されたデータを繰り返し、次いでこのデータをAIセンターストレージ階層670に送信することができる。このデータは、MLスキル646、647、648に関連するMLモデルを再訓練するために使用され得る。例えば、MLスキル646、647、648のMLモデルの性能を監視することができる。MLスキル646、647、648のMLモデルの性能が特定のしきい値(例えば、用途に応じて60%、80%、95%、99%などの信頼度)を下回る場合には、AIトレーナ634は、AIセンターストレージ階層670に格納されたデータを使用してそのMLモデルの再訓練を開始することができる。それに加えてまたはその代わりに、MLスキル646、647、648のMLモデルは、そのそれぞれのMLモデルを訓練するために一定量のデータが受信された後に、一定時間が経過した後などに再訓練され得る。
【0091】
経時的にAIセンターストレージ階層670に収集されたデータは、異なるタイプのデータをデータセットにグループ化することを可能にし得る。同様のタイプのデータは、論理的または物理的なグループにすることができる。いくつかの実施形態では、ユーザーは、AIアプリケーション614を介して、どのMLモデルを訓練したいかを選択し(適切なアクセス権を持っている場合)、それぞれのMLモデルを訓練したいデータセットを選択および管理し、いつ再訓練を行いたいか(例えば、要求に応じて、または定期的に)を選択し、再訓練パイプラインを作成/監視することなどができる。
【0092】
いくつかの実施形態では、データセットは、MLモデルがデータセット内のデータにアクセスするためのポインタとして提示されてもよい。MLスキル646、647、648のMLモデルは、それぞれのMLモデルが最後に訓練されたときに利用できなかったより新しいデータ、古いデータとより新しいデータとの組み合わせ、完全なデータセットなどに基づいて再訓練することができる。MLモデルは、新しいデータが取得されるにつれて経時的により正確になり得る。
【0093】
いくつかの実施形態では、ユーザーは、使用したい性能尺度を選択または定義することができ、再訓練パイプライン622、624、626は、選択された性能尺度に基づいて再訓練されたMLモデルのための1つまたは複数のスコアを生成する。訓練クラスタ620は、再訓練のためのリソース(例えば、CPU、GPU、RAMなど)の管理を可能にする抽象化の層を提供する。いくつかの実施形態では、本発明の範囲から逸脱することなく、複数のk8sクラスタ、複数のストレージ階層、またはその両方を使用できることに留意されたい。スコアが改善する場合、再訓練されたMLモデルは、ユーザーが望む場合に自動的に前のバージョンの代わりに使用され得る。そうでなければ、ユーザーに通知され、再訓練バージョンを展開することが望ましいかどうかを決定することができる。いくつかの実施形態では、スコアの変化を経時的に追跡することができ、精度の改善と低下の両方を強調する。次いで、ユーザーまたは訓練クラスタ620は、何が負のドリフトを引き起こしているかを判定しようと試みることができる。
【0094】
いくつかの実施形態では、使用されるデータの量は自動的に調整されてもよい。例えば、本発明の範囲から逸脱することなく、ユーザーがデータポイントの数、データが収集される頻度、収集されるデータの量、再訓練のためのトリガ、および/または任意の他の適切な訓練パラメータを調整することを可能にする訓練インターフェースを、コンダクタ612またはAIアプリケーション614の一部として提供することができる。
【0095】
図6Aおよび
図6Bのアーキテクチャは、IP盗難を軽減または防止するのに役立ち得る。例えば、ホストされたMLスキル646、647、648のMLモデルまたは他の利用可能なホストされたMLモデルのうちの少なくともいくつかは、いくつかの実施形態では顧客によって提供されなくてもよく、アーキテクチャ600を提供する会社の専有であってもよい。これらのMLモデルは、説明のみによってRPAロボット618によって利用可能にされ、呼び出し可能にされてもよく、独自のMLモデル自体は、ユーザーまたは呼び出しRPAロボット618に提供されなくてもよい。むしろ、MLモデル遂行の結果のみが提供されてもよい。
【0096】
いくつかの実施形態では、RPA用の低コードMLモデルデプロイメントおよび訓練システムを提供することができる。MLパッケージは、ユーザー604および/またはRPA開発者606によるコーディングなしで1クリックで展開することができる。例えば、ユーザーは、MLモデルのカタログから選択し、選択されたMLモデルをターゲットコンピューティング環境(例えば、単一ノードk8sインストール、マルチノードk8sインストールなど)に展開することができる。特定の実施形態では、ユーザーは、ボタンのシングルクリックでMLスキル646、647、648のMLモデルを訓練することができる。例えば、
図8の低コードMLモデルパイプライン作成インターフェース800を参照されたい。そのような実施形態は、ユーザー604および/またはRPA開発者606が技術的知識を有することを必要としなくてもよく、手動プログラミングなしで訓練/再訓練をトリガすることができる。しかしながら、これは、MLモデルパッケージが顧客に属し、UiPath(登録商標)などのRPAプロバイダによって提供されるアウトオブボックスのMLモデルではない場合には、完全には当てはまらない可能性がある。訓練可能なMLモデルパッケージを構築するために、独自のカスタムMLモデルを生成する顧客は、MLモデルパッケージ上の予測のために行うことに加えて、いくつかのコーディングを行うことができる。
【0097】
いくつかの実施形態では、RPA開発者606は、複数のMLモデルを一緒にチェーン化することができる。これは、特定のロジックまたは構成に基づくことができる。MLモデルのネットワークは、潜在的にシステムが最も適切である可能性が高いと判定したMLモデルを用いて、インターフェース(例えば、RPAデザイナアプリケーション606)内のユーザーに利用可能にすることができる。例えば、RPA開発者606が、デザイナアプリケーション616を使用してボタンをクリックするアクティビティのためのMLモデルを追加しようとしている場合、グラフィカル要素認識MLモデルは、例えば、コア・マイクロサービス・クラスタ630によって提案され得る。次いで、RPA開発者606は、MLモデルを選択し、所望の結果を達成するために必要に応じてそれらをチェーン化することができる。
【0098】
図7は、本発明の一実施形態による、MLモデルのホスティング、監視、および再訓練を実行するように構成されたシステム700を示すアーキテクチャ図である。システム700は、デスクトップコンピュータ702、タブレット704、およびスマートフォン706などのユーザーコンピューティングシステムを含む。しかしながら、限定はしないが、スマートウォッチ、ラップトップコンピュータなどを含む、本発明の範囲から逸脱することなく、任意の所望のコンピューティングシステムを使用することができる。また、
図7には3つのユーザーコンピューティングシステムが示されているが、本発明の範囲から逸脱することなく、任意の適切な数のコンピューティングシステムを使用することができる。例えば、いくつかの実施形態では、数十、数百、数千、または数百万のコンピューティングシステムを使用することができる。
【0099】
各コンピューティングシステム702、704、706は、データベース(図示せず)に送信するためのデータを収集し、および/または特定のタスク(例えば、連鎖または非連鎖のいずれかのAI/MLモデル732のうちの1つまたは複数)の性能においてAI/MLモデルを遂行するRPAロボット710を有する。例えば、RPAロボット710のうちの1つまたは複数は、CVを使用してユーザーがそれぞれのコンピューティングシステム上で何をしているかを認識するように訓練されたAI/MLモデルを使用することができる。コンピューティングシステム702、704、706は、ネットワーク720(例えば、ローカルエリアネットワーク(LAN)、移動通信ネットワーク、衛星通信ネットワーク、インターネット、それらの任意の組み合わせなど)を介してサーバー730に情報を送信する。いくつかの実施形態では、サーバー730は、パブリッククラウドアーキテクチャ、プライベートクラウドアーキテクチャ、ハイブリッドクラウドアーキテクチャなどの一部であってもよい。特定の実施形態では、サーバー730は、単一のコンピューティングシステム730上で複数のソフトウェアベースのサーバーをホストしてもよい。いくつかの実施形態では、サーバー730は、1つまたは複数の仮想マシン(VM)を介して実装されてもよい。特定の実施形態では、サーバー730は、インターネット接続性を有さない「エアギャップ」サーバーであってもよい。サーバー730は、いくつかの実施形態では、AIセンター機能を提供する単一のマシンまたはマシンのクラスタであってもよい。サーバー730は、この実施形態では、それぞれの呼び出しRPAロボットが自動化を完了するのを支援する情報を提供するためにRPAロボット710のうちの1つまたは複数によって呼び出されるAI/MLモデル732を含む。いくつかの実施形態では、RPAロボット710によって呼び出されるAI/MLモデル732は、統計的モデリング(例えば、隠れマルコフモデル(HMM))などの様々な機能を実行する複数の層を有し、深層学習技術(例えば、長期短期記憶(LSTM)深層学習、以前の隠れ状態の符号化など)を利用してユーザーインタラクションのシーケンスを識別することができる。
【0100】
展開されると、AI/MLモデル732の再訓練が望ましい場合がある。しかしながら、MLモデルまたはMLスキルのデプロイメントは、いくつかの実施形態では訓練のための前提条件ではない場合がある。実際、いくつかのMLモデルは、展開される前に訓練される必要がある。いくつかの実施形態における再訓練は、MLモデルのタイプおよびMLモデルが訓練されるデータに依存し得る。いくつかの実施形態は、テナントが訓練したいデータを含むことができる安全なテナントレベルのストレージ層(例えば、データベース740の一部として)を使用し、RPAロボット710のうちの1つまたは複数はこのストレージ層とインタラクトすることができる。データは経時的に収集されてもよく、RPAロボット710のうちの1つまたは複数は、このデータをデータベース740に提供することができる。
【0101】
例えば、RPAロボット732のうちの1つまたは複数は、それぞれのRPAロボット710がデータベース740がどこにあるかを自動的に知り、データをアップロードすることを可能にするRPAワークフロー内のアクティビティを介してデータベース740にデータをプッシュし続けることができる。それに加えてまたはその代わりに、RPAロボット710は、ローカルデータおよび/または別のリモートデータベースに格納されたデータを繰り返し、次いでこのデータをデータベース740に送信することができる。このデータは、AI/MLモデル732を再訓練するために使用することができる。例えば、サーバー730は、AI/MLモデル732の性能を監視することができる。AI/MLモデル732の性能が特定のしきい値(例えば、用途に応じて60%、80%、95%、99%などの信頼度)を下回る場合には、サーバー730は、データベース740に格納されたデータを使用してそのAI/MLモデル732の再訓練を開始することができる。それに加えてまたはその代わりに、AI/MLモデル732は、特定の時間が経過した後などに、そのそれぞれのAI/MLモデルを訓練するために特定の量のデータが受信された後に再訓練されてもよい。
【0102】
経時的にデータベース740に収集されるデータは、異なるタイプのデータをデータセットにグループ化することを可能にすることができる。同様のタイプのデータは、論理的または物理的なグループにすることができる。いくつかの実施形態では、ユーザーは、訓練したいAI/MLモデル732のAI/MLモデルを選択し(適切なアクセス権を持っている場合)、それぞれのAI/MLモデルを訓練したいデータセットを選択し、いつ再訓練を行いたいか(例えば、要求に応じて、または定期的に)を選択することができる。
【0103】
いくつかの実施形態では、データセットは、AI/MLモデル732がデータセット内のデータにアクセスするためのポインタとして提示されてもよい。AI/MLモデル732は、それぞれのAI/MLモデルが最後に訓練されたときに利用できなかった新しいデータ、古いデータと新しいデータの組み合わせ、フルデータセットなどに基づいて再訓練することができる。AI/MLモデル732は、新しいデータが取得されるにつれて経時的により正確になることができる。
【0104】
いくつかの実施形態では、ユーザーは、使用したい性能尺度を選択することができ、サーバー730は、選択された性能尺度に基づいて再訓練されたAI/MLモデルのための1つまたは複数のスコアを生成する。いくつかの実施形態では、本発明の範囲から逸脱することなく、複数のサーバー、複数のデータベース、またはその両方を使用することができることに留意されたい。スコアが改善された場合、再訓練されたAI/MLモデルは、自動的に前のバージョンの代わりに使用するためにサーバー730によって展開され得る。あるいは、コンピューティングシステム750のユーザーに通知し、再訓練バージョンを展開することが望ましいかどうかを決定することができる。いくつかの実施形態では、スコアの変化を経時的に追跡することができ、精度の改善と低下の両方を強調する。次いで、コンピューティングシステム750またはサーバー730のユーザーは、何が負のドリフトを引き起こしているかを判定しようと試みることができる。
【0105】
いくつかの実施形態では、使用されるデータの量は自動的に調整されてもよい。例えば、本発明の範囲から逸脱することなく、コンピューティングシステム750のユーザーがデータポイントの数、データが収集される頻度、収集されるデータの量、再訓練のためのトリガ、および/または任意の他の適切な訓練パラメータを調整することを可能にする訓練インターフェース752を提供することができる。
【0106】
システム700のアーキテクチャは、IP盗難を緩和または防止するのに役立ち得る。例えば、ホストされたAI/MLモデル732の少なくともいくつかは、ユーザーコンピューティングシステム702、704、706の会社によって提供されなくてもよい。そのようなAI/MLモデルは、説明のみによってRPAロボット710によって利用可能にされ、呼び出し可能にされてもよく、独自のAI/MLモデル自体は、ユーザーまたは呼び出しRPAロボット710に提供されなくてもよい。むしろ、AI/MLモデル遂行の結果のみが提供されてもよい。
【0107】
AI層
【0108】
いくつかの実施形態では、複数のAI層を使用することができる。各AI層は、データ上で実行されるアルゴリズム(またはモデル)であり、AIモデル自体は、訓練データで訓練された訓練済人工「ニューロン」の深層学習ニューラルネットワーク(DLNN)であってもよい。層は、直列、並列、またはそれらの組み合わせで実行されてもよい。
【0109】
AI層は、シーケンス抽出層、クラスタリング検出層、視覚コンポーネント検出層、テキスト認識層(例えば、OCR)、音声テキスト変換層、またはそれらの任意の組み合わせを含むことができるが、これらに限定されない。しかしながら、本発明の範囲から逸脱することなく、任意の所望の数およびタイプの層を使用することができる。複数の層を使用することにより、システムは画面内で何が起こっているかの全体像を作成することができる。例えば、1つのAI層はOCRを実行することができ、別のAI層はボタンを検出することができ、別のAI層はシーケンスを比較することができるなどである。パターンは、AI層によって個別に、または複数のAI層によって集合的に決定され得る。
【0110】
図8は、本発明の一実施形態による、低コードMLモデルパイプライン作成インターフェース800を示す。インターフェース800は、ユーザーがプログラミングなしで新しいMLパイプラインランを作成することを可能にする。例えば、ユーザーは、パイプラインタイプ(例えば、訓練、評価、または完全(訓練+評価))、MLパッケージ、MLパッケージのメジャーバージョンおよびマイナーバージョン、入力データセット、および評価データセットを指定することができる。いくつかの実施形態では、訓練パイプラインは、パッケージおよびデータセットを入力として受け取り、新しいパッケージバージョンを生成し、評価パイプラインは、パッケージバージョンおよびデータセットを入力として受け取り、メトリックおよびログのセットを生成し、完全パイプラインは、処理機能、訓練パイプライン、およびその直後の評価パイプラインを実行する。MLパッケージのメジャーバージョンは、RPAプロバイダによって提供されたバージョンまたは顧客によってアップロードされたバージョンであり、MLパッケージのマイナーバージョンは、メジャー/マイナーバージョンがパイプラインを使用して訓練されたときに生成されるバージョンである。すべての訓練パイプライン実行は、いくつかの実施形態ではMLパッケージのマイナーバージョンを生成する。ユーザーはまた、環境変数を追加し、GPU訓練を有効にするかどうかを選択し、MLパイプラインをいつ実行すべきか(例えば、すぐに、時間に基づく、繰り返しなど)を選択することができる。環境変数は、例えば、訓練ジョブを調整するためにMLモデルアルゴリズムによって使用され得るハイパーパラメータ(例えば、推定器の数、エポックの数など)など、データに加えて任意選択的に提供され得るモデル固有の構成を含むことができる。
【0111】
図9は、本発明の一実施形態による、MLモデルをホスティング、監視、および再訓練するためのプロセス900を示すフローチャートである。プロセスは、910において、MLモデルおよびMLモデルのデータセットを格納することから始まる。いくつかの実施形態では、各データセットは、論理的または物理的グループ化において類似のタイプのデータを含む。特定の実施形態では、データセットは、ローカルデータ、リモートデータベースに格納されたデータ、またはその両方を繰り返し、再訓練のためにデータをAIセンターのストレージに送信するRPAロボットによって提供される。その後に、920において、RPAロボットによって呼び出された格納されたMLモデルが遂行される。いくつかの実施形態では、呼び出しRPAロボットのRPAワークフローは、それぞれのRPAロボットが再訓練のためにデータをアップロードするための格納場所を含むデータプッシュアクティビティを含む。特定の実施形態では、AIセンターまたはRPAロボットのアクティビティは、再訓練のためのデータポイントの数、再訓練データが収集される頻度、収集される再訓練データの量、再訓練のための1つまたは複数のトリガ、またはそれらの組み合わせを調整するように構成される。いくつかの実施形態では、RPAロボットは、モデルを呼び出し、MLモデルの遂行の結果を受信することを許可されるが、1つまたは複数のMLモデル自体にアクセスすることは許可されない。特定の実施形態では、MLモデルはコンテナに格納され、MLモデルを含むコンテナの内容が暗号化もしくは難読化されるか、MLモデルが暗号化されるか、またはその両方である。
【0112】
930において再訓練要求が受信されるか、または再訓練条件が満たされた場合には、940において、MLモデルの訓練構成において指定された複数のデータセットのサブセットを使用してMLモデルが再訓練される。いくつかの実施形態では、複数のデータセットは、再訓練中にMLモデルへのポインタとして提示され、再訓練中のMLモデルは、それぞれのポインタを介して再訓練のために複数のデータセットのサブセットにアクセスする。950において、再訓練されているMLモデルの1つまたは複数の性能尺度が受信され、再訓練中に1つまたは複数の性能尺度の1つまたは複数のスコアが生成され、1つまたは複数のスコアの変化が経時的に追跡される。次いで、960で再訓練されたMLモデルが展開され、プロセスはステップ920に戻る。いくつかの実施形態では、1つまたは複数のスコアが改善すると、AIセンターは、MLモデルの以前のバージョンの代わりに再訓練されたMLモデルを展開するように構成され得る。特定の実施形態では、1つまたは複数のスコアが改善すると、AIセンターは、MLモデルの再訓練バージョンを展開し、MLモデルの再訓練バージョンとMLモデルの以前のバージョンの両方を使用し、最も高い信頼度を有する結果を選択するように構成される。いくつかの実施形態では、プロセス900は、1つまたは複数の再訓練パイプラインを実行するように構成された訓練クラスタと、MLモデルのCRUD操作を実行し、訓練クラスタの再訓練パイプラインにMLモデルの再訓練を開始させるように構成されたコア・マイクロサービス・クラスタと、MLモデルを遂行し、その遂行の結果を呼び出しRPAロボットに提供するように構成されたMLサービスクラスタと、によって実行されてもよい。
【0113】
いくつかの実施形態では、RPA用の低コードMLモデルデプロイメントおよび訓練アプリケーションが使用され、低コードMLモデルデプロイメントおよび訓練アプリケーションは、ユーザーによるコーディングなしに1クリックでMLパッケージを展開するように構成される。特定の実施形態では、低コードMLモデルデプロイメントおよび訓練アプリケーションは、MLモデルのカタログからの選択を容易にし、選択されたMLモデルをターゲットコンピューティング環境としてAIセンターに展開するように構成される。いくつかの実施形態では、低コードMLモデルデプロイメントおよび訓練アプリケーションは、互いに接続可能なMLモデルのグラフを表示するように構成される。特定の実施形態では、グラフ内のMLモデルは、直列、並列、またはその両方で接続可能である。
【0114】
図9で実行されるプロセスステップは、本発明の実施形態に従って、プロセッサが
図9で説明したプロセスの少なくとも一部を実行するための命令を符号化するコンピュータプログラムによって実行されてもよい。コンピュータプログラムは、非一時的コンピュータ可読媒体上で具現化されてもよい。コンピュータ可読媒体は、ハードディスクドライブ、フラッシュデバイス、RAM、テープ、および/またはデータを格納するために使用される任意の他のそのような媒体または媒体の組み合わせであってもよいが、これらに限定されない。コンピュータプログラムは、コンピュータ可読媒体に格納することもできる、
図9で説明したプロセスステップの全部または一部を実施するようにコンピューティングシステムのプロセッサ(例えば、
図5のコンピューティングシステム500のプロセッサ510)を制御するための符号化命令を含むことができる。
【0115】
コンピュータプログラムは、ハードウェア、ソフトウェア、またはハイブリッド実装で実施することができる。コンピュータプログラムは、互いに動作可能に通信し、表示するために情報または命令を渡すように設計されたモジュールから構成することができる。コンピュータプログラムは、汎用コンピュータ、ASIC、または任意の他の適切なデバイス上で動作するように構成することができる。
【0116】
本発明の様々な実施形態のコンポーネントは、本明細書の図に一般的に記載および図示するように、多種多様な異なる構成で配置および設計されてもよいことが容易に理解されよう。したがって、添付の図面に表される本発明の実施形態の詳細な説明は、特許請求される本発明の範囲を限定することを意図するものではなく、本発明の選択された実施形態を単に代表するものである。
【0117】
本明細書を通して説明される本発明の特徴、構造、または特性は、1つまたは複数の実施形態において任意の適切な方法で組み合わせることができる。例えば、本明細書全体を通して「特定の実施形態」、「いくつかの実施形態」、または同様の文言への言及は、実施形態に関連して説明される特定の特徴、構造、または特性が本発明の少なくとも1つの実施形態に含まれることを意味する。したがって、本明細書全体を通して、「特定の実施形態では」、「いくつかの実施形態では」、「他の実施形態では」、または同様の文言の出現は、必ずしもすべてが同じ実施形態のグループを指すわけではなく、記載された特徴、構造、または特性は、1つまたは複数の実施形態において任意の適切な方法で組み合わせることができる。
【0118】
本明細書を通して特徴、利点、または同様の文言を参照することは、本発明で実現され得る特徴および利点のすべてが本発明の任意の単一の実施形態であるべきであること、または本発明の任意の単一の実施形態であることを意味するものではないことに留意されたい。むしろ、特徴および利点に言及する文言は、一実施形態に関連して説明される特定の特徴、利点、または特性が本発明の少なくとも1つの実施形態に含まれることを意味すると理解される。したがって、本明細書を通して、特徴および利点、ならびに同様の文言の説明は、必ずしもそうとは限らないが、同じ実施形態を参照することができる。
【0119】
さらに、本発明の記載された特徴、利点、および特性は、1つまたは複数の実施形態において任意の適切な方法で組み合わせることができる。当業者は、特定の実施形態の特定の特徴または利点の1つまたは複数なしで本発明を実施できることを認識するであろう。他の例では、本発明のすべての実施形態には存在しない可能性がある特定の実施形態において、追加の特徴および利点が認識され得る。
【0120】
当業者は、上述の本発明が、異なる順序のステップ、および/または開示されているものとは異なる構成のハードウェア要素を用いて実施され得ることを容易に理解するであろう。したがって、本発明をこれらの好ましい実施形態に基づいて説明してきたが、本発明の趣旨および範囲内に留まりながら、特定の修正、変形、および代替構築が明らかであることは、当業者には明らかであろう。したがって、本発明の範囲を決定するために、添付の特許請求の範囲を参照すべきである。
【国際調査報告】