【UiPath】バージョン「23.4」AI / Document Understanding 機能改善紹介

# はじめに

- 本記事では、UiPath バージョン 23.4 の AI / Document Understanding の機能改善を幾つかピックアップして紹介します。
- 記事の内容は、個人の見解または確認結果であり、UiPath の公式見解ではありません。
- 製品仕様や参考画像は 23.4 バージョンで構成しています。

# 目次
今回紹介する内容は下記になります。

```
# 1）フィールドのルール設定機能
# 2）データ抽出オートメーションビルダー
# 3）ワンクリック分類器作成
# 4）ワンクリック抽出器作成
# 5）Document Understanding Cloud APIs（DUのWebAPI）
```

# 1）フィールドのルール設定機能

![23.4_17.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/a7c2a7cb-b912-d6d8-c200-75b82874c75e.jpeg)
タクソノミーマネジャーの各フィールドの設定に「ルール」タブが追加されました。
「ルール」タブでは、フィールドのバリデーションを設定することができます。
重要度レベルは「Must」か「Shoud」を指定でき、「Must」であればルールに合致しない場合、検証ステーションでSubmitできません。
![23.4_24.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/c8ed5286-4621-73fe-4dbf-6e96f39ce680.jpeg)
なお、設定可能なルールはフィールドのルールに依って変わります。
例えば、日付（Date）であれば「空でない」と「予想される値」が利用できます。
![23.4_21.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/39b52b36-a8be-eeb1-83a7-1c8e99a97804.jpeg)
名前（Name）や住所（Address）であれば、「空でない」「次で始まる」「次で終わる」「次の値を含む」「固定長」「正規表現」が選択できます。
![23.4_22_name_address.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/e0a3ca1e-b7d0-c9b7-fe46-b88c374d860f.jpeg)
数値（Number）の場合、「空でない」「予想される値」に加えて ***「式」*** が指定できます。
![23.4_20.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/8884fdd0-bb27-efde-4fd5-23593c6fc29c.jpeg)
0円以上の例
![23.4_23.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/68f8bd05-367e-94bd-4216-8ca75ababc50.jpeg)
最もよく使われる文字（Text）の場合、「空でない」「次で始まる」「次で終わる」「次の値を含む」「固定長」「正規表現」に加えて ***「予想される値」と「メールアドレス」*** などが指定できます。

# 2）データ抽出オートメーションビルダー

![23.4_25.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/45ae51bb-50c4-39f2-768d-efdba63ece06.jpeg)
データ抽出オートメーションビルダーを使えば、ほぼワンクリックのノリで、***ドキュメントからOCRでデータを読み取って処理するワークフローを作れます！！(@_@)***

[使い方]
1. 「開始」のリンクをクリック
1. 読み取りたいドキュメントをドラッグ＆ドロップ
1. 「ワークフローを作成」ボタンをクリック
![23.4_26.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/fe2302d5-70aa-9669-07b8-a21019d0b521.jpeg)
↓↓↓
![23.4_27.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/28353630-1f86-0a45-69d9-cf8c70bfe7f7.jpeg)
たったコレだけでワークフローが出来上がる↓↓
![23.4_28.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/947c4a64-eabb-bbfa-99cd-2f9405b605bb.jpeg)

::: note warn
2023/09/01時点では、プロジェクト名に日本語が含まれているとジョブの実行ができません。（ASCIIエラーが発生します。）
→　***プロジェクト名を英字のみとすれば問題なく実行できます。***
:::

![23.4_29.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/4842000a-b35c-341f-7755-3336a54a53c5.jpeg)
実行すると Action Center に読み取り結果が連携されるので、内容を確認・送信し、「再開」ボタンをクリックしてワークフローを進めます。
![23.4_30.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/20044fdc-1982-7091-9e6b-3ffb5044808c.jpeg)
出力パネルをみると、値が取得できてることを確認できます。
![23.4_31.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/4ca90960-bb33-8d2e-9599-fb4b19400dd3.jpeg)

# 3）ワンクリック分類器作成

