Cloud Service
Azure AI Document Intelligence
文書から文字・表・フォームを抽出して構造化データに変換するマネージド OCR/文書解析サービス。AWS の Textract に相当。
- 1.文書からテキスト・表・キーと値のペアを抽出し、JSON の構造化データとして返す。
- 2.請求書や領収書などの事前構築モデルと、独自書式を学習するカスタムモデルを使い分ける。
- 3.REST/SDK で非同期に処理し、AWS の Textract に相当する位置づけ。
解決する課題
紙の書類や PDF、スキャン画像の中身を「人が目で読んで手入力する」作業は、遅く、間違いやすく、量に比例してコストが膨らみます。Azure AI Document Intelligence は、文書から文字・表・フォーム項目を機械的に抽出し、後続の業務システムが扱える構造化データに変えるための仕組みです。
- スキャンした紙や画像 PDF からテキストを抽出したい(OCR)
- 請求書・領収書・身分証などの定型書類から項目を取り出す処理を自動化したい
- 文書内の表を行と列の構造を保ったまま取り込みたい
- 自社固有の書式について、少数のサンプルから独自の抽出モデルを学習させたい(AWS の Textract に相当する用途)
主要概念と用語
- Document Intelligence: 旧称 Form Recognizer。文書の解析・抽出を行う Azure AI サービスの一機能
- Read(読み取り)モデル: ページから印刷文字・手書き文字を抽出する基本の OCR。言語の自動検出やページ単位のテキスト/行/単語を返す
- Layout(レイアウト)モデル: テキストに加えて表・選択マーク・段落・見出しなどの構造を抽出する。表は行列のセルとして取得できる
- 事前構築(Prebuilt)モデル: 請求書、領収書、身分証明書、名刺、税務書類などのよくある書類向けに学習済みのモデル。すぐ使える
- カスタム(Custom)モデル: 自社書式をラベル付けしたサンプルで学習させるモデル。テンプレート型と、より汎化に強いニューラル型がある
- フィールド / キーと値のペア: フォーム上の項目名と値の対応(例として「合計金額」とその数値)
- 信頼度スコア(confidence): 抽出した各フィールドや行について、モデルがどれだけ確からしいと判断したかを表す値
- バウンディング領域 / ポリゴン: 抽出要素が文書上のどの位置にあるかを示す座標情報
- アドオン機能: 数式・バーコード・高解像度などの追加抽出オプション
仕様・制限・クォータ
- 入力は PDF・画像(一般的なラスター形式)・一部の Office 文書などに対応する。サポート形式やページ上限はモデルとプランで異なる
- 1 ファイルあたりのページ数・ファイルサイズ・画像寸法に上限があり、無料(Free)プランと有料(Standard)プランで制限が異なる
- 解析は基本的に非同期処理で、解析を開始してから結果を取得する流れになる(長い文書ほど結果取得までに時間がかかる)
- カスタムモデルでは学習に必要な最小サンプル数やプロジェクトあたりのモデル数などに上限がある
- 1 秒あたりのトランザクション数(呼び出しレート)にはスロットリングがあり、大量処理ではキューイングやリトライ設計が必要
- 対応言語・手書き対応の範囲はモデルにより異なる。最新の正確な上限値は公式ドキュメントで確認する
ページ上限・ファイルサイズ・サポート形式・対応言語は更新されることがあります。設計時は本文の定性的な説明に頼らず、必ず公式ドキュメントの最新の制限値を参照してください。
内部の仕組み
利用者は文書(または文書の URL)を指定して解析を要求し、サービスは内部の OCR とディープラーニングのモデルで文字・レイアウト・フィールドを抽出します。処理は非同期で、要求すると処理 ID が返り、完了後に構造化された JSON 結果(ページ、行、単語、表、キーと値のペア、各要素の座標と信頼度)を取得します。
事前構築モデルは、請求書や領収書といった特定の文書タイプ向けに学習済みで、項目名を意識した抽出結果を返します。一方カスタムモデルは、利用者がラベル付けした少数のサンプルから自社書式に特化した抽出を学習します。テンプレート型は決まったレイアウトに強く、ニューラル型はレイアウトのばらつきに対してより頑健です。
この「文字と構造を抽出して構造化データにする」役割は、AWS の Textract が担う領域とおおむね対応します。両者とも、抽出結果を後続の検索・RAG・業務ワークフローへ流し込む入口として使われます。
設計パターン / ベストプラクティス
- 用途に最も近いモデルを選ぶ: 単純な文字起こしは Read、表や構造が要るなら Layout、定型書類は事前構築、独自書式はカスタム、と段階的に選定する
- まず事前構築で評価し、足りなければカスタムへ移行する。最初から自前学習を作らない
- 信頼度スコアで分岐させ、低スコアの抽出結果は**人手レビュー(human-in-the-loop)**に回すワークフローを組む
- 非同期前提で設計し、ポーリングまたはイベント駆動で完了を検知する。大量処理ではキューとリトライ、指数バックオフを入れる
- 入力画像の解像度・傾き・コントラストを整える前処理で抽出精度を底上げする
- 抽出後の JSON をそのまま下流に渡さず、検証・正規化(日付や金額の型変換、桁チェック)を挟む
運用・監視
- 抽出精度が低い → 入力画像の品質、モデル選択(Read か Layout か事前構築か)、カスタムモデルの学習サンプルの偏りを点検する
- 結果が返らない/遅い → 非同期処理のポーリング間隔とタイムアウト、大きな文書のページ数を確認する
- レート上限に当たる → スロットリングのエラーを検知し、バックオフ付きリトライとキューイングで平準化する
- 呼び出し状況やレイテンシ、エラー率は Azure Monitor / 診断ログでメトリクスとして観測し、異常を検知する
- カスタムモデルはバージョン管理し、再学習時に精度回帰がないか評価用データで確認してから切り替える
コスト
課金は基本的に**解析した文書のページ数(または呼び出し回数)**に対して発生し、モデルの種類によって単価が異なります。Read のような基本 OCR より、構造抽出や事前構築・カスタムの方が高くなる傾向があります。
| コスト要因 | 効きどころ | 最適化のポイント |
|---|---|---|
| 処理ページ数 | 解析した総ページ | 不要なページを除外し、必要な範囲だけ解析する |
| モデル種別 | Read か Layout か事前構築/カスタムか | 用途に足りる最小限のモデルを選ぶ |
| アドオン機能 | 数式・高解像度などの追加抽出 | 本当に必要な書類だけで有効化する |
| リトライ過多 | 失敗時の再解析 | 前処理と入力検証で初回成功率を上げる |
セキュリティ
- 認証は API キーまたは Microsoft Entra ID に対応し、運用では Entra ID とマネージド ID によるキーレスアクセスが推奨される
- 操作権限は Azure RBAC で最小権限に絞り、リソースごとにアクセスを制御する
- 保存データは保存時に暗号化され、要件に応じて **Customer-Managed Key(CMK)**で鍵を管理できる
- ネットワーク分離が必要なら Private Link と仮想ネットワーク統合で取り込みを閉域化し、パブリック アクセスを制限する
- 文書には個人情報が含まれやすいため、抽出結果の保管場所と保持期間を最小化し、不要になったデータは削除する
身分証・請求書・契約書などは機微情報の塊です。抽出した JSON をログにそのまま出力したり、長期に放置したりすると情報漏えいの温床になります。保持と出力を必要最小限に絞ってください。
Well-Architected の観点
- オペレーショナル エクセレンス: 抽出ワークフローを非同期かつ自動化し、信頼度スコアに基づく人手レビューの分岐を組み込むことで、手入力に依存しない安定した文書処理を実現する。診断ログとメトリクスで抽出のエラー率と遅延を継続的に監視し、モデルのバージョン更新を計画的に運用する。
試験で問われるポイント
- Document Intelligence(旧 Form Recognizer)は文書からテキスト・表・フォーム項目を抽出するサービスで、AWS の Textract に相当する
- Read は基本 OCR、Layout は表や構造も抽出、事前構築は請求書・領収書などの定型書類、カスタムは独自書式の学習、という使い分けが問われる
- 自社固有の書式を少数サンプルで学習したいときはカスタムモデルを選ぶ
- 結果は構造化された JSONで、各要素に信頼度スコアと座標が付く
- 解析は非同期であり、低信頼度の結果は人手レビューに回す設計が望ましい
- 「画像から物体や顔を認識する」は別サービス(Azure AI Vision)で、Document Intelligence は文書の文字・構造抽出が役割、という切り分けに注意
関連サービス・比較
| 観点 | Azure AI Document Intelligence | AWS Textract |
|---|---|---|
| 位置づけ | 文書の文字・表・フォーム抽出 | 文書の文字・表・フォーム抽出 |
| 基本 OCR | Read モデル | テキスト検出 API |
| 構造/表の抽出 | Layout モデル | Tables/Forms 機能 |
| 定型書類向け | 事前構築モデル(請求書・領収書など) | Analyze Expense / Analyze ID など |
| 独自書式の学習 | カスタムモデル(テンプレート/ニューラル) | Custom Queries / カスタム抽出 |
| 結果の形式 | 構造化 JSON(信頼度・座標つき) | 構造化 JSON(信頼度・座標つき) |
| 上位の枠組み | Azure AI サービスの一部 | AWS の AI サービスの一部 |
ハンズオン / CLI例
# Document Intelligence(Cognitive Services)リソースを作成
az cognitiveservices account create \
--name demo-docintel \
--resource-group demo-rg \
--kind FormRecognizer \
--sku S0 \
--location japaneast \
--yes
# エンドポイントとキーを取得(アプリからの呼び出しに使用)
az cognitiveservices account show \
--name demo-docintel \
--resource-group demo-rg \
--query properties.endpoint -o tsv
az cognitiveservices account keys list \
--name demo-docintel \
--resource-group demo-rg \
--query key1 -o tsv
# 事前構築の請求書モデルで文書を解析(非同期処理を開始)
# 返却される operation-location を使って結果を取得する
curl -i -X POST \
"https://<endpoint>/documentintelligence/documentModels/prebuilt-invoice:analyze?api-version=2024-11-30" \
-H "Ocp-Apim-Subscription-Key: <key1>" \
-H "Content-Type: application/json" \
-d "{ \"urlSource\": \"https://example.com/sample-invoice.pdf\" }"
Azure Service
Azure AI Document Intelligenceを実務で読む
TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。
解決すること
AI / 機械学習
比較で見る軸
クラウド: Azure / カテゴリ: AI / 機械学習 / 難易度: basic
導入後に効く点
請求書や領収書などの事前構築モデルと、独自書式を学習するカスタムモデルを使い分ける。
先に潰すリスク
サービス単体ではなく、権限、ネットワーク、監視、課金、バックアップを含めて設計する必要がある。
- クラウド
- Azure
- カテゴリ
- AI / 機械学習
- 難易度
- basic
- 関連資格
- —
- 設計柱
- operational
判断チェックリスト
- 自社の用途が「AI / 機械学習 / operational」に近いか確認する。
- 強みである「文書からテキスト・表・キーと値のペアを抽出し、JSON の構造化データとして返す。」が本当に評価軸になるか確認する。
- 注意点の「サービス単体ではなく、権限、ネットワーク、監視、課金、バックアップを含めて設計する必要がある。」を運用で吸収できるか確認する。
- 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
- 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
- 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。