Google Cloud コンソールでカスタム ドキュメント分類器を作成する

カスタム分類は、ドキュメントを分類するように設計されています。独自のドキュメントとカスタムクラスを使用してゼロから構築されます。

Google Cloud コンソールでカスタム分類を作成する

ドキュメントに特化し、データを使用してトレーニングと評価を行うカスタム分類を作成できます。このプロセッサは、一連のユーザー定義のクラスからドキュメントのクラスを識別します。このトレーニング済みプロセッサを追加のドキュメントに使用できます。通常は、異なるタイプのドキュメントに対してカスタム分類を使用し、次に ID を使用して抽出プロセッサにそのドキュメントを渡してエンティティを抽出します。

カスタム分類を作成して使用する一般的なワークフローは次のとおりです。

  1. Document AI でカスタム分類を作成します。
  2. 空の Cloud Storage バケットを使用してデータセットを作成します。
  3. ドキュメントをインポートします。
  4. Document AI Workbench またはラベル付けタスクを使用して、ドキュメントに手動でアノテーションを付けます。
  5. トレーニング セットとテストセットにドキュメントを割り当てます。
  6. プロセッサをトレーニングします。
  7. プロセッサを評価します。
  8. プロセッサをデプロイします。
  9. プロセッサをテストします。
  10. ドキュメントでプロセッサを使用します。

ワークフローに合わせて独自の構成の組み合わせを選択できます。


このタスクを Google Cloud コンソールで直接行う際の順を追ったガイダンスについては、[ガイドを表示] をクリックしてください。

ガイドを表示


始める前に

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the Document AI, Cloud Storage APIs.

    Enable the APIs

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  6. Make sure that billing is enabled for your Google Cloud project.

  7. Enable the Document AI, Cloud Storage APIs.

    Enable the APIs

プロセッサの作成

1. Google Cloud コンソールに移動し、[ワークベンチ] を選択します。
  1. [カスタム ドキュメント分類] で、[プロセッサを作成] を選択します。

    custom-classifier-1

  2. [プロセッサを作成] メニューで、プロセッサの名前を入力します(例: my-custom-document-classifier)。

    custom-classifier-2

  3. 最も近いリージョンを選択します。

  4. [作成] を選択します。[プロセッサの詳細] タブが表示されます。

データセットの構成

この新しいプロセッサをトレーニングするには、分割して分類するドキュメントをプロセッサが識別できるように、トレーニング データとテストデータを含むデータセットを作成する必要があります。

このデータセットには新しいロケーションが必要です。これは空の Cloud Storage バケットまたはフォルダにすることも、社内で管理されるロケーションを許可することもできます。

[プロセッサの詳細] タブが表示されたら、次のことができます。

  • Cloud Storage を使用する場合は、[Google が管理するストレージ] を選択します。
  • 顧客管理の暗号鍵(CMEK)を使用するために独自のストレージを使用する場合は、[独自のストレージ ロケーションを指定] を選択し、後の手順を行います。

custom-classifier-3

データセット用の Cloud Storage バケットを作成する

  1. プロセッサの [トレーニング] タブを選択します。

  2. [データセットのロケーションを設定] を選択します。空の Cloud Storage バケットまたはフォルダを選択または作成するように求められます。

    custom-classifier-4

  3. [参照] を選択して、[フォルダを選択] を開きます。

  4. [新しいバケットを作成] アイコンをクリックし、画面の指示に沿って新しいバケットを作成します。 Cloud Storage バケットの作成の詳細については、Cloud Storage バケットをご覧ください。

    注: バケットは最上位のストレージ エンティティであり、フォルダのネストが可能です。バケットを作成して選択する代わりに、既存のバケット内に空のフォルダを作成して選択することもできます。詳細については、Cloud Storage のシミュレートされたフォルダをご覧ください。

    バケットを作成すると、そのバケットの [フォルダの選択] ページが表示されます。

  5. バケットの [フォルダの選択] ページで、ダイアログの下部にある [選択] ボタンを選択します。

    custom-classifier-5

  6. [宛先のパス] に選択したバケット名が入力されていることを確認します。[データセットを作成] を選択します。データセットの作成には、数分かかることがあります。

ドキュメントをデータセットにインポートする

次に、ドキュメントをデータセットにインポートします。

  1. [トレーニング] タブで、[ドキュメントのインポート] を選択します。

    custom-classifier-6

  2. この例では、このバケット名を [転送元のパス] に入力します。これは 1 つのドキュメントに直接リンクしています。

    cloud-samples-data/documentai/Custom/Patents/PDF/computer_vision_20.pdf
    
  3. [データ分割] で、[未割り当て] を選択します。このフォルダ内のドキュメントには、テストセットやトレーニング セットに割り当てられません。[自動ラベル付けを使用したインポート] をオフのままにします。

  4. [インポート] を選択します。 Document AI により、ドキュメントがバケットからデータセットに読み込まれます。インポート バケットの変更や、インポート完了後のバケットからの読み取りは行われません。

