AI、Pythonの知識が無くても大丈夫！UiPathでAIによる予測業務を簡単に自動化する方法【UiPath AI Center】

元気しとーと？ 博多に住んどうUiPathプリシェールス @ManabuTechばい。
（お元気でしょうか？ 博多に在住しておりますUiPathプリセールス ManabuTech です）

今回は、Pythonの知識が無くてもAIを業務に適用できるAI Centerを利用した方法を解説します。

今回の予測業務に使用するデータの解説は、AIを業務で利用するポイントと合わせてこちらで解説しています。

https://qiita.com/ManabuTech/items/6fa400d9f9ea20a009fc

[作成したサンプルワークフローはGithubで公開しています](https://github.com/manabutech-kyushu/uipath-ai-boston-tpotautoml-regression)

## AI Centerとは？

AI Centerは業務を知らないAIエンジニアとAIを知らない業務担当者を結びつけるためのツールです。すぐに使えるAIモデルが用意されており、AI Centerで作成したAIモデルはRPA（UiPath Studio）からAIの知識が無くても簡単に呼び出すことができます。AI Centerを用いることでAIモデルの管理と再学習が可能になります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2577004/0532570c-7989-bfcb-497d-8d178ab6be34.png)

## AIモデルの作成方法

AI Centerを使用するには、AI Unitライセンスが必要です。

UiPath Studioから呼び出すには、MLスキルを作成する必要があります。
MLはMachineLearning（機械学習）の略です。

AI Center側の操作として、大きく分けて6つのステップがあります。
1. AI Centerサービスの有効化
2. AI Centerプロジェクトの作成
3. MLパッケージ作成
4. データセット登録
5. パイプライン実行
6. MLスキル作成

### 1. AI Centerのサービス有効化

Automation Cloudの管理画面からテナントのAI Centerサービスを有効化します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2577004/f5a5f401-12cc-d02f-1235-7f5a958911c3.png)

### 2. AI Centerのプロジェクト作成

Automation Cloudの有効化したAI Centerからプロジェクトを作成します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2577004/377d69f5-b869-affe-cbb1-66f80c566d7c.png)

### 3. MLパッケージ作成

MLパッケージはAIモデルです。
UiPathが開発したものですぐに使えるものが用意されています。
カスタムモデルとして自作したAIモデルをアップロードすることもできます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2577004/9b597322-f9e2-4a41-1837-5853d2124f25.png)

今回はOpen-Source Packagesの中にあるTablar Data、回帰を行うためのTPOTAutoMLRegressionを使用します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2577004/b2e60f33-4159-e8dd-06d6-80d9bb9fec23.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2577004/610a5e3a-8852-090e-0f18-8806de0d6a72.png)

TPOTAutoMLとは、複数のAIモデルに対してトレーニングして精度の高いモデルを自動的に採用してくれるものです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2577004/6c30e677-0f8e-8a24-3cf9-1adaf9706c53.png)

パッケージ作成時、名前は重複しなければ何でも大丈夫です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2577004/f78d43a0-4901-e4d8-1003-9ea60a09e050.png)


### 4. データセットの登録

ボストンの住宅価格が管理されたCSVファイルを登録します。

約500件のデータは、トレーニング用、検証用、テスト用の3つに分けます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2577004/aa5c3dcd-550f-1f8b-cc5c-1e9a74edece7.png)

この2つをAI Centerにアップロードします。
・boston_training.csv（300件）
・boston_validate.csv（100件）

フォルダをアップロードからCSVファイルをアップロードします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2577004/77752226-d81b-3381-0bcc-cabd0b2db817.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2577004/79a319ef-7ea9-81ad-69a0-4722d4901e29.png)

### 5. パイプラインでトレーニング

パイプラインからトレーニングすることができます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2577004/165c40c2-defd-2207-88e0-745665c20a66.png)

TPOTAutoMLではターゲットとなる目標変数の列名を指定する必要があります。
環境変数で変数名「target_column」に「MEDV」を設定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2577004/abe23de9-1dfd-000f-62c0-5ff1e7923edd.png)

先ほどのパッケージとバージョンを指定します。
入力データセットと評価データセットには、アップロードしたデータセットを指定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2577004/71f1e7a6-d24c-d365-a527-e753be7710ca.png)


トレーニング用と検証用のデータを分けておくとどれくらいの精度が出るかスコアが出ます。
この精度は、トレーニングのデータ数が足りているかの1つの指標になります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2577004/9193bbef-92c2-31d3-8dee-c661e3cc5c94.png)