![23.4_0.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/46c30040-dd31-2d31-9c11-9c295a71bc49.jpeg)
Document Understanding の分類器の画面から、***ワンクリックで『分類器』を作成できるようになりました！！***

::: note warn
前提として、分類対象となる「ドキュメントの種類」はあらかじめ作成しておく必要があります。
:::

「新しい分類器」ボタンをクリックし、***「自動トレーニング」*** を選択してください。
（手動トレーニングを選択するとモデルの学習とデプロイなどの作業を AI Center で手動でおこなう必要があります。）

次に表示されたダイアログで、分類器の名称と分類対象のドキュメントを指定しトレーニングを実行します。
![23.4_2.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/dec26b95-35b4-23a3-3a7c-b236f73e1239.jpeg)
自動トレーニングが完了すると、以下の様に、利用可能になったMLスキルのエンドポイントをはじめ、データセットやパイプラインのリンクなどが確認できるようになります。
![23.4_3.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/13f82043-722d-f362-f961-3e2b418a979e.jpeg)

## 分類器の再学習について

![23.4_6.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/137df06c-c8bb-4f78-9b95-f6b75943015e.jpeg)
***分類器の詳細画面からワンクリックで再学習をする機能はありません。***
作成済みの分類器を再学習するには、分類器のトレーニング用アクティビティをもちいて、まずデータセットにデータ連携しましょう。

::: note
分類器（分類モデル）の初回学習とデプロイはワンクリックで実現できますが、再学習はトレーニング用アクティビティをもちいたデータセットの連携と AI Center での手動トレーニング・デプロイが必要です。
なお、ワークフローで指定した分類器を再指定できる場合は、新たなデータセットをもとにワンクリックで分類器を作成するのもよいでしょう。
:::

「マシンラーニング分類器トレーナー」を配置し、データセットのフォルダ（「データセット」の直下のフォルダが選択可能）を指定することで、対象のドキュメント種類のフォルダにトレーニング用のデータがアップロードされます。

::: note warn
「マシンラーニング分類器トレーナー」は ***分類をおこなったすべてのドキュメントデータをデータセットに連携します。*** 自動分類と検証済みの分類結果に差があるときのみ連携したい場合、本アクティビティの前に「自動分類結果」と「検証済みの分類結果」を比較し、条件分岐する必要があります。
:::

連携済みのデータセットから再学習に必要なデータをトレーニングデータに追加しましょう。
まずは、「データセットをダウンロード」ボタンをクリックします。
![モデルの学習関連7.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/d868aa6f-fca4-b010-8d90-89addb3facf9.jpeg)
ダウンロードの準備が完了したら「エクスポート」タブから落としましょう。
![モデルの学習関連9.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/f6187453-2bce-e755-4321-4289e380dc89.jpeg)
ダウンロードした「ドキュメント テキスト」データから再学習にもちいるファイルのみ手動でアップロードします。
![23.4_9.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/2e06297f-0133-c861-9310-a287bac2202e.jpeg)
パイプラインでトレーニングを実施する際は、以下の2点をご注意ください。
1. ***パッケージのマイナーバージョンは「0」を指定する***
1. ***入力データセットは分類対象のドキュメント種類の親フォルダを指定する（※抽出器は抽出対象のドキュメント種類のフォルダを指定する）***
![23.4_7.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/25c97d95-e816-2bd9-64f2-1c1c35ceeaf7.jpeg)
![23.4_8.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/ad7717ed-7efb-d65b-f1fb-bfa559da731e.jpeg)

::: note
マイナーバージョンに「0」を指定するのは、モデル学習における***破滅的忘却を避けるため***です。
モデルの再学習の例：
　UiPath提供の事前学習済みモデル（v1.0）　＋　トレーニングデータ100件　→　v1.1
　【OK】
　　UiPath提供の事前学習済み（v1.0）　＋　トレーニングデータ120件　→　v1.2
　【NG】
　　***追加学習済みモデル（v1.1）　＋　追加のトレーニングデータ20件　→　v1.2***
:::

