次の方法で共有


Azure でカスタム ドキュメント処理モデルを構築してデプロイする

Azure AI Document Intelligence
Az AI サービス
Azure Logic Apps
Azure Machine Learning Studio
Azure AI Foundry
Azure Storage

この記事では、カスタム ドキュメント処理モデルの構築、トレーニング、デプロイ、使用のための Azure ソリューションについて説明します。 これらの Azure サービスには、処理中にテキストのラベル付けやタグ付けを行うユーザー インターフェイス (UI) 機能も用意されています。

アーキテクチャ

カスタム ドキュメント処理モデルのビルドと配置プロセスのいくつかの代替手段を示す図。

この図は、カスタム ドキュメント処理モデルのビルドおよび配置プロセスの代替手段をいくつか示しています。 このデータフローは、Azure Logic Apps、Azure Functions、Azure Data Factory などのオーケストレーターから始まります。 これらのオーケストレーターは、メール サーバー、FTP サーバー、Web アプリケーションなどのソースからメッセージ、電子メールの添付ファイル、ファイルを取り込みます。 その後、データは Azure Blob Storage または Azure Data Lake Storage に格納され、ファイル拡張子や顧客の詳細などの属性によって編成されます。 次に、キーと値のペアを抽出したり、ドキュメントを分類したりするための Document Intelligence Studio などのツールを使用してカスタム モデルをトレーニングしたり、カスタム テキスト分類と名前付きエンティティ認識 (NER) 用の Language Studio、PyTorch や TensorFlow などのフレームワークを使用した高度なワークフロー用の Azure Machine Learning、要約や Q&A などのタスク用のモデルを微調整するための Azure OpenAI サービスを使用してカスタム モデルをトレーニングします。 最後に、トレーニング済みのモデルは、SDK、REST API、マネージド エンドポイント、または Azure Kubernetes Service を使用して推論用にデプロイされ、リアルタイムおよびバッチ推論がサポートされます。

このアーキテクチャの Visio ファイル をダウンロードします。

データフロー