ログを見ると、GradientBoostingRegressionが一番精度が高いモデルとして採用された様です。

```
2023-08-XX XX:51:50,131 - uipath_core.trainer_run:write:11 - INFO:
2023-08-XX XX:51:50,548 - uipath_core.trainer_run:write:11 - INFO:
2023-08-XX XX:51:50,548 - uipath_core.trainer_run:write:11 - INFO: Best pipeline:
2023-08-XX XX:51:50,548 - uipath_core.trainer_run:write:11 - INFO:
2023-08-XX XX:51:50,548 - uipath_core.trainer_run:write:11 - INFO: GradientBoostingRegressor(RidgeCV(input_matrix), alpha=0.95, learning_rate=0.1, loss=huber, max_depth=4, max_features=0.4, min_samples_leaf=2, min_samples_split=19, n_estimators=100, subsample=0.8)
2023-08-XX XX:51:51,350 - uipath_core.training_plugin:train_model:134 - INFO: Model trained successfully with response None
2023-08-XX XX:51:51,351 - uipath_core.training_plugin:save_model:157 - INFO: Start model save...
```

### 6. MLスキル化

UiPath StudioでAIモデルを使えるようにMLスキル化します。
パイプラインでトレーニングが完了したパッケージバージョンを指定します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2577004/d9f489b9-5fcc-51b3-c159-1af484da91ce.png)

MLスキルを公開すると、APIキーとURLが発行されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2577004/a4c0e646-35f0-1e71-523a-7fb18458b3e7.png)

20分程度でMLスキルが「利用可能」ステータスになります。
APIキーとURLは後で使用します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2577004/5ff76770-495c-e1d0-5e96-a09424a00fe4.png)


## AIモデルの呼び出し方法

ここからUiPath Studio側でAI Centerで作成した処理を呼び出してExcelに格納する方法を解説していきます。

3つのステップが必要です。
1. MLスキルの入力変換
2. MLスキル呼び出し
3. MLスキルの出力変換

### 1. MLスキルの入力変換

今回使用するTPOTAutoMLRegressionモデルは入力がjson形式です。
このため、CSVファイルをjson形式に変換してやる必要があります。

この処理はTPOTAutoMLRegressionを使用するワークフローで流用できますので、一度作っておきましょう。

CSVファイルを読み込んで、CSV各列の値をDictionary型の変数にキーと値を設定します。
Newtonsoft.Json.JsonConvert.SerializeObject関数でjson形式の変数に変換して格納します。

CSVを読込、csvdataという名前の変数に保存します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2577004/e0a7ad47-c873-744a-a8d4-491bc269d1c0.png)

データテーブルにpredictという列を追加します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2577004/a3c2b34b-d2be-6dea-f60a-80b9f59ca052.png)

dictというDictionary型の変数を作成して初期化します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2577004/5ad4e578-252f-cd6b-d5f7-1c80e1e1513f.png)

CSVデータで繰り返しDictionary型の変数に保存します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2577004/73ec40fe-5445-7aa0-9709-c0594e4afd0a.png)

jsonはString型の変数です
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2577004/b4caf8fc-1093-42fd-a463-6c24fe7b861e.png)

### 2. MLスキルの呼び出し

MLスキルの公開したURLとAPIキーを設定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2577004/14d59e98-253e-81ee-f075-f3aa14d4d239.png)

### 3. MLスキルの出力変換

AI Centerのレスポンスには括弧があるため、Replace関数で取り除いています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2577004/045e7997-0076-96fc-9cc3-29f8f3f7e94b.png)


## 最後に

今回はAI Centerを使用してAIで予測する方法を解説しました。
UiPathで公開されているTPOTAutoMLモデルを利用することで、Pythonの知識が無くてもAIを使うことができました。
AIはモデルのチューニングなど必要なイメージですが、TPOTAutoMLであれば、複数のAIモデルで検証して一番良いモデルを選ぶため、精度もPythonで作ったよりも高くなりました。
トレーニングデータも業務で使用したCSVファイルを再度データセットに格納してパイプラインを実行することで再度、Pythonの知識無くトレーニングを行うことができます。
今回は簡単なデモのため、前段階のデータ処理を行っていませんが、CSVファイルの前段階で外れ値を除外したりすることによって、さらに精度を高めていくことができます。

## AI Centerの無料トライアル

AI Centerを試してみたいという方は、無料トライアルがも可能です。
60日間と期間が決まっていますが無料でAI Centerの試用が可能ですので、興味のある方はこちらから申し込んでみてください。

https://cloud.uipath.com/portal_/register?selected_language=ja&subscriptionPlan=trial