パイプラインでの再学習が完了したら、MLスキルを更新しましょう。
![モデルの学習関連14.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/72a1cd69-6d1e-9d37-fb45-04c1bd4f749c.jpeg)
再学習したのに、分類結果の精度が上がらない（というか全く分類されない）ときは「分類器の設定」を失念している（凡ミス）を疑いましょう↓↓
![23.4_10.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/da66d21c-6c8c-c9e9-74cd-17c7511c9607.jpeg)
Document Manager で定義した「ドキュメント種類」と、ローカルのタクソノミマネジャーで定義したドキュメントの種類を紐づけができていない場合は分類されません。（黄色でハイライトしている部分に値が入っていることを要確認）

# 4）ワンクリック抽出器作成

![23.4_1.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/1d63e839-5c0f-0e71-50ab-d8dc6bd24084.jpeg)
Document Understanding の抽出器の画面から、***ワンクリックで『抽出器』を作成できるようになりました！！***

::: note warn
前提として、抽出対象となる「ドキュメントの種類」はあらかじめ作成しておく必要があります。
:::

「新しい抽出器」ボタンをクリックし、***「自動トレーニング」*** を選択してください。
（手動トレーニングを選択するとモデルの学習とデプロイなどの作業を AI Center で手動でおこなう必要があります。）

次に表示されたダイアログで、抽出器の名称と抽出対象のドキュメント、トレーニングに利用する事前学習済みのモデルを指定しトレーニングを実行します。
![23.4_4.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/c294d18f-a8bf-524f-460d-758911a3bb36.jpeg)
自動トレーニングが完了すると、以下の様に、利用可能になったMLスキルのエンドポイントをはじめ、データセットやパイプラインのリンクなどが確認できるようになります。
![23.4_5.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/11f4966e-8025-c162-4303-ea8253719c52.jpeg)

## 抽出器の再学習について
![23.4_11.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/4de2fe2a-67a6-b21e-a3cb-13f0aa6c16f1.jpeg)
***抽出器の詳細画面からワンクリックで再学習をする機能はありません。***
作成済みの抽出器を再学習するには、抽出器のトレーニング用アクティビティをもちいて、まずデータセットにデータ連携しましょう。

::: note
抽出器（抽出モデル）の初回学習とデプロイはワンクリックで実現できますが、再学習はトレーニング用アクティビティをもちいたデータセットの連携と AI Center での手動トレーニング・デプロイが必要です。
なお、ワークフローで指定した抽出器を再指定できる場合は、新たなデータセットをもとにワンクリックで抽出器を作成するのもよいでしょう。
:::

「マシンラーニング抽出器トレーナー」を配置し、データセットのフォルダ（「データセット」の直下のフォルダが選択可能）を指定することで、対象フォルダの下に微調整用のデータがアップロードされます。

::: note warn
「マシンラーニング抽出器トレーナー」は ***抽出をおこなったすべてのドキュメントデータをデータセットに連携します。*** 自動抽出と検証済みの抽出結果に差があるときのみ連携したい場合、本アクティビティの前に「自動抽出結果」と「検証済みの抽出結果」を比較し、条件分岐する必要があります。
:::

連携済みのデータセットから再学習に必要なデータを Document Manager でインポートしましょう。
まずは、「データセットをダウンロード」ボタンをクリックし、エクスポートタブの「ダウンロード」リンクからデータセットを取得します。
![23.4_12.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/64745c70-c903-dca0-1d46-2132e66f0d38.jpeg)
取得したデータセットの中に微調整用の「fine-tune」というフォルダが在ることを確認します。
微調整用のデータセットフォルダには「documents」「metadata」「predictions」の3フォルダが含まれます。
![23.4_13.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/796b2680-a123-e3e7-4532-f247d30463a3.jpeg)
この「fine-tune」フォルダを任意の名称でZip化し、Document Manager でインポートします。
![モデルの学習関連23_fine-tuneのZipをインポート.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/796d48fc-d167-55bc-be40-1bb8cf1bd485.jpeg)
ガイド参考：
https://docs.uipath.com/ja/document-understanding/automation-cloud/latest/user-guide/document-manager-import-documents#validation-st[…]ataset-import

