生成 AI を利用したカスタム エクストラクタ

生成 AI のトレーニングと抽出により、次のことが可能になります。

  • ゼロショット技術と少数ショット技術を使用して、基盤モデルを使用するトレーニング データがほとんどまたはまったくない高性能モデルを取得します。
  • ファインチューニングを使用して、トレーニング データを追加しながら精度をさらに向上させます。

生成 AI のトレーニング方法

選択するトレーニング方法は、利用可能なドキュメントの数と、モデルのトレーニングに費やすことができる労力によって異なります。生成 AI モデルをトレーニングする方法は 3 つあります。

トレーニング方法 ゼロショット 少数ショット ファインチューニング
精度 中 中~高 高
作業量 低 低 中
推奨されるトレーニング ドキュメントの数 0 5 ~ 10 10 ~ 50+

カスタム エクストラクタ モデルのバージョン

カスタム エクストラクタでは、次のモデルを使用できます。モデルのバージョンを変更するには、プロセッサのバージョンを管理するをご覧ください。

バージョン 1.4、1.5、1.5 Pro は信頼スコアに対応しています。

モデル バージョン 説明 リリース チャンネル ML 処理(米国 / EU) ファインチューニング(米国 / EU) リリース日
pretrained-foundation-model-v1.5-2025-05-05 Gemini 2.5 Flash LLM によるプロダクション レディな候補。新しいモデルを試したい場合におすすめです。 Stable はい 米国、EU 2025 年 5 月 5 日
pretrained-foundation-model-v1.5-pro-2025-06-20 Gemini 2.5 Pro LLM を活用するプロダクション レディなモデル。オンライン処理リクエストで 1 分あたり最大 30 ページの割り当てをサポートします。このモデルは v1.5 と比較して品質が向上していますが、レイテンシが長くなる可能性があります。 Stable はい いいえ 2025 年 6 月 20 日
pretrained-foundation-model-v1.5.1-2025-08-07 Gemini 2.5 Flash LLM を活用するパブリック プレビュー モデル。このモデルは v1.5 と同じ機能を備えており、適応型少数ショット学習が改善されています。 リリース候補 はい いいえ 2025 年 8 月 8 日
pretrained-foundation-model-v1.6-pro-2025-12-01 Gemini 3 Pro LLM を活用するプレビュー モデル。 リリース候補 はい いいえ 2025 年 12 月 1 日
pretrained-foundation-model-v1.6-2026-01-13 Gemini 3 Flash LLM を活用するプレビュー モデル。 リリース候補 はい いいえ 2026 年 1 月 13 日
pretrained-foundation-model-v3.1-lite-2026-07-15 Gemini 3.1 Lite LLM を活用するプレビュー モデル。米国と EU のマルチリージョン エンドポイント(mREP)をサポートします。 リリース候補 はい はい 2026 年 9 月 21 日
pretrained-foundation-model-v3.5-2026-05-26 Gemini 3.5 Flash LLM を活用するプレビュー モデル。 リリース候補 はい いいえ 2026 年 5 月 26 日

プロジェクトでプロセッサ バージョンを変更するには、プロセッサ バージョンの管理をご覧ください。

デフォルトのプロセッサ割り当ての割り当て増加リクエスト(QIR)を行うには、割り当ての調整をリクエストするの手順に沿って操作します。

初期設定

まだ有効にしていない場合は、課金と Document AI API を有効にします。

