7
2

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 Document Understanding 第7回 実践編 AI Centerを利用して自社のドキュメントを処理しよう

Last updated at Posted at 2023-06-07

第六回までは、UiPathが用意したデフォルトのAIモデル(InvoicesJapan (請求書 - 日本) - ML パッケージ)を利用して、日本語の帳票からデータを抽出しました。
しかし、このAIモデルを利用して、自社独自フォーマットのドキュメントからデータを抽出することが難しい場合、自社独自フォーマットのドキュメントを利用して、AIモデルを再トレーニングすることで、自社のドキュメントからデータを抽出できるようになります。

今回の記事では、AI Centerを利用して、このAIモデル(InvoicesJapan (請求書 - 日本) - ML パッケージ)を再トレーニングする方法、及び再トレーニング済のAIモデルの利用を解説します。

AI Centerに関する説明は本記事で省略しますので、詳細な情報は以下の記事を参照してください。

1. AI Centerでのプロジェクト作成及び関連設定

プロジェクトとは、特定の ML ソリューションの構築に使用できる、データセット、ML パッケージ、パイプライン、ML ログ、ML スキルなどの独立したリソースでグループです。プロジェクトを一番最初に作成する必要があります。

プロジェクトの作成

手順:

  • プロジェクトページで、プロジェクトを作成ボタンをクリックします。新しいプロジェクトを作成ページが表示されます。
  • プロジェクト名を入力します。プロジェクト名は今後更新できません。
  • 必要に応じて、プロジェクトの説明を入力します。
  • 作成をクリックします。新しいプロジェクトが作成され、ダッシュボードページが表示されます。
    image.png

データセット及びデータのラベル付けの作成

手順:

  • 作成したプロジェクトを選択して、次の画面で左側のデータセットをクリックします。
  • データセットページで、新規作成ボタンをクリックします。
  • データセット名を入力して、作成ボタンをクリックします。
  • 左側のデータのラベル付けをクリックして、右側のUiPath Document Understandingをクリックします。
  • 次は、データのラベル付けセッション/新規作成の画面に、名前を入力して、作成したデータセットを選択して、作成ボタンをクリックします。
    image.png

2. Document Managerでドキュメントのラベル付け

次は、作成したデータのラベル付けセッション(例:DU_Japan_Invoice_30)をクリックして、Document Managerでドキュメントにラベルを付けます。

OCRを設定します

Document Manager上で、OCR及び事前ラベル付けを設定します。
image.png

手順

  1. 青文字のOCRを設定しますをクリックします。
  2. OCRタブに以下の通りで設定します。
    • OCR メソッドUiPath Chinese-Japanese-Korean OCRを選択します。
    • OCR API キーにCloud Automationライセンスから取得した API キーを入力します。
    • OCR のURLhttps://du-jp.uipath.com/cjk-ocrを入力します。
  3. 事前ラベル付けタブをクリックして、以下の通りで設定します。
    • 事前ラベル付け URLhttps://du.uipath.com/ie/invoices_japanを入力します。
    • 事前ラベル付けキーはOCR API キーと同じにします。
  4. 保存ボタンをクリックします。

参照画面:
image.png

事前定義されたスキーマのインポート

ドキュメントからどんなフィールドを抽出するか、予め定義する必要があります。列フィールド、標準フィールド及び分類フィールドを自分で作成することも可能ですが、作業を開始しやすいよう、UiPath ではすぐに使える ML パッケージ用のスキーマを提供しています。これらの .zip ファイルは、データセットをインポートするのと同様に Document Manager にインポートできます。

事前定義されたスキーマからInvoicesJapan (請求書 - 日本) のをクリックしてダウンロードします。

手順

  1. 青文字のドキュメントをインポートしますをクリックします。
  2. バッチ名を入力して、ダウンロードしたschema_invoices_japan.zipをドラッグアンドドロップして、アップロードボタンをクリックします。
  3. スキーマのインポートが検出されましたのメッセージが表示されたら、インポートボタンをクリックします。
  4. インポート ステータスが100%になったら、閉じるボタンをクリックします。

参照画面:
image.png

正しくインポートされたら、以下のように事前に定義されたフィールドが表示されます。
image.png

フィールドを作成します

実際の請求書画面から以下ようなフィールドを定義します。

以下のテーブルには、請求書から抽出したいフィールドが示されています。