インポートしたドキュメントデータに、ドキュメント種類で未定義のフィールドが存在すると以下の様なエラーが発生します。
![モデルの学習関連23_fine-tuneのZipをインポート_エラー.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/ce19b70a-eea2-abc5-a6e2-9dc72f65fdfe.jpeg)
この場合、Document Manager で対象のフィールドを追加してから再度インポートすればOKです。
![モデルの学習関連23_fine-tuneのZipをインポート_エラー_ドキュメントにフィールドを追加して解消.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/05e491b3-5399-c53f-9bfe-0735bd4e939f.jpeg)
Document Manager から AI Center にデータセットを連携したら、パイプラインでトレーニングを実施しましょう。
トレーニング時には以下の設定にご注意ください。
1. ***パッケージのマイナーバージョンは「0」を指定する***
1. ***入力データセットは抽出対象のドキュメント種類のフォルダを指定する***
![23.4_14.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/1c216689-68a5-7019-6236-61f26e24b869.jpeg)
![23.4_15.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/1768b1f4-b15f-2f7c-de08-ec6ad313e6ff.jpeg)

::: note
マイナーバージョンに「0」を指定するのは、モデル学習における***破滅的忘却を避けるため***です。
モデルの再学習の例：
　UiPath提供の事前学習済みモデル（v1.0）　＋　トレーニングデータ100件　→　v1.1
　【OK】
　　UiPath提供の事前学習済み（v1.0）　＋　トレーニングデータ120件　→　v1.2
　【NG】
　　***追加学習済みモデル（v1.1）　＋　追加のトレーニングデータ20件　→　v1.2***
:::

パイプラインでの再学習が完了したら、MLスキルを更新しましょう。
![23.4_16.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/ec59c99f-c369-2e45-4180-55207b0236a1.jpeg)

# 5）Document Understanding Cloud APIs（DUのWebAPI）

![23.4_32.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/697c6384-ecf2-9a81-8509-8087247e7f7e.jpeg)
DUの画面の右上の「REST API」から WebAPI の実行ツール（Swagger）を起動できます。

[Framework（デジタル化や分類・抽出などのフレームワークのWebAPI）↓↓]
![23.4_34.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/c2858051-5266-f6d7-5628-d4ca2f18cce8.jpeg)
[Document Manager（クラウドの Document Manager のWebAPI）↓↓]
![23.4_33.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/62559be1-35c0-88f6-ce92-9db29a60961e.jpeg)
管理 ＞ 組織ID ＞ 外部アプリケーションより、以下のアプリケーションスコープの権限を持つ外部アプリケーションを作成しましょう。

```
Du.Classification.Api Du.Digitization.Api Du.DocumentManager.Document Du.Extraction.Api Du.Validation.Api
```

![23.4_37.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/12f56868-c4a1-9728-b880-9fd58401e4c2.jpeg)
アプリケーションの種類は「機密アプリケーション」を、
リダイレクトURLは未指定で問題ありません。
![23.4_36.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/963de14f-45c2-b4b9-b92e-2bfc967107a9.jpeg)
![23.4_38.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/0bce9d7d-9bc7-d27f-32bf-cdc9a769b535.jpeg)
Swagger のツール画面右上の「Authorize」ボタンクリックし、作成したアプリIDとアプリシークレットを入力しAuthorizeします。
![23.4_35.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/26919417-47a3-e2b1-b0b1-f1066b87b8f4.jpeg)
あとは必要なパラメータ指定して実行するだけ！レスポンスコード200(*´ω｀*)
![23.4_39.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/ddf020ad-c8e5-8685-4dac-67533deb8d5d.jpeg)

# 終わりに

以上、バージョン 23.4 の AI / DU の主要機能改善紹介でした。
AI / DU をはじめて触った頃、MLモデル、パイプライン、MLスキルなどが何者か全然ピンとこなかったのが懐かしい。
ワンクリック分類・抽出器作成機能があれば、AIに詳しくなくてもMLモデルのデプロイまで簡単に実現できます！Enjoy your Automation Life！