ドキュメント インテリジェンスのカスタム分類モデル

重要

  • Document Intelligence パブリック プレビュー リリースは、開発中の機能への早期アクセスを提供します。 機能、アプローチ、およびプロセスは、一般提供 (GA) の前に、ユーザーからのフィードバックに基づいて変更される可能性があります。
  • Document Intelligence クライアント ライブラリのパブリック プレビュー バージョンは、REST API バージョン 2024-07-31-preview にデフォルトで設定されています。
  • パブリック プレビュー バージョン 2024-07-31-preview は、現在、次の Azure リージョンでのみ使用できます。 AI Studio のカスタム生成 (ドキュメント フィールド抽出) モデルは、米国中北部リージョンでのみ使用できます。
    • 米国東部
    • 米国西部 2
    • "西ヨーロッパ"
    • 米国中北部

このコンテンツの適用対象:checkmark v4.0 (プレビュー) | 以前のバージョン: 青のチェックマーク v3.1 (GA)

このコンテンツの適用対象: checkmark v3.1 (GA) | 最新バージョン: 紫のチェックマーク v4.0 (プレビュー)

重要

  • 2024-07-31-preview API、カスタム分類モデルでは、既定では分析プロセス中にドキュメントは分割されません。
  • 以前のリリースのビヘイビアーを保持するには、 splitMode プロパティを auto に明示的に設定する必要があります。 splitMode の規定値は none です。
  • 入力ファイルに複数のドキュメントが含まれている場合は、 splitModeautoに設定して分割を有効にする必要があります。

Azure AI Document Intelligence は、クラウドベースの Azure AI サービスで、インテリジェントなドキュメント処理ソリューションの構築を可能とします。 Document Intelligence API は、画像、PDF、その他のドキュメント ファイルを分析して、さまざまなコンテンツ、レイアウト、スタイル、セマンティック要素を抽出および検出します。

カスタム分類モデルは、レイアウト機能と言語機能を組み合わせて、アプリケーション内で処理するドキュメントを正確に検出して識別するディープ ラーニング モデル型です。 カスタム分類モデルは、入力ファイル内の各ページを分類してその中のドキュメントを識別し、入力ファイル内の複数のドキュメントまたは 1 つのドキュメントの複数のインスタンスを識別することもできます。

モデル機能

Note

  • 2024-02-29-preview API 以降、カスタム分類モデルでは増分トレーニングがサポートされています。 新しいサンプルを既存のクラスに追加したり、既存の分類子を参照して新しいクラスを追加したりできます。

カスタム分類モデルでは、単一ファイルまたは複数ファイルのドキュメントを分析して、トレーニング済みのドキュメントの種類のいずれかが入力ファイル内に含まれているかどうかを識別できます。 現在サポートされているシナリオを次に示します。

  • 融資申込みフォームなどの、1 つのドキュメントの種類を含む 1 つのファイル。

  • 複数のドキュメントの種類を含む 1 つのファイル。 たとえば、融資申込みフォーム、給与明細、口座取引明細書を含む融資申込みパッケージ。

  • 同じドキュメントの複数のインスタンスを含む 1 つのファイル。 たとえば、スキャンされた請求書のコレクションです。

✔️ カスタム分類子をトレーニングするには、少なくとも two 個別のクラスと、クラスごとに最小限の fiveのドキュメント サンプルが必要です。 モデル応答には、識別されたドキュメントの各クラスのページ範囲が含まれます。

✔️ 許容されるクラスの最大数は 500です。 クラスあたりのドキュメント サンプルの最大数は 100です。

特に指定がない限り、モデルは、入力ドキュメントの各ページを、ラベル付きデータセット内のいずれかのクラスに分類します。 入力ドキュメントで分析するページ番号を指定することもできます。 アプリケーションのしきい値を設定するには、応答の信頼度スコアを使用します。

増分トレーニング

カスタム モデルでは、分類子を既存のクラスの新しいサンプルで更新したり、新しいクラスを追加したりするには、トレーニング データセットへのアクセスを維持する必要があります。 分類子モデルでは、既存の分類子を参照して既存のクラスに新しいサンプルを追加したり、サンプルを含む新しいクラスを追加したりできる増分トレーニングがサポートされるようになりました。 増分トレーニングを使用すると、データ保持が困難かつ変化するビジネス ニーズに合わせて分類子を更新する必要があるシナリオへの対応が可能になります。 増分トレーニングは、API バージョン 2024-02-29-preview 以降でトレーニングされたモデルでサポートされます。

重要

増分トレーニングは、同じ API バージョンでトレーニングされたモデルでのみサポートされます。 モデルを拡張しようとしている場合は、元のモデルがトレーニングされた API バージョンを使用してモデルを拡張してください。 増分トレーニングは、API バージョン 2024-07-31-preview 以降でのみサポートされます。