次のデータフローは、前の図に対応しています。

  1. Azure Logic Apps、Azure Data Factory、Azure Functions などのオーケストレーターは、電子メール サーバーやファイル転送プロトコル サーバーまたは Web アプリケーションからメッセージと添付ファイルを取り込みます。

    • Azure Functions と Azure Logic Apps を使用すると、サーバーレス ワークロードが有効になります。 選択するサービスは、開発、コネクタ、管理、運用コンテキストなどのサービス機能の設定によって異なります。 詳細については、「 Azure Functions と Azure Logic Apps の比較」を参照してください。

    • Azure Data Factory を使用してデータを一括移動することを検討してください。

  2. オーケストレーターは、取り込まれたデータを Azure Blob Storage または Azure Data Lake Storage に送信します。 これらのストア内のデータは、ファイル拡張子や顧客の詳細などの特性に基づいて整理されます。

  3. ドキュメントのトレーニングや、さまざまなユース ケースに対処するためのカスタム モデルの構築には、次の Azure サービスを個別に、または組み合わせて使用できます。

    • ドキュメント インテリジェンス スタジオ: ドキュメントでキーと値のペアを抽出するか、イメージまたは PDF からカスタム テーブルを作成する必要がある場合は、Document Intelligence Studio を使用してデータにタグを付け、カスタム モデルをトレーニングします。 ドキュメント 分類と呼ばれるドキュメントの種類を識別する必要がある場合は、適切な抽出モデルを呼び出す前に、Document Intelligent Studio を使用してドキュメントにラベルを付け、モデルを構築します。

    • Language Studio: コンテンツに基づくドキュメント分類、またはドメイン固有のエンティティ抽出の場合は、Language Studio でカスタム テキスト分類または名前付きエンティティ認識 (NER) モデルをトレーニングできます。

    • Azure Machine Learning Studio: PyTorch や TensorFlow などのオープンソース フレームワークで使用するテキスト分類またはエンティティ抽出用のデータにラベルを付ける場合は、 Machine Learning StudioPython SDK、Azure CLI、または REST API を使用します。 Machine Learning Studio には、基礎 モデルのモデル カタログ が用意されています。 これらの基礎モデルには、テキスト分類、質問の回答、要約などのさまざまなタスクに対して微調整機能があります。 基礎モデルを微調整するには、 Machine Learning Studio の UI または コードを使用します。

    • Azure OpenAI サービス: テキストの要約や質問の回答などのさまざまなタスクのために、独自のデータまたはドメインで Azure OpenAI モデルを微調整 するには、 Azure AI Foundry ポータルPython SDK、または REST API を使用します。

  4. カスタム モデルをデプロイし、それらを推論に使用するには:

    • Azure AI ドキュメント インテリジェンスには、モデルデプロイが組み込まれています。 カスタム モデルでの推論は、 SDK または ドキュメント モデル REST API を使用して行われます。 モデルの作成時に指定された modelId または モデル名は、ドキュメント分析の要求 URL に含まれます。 ドキュメント インテリジェンスでは、それ以上の展開手順は必要ありません。

    • Language Studio には、カスタム言語モデルをデプロイするオプションが用意されています。 デプロイのモデルを選択して、REST エンドポイント 予測 URL を 取得します。 モデルは、REST エンドポイントまたは Azure SDK クライアント ライブラリを使用して推論できます。

    • Machine Learning は、カスタム モデルをオンラインまたはバッチ の Machine Learning マネージド エンドポイントにデプロイします。 Machine Learning SDK を使用して、Web サービスとして Azure Kubernetes Service (AKS) にデプロイ することもできます。 微調整された基盤モデルは、マネージド コンピューティングまたは サーバーレス API を使用してモデル カタログからデプロイできます。 マネージド コンピューティングを使用してデプロイされたモデルは、マネージド エンドポイントを使用して推論できます。これには、リアルタイム推論用のオンライン エンドポイントとバッチ推論用のバッチ エンドポイントが含まれます。

    • Azure AI Foundry には、 微調整された Azure OpenAI モデルをデプロイするための複数のオプションが用意されています。 Python SDK または REST API を使用して、これらのモデルをデプロイできます。 サーバー レス API として、または マネージド コンピューティングを使用して、Meta や Llama などのプロバイダーから微調整された基盤モデルをデプロイすることもできます。