ドキュメントを読み込む際、必要に応じて、インポート時に設定されたトレーニングまたはテストのセットにドキュメントを割り当てたり、後で割り当てを待つこともできます。

ドキュメントまたはインポートしたドキュメントを削除するには、[トレーニング] タブでそれらのドキュメントを選択し、[削除] を選択します。

インポートするデータの準備について詳しくは、データ準備ガイドをご覧ください。

プロセッサ スキーマを定義する

プロセッサ スキーマは、ドキュメントをデータセットにインポートする前と後のどちらでも作成できます。スキーマには、ドキュメントにアノテーションを付けるために使用するラベルが用意されています。

  1. [トレーニング] タブで、左下の [スキーマを編集] を選択します。[ラベルの管理] ページが開きます。

  2. [ラベルを作成] を選択します。

  3. ラベルの名前を入力します。[データ型] を選択します。[Create] を選択します。 スキーマの作成と編集の詳細な手順については、プロセッサ スキーマを定義するをご覧ください。

  1. プロセッサ スキーマ用に次のラベルをそれぞれ作成します。

    名前 データ型
    computer_vision ドキュメントの種類
    crypto ドキュメントの種類
    med_tech ドキュメントの種類
    other ドキュメントの種類
  2. ラベルが完成したら、[保存] を選択します。

    custom-classifier-7

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

ドキュメント内のテキストを選択してラベルを適用するプロセスを「アノテーション」と呼びます。

  1. [トレーニング] タブに戻り、[ドキュメント] を選択して [ラベル管理] コンソールを開きます。

  2. [ドキュメントの種類] プルダウンで、ドキュメントに適したラベルを選択します。

  3. 提供されたサンプル ドキュメントを使用している場合は computer_vision を選択します。

    完了すると、ラベル付きドキュメントは次のように表示されます。custom-classifier-8

  4. ドキュメントのアノテーションが完成したら、[ラベル付きとしてマーク] を選択します。

    [トレーニング] タブの左側のパネルで、1 つのドキュメントにラベルが付けられています。

アノテーション付きドキュメントをトレーニング セットに割り当てる

このサンプル ドキュメントにラベルを付けるのが完了したので、これをトレーニング セットに割り当てることができます。

  1. [トレーニング] タブで、[すべて選択] チェックボックスをオンにします。

  2. [セットに割り当て] リストから [トレーニング] を選択します。

左側のパネルで、1 つのドキュメントがトレーニング セットに割り当てられていることがわかります。

事前にラベル付けされたデータをトレーニング セットとテストセットにインポートする

このガイドでは、あらかじめラベル付けされたデータが用意されています。

独自のプロジェクトで作業する場合は、データのラベル付け方法を決定する必要があります。ラベル付けの方法をご確認ください。Document AI カスタム プロセッサでは、トレーニング セットとテストセットの両方で少なくとも 10 個のドキュメントと、各セットのラベルごとに 10 個のインスタンスが必要です。最適なパフォーマンスを得るには、各セットに 50 個以上のドキュメントと、各ラベルに 50 個のインスタンスを含めることをおすすめします。一般に、トレーニング データが多くなるほど、精度が高くなります。

  1. [ドキュメントをインポート] を選択します。

  2. [ソースパス] に次のパスを入力します。このバケットには、事前にラベル付けされたドキュメントが Document JSON 形式で含まれています。

    cloud-samples-data/documentai/Custom/Patents/JSON/Classification-InventionType
    
  3. [データ分割] リストから [自動分割] を選択します。これにより、トレーニング セットが 80%、テストセットが 20% になるようにドキュメントが自動的に分割されます。 [ラベルの適用] セクションは無視します。

  4. [インポート] を選択します。 インポートの完了には数分かかることがあります。

インポートが終了すると、[Train] タブにドキュメントが表示されます。

省略可: インポート時にドキュメントに一括ラベルを付ける

スキーマを構成したら、インポート時に特定のディレクトリにあるすべてのドキュメントにラベルを付けることで、ラベル付けにかかる時間を節約できます。

custom-classifier-9

  1. [ドキュメントをインポート] を選択します。

  2. [ソースパス] に次のパスを入力します。このバケットには、ラベル付けされていないドキュメントが PDF 形式で含まれています。

    cloud-samples-data/documentai/Custom/Patents/PDF-CDC-BatchLabel
    
  3. [データ分割] リストから [自動分割] を選択します。これにより、トレーニング セットが 80%、テストセットが 20% になるようにドキュメントが自動的に分割されます。

  4. [ラベルを適用] で、[ラベルを選択] を選択します。

  5. これらのサンプル ドキュメントには other を選択します。

  6. [インポート] を選択し、処理が完了するまで待ちます。このページを離れて、後で戻ってくることもできます。 完了すると、[トレーニング] タブにラベルが適用されたドキュメントが表示されます。

プロセッサをトレーニングする