増分トレーニングでは、元のモデル ID を baseClassifierId として指定する必要があります。 増分トレーニングの使用方法の詳細については、「増分トレーニング」を参照してください。

Office ドキュメントの種類のサポート

PDF、画像、Word、PowerPoint、Excel などのさまざまな形式のドキュメントの種類を認識するように分類子をトレーニングできるようになりました。 トレーニング データセットを組み立てるときに、サポートされている任意の種類のドキュメントを追加できます。 分類子では、特定の型に明示的にラベルを付ける必要はありません。 ベスト プラクティスとして、モデルの全体的な精度を向上させるために、トレーニング データセットに各形式のサンプルが少なくとも 1 つ含まれるようにします。

カスタム分類モデルと作成済みモデルを比較する

カスタム分類モデルは、一部のシナリオで作成済みモデルに取って代わることができますが、注意すべき違いがいくつかあります。

機能 カスタム分類子プロセス 構成済みモデル プロセス
抽出モデル処理用にトレーニングされたいずれかの型に属する不明な型の 1 つのドキュメントを分析します。 ● 複数の呼び出しが必要です。
● ドキュメント クラスに基づいて分類モデルを呼び出します。 この手順では、抽出モデル分析を呼び出す前に信頼度ベースのチェックを行うことができます。
● 抽出モデルを呼び出します。
● 入力ドキュメント タイプに対応するモデルを含む構成済みモデルを 1 回呼び出す必要があります。
抽出モデル処理用にトレーニングされたいくつかの型に属する不明な型の 1 つのドキュメントを分析します。 ● 複数の呼び出しが必要です。
● 抽出のために指定された種類と一致しないドキュメントを無視する分類子を呼び出します。
● 抽出モデルを呼び出します。
● 構成済みモデルを 1 回呼び出す必要があります。 このサービスは、構成済みモデル内で一致が最も高いカスタム モデルを選択します。
● 構成済みモデルはドキュメントを無視できません。
抽出モデル処理用にトレーニングされたいずれかの種類に属する既知または不明の種類の複数のドキュメントを含むファイルを分析します。 ● 複数の呼び出しが必要です。
● 入力ファイル内の識別されたドキュメントごとに抽出モデルを呼び出します。
● 抽出モデルを呼び出します。
● 構成済みモデルを 1 回呼び出す必要があります。
● 構成されたモデルは、ドキュメントの最初のインスタンスでコンポーネント モデルを 1 回呼び出します。
● 残りのドキュメントは無視されます。

言語のサポート

分類モデルでは、現在、英語のドキュメントのみをサポートしています。

分類モデルは、さまざまな言語のドキュメントでトレーニングできるようになりました。 完全な一覧が必要な場合、サポートされている言語に関するページを参照してください。

入力の要件

サポートされているファイル形式:

モデル PDF イメージ:
jpeg/jpgpngbmptiffheif
Microsoft Office:
Word (docx)、Excel (xlxs)、PowerPoint (pptx)
読み込み
Layout ✔ (2024-02-29-preview、2023-10-31-preview、およびそれ以降)
一般的なドキュメント
事前構築済み
カスタム抽出
カスタム分類
  • 最適な結果を得るには、ドキュメントの種類ごとに 5 つの鮮明な写真または高品質のスキャンを提供してください。

  • PDF および TIFF の場合、最大 2,000 ページを処理できます (Free レベルのサブスクリプションでは、最初の 2 ページのみが処理されます)。

  • ドキュメントを分析するためのファイル サイズは、有料 (S0) レベルでは 500 MB、無料 (F0) レベルでは 4 MB です。

  • 画像のディメンションは、50 x 50 ピクセルから 10,000 x 10,000 ピクセルの間である必要があります。

  • PDF がパスワードでロックされている場合は、送信前にロックを解除する必要があります。

  • 抽出するテキストの最小の高さは、1024 x 768 ピクセルのイメージの場合は 12 ピクセルです。 このディメンションは、1 インチあたり 150 ドット (DPI) で約 8 ポイントのテキストに相当します。

  • カスタム モデル トレーニングにおけるトレーニング データの最大ページ数は、カスタム テンプレート モデルの場合は 500、カスタム ニューラル モデルの場合は 50,000 です。

  • カスタム抽出モデル トレーニングにおけるトレーニング データの合計サイズは、テンプレート モデルの場合は 50 MB、ニューラル モデルの場合は 1GB です。

  • カスタム分類モデル トレーニングの場合、トレーニング データの合計サイズは 1 GB で、最大 10,000 ページです。

