9
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【UiPath】AI Centerを使ってRPAに機械学習を導入してみる

Posted at

はじめに

AI Centerとは、UiPath社が提供する機械学習プラットフォームサービスです。
これを使うと、RPAと機械学習を連携させることができます。
機械学習に精通している必要はありませんが、基礎的知識はあった方が良いです(学習済みのモデルをStudioから呼び出すだけなら、なんとなくできますが、各モデルの仕様を深堀すると専門的知識が必要です)。

本記事ではAI Centerの基本的な使い方をまとめます。

つかうもの

※クラウド環境は2022年6月時点のもの

  • Automation Cloud(AI Center) Enterprise版

AI Centerを使うには

AI Centerを使用するには、3つの方法があります。

  1. Automation Cloudを使用する
  2. Automation Suiteを構築して使用する
  3. AI Centerを構築して使用する

1. Automation Cloud

UiPath社が提供するクラウド環境を使用します。
簡単に始めることができます。GPUも使用できます。
Community版では使用できません。Enterprise版を購入するか無償トライアルを申請します。

2. Automation Suite

自社のデータセンターまたは、AWSなどのパブリッククラウドにて、Automation Suiteを構築します。
Automation SuiteにはAI Centerだけでなく、Orchestratorや他サービスも一度に構築できます。
セキュリティポリシーなど自社の制約でAutomation Cloudが使用できない場合に有効です。

3. AI Center

自社のデータセンターまたは、AWSなどのパブリッククラウドにて、AI Centerを構築します。
Automation Suiteと違い、AI Center単独での構築となります。
GPUを使用する場合は、対応したアーキテクチャを選択する必要があります。

AI Centerを始める

AI Centerを使う手順を簡単に説明します。

※あくまでAI Centerの使い方にフォーカスします。機械学習で最も重要で大変な作業である、モデルの構築、データセットの準備(収集・ラベリング)は済んでいる前提で進めます。

流れは以下の通りです。
手順1.png

  1. プロジェクトを作成する
  2. モデルを選ぶ
  3. データセットを登録する(選択したモデルによってはスキップできます)
  4. パイプラインを実行する(選択したモデルによってはスキップできます)
  5. デプロイする
  6. Studioから呼び出す

今回のユースケースは、「玄関先の画像をインプットにして、置き配(段ボールなど)があれば、お知らせを通知する」というフローを想定して、物体検出モデルを使って玄関先の画像から段ボールらしき物体を検出させてみたいと思います。
(そんな業務が実際にあるかどうかは置いておきます)

1. プロジェクトを作成する

まずはプロジェクトを作成します。
「アクセスを制限」を有効にするとプロジェクトにアクセスできるロールを限定できます。
プロジェクト作成1.png

2. モデルを選ぶ

機械学習モデルを選択します。
自作のPythonコードでも良いですが、すでに用意されたプリセットのモデルも使用できます。
AI Centerではモデルを「MLパッケージ」とも呼びます。
※今回は、オープンソースの物体検出モデル(ObjectDetection)を使用します。
パッケージ作成1.png
パッケージ作成2.png

3. データセットを登録する

トレーニングで使用するデータセットを登録します。
ステップ2で選択したモデルによっては、事前トレーニングが済んでいるものがあるので、このステップは不要になる場合もあります。
※今回使用する物体検出モデルも事前トレーニング済みモデルですが、今回は再トレーニングしてから使用します。
データセット作成1.png

データセットはフォルダ階層ごと登録できます。
今回は、トレーニング用データセット(trainフォルダ)と評価用データセット(testフォルダ)の2つを準備します。
どのような形式のデータを準備するかは選択したモデルによって異なりますが、今回の物体検出モデルでは、各フォルダに画像ファイルとアノテーションファイル(.xml)が複数セット入れておきます(詳細は割愛します)。
データセット作成2.png

4. パイプラインを実行する

