Cloud Service
Document AI
請求書や契約書などの文書から文字と構造を抽出し機械可読データに変換するマネージドサービス。AWS の Textract に相当。
- 1.PDF や画像の文書から文字・表・項目を抽出して構造化データにする。
- 2.用途別の事前学習プロセッサと自前で精度を上げるカスタム抽出がある。
- 3.AWS の Textract / Comprehend 相当。請求書や領収書の自動処理が定番。
解決する課題
- スキャンした PDF や画像の文書を人手で転記しており、時間とミスが多い
- 請求書・領収書・契約書から特定の項目(金額・日付・取引先など)を自動抽出したい
- レイアウトが崩れた帳票や手書きを含む文書から文字と表構造をまとめて取り出したい
- 抽出結果を後続の BigQuery / データベース / 業務システムへ流し込み、処理を自動化したい
主要概念と用語
- プロセッサ (Processor): 文書を処理する実体。用途ごとに種類があり、API はこのプロセッサに対して文書を送る
- OCR(光学文字認識)プロセッサ: 文字・段落・ブロック・表などのレイアウト要素を抽出する基本処理。多言語と手書きに対応する
- 特化型(事前学習)プロセッサ: 請求書・領収書・身分証など特定の文書タイプ向けに学習済みのプロセッサ。決まった項目(エンティティ)を最初から抽出できる
- カスタム抽出プロセッサ (Custom Extractor): 自社固有の帳票に合わせ、ラベル付けした教師データで項目抽出を学習させるプロセッサ
- エンティティ (Entity): 抽出された意味のある項目。たとえば請求書なら「請求金額」「支払期日」「請求元」など
- Document オブジェクト: 処理結果のレスポンス。テキスト本文、ページ、レイアウト要素、抽出エンティティ、各値の信頼度スコアを含む
- Human-in-the-Loop(人間によるレビュー): 信頼度が低い抽出結果を人がレビュー・修正する仕組み。精度が求められる業務で併用する
- Document AI Workbench: カスタムプロセッサの作成・学習・評価を行う管理画面
仕様・制限・クォータ
- 入力は **PDF・画像(TIFF や PNG など)**が中心。同期処理は少ないページ数、バッチ処理(非同期)は大量・多ページの文書に向く
- 1 リクエストで扱えるページ数やファイルサイズには上限があり、大きい文書はバッチ処理で扱う。具体的な上限値は変動するため公式ドキュメントで確認する
- 入力・出力は Cloud Storage を介して受け渡すのが一般的。バッチ結果は JSON として出力される
- 抽出結果には項目ごとの信頼度スコアが付き、しきい値で自動採用と人手レビューを切り分けられる
- 利用できるプロセッサの種類・対応言語・対応リージョンはサービス更新で増減するため、最新は公式情報を参照する
内部の仕組み
Document AI はまず OCR で文書から文字とレイアウト(ページ・ブロック・行・表のセル)を取り出し、座標付きのテキストレイヤーを生成します。その上に、用途別の機械学習モデルが乗り、文書タイプの分類や、意味のある項目(エンティティ)の抽出を行います。請求書プロセッサなら「この数値は請求金額」「この日付は支払期日」といった項目の意味づけまで含めて返します。
特化型プロセッサは Google が学習済みのモデルを使うため、ユーザーは教師データを用意せずに使えます。一方、カスタム抽出プロセッサでは、自社の帳票にラベルを付けたサンプルで学習・評価し、独自項目の抽出精度を高めます。抽出された各値には信頼度スコアが付与され、低スコアのものを Human-in-the-Loop で人がレビューする運用につなげられます。
請求書・領収書・本人確認書類など一般的な文書は特化型プロセッサで素早く始められます。自社固有の帳票や独自項目が必要になって初めてカスタム抽出を検討すると、学習データ作成のコストを抑えられます。
設計パターン / ベストプラクティス
- 入力 = Cloud Storage、処理 = Document AI、保存先 = BigQuery / Firestore の三段構成が王道。大量文書はバッチ処理で非同期に流す
- 取り込みをイベント駆動にする。Cloud Storage への文書アップロードを Eventarc / Cloud Functions で受け、Document AI を呼び出す
- 信頼度スコアでルーティングする。しきい値以上は自動確定、未満は Human-in-the-Loop や担当者キューへ回す
- カスタム抽出は少量から学習し評価指標(適合率・再現率)で改善を回す。最初から完璧を狙わない
- 文書タイプが混在する場合は、まず分類してから適切なプロセッサへ振り分ける
運用・監視
- Cloud Monitoring / Cloud Logging で API のリクエスト数・エラー率・レイテンシを監視する
- バッチ処理は失敗ファイルが混ざるため、出力 JSON の有無や処理ステータスを確認し、失敗分のみ再処理する設計にする
- 抽出精度の劣化は信頼度スコアの分布や人手修正率の推移で検知する。帳票フォーマット変更時は再評価する
- カスタムプロセッサはバージョン管理し、新版を本番投入する前に評価データで回帰を確認する
コスト
- 課金は基本的に処理したページ数に応じる。プロセッサの種類(OCR・特化型・カスタム)によって単価が異なる
- 不要な高機能プロセッサを全文書に使わず、用途に合った最小のプロセッサを選ぶとコストを抑えられる
- 大量文書はバッチ処理でまとめ、Human-in-the-Loop の対象を信頼度の低い分だけに絞ると、人手コストも削減できる
- 具体的な単価は変動するため、見積もりは公式の料金ページで確認する
セキュリティ
- サービスアカウント + IAM で最小権限を付与し、認証情報のハードコードを避ける(AWS の IAM ロール相当)
- 入出力の Cloud Storage バケットへのアクセスを限定し、文書に含まれる個人情報・機密情報の取り扱いに注意する
- 保存データは Google 管理鍵で既定暗号化。要件に応じ **CMEK(顧客管理鍵, Cloud KMS)**を適用する
- 外部流出対策に VPC Service Controls を併用し、データ境界を設ける
請求書や本人確認書類には氏名・住所・口座番号などの個人情報が含まれます。抽出データの保存先・保持期間・アクセス権を明確にし、不要になったデータは削除する運用を設計してください。
Well-Architected の観点
- 運用上の優秀性: 手作業の転記を自動化し、イベント駆動とバッチで処理を標準化。信頼度ベースの例外処理で人手を最小化する
- 信頼性: バッチの失敗ファイルを検知して再処理し、フォーマット変更時は再評価する
- コスト最適化: 用途に合うプロセッサを選び、人手レビューを低信頼度分に絞る
試験で問われるポイント
- 文書から文字・構造・項目を抽出するマネージドサービス=Document AI
- AWS の対応は Textract(OCR・表抽出) と Comprehend(項目/意味抽出) に相当
- 既製の特化型プロセッサと、自前学習のカスタム抽出プロセッサの使い分け
- 低信頼度の結果を人が確認するHuman-in-the-Loop
- 大量・多ページはバッチ処理(非同期)、入出力は Cloud Storage
関連サービス・比較
| 観点 | GCP(Document AI) | AWS(Textract / Comprehend) |
|---|---|---|
| OCR・表抽出 | OCR プロセッサ | Textract |
| 項目・意味抽出 | 特化型 / カスタム抽出プロセッサ | Comprehend / Textract のフォーム抽出 |
| 特化型の例 | 請求書・領収書・本人確認書類など | Textract の請求書・領収書解析 |
| 独自帳票の学習 | カスタム抽出(Workbench) | Textract カスタムクエリ / Comprehend カスタム |
| 人手レビュー | Human-in-the-Loop | Augmented AI(A2I) |
| 権限付与 | サービスアカウント + IAM | IAM ロール |
ハンズオン / CLI例
# 1) Document AI API を有効化
gcloud services enable documentai.googleapis.com
# 2) OCR プロセッサを作成(タイプはユースケースに合わせて選択)
gcloud documentai processors create \
--location=us \
--display-name=my-ocr \
--type=OCR_PROCESSOR
# 3) 作成済みプロセッサを一覧で確認
gcloud documentai processors list --location=us
# 4) REST API で単一文書を同期処理(base64 化した文書を送る)
# PROCESSOR_ID は手順 2 で作成したプロセッサの ID
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
"https://us-documentai.googleapis.com/v1/projects/MY_PROJECT/locations/us/processors/PROCESSOR_ID:process" \
-d '{"rawDocument":{"mimeType":"application/pdf","content":"BASE64_PDF"}}'
Google Cloud Service
Document AIを実務で読む
TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。
解決すること
AI / 機械学習
比較で見る軸
クラウド: Google Cloud / カテゴリ: AI / 機械学習 / 難易度: basic
導入後に効く点
用途別の事前学習プロセッサと自前で精度を上げるカスタム抽出がある。
先に潰すリスク
サービス単体ではなく、権限、ネットワーク、監視、課金、バックアップを含めて設計する必要がある。
- クラウド
- Google Cloud
- カテゴリ
- AI / 機械学習
- 難易度
- basic
- 関連資格
- —
- 設計柱
- operational
判断チェックリスト
- 自社の用途が「AI / 機械学習 / operational」に近いか確認する。
- 強みである「PDF や画像の文書から文字・表・項目を抽出して構造化データにする。」が本当に評価軸になるか確認する。
- 注意点の「サービス単体ではなく、権限、ネットワーク、監視、課金、バックアップを含めて設計する必要がある。」を運用で吸収できるか確認する。
- 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
- 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
- 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。