ドキュメントにラベルを付ける

プロセッサ バージョンのトレーニング、アップトレーニング、評価を行うには、ドキュメントのラベル付きデータセットが必要です。

このページでは、プロセッサ スキーマのラベルを、データセットにインポートされたドキュメントに適用する方法について説明します。

このページでは、トレーニング、アップトレーニング、評価をサポートするプロセッサを作成済みであることを前提としています。プロセッサがサポートされている場合、Google Cloud コンソールに [トレイン] タブが表示されます。また、データセットを作成し、ドキュメントをインポートし、プロセッサ スキーマを定義していることも前提としています。

生成 AI 抽出のフィールドに名前を付ける

フィールドの名前付け方法は、生成 AI を使用してフィールドを抽出する精度に影響します。フィールドに名前を付ける際は、次のベスト プラクティスをおすすめします。

  • ドキュメントでフィールドの説明に使用されている言語と同じ言語でフィールドに名前を付ける: たとえば、ドキュメントに Employer Address というフィールドがある場合は、フィールドに employer_address という名前を付けます。emplr_addr などの略語は使用しないでください。

  • 現在、フィールド名にスペースは使用できません。スペースを使用する代わりに、_ を使用してください。たとえば、First Namefirst_name という名前になります。

  • 名前を反復処理して精度を高める: Document AI には、フィールド名を変更できないという制限があります。別の名前をテストするには、エンティティ名の変更ツールを使用して、データセット内の古いエンティティの名前を新しい名前に更新し、データセットをインポートして、プロセッサで新しいエンティティを有効にし、既存のフィールドを無効にするか削除します。

ラベル付けオプション

ドキュメントのラベル付けには、次のオプションがあります。

Google Cloud コンソールで手動でラベルを付ける

[トレーニング] タブでドキュメントを選択し、ラベル付けツールを開きます。

ラベル付けツールの左側にあるスキーマラベルのリストから [追加] 記号を選択して [境界ボックス] ツールを選択し、ドキュメント内のエンティティをハイライト表示してラベルに割り当てます。

次のスクリーンショットでは、ドキュメントの EMPL_SSN EMPLR_ID_NUMBEREMPLR_NAME_ADDRESSFEDERAL_INCOME_TAX_WHSS_TAX_WHSS_WAGESWAGES_TIPS_OTHER_COMP フィールドにラベルが割り当てられています。

label-process-1

[境界ボックス] ツールでチェックボックス エンティティを選択する場合は、チェックボックス自体のみを選択し、関連するテキストは選択しないでください。左側に表示されるチェックボックス エンティティが、ドキュメントの内容に合わせてオンまたはオフになっていることを確認します。

label-process-2

親子エンティティにラベルを付ける場合は、親エンティティにラベルを付けないでください。親エンティティは、子エンティティのコンテナにすぎません。子エンティティにのみラベルを付けます。親エンティティは自動的に更新されます。

子エンティティにラベルを付けるときは、最初の子エンティティにラベルを付け、関連する子エンティティをその行に関連付けます。これは、このようなエンティティに初めてラベルを付けるときに、2 番目の子エンティティで確認できます。たとえば、請求書で「説明」というラベルを付けると、他のエンティティと同じように見えます。ただし、次に [数量] というラベルを付けると、親を選択するよう求められます。

新しい広告申込情報ごとに [新しい親エンティティ] を選択して、広告申込情報ごとにこの手順を繰り返します。

親子エンティティはプレビュー機能であり、ネストが 1 つのレイヤのテーブルでのみサポートされます。基盤モデルは 3 階層のフィールド(祖父母、親、子)をサポートしているため、子エンティティには 1 レベルの子を持つことができます。

クイック テーブル

表にラベルを付けるとき、各行にラベルを付け直すのは面倒な作業です。行エンティティ構造を複製できる非常に便利なツールがあります。この機能は、横方向に配置された行でのみ機能します。

  1. まず、通常どおり 1 行目にラベルを付けます。
  2. 次に、行を表す親エンティティの上にポインタを置きます。[行を追加] を選択します。この行は、他の行を作成するテンプレートになります。

    label-process-3

  3. テーブルの残りの領域を選択します。

    label-process-4

ツールは通常、アノテーションを推測します。処理できないテーブルについては、手動でアノテーションを付けます。

コンソールでキーボード ショートカットを使用する

使用可能なキーボード ショートカットを表示するには、ラベル設定コンソールの右上にある メニューを選択します。次の表に示すように、キーボード ショートカットのリストが表示されます。