ステップ3のデータセットを使用し、モデルをトレーニングします。必要であれば、トレーニング後の評価も行えます。
ステップ2で選択したモデルによっては、事前トレーニングが済んでいるものがあるので、このステップは不要になる場合もあります。
※今回使用する物体検出モデルも事前トレーニング済みモデルですが、今回は再トレーニングしてから使用します。

今回は、フルパイプライン(トレーニング+評価)を実行します。
「パッケージを選択」は、ステップ2で選択したモデルを選び、「入力データセットを選択」、「評価データセットを選択」では、それぞれステップ3で登録したデータセットを選択します。
「パラメータを入力」は、モデル固有のハイパーパラメータで、選択したモデルによって変わります(今回の例では必要ありません)。
実行タイミングは「今すぐ実行」を選択しますが、定期的な再学習をスケジュールすることも可能です。
パイプライン実行1.png

選択したモデルとデータセットに依存しますが、パイプライン実行(トレーニング)はかなりの時間がかかります。今回の検証では、250件程度のデータセットを用意しましたが、フルパイプラインの実行に6時間半かかりました。GPU対応モデルであれば、GPUを使用することで時間を短縮することが可能です。

フルパイプライン実行後、結果とスコアを確認します。
スコアが不十分であれば、データセットの質が悪いかもしれないので、データセットを変え再度トレーニングします。
パイプライン実行2.png

パイプラインが成功したら、MLパッケージのマイナーバージョンを1つ上がります。今回の検証では、v1.0のパッケージをトレーニングして、v1.1のパッケージが生成されました。
パイプライン実行3.png

5. デプロイする

トレーニングしたモデルをStudioから使用するためにデプロイします。
デプロイしたモデルは、AI Centerでは「MLスキル」と呼ばれます。

ステップ4のトレーニングで生成されたバージョンのパッケージを指定します。
「自動更新を有効化」は、パイプライン実行で新規バージョンが生成された際、自動的に最新バージョンをデプロイするオプションです。
「次の非アクティブ期間後にスキルのデプロイを解除」は、MLスキルが一定期間使用されなかった場合、MLスキルを無効化するオプションです。
デプロイ1.png

パイプライン実行ほどではありませんが、デプロイは時間がかかるので、終わるまでしばらく待ってください。

6. Studioから呼び出す

デプロイしたMLスキルをStudioから呼び出します。
まず、パッケージ(UiPath.MLServices.Activities)をインストールします。
Studio1.png

「MLスキル」アクティビティを使用します。
Studio2.png

StudioとAI Center(Automation Cloud)が接続されていれば、ステップ5でデプロイしたMLスキルを選択することができます。
入力と出力はMLスキルよって異なりますが、今回の物体検出モデルでは、入力は画像ファイルのパス(String型)、出力は検出した物体のカテゴリ、スコアなどを含んだJSON(String型)となります。
Studio3.png

ちなみに一定期間(デプロイ時に指定した期間)、MLスキルを使用しなかった場合、該当のMLスキルは停止状態となりますので、再度使用する場合は、AI Centerから再開を指示します。
MLスキル停止1.png

作成したワークフローを動かしてみます。

(検証1つ目)玄関に段ボールを置いた画像では、正しく物体(カテゴリ:package)を検出しました。スコアも93%と信頼できる数値です。
sample1.jpg

(検証2つ目)玄関に何も置いていない画像では、何も反応しませんでした。
sample3.jpg

(検証3つ目)スコアは低いですが、猫のエサ入れに反応してしまいました。学習データを工夫して再トレーニングさせれば、検出しないようにできるかもしれません。
sample4.jpg

おまけ

Studio(Robot)からAI Centerへデータセットをアップロードすることができます
これを活用すると、精度が微妙なデータをラベリングし直し、再トレーニング用のデータセットとしてアップロードする流れを自動化することができます。
さらにパイプラインを定期的な実行としておくことで、機械学習モデルの運用を効率化することができます。
ファイルアップロード1.png

さいごに

AI CenterとUiPathワークフローの連携の流れを説明しました。
今後は、個々の機械学習モデルについて、詳細な使い方(データセットの準備、トレーニングのパラメータなど)を検証してみます。

9
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?