UiPath Blog
UiPathがリリースした新製品のAI Fabricを使って自身で作成する「カスタムモデル」の利用について、ご説明します。
AI Fabricは、多種多様なAI学習モデルを複雑な操作なく誰でも簡単に利用できるコンテナプラットフォームサービスです。
誰でも簡単にドラッグ&ドロップで学習モデルを活用できます。
モデルは自社内で作成、オープンソース、UiPathテクノロジーパートナー様から自在に選択できます。
AI FabricのKubernetesベースのコンテナサービスにより、モデルを実行する環境(サーバー、ネットワーク等)をご自身で用意する必要がありません。
後続のRobotによる自動化作業へ簡単に連携できます。
さらに、Action Centerと組み合わせると簡単にモデルを継続的に再学習させることができます。
Start TrialよりEnterprise Cloudをお申し込みください。
AI Fabric を利用するには 、UiPath Automation Cloud の Enterprise プランが必要です。
Communityプランのお客様はEnterpriseプランへのアップグレードをお願いいたします。
Enterpriseプランになっていることを確認してください。
各テナント配下でAI Fabricを有効化します。「テナント」→「サービスを編集」
「AIFabric」にチェックします。
「AI ロボット」を2つ利用可に設定し、保存します。
AI Fabricのセクションへ移動し、サービス利用できていることを確認します。
以上で事前準備は完了です。
「Create Project」から作成します。
プロジェクトを作成すると、以下のような画面になります。
・ML Packageは以下の様なファイル構成でzip型式で作成します。
MyMLPackage/ / main.py / train.py / requirements.txt /model (学習データ保存する場合。フォルダー名は任意)
例えばmain.py, train.py, requirements.txtなど必要なファイルをMyMLPackageフォルダー内で作成し、MyMLPackageのフォルダを同名のZip形式、MyMLPackage.zipに変更します。「3-4: サンプルモデル」のサンプルを参照ください。
・training pipelineが実行されるとtrain() 、save()の順で呼び出されます。
class Main: def __init__(self): #ModelのLoadなど def train(self, training_directory): #Trainingの実行 def save(self): #Modelのsave
ML SkillをUiPathロボットから実行すると呼び出されます。
init()およびpredict()が必須になります。
class Main: def __init__(self): #ModelのLoadなど def predict(self, X): #ML Skill実行時に呼び出されます
必要なパッケージを記載します。Modelの作成・Deploy時に実行されます。
2020年8月時点でDockerfileでのBuildはできません。今後対応していく予定です。
オープンソースライブラリーのKerasとMNISTのデータセット(https://keras.io/api/datasets/mnist/)を使った手書き数字を判別するサンプルです。ファイル構成やUiPathロボットと連携させる際の参考にしてください。
「ML Packages」→「Upload zip file」へ遷移します。
「3:ML Packageの作成」の手順で作成したZipをアップロードします。
Input Type(ML Modelに渡すデータの型)を選択します。 今回はImageデータなので「File」を選択します。
利用できるPython versionは2.7~3.7です。今回は3.7を選択します。 また、Trainingできるモデルですので「Enable Training」をオンにします。 「Create」でPackageを作成します。
main.py, requirements.txt, train.py(“Enable Training”をオンの場合)など必要なファイルが存在するかValidationが行われ、「Undeployed」のStatusでPackageがアップロードされます。
Training用のDatasetを準備します。「Datasets」→「Create new」
Datasetの名前を入れ「Create」します。
「Upload folder」からデータをアップロードします。
今回のサンプルはライブラリーからインストールしますのでダミーの空ファイルを利用します。こちらの空フォルダーを利用ください。(データのロードしている箇所は3-4: サンプルモデルを参照ください)
Zipを解凍してフォルダーをアップロードします。
続いてPipelineの実行です。「Pipelines」→「Create new」から新しいPipelineを作成します。
まずはTrainingを実施します。
Training Pipelineを実施するとアップロードしたML Packageのtrain.pyが実行され、作成したモデルのtrain()及びモデルのsave()が行われます。「Run now」を選択し「Create」します。
Pipelineを実行すると「Queue」のステータスとなります。
AIロボットライセンスが消費され、「Running」のステータスになります。
Trainingが完了すると「Successful」となります。
※Enable GPUでPipelineを実行すると、学習の時間が短縮されます。「AI Robot Pro」のライセンスが必要です。
Trainingの完了したML PackageをML SkillとしてDeployします。
Major VersionはML Packageをアップロード毎に、Minor VersionはPipeline実行毎にVersion upされます。
「Deploying」のステータスになり、ML SkillとしてML PackageがDeployされます。(作成されたML Packageによりますが10分~15分程度かかります)
問題なく完了すると「Available」になります。
これまでの4~7の手順は、すべてML Logsにて詳細見ることができます。
ML SkillをUiPathロボットから実行してみます。 UiPath Studio v2019.10以上が必要です。
Orchestratorへ接続します。接続設定方法はこちらを参照ください。
必要なパッケージはUiPath.MLServices.Activitiesになります。(参照:MLServiceアクティビティについて)
ML スキルアクティビティを選択します。
ML スキル選択項目に先ほどDeployしたMLスキルが選択できます。
入力項目にFileパス、レスポンスに出力変数を設定ます。
UiPath Studioからロボット実行します。
こちらのサンプルワークフローを参照ください。
AI Fabricにデフォルトで利用できるML Packages(Out of the box Packages)があります。 今後日本語対応のML Packagesを拡充していく予定です。
ライセンスページ:https://www.uipath.com/ja/licensing-models
AI Robot (Cloud/On-premises※):
これは、MLスキルを提供するためのランタイム(ロボットが予測を行うために機械学習モデルを利用可能にすること)と、MLトレーニングのジョブを実行するためのランタイム(精度を向上させるために新しいデータの新しいモデルバージョンをトレーニングすること)です。1台のAIロボットは、2つのMLスキルを提供したり、1つのMLトレーニングジョブを同時に実行したりすることができます。※On-premisesの場合、AI RobotでもGPUを利用することが可能です。
AI Robot Pro (Cloudのみ):
このライセンスには、AI RobotとGPU接続が含まれています。AI Fabricが動作している環境にGPUが利用可能であれば、MLスキルの提供やMLトレーニングジョブの実行に利用することができます。また、2つの機械学習モデルを並列に配置することができ(MLスキルを2つ持つことに相当します)、そのうちの1つによって GPUリソースを利用することができます。
AI Fabric Cloud: https://docs.uipath.com/ai-fabric/v0
AI Fabric On-Premises: https://docs.uipath.com/ai-fabric/lang-ja/
Topics:
AI CenterPrincipal Sales Engineer, UiPath