Components

  • Azure Logic Apps は、 Azure Integration Services の一部です。 Logic Apps は、アプリ、データ、サービス、システムを統合する自動化されたワークフローを作成します。 このアーキテクチャでは、Logic Apps は、さまざまなソースからのドキュメントとデータの取り込みを調整し、ドキュメント処理のためにダウンストリーム プロセスをトリガーします。 Azure Storage や Microsoft 365 などのサービスに マネージド コネクタ を使用して、ファイルがストレージ アカウントに到着したとき、または電子メールを受信したときにワークフローをトリガーできます。

  • Azure Data Factory は、データ移動と変換を調整および自動化するためのマネージド データ統合サービスです。 このアーキテクチャでは、Azure Data Factory によって、REST エンドポイントの呼び出しや、取り込まれたデータに対するノートブックの実行などの 変換アクティビティ がパイプラインに追加されます。

  • Azure Functions は、有効期間の短いプロセスを持つイベントドリブン ワークロードをホストできるサーバーレス コンピューティング サービスです。 このアーキテクチャでは、Functions を使用すると、ワークロードで受信ドキュメントを処理し、モデル処理パイプラインをトリガーできます。

  • Blob Storage は、非構造化データを格納するためのオブジェクト ストレージ ソリューションです。 Blob Storage では、.NET、Node.js、Python などの複数の言語のライブラリがサポートされています。 アプリケーションは、HTTP または HTTPS 経由で Blob Storage 上のファイルにアクセスできます。 Blob Storage には、大量のデータを格納するためのコスト最適化をサポートするために 、ホット、クール、アーカイブのアクセス層 があります。 このアーキテクチャでは、このアカウントはホット 層を使用する生ファイルのソリューションです。

  • Data Lake Storage は、大量の非構造化データを格納および整理するためのスケーラブルなクラウドベースのリポジトリです。 このアーキテクチャでは、Data Lake Storage は大量の取り込まれたデータを整理して維持し、分析、ラベル付け、機械学習のワークフローをサポートします。

  • ドキュメント インテリジェンス は、 Azure AI サービスのコンポーネントです。 このアーキテクチャでは、印刷されたテキスト、手書きのテキスト、テーブル、キーと値のペアを抽出するための組み込みのドキュメント分析機能を提供します。 ドキュメント インテリジェンスには、請求書、ドキュメント、領収書、ID カード、名刺からデータを抽出するための事前構築済みのモデルがあります。 ドキュメント インテリジェンスには、 カスタム テンプレート フォーム モデルと、カスタム モデルのトレーニングとデプロイに使用できる カスタム ニューラル ドキュメント モデルもあります。

  • Document Intelligence Studio には、ドキュメント インテリジェンスの機能とモデルを探索するためのインターフェイスが用意されています。 このインターフェイスを使用して、データにラベルを付け、カスタム ドキュメント処理モデルを構築できます。

  • Azure AI Language は 、Azure 自然言語処理 (NLP) サービスを統合します。 事前構築済みのカスタマイズ可能なオプションと言語理解機能が提供されます。 これを使用して、ドキュメントの分類、名前付きエンティティの認識、およびその他の NLP タスクの完了を行います。

  • Language Studio は、言語モデルの構築、トレーニング、管理、デプロイに使用できる、言語の Web ベースの UI です。 このアーキテクチャでは、ドキュメント処理パイプライン内の分類やエンティティ抽出などのタスクのカスタム言語モデルのタグ付け、トレーニング、およびデプロイをサポートしています。 自動ラベル付け では、カスタム テキスト分類がサポートされ、ドキュメントをさまざまなクラスまたはカテゴリに自動的にラベル付けできます。 スタジオには、F1 スコア、精度、再現率など、 モデルのパフォーマンスを表示するためのオプションも用意されています。

  • Azure Machine Learning は、大規模なモデル開発とデプロイのためのマネージド 機械学習プラットフォームです。 このアーキテクチャでは、データにラベルを付け、カスタム モデル (オープンソース フレームワークを含む) をトレーニングし、推論タスク用のモデルをデプロイします。

    • Machine Learning Studio には、 画像 とテキストのデータ ラベル付けオプションが用意 されています。 このアーキテクチャ内のモデル トレーニング ワークフローがサポートされています。

    • ラベル付きデータをCOCO または Machine Learning データセットとしてエクスポートします。 これらのデータセットを使用して、Machine Learning ノートブックでモデルをトレーニングおよびデプロイできます。

  • Azure OpenAI には、さまざまなタスクを実行するために使用できる REST API として、強力な 言語モデルとマルチモーダル モデル が用意されています。 このアーキテクチャでは、Azure OpenAI モデルは、モデル の微調整 などの高度な言語タスクを実行して、ベース モデルが最初にトレーニングされたときに不足または過小表示されるデータに対するモデルのパフォーマンスを向上させます。 また、複数のプロバイダーの基礎モデルを使用して、これらのタスクを実行することもできます。

Alternatives

特定のユース ケースに基づいて、このシナリオにさらにワークフローを追加できます。

シナリオの詳細

ドキュメント処理は、さまざまなタスクを対象とします。 言語およびドキュメント インテリジェンスで使用可能な事前構築済みモデルを使用して、ドキュメント処理のすべてのニーズを満たすことが困難な場合があります。 さまざまなアプリケーションやドメインのドキュメント処理を自動化するために、カスタム モデルを構築することが必要になる場合があります。

モデルのカスタマイズにおける主な課題は次のとおりです。

  • 抽出するテキストを分類するために、関連するキーと値のペアエンティティを使用してテキスト データにラベルを付ける、またはタグ付けする。

  • コンピューティングやストレージなどのトレーニング インフラストラクチャとその統合の管理。

  • アプリケーションで使用するモデルを大規模にデプロイする。