生成 AI モデルを構築して評価する

  1. プロセッサを作成し、ベスト プラクティスに沿って抽出するフィールドを定義します。これは抽出の品質に影響するため重要です。

    • [ワークベンチ] > [カスタム エクストラクタ] > [プロセッサを作成] > [名前を割り当てる] に移動します。

    processor-version-genai-1

    • [開始する] > [新しいフィールドを作成] に移動します。

    processor-version-genai-2

  2. ドキュメントのインポート

    • 自動ラベル付けを使用してドキュメントをインポートし、トレーニング セットとテストセットにドキュメントを割り当てます。
    • ゼロショットの場合、スキーマのみが必要です。モデルの精度を評価するには、テストセットのみが必要です。
    • 少数ショットの場合は、5 つのトレーニング ドキュメントを使用することをおすすめします。
    • 必要なテスト ドキュメントの数は、ユースケースによって異なります。一般的に、テスト ドキュメントが多いほど、より良い結果が得られます。
    • ドキュメント内のラベルを確認または編集します。
  3. モデルをトレーニングする:

    • [ビルド]、[新しいバージョンを作成] の順に選択します。
    • 名前を入力して [作成] を選択します。

    processor-version-genai-12

  1. 評価:

    • [評価とテスト] に移動し、トレーニングしたバージョンを選択して、[評価全体を表示] を選択します。

    processor-version-genai-13

    • ドキュメント全体と各フィールドの F1、適合率、再現率などの指標が表示されます。
    • パフォーマンスが本番環境の目標を満たしているかどうかを判断します。満たしていない場合は、トレーニング セットとテストセットを再評価します。
  2. 新しいバージョンをデフォルトとして設定します。

    • [バージョンの管理] に移動します。
    • 選択してオプションを開き、[デフォルトに設定] を選択します。

    processor-version-genai-14

    モデルがデプロイされました。このプロセッサに送信されたドキュメントは、カスタム バージョンを使用します。モデルのパフォーマンスを評価して、さらにトレーニングが必要かどうかを確認できます。

評価リファレンス

評価エンジンは、完全一致とファジー マッチングの両方を行うことができます。完全一致の場合、抽出された値がグラウンド トゥルースと完全に一致する必要があります。一致しない場合は、不一致としてカウントされます。

大文字と小文字の違いなど、わずかな違いがあるファジー マッチング抽出は、一致としてカウントされます。これは [Evaluation] 画面で変更できます。

processor-version-genai-15

ファインチューニング

ファインチューニングでは、数百から数千のドキュメントをトレーニングに使用します。

  1. プロセッサを作成し、ベスト プラクティスに沿って抽出するフィールドを定義します。これは抽出の品質に影響するため重要です。

  2. 自動ラベル付けを使用してドキュメントをインポートし、トレーニング セットとテストセットにドキュメントを割り当てます。

  3. ドキュメント内のラベルを確認または編集します。

  4. モデルをトレーニングする。

    • [ビルド] タブを選択し、[ファインチューニング] ボックスで [新しいバージョンを作成] を選択します。

    processor-version-genai-24

    • デフォルトのトレーニング パラメータまたは指定された値を試します。結果が不十分な場合は、次の高度なオプションを試してください。

    • トレーニング ステップ(1 ~ 400): エポックとも呼ばれるトレーニング ステップは、チューニング中にデータのバッチで重みが最適化される頻度を制御します。

      • 低すぎると、収束前にトレーニングが終了するリスクがあります(アンダーフィッティング)。
      • 高すぎると、モデルがトレーニング中に同じバッチのデータを複数回参照する可能性があり、過学習につながる可能性があります。
      • ステップ数が少ないほど、トレーニング時間が短縮されます。テンプレートのバリエーションが少ないドキュメントでは、カウントを増やすと効果的です(バリエーションが多いドキュメントでは、カウントを減らすと効果的です)。
    • 学習率乗数(0.1 ~ 10): トレーニング データでモデル パラメータが最適化される速度を制御します。これは、各トレーニング ステップのサイズにほぼ対応しています。

      • 率が低いと、各トレーニング ステップでのモデルの重みの変化が小さくなります。低すぎると、モデルが安定したソリューションに収束しない可能性があります。
      • 率が高いほど変化が大きくなります。率が高すぎると、モデルが最適なソリューションを飛び越えて、最適ではないソリューションに収束する可能性があります。
      • トレーニング時間は、学習率の選択に影響されない。
    • 名前を入力し、必要なベース プロセッサ バージョンを選択して、[作成] を選択します。

    processor-version-genai-21

  5. 評価: [評価とテスト] に移動し、トレーニングしたバージョンを選択して、[評価全体を表示] を選択します。

    processor-version-genai-13

    • ドキュメント全体と各フィールドの F1、適合率、再現率などの指標が表示されます。
    • パフォーマンスが本番環境の目標を満たしているかどうかを判断します。満たしていない場合は、さらにトレーニング ドキュメントが必要になることがあります。
  6. 新しいバージョンをデフォルトとして設定します。

    • [バージョンの管理] に移動します。
    • 選択してオプションを開き、[デフォルトに設定] を選択します。

    processor-version-genai-14

    モデルがデプロイされ、このプロセッサに送信されたドキュメントでカスタム バージョンが使用されるようになりました。モデルのパフォーマンスを評価して、追加のトレーニングが必要かどうかを確認する。