トレーニング データとテストデータがインポートされたので、プロセッサをトレーニングできるようになりました。トレーニングには数時間かかる場合があるため、トレーニングを開始する前に、適切なデータとラベルがプロセッサに設定されていることを確認してください。

  1. [新しいバージョンのトレーニング] を選択します。

  2. [バージョン名] フィールドに、このプロセッサ バージョンの名前(my-cdc-version-1 など)を入力します。

  3. (省略可)[ラベルの統計データを表示] を選択して、ドキュメント ラベルに関する情報を確認します。これにより、対応範囲を判断できます。[閉じる] を選択してトレーニングの設定に戻ります。

  4. [トレーニングを開始] を選択します。ステータスは右側のパネルで確認できます。

プロセッサ バージョンをデプロイする

  1. トレーニングが完了したら、[バージョンの管理] タブに移動します。トレーニングしたバージョンの詳細を確認できます。

  2. デプロイするバージョンの右側にある [その他アイコン] を選択し、[バージョンをデプロイ] を選択します。

  3. ポップアップ ウィンドウで [デプロイ] を選択します。

    デプロイが完了するまで数分かかります。

プロセッサの評価とテストを行う

  1. デプロイが完了したら、[評価とテスト] タブに移動します。

    このページでは、ドキュメント全体の F1 スコア、ドキュメント全体の適合率と再現率、個々のラベルなどの評価指標を表示できます。評価と統計情報について詳しくは、プロセッサを評価するをご覧ください。

  2. プロセッサのバージョンを評価するために使用できるように、これまでトレーニングやテストに関与していないドキュメントをダウンロードします。独自のデータを使用している場合は、この目的のために用意されたドキュメントを使用します。

    PDF をダウンロード

  3. [テスト ドキュメントをアップロード] を選択し、ダウンロードしたドキュメントを選択します。

    [カスタム ドキュメント分類器の分析] ページが開きます。出力に、ドキュメントがどの程度適切に分類されたかが表示されます。

    別のテストセットまたは別のプロセッサ バージョンに対して評価を再実行することもできます。

省略可: 新しくインポートしたドキュメントにラベルを自動的に付ける

トレーニング済みのプロセッサ バージョンをデプロイすると、自動ラベル付けを使用して、新しいドキュメントをインポートする際のラベル付けの時間を短縮できます。

  1. [トレーニング] ページで、[ドキュメントをインポート] をクリックします。

  2. 次の Cloud Storage パスをコピーして貼り付けます。このディレクトリには、ラベルのない特許の PDF が 5 つ含まれています。[データ分割] プルダウン リストから [トレーニング] を選択します。

    cloud-samples-data/documentai/Custom/Patents/PDF-CDC-AutoLabel
    
  3. [ラベルを適用] セクションで、[自動ラベル付け] を選択します。

  4. ドキュメントのラベル付けを行う既存のプロセッサ バージョンを選択します。

    • 例: 2af620b2fd4d1fcf
  5. [インポート] を選択し、処理が完了するまで待ちます。このページを離れて、後で戻ってくることもできます。 完了すると、ドキュメントは [トレーニング] ページの [自動的にラベル付け] セクションに表示されます。

  6. ラベル付きとマークしないと、トレーニングやテストで自動ラベル付けのドキュメントを使用できません。[自動的にラベル付け] セクションに移動して、自動的にラベル付けされたドキュメントを表示します。

  7. 最初のドキュメントを選択してラベル付けされているコンソールを開きます。

  8. ラベルを検証して正しいことを確認します。正しくない場合は調整します。

  9. 完了したら、[ラベル付きとしてマーク] を選択します。

  10. 自動的にラベル付けされたドキュメントごとにラベルの確認を繰り返します。その後、[トレーニング] ページに戻り、そのデータをトレーニングに使用します。

プロセッサを使用する

カスタム ドキュメント分類器プロセッサを作成して正常にトレーニングできました。

カスタム トレーニング済みのプロセッサ バージョンは、他のプロセッサ バージョンと同様に管理できます。詳細については、プロセッサ バージョンの管理をご覧ください。

カスタム プロセッサに処理リクエストを送信できます。また、レスポンスは他の分類器プロセッサと同じ方法で処理できます

クリーンアップ

このページで使用したリソースについて、 Google Cloud アカウントに課金されないようにするには、次の手順を行います。

不要な Google Cloud 料金が発生しないようにするには、Google Cloud コンソールを使用して、不要なプロセッサやプロジェクトを削除します。

Document AI の学習用に新しいプロジェクトを作成し、そのプロジェクトが不要になった場合は、プロジェクトを削除します。

既存の Google Cloud プロジェクトを使用した場合は、作成したリソースを削除して、アカウントに課金されないようにします。

  1. Google Cloud コンソールのナビゲーション メニューで、[Document AI]、[マイプロセッサ] の順に選択します。

  2. 削除するプロセッサと同じ行にある [その他の操作] を選択します。

  3. [プロセッサを削除] を選択し、プロセッサ名を入力して、もう一度 [削除] を選択して確定します。

次のステップ