この記事では、自動化されたドキュメント処理パイプラインをビルドするためのスケーラブルで安全なソリューションの概要について説明します。 このソリューションでは、データの構造化された抽出に AI Document Intelligence を使用します。 自然言語処理 (NLP) モデルとカスタム モデルは、データをエンリッチします。
アーキテクチャ
このアーキテクチャの Visio ファイル をダウンロードします。
データフロー
次のセクションでは、データ抽出プロセスのさまざまなステージについて説明します。
データ インジェストと抽出
ドキュメントは、Web アプリのフロントエンドにあるブラウザーを介して取り込まれます。 ドキュメントは画像を含んでいたり、PDF 形式だったりします。 Azure App Service はバックエンド アプリケーションをホストします。 このソリューションは、Azure Application Gateway を介して、ドキュメントをそのアプリケーションにルーティングします。 このロード バランサーは Azure Web Application Firewallで実行され、一般的な攻撃や脆弱性からアプリケーションを保護するために役立ちます。
バック エンド アプリケーションは、次のモデルのいずれかを使用している Azure AI Document Intelligence REST API エンドポイントに要求を送信します。
Azure AI Document Intelligence からの応答には、未加工の光学式文字認識 (OCR) データと構造化された抽出が含まれています。
この App Service バックエンド アプリケーションは、信頼度値を使用して抽出品質を確認します。 品質が指定されたしきい値を下回る場合、アプリはデータに手動検証用のフラグを設定します。 抽出品質が要件を満たしている場合は、データはダウンストリーム アプリケーションで使用するために Azure Cosmos DB に入力されます。 アプリは、結果をフロントエンド ブラウザーに返することもできます。
その他のソースでは、画像、PDF ファイル、その他のドキュメントが提供されます。 ソースには、電子メールの添付ファイルとファイル転送プロトコル (FTP) サーバーが含まれます。 Azure Data Factory や AzCopy などのツールは、これらのファイルを Azure Blob Storage に転送します。 Azure Logic Apps は、電子メールから添付ファイルを自動的に抽出するためのパイプラインを提供します。
ドキュメントが Blob Storage に入力されると、Azure 関数がトリガーされます。 関数:
- 関連する Azure AI Document Intelligence の事前構築済みエンドポイントに要求を投稿します。
- 応答を受信します。
- 抽出品質を評価します。
抽出されたデータは、Azure Cosmos DB に入力されます。
データ エンリッチメント
データ エンリッチメントに使用されるパイプラインは、ユースケースによって異なります。
データ エンリッチメントには、次の NLP 機能を含めることができます。
- 固有表現認識 (NER)
- 個人情報、キー フレーズ、正常性情報、その他のドメイン依存エンティティの抽出
データをエンリッチするために、Web アプリは次の処理を行います。
カスタム モデルは、データに対して不正行為の検出、リスク分析、その他の種類の分析を実行します。
- Azure Machine Learning service は、カスタム モデルをトレーニングしてデプロイします。
- 抽出されたデータを Azure Cosmos DB から取得します。
- モデルは、データから分析情報を導き出します。
推論用に以下を使用できます。
- リアルタイム プロセス。 モデルは、 マネージド オンライン エンドポイント または Kubernetes オンライン エンドポイントにデプロイできます。そこで、 Azure Kubernetes Service (AKS)を含む任意の場所にマネージド Kubernetes クラスターを配置できます。
- バッチ推論は、 バッチ エンドポイント または Azure Virtual Machines で実行できます。
エンリッチされたデータは、Azure Cosmos DB に入力されます。
分析と視覚化
アプリケーションでは、未加工の OCR、Azure AI Document Intelligence データ エンドポイントからの構造化データ、NLP からのエンリッチされたデータが使用されます。
- Power BI は、データを表示し、それに関するレポートを提示します。
- データは、Azure Cognitive Search のソースとして機能します。
- その他のアプリケーションが、そのデータを使用します。
コンポーネント
App Service は、Azure 上で提供されるのサービスとしてのプラットフォーム (PaaS) です。 App Service を使用して、手動または自動でスケールインやスケールアウトできる Web アプリケーションをホストできます。 このサービスでは、ASP.NET、ASP.NET Core、Java、Ruby、Node.js、PHP、Python など、さまざまな言語とフレームワークがサポートされています。
Application Gateway は、Web アプリケーションへのトラフィックを管理するレイヤー 7 (アプリケーション レイヤー) ロード バランサーです。 Application Gateway を Azure Web Application Firewall とともに実行すると、一般的な悪用と脆弱性から Web アプリケーションを保護するために役立ちます。
Azure Functions は、アプリケーションのビルドに使用できるサーバーレス コンピューティング プラットフォームです。 Functions では、トリガーとバインドを使用して、Blob Storage や Azure Cosmos DB などの Azure サービスの変更に対応できます。 Functions は、スケジュールされたタスクの実行、リアルタイムでのデータ処理、メッセージング キューの処理を行うことができます。
Azure AI Document Intelligence は、Azure AI サービスの一部です。 Azure AI Document Intelligence には、請求書、ドキュメント、領収書、ID カード、名刺からデータを抽出するための、事前構築済みエンドポイントのコレクションが用意されています。 このサービスは、抽出された各データをキーと値のペアとしてフィールドにマップします。 Azure AI Document Intelligence では、テーブルの内容と構造も抽出されます。 出力形式は JSON です。
Azure Storage は、オブジェクト、ブロブ、ファイル、ディスク、キュー、テーブル ストレージを含むクラウド ストレージ ソリューションです。
Blob Storage は、Azure Storage に含まれるサービスです。 Blob Storage では、大量の非構造化データに対して最適化されたクラウド オブジェクト ストレージを提供します。
Azure Data Lake Storage は、ハイ パフォーマンスの分析ワークロード用のスケーラブルで安全なデータ レイクです。 通常、データは、構造化データ、半構造化データ、または非構造化データを含む複数の異種ソースから取得されます。 Azure Data Lake Storage Gen2 は、Azure Data Lake Storage Gen1 の機能と Blob Storage が結合されたものです。 Data Lake Storage Gen2 は、次世代ソリューションとして、ファイル システムのセマンティクス、ファイルレベルのセキュリティ、およびスケールを提供します。 その一方で、Blob Storage の階層型ストレージ、高可用性、ディザスター リカバリーの機能も提供されます。
Azure Cosmos DB は、完全に管理され、応答性の高い、スケーラブルな NoSQL データベースです。 Azure Cosmos DB は、エンタープライズレベルのセキュリティを提供し、多くのデータベース、言語、およびプラットフォームに対応した API をサポートします。 例として、SQL、MongoDB、Gremlin、Table、Apache Cassandra などがあります。 Azure Cosmos DB のサーバーレスの自動スケーリングオプションは、アプリケーションの容量要求を効率的に管理します。
AI Language には、テキストの理解と分析に使用できる多くの NLP サービスが用意されています。 カスタム NER、カスタムテキスト分類、会話言語の理解、質問への回答などのこれらのサービスの一部はカスタマイズ可能です。
Machine Learning は、大規模な機械学習モデルの開発とデプロイを管理するためのオープンプラットフォームです。 Machine Learning は、データ科学者やビジネスアナリストなどのさまざまなユーザーのスキルレベルに対応ます。 このプラットフォームは、一般的に使用されるオープン フレームワークをサポートしており、特徴量化の自動化とアルゴリズムの選択を行えます。 モデルは、さまざまなターゲットにデプロイできます。 例として、 AKS、大規模なリアルタイム推論用 Web サービスとしての Azure Container Instances や バッチスコアリング用の Azure 仮想マシンなどがあります。 Machine Learning のマネージエンドポイントは、 リアルタイム または バッチ モデル推論に必要なインフラストラクチャを抽象化します。
AKS は、コンテナ化されたアプリケーションを簡単にデプロイして管理できるようにするためのフル マネージド Kubernetes サービスです。 AKS では、サーバーレスの Kubernetes テクノロジ、統合された継続的インテグレーションと継続的デリバリー (CI/CD) エクスペリエンス、エンタープライズ レベルのセキュリティとガバナンスが提供されます。
Power BI は、分析情報を表示するソフトウェア サービスとアプリのコレクションです。
Azure Cognitive Search は、検索用のインフラストラクチャ、API、ツールを提供するクラウド検索サービスです。 Azure Cognitive Search を使用すると、Web、モバイル、およびエンタープライズアプリケーションのプライベートな異種コンテンツに対する検索エクスペリエンスを構築できます。
代替
アプリケーションをホストするために、App Service の代わりに Azure Virtual Machines を使用できます。
抽出されたデータの永続的なストレージには、次のような任意のリレーショナル データベースを使用できます。
シナリオの詳細
ドキュメント処理とデータ抽出の自動化は、すべての業界において組織内の不可欠なタスクとなっています。 AI は、このプロセスで実証済みのソリューションの 1 つですが、100% の精度達成はほど遠い現実です。 しかし、純粋に手動のプロセスではなく、デジタル化に AI を使用すると、手動の作業量を最大 90% 削減できます。
光学式文字認識 (OCR) では、組織が使用するほとんどのドキュメントを構成する画像や PDF ファイルからコンテンツを抽出できます。 このプロセスでは、キーワード検索と正規表現の照合が使用されます。 これらのメカニズムは、フルテキストから関連データを抽出し、構造化された出力を作成します。 この方法には欠点があります。 ドキュメント形式の変更に合わせて抽出後のプロセスを改正するには、広範囲に及ぶメンテナンス作業が必要となります。
考えられるユース ケース
このソリューションは、金融業界に最適です。 また、自動車、旅行、サービス業にも適用できます。 次のタスクでは、このソリューションの利点を活用できます。
- 経費報告書の承認
- 保険金請求と財務監査の請求書、領収書、明細書の処理
- 請求書、退院要約、その他のドキュメントを含む要求の処理
- 作業記述書 (SoW) の承認の自動化
- パスポートや運転免許証と同様に、検証目的での ID 抽出の自動化
- ビジター管理システムに名刺データを入力するプロセスの自動化
- 不正検出のための購入パターンと重複する財務ドキュメントの特定
考慮事項
以降の考慮事項には、ワークロードの品質向上に使用できる一連の基本原則である Azure "Well-Architected Framework" の要素が組み込まれています。 詳細については、「Microsoft Azure Well-Architected Framework」を参照してください。
このソリューションを使用する場合は、次の点に注意してください。
可用性
アーキテクチャの可用性は、ソリューションを構成する Azure サービスによって異なります。
Azure AI Document Intelligence は、Azure AI サービスの一部です。 このサービスの可用性の保証については、「Azure AI サービスのサービス レベル アグリーメント (SLA)」をご覧ください。
AI Language は Azure AI サービスの一部です。 これらのサービスの可用性の保証については、「Azure AI サービスの SLA」をご覧ください。
Azure Cosmos DB は、各リージョン内のデータの4つのレプリカを保持し、リージョン間でデータをレプリケートすることによって高可用性を提供します。 正確な可用性の保証は、1つのリージョン内または複数のリージョン内でレプリケートするかどうかによって異なります。 詳細については、「Azure Cosmos DB を使用して高可用性を実現する」を参照してください。
Blob Storage には、高可用性を確保するのに役立つ冗長オプションが用意されています。 次のいずれかの手法を使用して、プライマリ リージョンでデータを3回レプリケートできます。
- ローカル冗長ストレージ (LRS) に対応した単一の物理的な場所で。
- 異なる可用性パラメーターを使用する 3 つの可用性ゾーンにまたがって。 詳細については、「持続性と可用性のパラメーター」を参照してください。 このオプションは、高可用性を必要とするアプリケーションに最適です。
ソリューション内の他の Azure サービスの可用性の保証については、次のリソースをご覧ください。
スケーラビリティ
App Service は、アプリケーションの負荷の変化に応じて、自動的にスケールアウトできます。 詳細については、「パフォーマンス データまたはスケジュールに基づいて Azure リソースの自動スケーリング設定を作成する」を参照してください。
Azure Functions は、自動または手動でスケーリングできます。 選択したホスティング プランによって、関数アプリのスケーリング動作が決まります。 詳細については、「Azure Functions のホスティング オプション」を参照してください。
既定では、Azure AI Document Intelligence では、1 秒あたり 15 件の同時要求がサポートされます。 クォータの増加の要求で Azure サポート チケットを作成 することにより、この値を増やすことができます。
AKS で Web サービスとしてホストするカスタムモデルの場合、 azureml-fe は必要に応じて自動的にスケーリングされます。 このフロントエンド コンポーネントは、受信した推論要求をデプロイされたサービスにルーティングします。
バッチ推論の場合、Machine Learning は、自動的にスケーリングするコンピューティング クラスターをオンデマンドで作成します。 詳細については、「チュートリアル: バッチ スコアリング用の Azure Machine Learning パイプラインを作成する」を参照してください。 Machine Learning は、 ParellelRunStep クラスを使用して推論ジョブを並列実行します。
AI Language の場合、データとレートの制限が適用されます。 詳細については、次のリソースを参照してください。
セキュリティ
セキュリティは、重要なデータやシステムの意図的な攻撃や悪用に対する保証を提供します。 詳細については、「セキュリティの重要な要素の概要」を参照してください。
Azure Web Application Firewall は、一般的な脆弱性からアプリケーションを保護するために役立ちます。 この Application Gateway オプションでは、Open Worldwide Application Security Project (OWASP) ルールを使用して、クロスサイト スクリプティング、セッション ハイジャック、その他の悪用などの攻撃を防ぐことができます。
App Service セキュリティを向上させるには、次のオプションを検討してください。
- App Service は、仮想ネットワーク統合を介して Azure Virtual Network にアクセスできます。
- 専用の仮想ネットワークにデプロイする App Service Environment で App Service を使用できます。 この手法は、仮想ネットワーク内の App Service とその他のリソースとの接続を分離するために役立ちます。
詳細については、「Azure App Service のセキュリティ」を参照してください。
Blob Storage および Azure Cosmos DB は、保存データを暗号化します。 サービス エンドポイントまたはプライベート エンドポイントを使用して、これらのサービスをセキュリティで保護することができます。
Azure Functions では、仮想ネットワーク統合がサポートされています。 この機能を使用すると、関数アプリは仮想ネットワーク内のリソースにアクセスできます。 詳細については、[Azure Functions のネットワーク オプション][Azure Functions のネットワーク オプション]を参照してください。
Azure AI Document Intelligence と AI Language を特定の仮想ネットワークまたはプライベート エンドポイントからのアクセス用に構成できます。 これらのサービスは、保存データを暗号化します。 サブスクリプション キー、トークン、または Microsoft Entra ID を使って、これらのサービスへの要求を認証できます。 詳細については、「Azure AI サービスに対する要求の認証」を参照してください。
Machine Learning は、さまざまなレベルのセキュリティを提供します。
- ワークスペース認証 は、ID とアクセスの管理を提供します。
- 認可 を使用して、ワークスペースへのアクセスを管理できます。
- ワークスペースリソースをセキュリティで保護することで、ネットワーク セキュリティを向上させることができます。
- トランスポート層セキュリティ (TLS) を使用 して、Machine Learning を通じてデプロイする Web サービスをセキュリティで保護することができます。
- データを保護するために、Machine Learning が使用する Azure Storage アカウントのアクセスキーを変更 できます。
回復性
ソリューションの回復性は、App Service、Functions、Azure Cosmos DB、Storage、Application Gateway などの個々のサービスの障害モードによって異なります。 詳細については、「特定の Azure サービスの回復性のチェックリスト」を参照してください。
Azure AI Document Intelligence の回復性を高めることができます。 別のリージョンにフェールオーバーし、ワークロードを 2 つ以上のリージョンに分割するように設計することも可能です。 詳細については、「 Azure AI Document Intelligence モデルのバックアップと復旧」を参照してください。
Machine Learning service は、多くの Azure サービスに依存しています。 回復性を提供するには、回復性がある各サービスを構成する必要があります。 詳細については、「事業継続とディザスター リカバリーのためのフェールオーバー」を参照してください。
コストの最適化
コストの最適化とは、不要な費用を削減し、運用効率を向上させる方法を検討することです。 詳しくは、 コスト最適化の柱の概要に関する記事をご覧ください。
このソリューションを実装するコストは、使用するコンポーネントと、各コンポーネントに対して選択するオプションによって異なります。
多くの要因が、各コンポーネントの価格に影響を及ぼす場合があります。
- 処理するドキュメントの数
- アプリケーションが受け取る同時要求の数
- 処理後に保存するデータのサイズ
- デプロイ リージョン
次のリソースは、コンポーネントの価格オプションに関する情報を提供しています。
- AI Document Intelligence の価格
- App Service 価格
- Azure Functions の価格
- Application Gateway の価格
- Azure Blob Storage の価格
- Azure Cosmos DB の価格
- Language サービスの価格
- Azure Machine Learning の価格
各コンポーネントの価格レベルを決定した後、 Azure 料金計算ツール を使用してソリューションのコストを見積もります。
共同作成者
この記事は、Microsoft によって保守されています。 当初の寄稿者は以下のとおりです。
プリンシパル作成者:
- Jyotsna Ravi |プリンシパル カスタマー エンジニア
- Dixit Arora | シニア カスタマー エンジニア
次のステップ
- AI Document Intelligence とは
- Azure AI Document Intelligence SDK または REST API の使用
- AI Language とは
- Azure Machine Learning とは
- Azure Functions の概要
- 仮想ネットワークで Azure Functions を構成する方法
- Azure Application Gateway とは
- Azure Application Gateway 上の Azure Web アプリケーション ファイアウォールとは
- チュートリアル: プライベート エンドポイントを使用して Data Factory マネージド仮想ネットワークからオンプレミスの SQL Server にアクセスする方法
- Azure Storage のドキュメント