基盤モデルを使用した自動ラベル付け

基盤モデルは、さまざまなドキュメント タイプのフィールドを正確に抽出できますが、追加のトレーニング データを提供して、特定のドキュメント構造に対するモデルの精度を向上させることもできます。

Document AI は、定義したラベル名と以前のアノテーションを使用して、自動ラベル付けで素早く簡単にドキュメントを大規模にラベル付けすることができます。

  1. カスタム プロセッサを作成したら、[スタートガイド] タブに移動します。
  2. [新しいフィールドを作成] を選択します。
  3. ラベルにわかりやすく、区別できる名前を付けます。ドキュメントから値を直接取得するには [抽出] を選択します。システムによって推測された値を取得するには [導出] を選択します。これにより、基盤モデルの精度とパフォーマンスが向上します。

    processor-version-genai-17

  4. 抽出の精度とパフォーマンスを向上させるには、抽出するエンティティの種類に関する説明(各エンティティに追加のコンテキスト、分析情報、事前知識など)を追加します。

    processor-version-genai-23

  5. [ビルド] タブに移動し、[ドキュメントのインポート] を選択します。

    processor-version-genai-18

  6. ドキュメントのパスと、ドキュメントをインポートするセットを選択します。自動ラベル付けオプションをオンにして、基盤モデルを選択します。

  7. [ビルド] タブで、[データセットの管理] を選択します。

  8. インポートしたドキュメントが表示されたら、そのうちの 1 つを選択します。

    processor-version-genai-19

モデルからの予測が紫でハイライト表示されます。

  1. モデルによって予測された各ラベルを確認し、正しいことを確認します。
  2. 不足しているフィールドがある場合は、それらも追加します。

    processor-version-genai-20

  3. ドキュメントの確認が完了したら、[ラベル付きとしてマーク] を選択します。これで、ドキュメントをモデルで使用できるようになりました。

  4. ドキュメントがテストセットまたはトレーニング セットに含まれていることを確認します。

3 レベルのネスト

カスタム エクストラクタで 3 レベルのネストがサポートされるようになりました。この機能により、複雑なテーブルの抽出が改善されます。

モデルタイプは、次の API 呼び出しを使用して確認できます。

これらのレスポンスは ProcessorVersion で、v1beta3 プレビューの modelType フィールドが含まれています。

手順と例

このサンプルを使用しています。