No フィールド名 種類 列-フィールド名 列-種類
1 invoice-no(請求書番号) ID 番号
2 name(請求元会社名) 文字列
3 billing-name(請求先会社名) 文字列
4 品目明細 Table
4.1 description(品名) 文字列
4.2 quantity(数量) 数値
4.3 unit-price(単価) 数値
4.4 line-amount(金額) 数値
5 総額 数値

次は、Document Managerで不要な標準フィールド及び列フィールドを削除します。

手順

  • 不要なフィールドの右側の鉛筆マークをクリックして、削除をクリックします。

参照画面:
image.png

ドキュメントのラベリング

こちらの du_japan_invoice30_dataで30枚の日本語請求書を用意したので、ダウンロードして利用してください。
ラベリングをするため、まずトレーニング用ドキュメントをインポートします。

以下の図で示したように、インポートをクリックして、ダウンロードした日本語請求書をアップロードしてインポートします。
image.png

インポートが完了したら、閉じるをクリックして、ラベリングの作業画面が表示されます。
image.png

請求書画面で、フィールド(例:請求書Noの23445984-0112)を選択して、該当フィールドのホットキー(例:invoice-noのホットキーのo)をクリックします。繰り返しで、全てのフィールドを指定します。
image.png

繰り返しで、全てのページでのフィールドを指定します。

列フィールド(例:品番・品名)が複数ページを跨る場合は、shiftキーを押しながらフィールドを選択します。

ファイルをエクスポート

次は、ラベリングしたデータをデーターセットにエクスポートします。

手順

  1. 全部の請求書をラベリングしたら、上のエクスポートをクリックします。
  2. 名前を入力し、AI Centerにエクスポートをクリックします。
    image.png

上のエクスポートの点滅が完了したら、AI Center のデータセットに行って、<作成したデータセット名>/export の下に 新しいフォルダーがあるかを確認します。
image.png

スキーマ(フィールド)をダウンロード

今後この定義したスキーマを利用するため、セッションのスキーマ(フィールド)をダウンロードします。

手順

  1. 数:0 が表示しているフォルダーにフィルターします。
  2. エクスポートをクリックします。
  3. 名前を入力し、ダウンロードを押します。
  4. ダウンロードしたフォルダーをデスクトップに置きます。

参照画面:
image.png

3. 請求書モデルの再トレーニング

ML パッケージの作成

まずは請求書のML パッケージを作成します。

手順

  1. AI CenterプロジェクトのML パッケージを選択して、右のすぐに使えるパッケージをクリックします。
  2. UiPath Document Understandingを選択します。
  3. InvoicesJapanを選択し送信します。
  4. パッケージ名を入力し送信したら、パッケージが作成されます。
    ※説明欄の入力は任意です。
    ※OCR エンジンの設定はStudioで行いますため、省略します。
    image.png

パイプラインの実行

次は、パイプラインを使って、ラベリングしたデータでモデルをトレーニングします。

手順

  1. AI Centerプロジェクトのパイプラインを選択して、右の新規作成をクリックします。
  2. パイプラインの種類にトレーニングの実行を選択します。
  3. パッケージを選択に先程作成したパッケージ(例:DU_InvoicesJapan)を選択します。
  4. パッケージのメジャーバージョンとパッケージマイナーバージョンに最新バージョンを選択します。
  5. 入力データセットを選択に <作成したデータセット名>/export/<ラベリングしたフォルダ名> を選択します。
  6. GPUを有効化をチェックして、作成ボタンをクリックします。
  7. パイプラインの一覧に作成したパッケージが表示されます。ステータスを成功になるまで待ちましょう。

参照画面(パイプラインの作成):
image.png

参照画面(成功したパイプライン):
image.png

ML スキルの作成

次は、トレーニング済のML パッケージを利用して、ML スキルを作成します。

手順

  1. AI CenterプロジェクトのML スキルを選択して、右の新規作成をクリックします。
  2. 名前を入力して、パッケージを選択に先程作成したパッケージを選択します。
  3. パッケージのメジャーバージョンとパッケージマイナーバージョンに最新バージョンを選択します。
  4. 作成ボタンをクリックします。

参照画面:
image.png

ML スキルのEndpointの作成

UiPath Studioでモデルを使うため、ML スキルのEndpointを設定します。

手順

  1. ML スキルの一覧に先程作成したMLスキルをクリックします。
    ※ステータスを利用可能になるまで10 ~ 15分 かかります。
  2. 右上の→ 現在のデプロイを変更をクリックします。
  3. ML スキルを公開トグルをONにして、確認ボタンをクリックします。
  4. ML スキルのステータスが利用可能になったら、もう一度 ML スキルをクリックし、urlが作成されたかを確認します。