アクション ショートカット
ズームイン Alt+ =(macOS では Option+ =
ズームアウト Alt+-(macOS では Option+-
サイズに合わせてズーム Alt+0(macOS では Option+0
スクロールでズーム Alt+スクロール(macOS では Option+スクロール
パン スクロール
逆パン Shift+スクロール
ドラッグでパン スペースキー + マウスのドラッグ
元に戻す Ctrl+Z(macOS では Ctrl+Z
やり直し Ctrl+Shift+Z(macOS では Ctrl+Shift+Z

自動ラベル付け

利用可能な場合は、既存のバージョンのプロセッサを使用してラベル付けを開始できます。

  1. 自動ラベル付けはインポート中に開始できます。すべてのドキュメントに、指定されたプロセッサ バージョンを使用してアノテーションが付けられます。

    label-process-5

  2. 自動ラベル付けは、ラベルなしまたは自動ラベル付けのカテゴリのドキュメントのインポート後に開始できます。選択したすべてのドキュメントに、指定したプロセッサ バージョンを使用してアノテーションが付けられます。

    label-process-6

ラベル付きとマークしないと、自動ラベル付きドキュメントをトレーニングまたはアップトレーニングしたり、テストセットで使用したりすることはできません。自動ラベル付けされたアノテーションを手動で確認して修正し、[ラベル付きとしてマーク] を選択して修正を保存します。必要に応じてドキュメントを割り当てることができます。

事前にラベル付けされたドキュメントをインポートする

JSON Document ファイルをインポートできます。ドキュメントの entity がプロセッサ スキーマのラベルと一致する場合、entity はインポータによってラベル インスタンスに変換されます。JSON ドキュメント ファイルを取得する方法はいくつかあります。

ドキュメントのラベル付けに関するベスト プラクティス

高品質のプロセッサをトレーニングするには、一貫したラベル付けが必要です。次のことをおすすめします。

  • ラベル付け手順を作成する: 手順には、一般的なケースと特殊なケースの両方の例を含める必要があります。ヒント:

    • アノテーションを付ける必要があるフィールドと、ラベル付けの一貫性を保つ方法を説明します。たとえば、「金額」にラベルを付ける場合は、通貨記号をラベルに含めるかどうかを指定します。ラベルが一致していないと、プロセッサの品質が低下します。
    • ラベルタイプが REQUIRED_ONCE または OPTIONAL_ONCE の場合でも、エンティティのすべての出現箇所にラベルを付けます。たとえば、invoice_id がドキュメント内に 2 回出現する場合は、そのすべての出現箇所にラベルを付けます。
    • 通常は、まずデフォルトの境界ボックス ツールでラベルを付けることをおすすめします。それでも問題が解決しない場合は、テキスト選択ツールを使用します。
    • ラベルの値が OCR によって正しく検出されない場合、値を手動で修正しないでください。そのため、トレーニング目的では使用できなくなります。

ラベル付け手順の例を次に示します。

  • アノテータのトレーニング: アノテータがガイドラインを理解し、体系的なエラーなくガイドラインに従えることを確認します。これを実現する 1 つの方法は、異なるトレーニング生が同じドキュメント セットにアノテーションを付ける方法です。その後、トレーナーは各研修生のアノテーション作業の品質を確認できます。トレーニング データの精度がベンチマーク レベルに達するまで、このプロセスを繰り返す必要がある場合があります。
  • 最初のレビュー: 新しいラベラーがユースケースにラベルを付けた最初の数個(10 個程度)のドキュメントは、大量のドキュメントにラベルを付ける前に確認する必要があります。これにより、修正が必要な間違いを大量に防ぐことができます。
  • アノテーションの品質審査: アノテーションは手間のかかる作業であるため、トレーニングを受けたアノテータでも間違いを犯す可能性があります。アノテーションは、少なくとも 1 人のトレーニングを受けたアノテータによって確認することをおすすめします。

データセットを再同期する

再同期により、データセットの Cloud Storage フォルダが Document AI のメタデータの内部インデックスと整合します。これは、Cloud Storage フォルダを誤って変更し、データを同期する場合に便利です。

再同期するには:

[プロセッサの詳細] タブで、[ストレージ ロケーション] 行の横にある を選択し、[データセットを再同期] を選択します。

label-process-8

使用上の注意:

  • Cloud Storage フォルダからドキュメントを削除すると、再同期によってデータセットから削除されます。
  • Cloud Storage フォルダにドキュメントを追加しても、再同期ではデータセットに追加されません。ドキュメントを追加するには、インポートします。
  • Cloud Storage フォルダでドキュメントラベルを変更すると、再同期によってデータセット内のドキュメントラベルが更新されます。

データセットを移行する

インポートとエクスポートを使用すると、データセット内のすべてのドキュメントを 1 つのプロセッサから別のプロセッサに移動できます。これは、異なるリージョンまたは Google Cloud プロジェクトにプロセッサがある場合、ステージングと本番環境に異なるプロセッサがある場合、または一般的なオフライン使用に異なるプロセッサがある場合に役立ちます。

エクスポートされるのはドキュメントとそのラベルのみです。プロセッサ スキーマ、ドキュメントの割り当て(トレーニング/テスト/未割り当て)、ドキュメントのラベル付けステータス(ラベル付き、ラベルなし、自動ラベル付き)などのデータセット メタデータはエクスポートされません。

データセットをコピーしてインポートし、ターゲット プロセッサをトレーニングすることは、ソース プロセッサをトレーニングする場合とは異なります。これは、トレーニング プロセスの開始時にランダムな値が使用されるためです。importProcessorVersion API 呼び出しを使用して、プロジェクト間でまったく同じモデルをインポートして移行します。これは、ポリシーで許可されている場合、プロセッサを上位環境(開発からステージング、本番環境など)に移行する場合のベスト プラクティスです。

データセットのエクスポート

すべてのドキュメントを JSON Document ファイルとして Cloud Storage フォルダにエクスポートするには、[データセットをエクスポート] を選択します。

重要な注意点がいくつかあります。

  1. エクスポート中に、[Test]、[Train]、[Unassigned] の 3 つのサブフォルダが作成されます。ドキュメントは、それらのサブフォルダに適切に配置されます。

  2. ドキュメントのラベル付けステータスはエクスポートされません。後でドキュメントをインポートしても、自動ラベル付け済みとしてマークされることはありません。

  3. Cloud Storage が別のプロジェクトにある場合は、Document AI がその場所にファイルを書き込めるようにアクセス権を付与してください。 Google Cloud 具体的には、Document AI のコア サービス エージェント service-{project-id}@gcp-sa-prod-dai-core.iam.gserviceaccount.comストレージ オブジェクト作成者ロールを付与する必要があります。詳細については、サービス エージェントをご覧ください。

データセットのインポート

手順はドキュメントをインポートすると同じです。

選択的ラベル付けユーザーガイド

選択的ラベル付けは、ラベルを付けるドキュメントに関する推奨事項に役立ちます。多様なトレーニング データセットとテスト データセットを作成して、代表的なモデルをトレーニングできます。選択的ラベル付けが実行されるたびに、データセットから最も多様な(最大 30 個)ドキュメントが選択されます。

推奨ドキュメントの取得

  1. CDE プロセッサを作成してドキュメントをインポートします。

    • トレーニングには 100 個以上(テストには 25 個以上)が必要です。
    • 十分なドキュメントがインポートされ、選択ラベル付けが完了すると、情報バーが表示されます。

    label-process-9

    label-process-10

  2. 推奨ドキュメントが 0 個の CDE プロセッサの場合は、いずれかの分割に十分なドキュメントが含まれるように、さらにインポートしてサンプリングします。

    • これにより、[推奨カテゴリ] に推奨ドキュメントが表示されます。提案された書類は手動でリクエストできます。
    • 上部に、候補のドキュメントを除外する新しいフィルタが追加されました。

    label-process-11

推奨ドキュメントにラベルを付ける

  1. 左側のラベルリスト パネルの [推奨カテゴリ] に移動します。これらのドキュメントのラベル付けを開始します。

    label-process-12

  2. プロセッサがトレーニングされている場合は、情報バーで [自動ラベル] を選択します。推奨されたドキュメントにラベルを付けます。

    label-process-13

  3. プロセッサで移動先のドキュメントが提案された場合は、バーの [今すぐ確認] を選択できます。自動ラベル付けされたドキュメントはすべて、正確性を確認する必要があります。審査を開始します。

    label-process-14

すべての推奨ドキュメントにラベルを付けた後にトレーニングする

情報バーの [今すぐトレーニング] に移動します。候補のドキュメントにラベルが付けられると、トレーニングを推奨する次の情報バーが表示されます。

label-process-15

サポートされている機能と制限事項

機能 説明 サポート対象
古いプロセッサのサポート 以前にインポートしたデータセットがある古いプロセッサでは適切に機能しない可能性があります