processor-version-genai-3

  1. [使ってみる] を選択し、フィールドを作成します。

    • 最上位レベルを作成します。
    • このサンプルでは、officer_appointments が使用されています。
    • [これは親ラベルである] を選択します。
    • [Occurrence] で Optional multiple を選択します。

    processor-version-genai-4 processor-version-genai-5 processor-version-genai-6

  2. [子フィールドを追加] を選択します。これで、2 番目のレベルのラベルを作成できます。

    • このレベルラベルに officer を作成します。
    • [これは親ラベルである] を選択します。
    • [Occurrence] で Optional multiple を選択します。

    processor-version-genai-7 processor-version-genai-8

  3. 2 番目のレベルの officer から [子フィールドを追加] を選択します。3 番目のネストレベルの子ラベルを作成します。 processor-version-genai-9

  4. スキーマを設定すると、自動ラベル付けを使用して、3 レベルのネストを含むドキュメントから予測を取得できます。

    processor-version-genai-10 processor-version-genai-11

ページをまたぐネストされたエンティティにラベルを付ける

pretrained-foundation-model-v1.5-2025-05-05 プロセッサは、ページ間で 3 レベルのネストをサポートしています。

  1. ページ全体でエンティティに通常どおりラベルを付けます。注: ラベル付けされたエンティティは、ラベル付けされたページにのみ表示され、ナビゲーション バーはページごとに変わります。親エンティティを固定すると、このナビゲーション バーが固定されます。

    processor-version-genai-25

  2. ページをまたいでラベルを付ける子エンティティを持つ親エンティティを固定します。

    processor-version-genai-26

  3. ラベルを付ける子エンティティが表示されているページに移動します。

processor-version-genai-27

データセットの構成

プロセッサ バージョンのトレーニング、アップトレーニング、評価を行うには、ドキュメント データセットが必要です。Document AI プロセッサは、人間と同じように例から学習します。データセットは、パフォーマンスの観点からプロセッサの安定性を高めます。

トレーニング データセット

モデルとその精度を向上させるには、ドキュメントでデータセットをトレーニングします。このモデルは、グラウンド トゥルースを含むドキュメントで構成されています。
  • ファインチューニングの場合、バージョン pretrained-foundation-model-v1.5-2025-05-05 で新しいモデルをトレーニングするには、少なくとも 50 個のトレーニング ドキュメントと 50 個のテスト ドキュメントが必要です。
  • 少数ショットの場合は、5 つのドキュメントが推奨されます。
  • ゼロショットの場合、スキーマのみが必要です。

テスト データセット

テスト データセットは、モデルが F1 スコア(精度)を生成するために使用するものです。これは、グラウンド トゥルースを含むドキュメントで構成されています。モデルが正しく予測する頻度を確認するには、グラウンド トゥルースを使用して、モデルの予測(モデルから抽出されたフィールド)と正解を比較します。テスト データセットには、pretrained-foundation-model-v1.5-2025-05-05 用のドキュメントが 50 個以上必要です。

プロパティの説明を含むカスタム エクストラクタ

プロパティの説明を使用すると、ラベル付きフィールドがどのようなものかを説明してモデルをトレーニングできます。各エンティティに追加のコンテキストと分析情報を提供できます。これにより、モデルは指定された説明に一致するフィールドを照合してトレーニングし、抽出精度を向上させることができます。プロパティの説明は、親エンティティと子エンティティの両方に指定できます。

プロパティの説明の適切な例としては、プロパティ値の位置情報やテキスト パターンなどがあります。これらは、ドキュメント内の混乱の原因となる可能性のあるものを明確にするのに役立ちます。明確で正確なプロパティの説明は、特定のドキュメント構造やコンテンツのバリエーションに関係なく、より信頼性が高く一貫性のある抽出を促進するルールでモデルをガイドします。

プロセッサのドキュメント スキーマを更新する

プロパティの説明を設定する方法については、ドキュメント スキーマを更新するをご覧ください。

プロパティの説明を含む処理リクエストを送信する

ドキュメント スキーマに説明がすでに設定されている場合は、処理リクエストを送信するの手順に沿って処理リクエストを送信できます。

プロパティの説明を使用してプロセッサをファインチューニングする