考えられるユース ケース

次のユース ケースでは、ドキュメント処理にカスタム モデルを利用できます。

  • オープンソース フレームワークに基づいて、カスタム NER およびテキスト分類モデルを構築します。

  • 保険や医療など、さまざまな業種のドキュメントからカスタム キー値を抽出します。

  • セキュリティや財務などのドメインの 事前構築済みの NER モデル を超えて、特定のドメイン依存エンティティにタグを付けて抽出します。

  • ドキュメントからカスタム テーブルを作成します。

  • 署名を抽出します。

  • コンテンツに基づいて電子メールまたはその他のドキュメントにラベルを付け、分類します。

  • ドキュメントを要約するか、データに基づいてカスタムの質問と回答のモデルを作成します。

考慮事項

これらの考慮事項は、ワークロードの品質向上に使用できる一連の基本原則である Azure Well-Architected Framework の要素を組み込んでいます。 詳細については、「 Well-Architected Framework」を参照してください。

このワークロードの例では、各柱の実装は、各コンポーネントの Azure サービスの最適な構成と使用に依存します。

Reliability

信頼性は、アプリケーションが顧客に対して行ったコミットメントを確実に満たすことができるのに役立ちます。 詳細については、「信頼性の設計レビュー チェックリスト」を参照してください。

可用性

Resiliency

セキュリティ

セキュリティは、意図的な攻撃や貴重なデータとシステムの誤用に対する保証を提供します。 詳細については、「セキュリティの設計レビュー チェックリスト」を参照してください。

Blob Storage、ドキュメント インテリジェンスと Language Studio 用の AI サービスMachine LearningAzure OpenAI に関するデータ保護、ID とアクセス管理、ネットワーク セキュリティに関する推奨事項を実装します。

コストの最適化

コストの最適化では、不要な経費を削減し、運用効率を向上させる方法に重点を置いています。 詳細については、「コスト最適化の設計レビュー チェックリスト」を参照してください。

このソリューションを実装する合計コストは、選択したサービスの価格によって異なります。

このソリューションの主なコストは次のとおりです。

  • Machine Learning モデルをトレーニングしてデプロイするためのコンピューティング コスト。

    コストを最適化するには、適切なノードの種類、クラスター サイズ、ノード数を選択します。 Machine Learning には、コンピューティング クラスター ノードの最小数をゼロに設定したり、スケールダウン前のアイドル時間を定義したりなど、トレーニング用のオプションが用意されています。 詳細については、 Machine Learning のコストの管理と最適化に関するページを参照してください。

  • データ オーケストレーションの期間とアクティビティ。 Azure Data Factory の場合、Azure 統合ランタイムでのコピー アクティビティの料金は、使用されたデータ統合ユニットの数とアクティビティの実行にかかった時間に基づいています。 追加されたオーケストレーション アクティビティの実行も、その数に基づいて課金されます。

    Azure Logic Apps の価格プランは、作成して使用するリソースによって異なります。 次の記事は、特定のユース ケースに適したプランを選択するのに役立ちます。

特定のコンポーネントの価格の詳細については、次のリソースを参照してください。

Azure 料金計算ツールを使用して、選択したコンポーネント オプションを追加し、ソリューションの全体的なコストを見積もります。

パフォーマンス効率

パフォーマンス効率とは、ユーザーの要求を効率的に満たすためにスケーリングするワークロードの能力を指します。 詳細については、「パフォーマンス効率の設計レビュー チェックリスト」を参照してください。

スケーラビリティ

貢献者達

Microsoft では、この記事を保持しています。 次の共同作成者がこの記事を書きました。

主要な著者:

  • ディクシット・アローラ |シニア エンジニア
  • Jyotsna Ravi |プリンシパル エンジニア

公開されていない LinkedIn プロフィールを見るには、LinkedIn にサインインしてください。

次のステップ