サブドキュメントの分割

ファイルに複数のドキュメントがある場合、分類子は入力ファイルに含まれるさまざまなドキュメントの種類を識別できます。 分類子の応答には、ファイル内に含まれる識別されたドキュメントの種類ごとにページ範囲が含まれます。 この応答には、同じドキュメントの種類のインスタンスを複数含めることができます。

analyze 操作に、分割動作をきめ細かく制御できる splitMode プロパティが含まれるようになりました。

  • 入力ファイル全体を分類用の単一のドキュメントとして扱うには、splitMode を noneに設定します。 その場合、サービスは入力ファイル全体に対して 1 つのクラスのみを返します。
  • 入力ファイルの各ページを分類するには、splitMode を perPage に設定します。 サービスは、各ページを個別のドキュメントとして分類しようとします。
  • splitMode を auto に設定すると、サービスはドキュメントと関連するページ範囲を識別します。

ベスト プラクティス

カスタム分類モデルでは、トレーニングするためにクラスごとに最低 5 つのサンプルが必要です。 クラスが似ている場合は、追加のトレーニング サンプルを追加すると、モデルの精度が向上します。

分類子は、各ドキュメントをいずれかのクラスに割り当てようとします。トレーニング データセットの一部であるクラスに含まれていないドキュメントの種類がモデルに表示される場合は、分類スコアのしきい値を設定するか、ドキュメントの種類のいくつかの代表的なサンプルを "other" クラスに追加することを計画する必要があります。 "other" クラスを追加すると、不要なドキュメントが分類子の品質に影響を与えなくなります。

Training a model

カスタム分類モデルは、v4.0: 2024-02-29-preview、2024-07-31-preview および v3.1: 2023-07-31 (GA) API でサポートされています。 Document Intelligence Studio には、カスタム分類子を対話形式でトレーニングするためのコードなしのユーザー インターフェイスが用意されています。 開始するには、攻略ガイドに従ってください。

REST API を使用する場合、ドキュメントをフォルダー別に整理する場合は、要求の azureBlobSource プロパティを使用して分類モデルをトレーニングできます。


https://{endpoint}/documentintelligence/documentClassifiers:build?api-version=2024-02-29-preview

{
  "classifierId": "demo2.1",
  "description": "",
  "docTypes": {
    "car-maint": {
        "azureBlobSource": {
            "containerUrl": "SAS URL to container",
            "prefix": "sample1/car-maint/"
            }
    },
    "cc-auth": {
        "azureBlobSource": {
            "containerUrl": "SAS URL to container",
            "prefix": "sample1/cc-auth/"
            }
    },
    "deed-of-trust": {
        "azureBlobSource": {
            "containerUrl": "SAS URL to container",
            "prefix": "sample1/deed-of-trust/"
            }
    }
  }
}

https://{endpoint}/formrecognizer/documentClassifiers:build?api-version=2023-07-31

{
  "classifierId": "demo2.1",
  "description": "",
  "docTypes": {
    "car-maint": {
        "azureBlobSource": {
            "containerUrl": "SAS URL to container",
            "prefix": "{path to dataset root}/car-maint/"
            }
    },
    "cc-auth": {
        "azureBlobSource": {
            "containerUrl": "SAS URL to container",
            "prefix": "{path to dataset root}/cc-auth/"
            }
    },
    "deed-of-trust": {
        "azureBlobSource": {
            "containerUrl": "SAS URL to container",
            "prefix": "{path to dataset root}/deed-of-trust/"
            }
    }
  }
}

または、ファイルのフラット リストがある場合、または各フォルダー内で選択したファイルをいくつか使用してモデルをトレーニングするだけの場合は、azureBlobFileListSource プロパティを使用してモデルをトレーニングできます。 この手順では、JSON Lines 形式の file list が必要です。 クラスごとに、トレーニング用に送信するファイルの一覧を含む新しいファイルを追加します。

{
  "classifierId": "demo2",
  "description": "",
  "docTypes": {
    "car-maint": {
      "azureBlobFileListSource": {
        "containerUrl": "SAS URL to container",
        "fileList": "{path to dataset root}/car-maint.jsonl"
      }
    },
    "cc-auth": {
      "azureBlobFileListSource": {
        "containerUrl": "SAS URL to container",
        "fileList": "{path to dataset root}/cc-auth.jsonl"
      }
    },
    "deed-of-trust": {
      "azureBlobFileListSource": {
        "containerUrl": "SAS URL to container",
        "fileList": "{path to dataset root}/deed-of-trust.jsonl"
      }
    }
  }
}

たとえば、ファイルの一覧 car-maint.jsonl には、次のファイルが含まれています。