参照画面(現在のデプロイを変更):
image.png

参照画面(MLスキルのURL確認):
image.png

4. 再トレーニング済AIモデルを利用します

上記の3. 請求書モデルの再トレーニングで、30枚補足のドキュメントをラベリングして、ラベリングしたデータセットを利用してAIモデルを再トレーニングしました。

これから、第5回 基礎編 テンプレートを使って日本語請求書からデータ抽出しようで作成してワークフローをベースにして、再トレーニングしたAIモデルを利用して、ドキュメントを処理します。

再トレーニングしたAIモデルとUiPathの用意したデフォルトの請求書モデルの違いがエンドポイントですので、Config.xlsxを開いて、SettingsシートでのInvoicesEndpointを変更する必要があります。

それ以外の修正は不要です。実行して、デフォルトの請求書モデルの結果と比較してみてください。
MLスキルのストリーミングログ画面で、該当MLスキルが呼ばれた際のログが確認できます。
image.png

補足: 今回のトレーニング用のドキュメントが30枚しかなく、トレーニングデータとしては不足しています。実際の業務で、以下の指標を参照して、トレーニング用ドキュメントを準備してください。
image.png

5. 検証済データを利用してAIモデルの継続改善

ローカルに保存していた検証済データをAI Centerにアップロードし再教育するため、検証済データを圧縮します。

手動でラベル付けした元のデータセットに検証済のデータを追加する必要があることです。これにより、時間の経過とともにサイズが増大する単一のトレーニング データセットを常に得られます。0 (ゼロ) マイナー バージョン (UiPath がリリースした、すぐに使えるバージョン) の ML パッケージでトレーニングを実施することが必要です。

手順:

  1. 実行した後、/Data/InvoicesTraining フォルダーを開きます。
  2. documents,metadataとpredictionsフォルダーをzipとして圧縮します。
    image.png

次は、新しいデータ ラベル付けセッションを作ります。

手順:

  1. AI Center > データ ラベル付けにアクセスし、UiPath Document Understandingを選択します。
  2. 新しいデータ ラベル付けセッションを作成します。関連設定は以下の図の通りです。
    image.png

最後に、ダウンロードしたスキーマと圧縮した検証済データをインポートします。
手順:

  1. 作成したデータのラベル付けセッションをクリックして、Document Managerにて開きます。
  2. スキーマフィールドをダウンロードでダウンロードしたスキーマをインポートします。
    image.png
  3. 圧縮した検証済データをインポートします。
    image.png
  4. スキーマ及び検証済データのインポートが完了したら、以下のように修正なところがあれば修正します。
    image.png
  5. 最初に手動でラベル付けした元のデータセットもインポートをします。

次は、ファイルをエクスポート及び請求書モデルの再トレーニングでの操作手順を参照して、以下の処理をします。

  • データーセットにエクスポートします。
  • AI Center のパイプラインで、トレーニングします。(0 (ゼロ) マイナー バージョン (UiPath がリリースした、すぐに使えるバージョン) の ML パッケージでトレーニングを実施することが必要です。)
  • AI Center のMLスキルで最新パッケージを再デプロイします。
  • 再デプロイしたMLスキルのエンドポイントURLを利用して、ワークフロープロジェクトでのConfig.xlsxのSettingsシートでのInvoicesEndpointを更新します。

これで段階的に検証済データを使って、再トレーニングをすれば、MLスキルを利用した抽出データの精度がどんど高くなります。

重要: 検証ステーションのデータの正しい使用方法は、前のモデルのバージョンを繰り返し再トレーニングすることだと誤解されていることがよくあります。

  • 誤解:X.2 を取得するために、現在のバッチを使用してパッケージ X.1 をトレーニングしているのです。そして次のバッチを使用して X.2 のトレーニングを行い、X.3 を取得します (以降同様)。これは、製品の使用方法として間違っています。
  • 正解:検証ステーションの各バッチは、最初に手動でラベル付けしたデータと同じ Document Manager セッションにインポートして、さらに大きなデータセットを作成する必要があります。そして、そのデータセットを使用して、常に ML パッケージ バージョン X.0 をトレーニングする必要があります。

更に詳細な内容は以下のページをご参照ください。

6. 最後に

第七回まで読んでいただいてありがとうございました。これまでは、利用手順を中心にして解説してきました。
今後は更に細かい仕様(例:手書き、抽出器の詳細など)を解説していきたいと思います。

参考情報

7
2
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
7
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?