リクエストのデータを使用する前に、次のように置き換えます。

  • LOCATION: プロセッサのロケーション(例:
      )
    • us - 米国
    • eu - 欧州連合
  • PROJECT_ID: 実際の Google Cloud プロジェクト ID。
  • PROCESSOR_ID: カスタム プロセッサの ID。
  • DISPLAY_NAME: プロセッサの表示名。
  • PRETRAINED_PROCESSOR_VERSION: プロセッサ バージョンの識別子。詳細については、プロセッサ バージョンを選択するをご覧ください。例:
    • pretrained-TYPE-vX.X-YYYY-MM-DD
    • stable
    • rc
  • TRAIN_STEPS: モデルのファインチューニングのトレーニング ステップ。
  • LEARN_RATE_MULTIPLIER: モデルのファインチューニングの学習率乗数。
  • DOCUMENT_SCHEMA: プロセッサのスキーマ。DocumentSchema 表現をご覧ください。

HTTP メソッドと URL:

POST https://LOCATION-documentai.googleapis.com/v1beta3/projects/PROJECT_ID/locations/LOCATION/processors/PROCESSOR_ID/processorVersions/PROCESSOR_VERSION:process

リクエストの本文(JSON):

{
  "rawDocument": {
      "parent": "projects/PROJECT_ID/locations/LOCATION/processors/PROCESSOR_ID",
         "processor_version": {
             "name": "projects/PROJECT_ID/locations/LOCATION/processors/PROCESSOR_ID/processorVersions/DISPLAY_NAME",
             "display_name": "DISPLAY_NAME",
             "model_type": "MODEL_TYPE_GENERATIVE",
         },
         "base_processor_version": "projects/PROJECT_ID/locations/us/processors/PROCESSOR_ID/processorVersions/PRETRAINED_PROCESSOR_VERSION",
         "foundation_model_tuning_options": {
             "train_steps": TRAIN_STEPS,
             "learning_rate_multiplier": LEARN_RATE_MULTIPLIER,
         }
         "document_schema": DOCUMENT_SCHEMA
      }
}

リクエストを送信するには、次のいずれかのオプションを選択します。

curl

リクエスト本文を request.json という名前のファイルに保存して、次のコマンドを実行します。

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-documentai.googleapis.com/v1beta3/projects/PROJECT_ID/locations/LOCATION/processors/PROCESSOR_ID/processorVersions/PROCESSOR_VERSION:process"

PowerShell

リクエスト本文を request.json という名前のファイルに保存して、次のコマンドを実行します。

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-documentai.googleapis.com/v1beta3/projects/PROJECT_ID/locations/LOCATION/processors/PROCESSOR_ID/processorVersions/PROCESSOR_VERSION:process" | Select-Object -Expand Content

署名検出機能を備えたカスタム エクストラクタ

(パブリック プレビュー)カスタム エクストラクタは署名検出をサポートしています。この機能を使用すると、ドキュメント内の署名の有無を検出できます。シグネチャ検出は、derived メソッドタイプを使用する場合にのみ使用できます。このようなエンティティには、エンティティ タイプ signature を使用してスキーマを指定できます。署名エンティティは、ドキュメントの視覚的な手がかりを使用して導出されます。

例と構成手順については、派生フィールドと署名検出を使用したカスタム エクストラクタをクリックしてください。

派生フィールドを含むカスタム エクストラクタ

カスタム エクストラクタは、派生フィールドをサポートしています。これにより、直接的なテキスト抽出ではなく、ドキュメント コンテキストに基づくインテリジェントな推論または生成によって入力されるフィールドを構成できます。これは、住所から国を推測する、ドキュメントを要約する、テーブル内のアイテムをカウントする、ID が本物かどうかを検出するなどのユースケースで使用できます。値がテキストに明示的に存在する必要はありません。

例と構成手順については、派生フィールドと署名検出を使用したカスタム エクストラクタをクリックしてください。

次のステップ

派生フィールドと署名検出を使用したカスタム エクストラクタについて学習する。