{"file":"classifier/car-maint/Commercial Motor Vehicle - Adatum.pdf"}
{"file":"classifier/car-maint/Commercial Motor Vehicle - Fincher.pdf"}
{"file":"classifier/car-maint/Commercial Motor Vehicle - Lamna.pdf"}
{"file":"classifier/car-maint/Commercial Motor Vehicle - Liberty.pdf"}
{"file":"classifier/car-maint/Commercial Motor Vehicle - Trey.pdf"}

モデルの上書き

Note

2024-07-31-preview API 以降、カスタム分類モデルでは、モデルのインプレース上書きがサポートされています。

これで、カスタム分類をインプレースで更新できるようになりました。 モデルを直接上書きすると、既存モデルの置き換えを決定する前にモデルの品質を比較する機能が失われます。 モデルの上書きは、allowOverwrite プロパティが要求本文で明示的に指定されている場合に許可されます。 このアクションが実行されると、上書きされた元のモデルを復旧することはできません。



{
  "classifierId": "existingClassifierName",
  "allowOverwrite": true,  // Default=false
  ...
}

モデルをコピーする

Note

2024-07-31-preview API 以降、カスタム分類モデルでは、次のいずれかのリージョンとの間でのモデルのコピーがサポートされています。

  • 米国東部
  • 米国西部 2
  • "西ヨーロッパ"

モデルを別のリージョンにコピーするには、REST API または Document Intelligence Studio を使用します。

コピー承認要求を生成する

次の HTTP 要求では、ターゲット リソースからコピー承認を取得します。 ご自分のターゲット リソースのエンドポイントとキーをヘッダーとして入力する必要があります。

POST https://myendpoint.cognitiveservices.azure.com/documentintelligence/documentClassifiers:authorizeCopy?api-version=2024-07-31-preview
Ocp-Apim-Subscription-Key: {<your-key>}

要求本文

{
  "classifierId": "targetClassifier",
  "description": "Target classifier description"
}

コピーを開始するために必要な JSON ペイロードを含む応答本文が追加された 200 応答コードを受信します。

{
  "targetResourceId": "/subscriptions/targetSub/resourceGroups/targetRG/providers/Microsoft.CognitiveServices/accounts/targetService",
  "targetResourceRegion": "targetResourceRegion",
  "targetClassifierId": "targetClassifier",
  "targetClassifierLocation": "https://targetEndpoint.cognitiveservices.azure.com/documentintelligence/documentClassifiers/targetClassifier",
  "accessToken": "accessToken",
  "expirationDateTime": "timestamp"
}

コピー操作を開始する

次の HTTP 要求を実行すると、ソース リソースのコピー操作が開始されます。 ご自分のソース リソースのエンドポイントとキーを URL とヘッダーとして入力する必要があります。 コピーするソース分類子の分類子 ID が要求 URL に含まれていることに注目してください。

POST {endpoint}/documentintelligence/documentClassifiers/{classifierId}:copyTo?api-version=2024-07-31-preview
Ocp-Apim-Subscription-Key: {<your-key>}

要求の本文は、前の手順の応答です。

{
  "targetResourceId": "/subscriptions/targetSub/resourceGroups/targetRG/providers/Microsoft.CognitiveServices/accounts/targetService",
  "targetResourceRegion": "targetResourceRegion",
  "targetClassifierId": "targetClassifier",
  "targetClassifierLocation": "https://targetEndpoint.cognitiveservices.azure.com/documentintelligence/documentClassifiers/targetClassifier",
  "accessToken": "accessToken",
  "expirationDateTime": "timestamp"
}

モデルの応答

ドキュメント分類モデルを使用して入力ファイルを分析します。

https://{endpoint}/documentintelligence/documentClassifiers/{classifier}:analyze?api-version=2024-02-29-preview

2024-07-31-preview API 以降、要求の pages クエリ パラメーターを使用して、入力ドキュメントから分析するページを指定できます。

https://{service-endpoint}/formrecognizer/documentClassifiers/{classifier}:analyze?api-version=2023-07-31

応答には、応答のドキュメント セクションに関連付けられたページ範囲を持つ識別されたドキュメントが含まれます。

{
  ...

    "documents": [
      {
        "docType": "formA",
        "boundingRegions": [
          { "pageNumber": 1, "polygon": [...] },
          { "pageNumber": 2, "polygon": [...] }
        ],
        "confidence": 0.97,
        "spans": []
      },
      {
        "docType": "formB",
        "boundingRegions": [
          { "pageNumber": 3, "polygon": [...] }
        ],
        "confidence": 0.97,
        "spans": []
      }, ...
    ]
  }

次のステップ

カスタム分類モデルの作成方法: