ゼファーネットのロゴ

Amazon Titan マルチモーダル埋め込みモデルを使用したコスト効率の高いドキュメント分類 |アマゾン ウェブ サービス

日付:

さまざまな業界の組織が、さまざまな形式の大量のドキュメントを分類して洞察を抽出したいと考えています。これらのドキュメントを手動で処理して情報を分類および抽出することは依然としてコストがかかり、エラーが発生しやすく、拡張が困難です。での進歩 生成人工知能 (AI) 文書分類を自動化し、多様で非構造化された企業文書を処理できるコスト効率の高い分類レイヤーを作成できるインテリジェント文書処理 (IDP) ソリューションが誕生しました。

ドキュメントの分類は、IDP システムの重要な最初のステップです。これは、ドキュメントの種類に応じて次に実行する一連のアクションを決定するのに役立ちます。たとえば、保険金請求の裁定プロセス中に、買掛金チームが請求書を受け取り、保険金請求部門が契約書やポリシー文書を管理します。従来のルール エンジンまたは ML ベースの分類はドキュメントを分類できますが、多くの場合、ドキュメント形式の種類やドキュメントの新しいクラスの動的な追加のサポートには限界があります。詳細については、「」を参照してください。 Amazon Comprehend ドキュメント分類子は、より高い精度のためにレイアウトのサポートを追加します.

この投稿では、 Amazon Titan マルチモーダル埋め込みモデル トレーニングを必要とせずにあらゆる種類のドキュメントを分類できます。

Amazon Titan マルチモーダル埋め込み

アマゾンが最近導入した Titan マルチモーダル エンベディング in アマゾンの岩盤。このモデルは画像とテキストの埋め込みを作成できるため、新しい文書分類ワークフローで使用する文書埋め込みの作成が可能になります。

画像としてスキャンされたドキュメントの最適化されたベクトル表現を生成します。ビジュアルコンポーネントとテキストコンポーネントの両方を、意味論的な意味をカプセル化する統一された数値ベクトルにエンコードすることで、迅速なインデックス作成、強力なコンテキスト検索、およびドキュメントの正確な分類が可能になります。

新しいドキュメント テンプレートとタイプがビジネス ワークフローに出現すると、単に Amazon Bedrock API それらを動的にベクトル化し、IDP システムに追加して、文書分類機能を迅速に強化します。

ソリューションの概要

Amazon Titan マルチモーダル埋め込みモデルを使用した次のドキュメント分類ソリューションを調べてみましょう。最適なパフォーマンスを得るには、特定のユースケースと既存の IDP パイプライン設定に合わせてソリューションをカスタマイズする必要があります。

このソリューションは、入力ドキュメントを既にインデックス付けされたドキュメントのギャラリーと照合することにより、ベクトル埋め込みセマンティック検索を使用してドキュメントを分類します。次の主要コンポーネントを使用します。

  • 埋め込み埋め込み は、機械学習 (ML) および AI システムが人間と同じように複雑な知識領域を理解するために使用する現実世界のオブジェクトの数値表現です。
  • ベクトルデータベースベクトルデータベース 埋め込みを保存するために使用されます。ベクトル データベースは、エンベディングを効率的にインデックス付けして整理し、ユークリッド距離やコサイン類似度などの距離メトリックに基づいて類似ベクトルを高速に検索できるようにします。
  • セマンティック検索 – セマンティック検索は、入力クエリのコンテキストと意味、および検索対象のコンテンツとの関連性を考慮して機能します。ベクトル埋め込みは、テキストや画像の文脈上の意味をキャプチャして保持する効果的な方法です。私たちのソリューションでは、アプリケーションがセマンティック検索を実行したい場合、まず検索ドキュメントが埋め込みに変換されます。次に、関連するコンテンツを含むベクトル データベースにクエリが実行され、最も類似した埋め込みが検索されます。

ラベル付けプロセスでは、請求書、銀行取引明細書、処方箋などのビジネス文書のサンプルセットが、Amazon Titan マルチモーダル埋め込みモデルを使用して埋め込みに変換され、事前定義されたラベルに対してベクトルデータベースに保存されます。 Amazon Titan マルチモーダル埋め込みモデルはユークリッド L2 アルゴリズムを使用してトレーニングされたため、最良の結果を得るには、使用するベクトル データベースがこのアルゴリズムをサポートしている必要があります。

次のアーキテクチャ図は、Amazon Titan マルチモーダル埋め込みモデルをドキュメントで使用する方法を示しています。 Amazon シンプル ストレージ サービス 画像ギャラリー作成用の (Amazon S3) バケット。

ワークフローは次の手順で構成されます。

  1. ユーザーまたはアプリケーションは、分類メタデータを含むサンプル ドキュメント イメージをドキュメント イメージ ギャラリーにアップロードします。 S3 プレフィックスまたは S3 オブジェクト メタデータを使用して、ギャラリー画像を分類できます。
  2. Amazon S3 オブジェクト通知イベントは、埋め込みを呼び出します。 AWSラムダ 機能。
  3. Lambda 関数は、ドキュメント画像を読み取り、Amazon Bedrock を呼び出し、Amazon Titan マルチモーダル埋め込みモデルを使用して画像を埋め込みに変換します。
  4. 画像の埋め込みは、ドキュメントの分類とともにベクトル データベースに保存されます。

これは、画像ギャラリーの作成と分類のために Amazon Simple Storage Service (Amazon S3) バケット内のドキュメントに対して Titan Multimodal Embeddings を使用する方法を示すアーキテクチャ図です。

新しいドキュメントを分類する必要がある場合、同じ埋め込みモデルを使用してクエリドキュメントを埋め込みに変換します。次に、クエリ埋め込みを使用してベクトル データベースに対して意味的類似性検索が実行されます。上位の埋め込み一致に対して取得されたラベルは、クエリ ドキュメントの分類ラベルになります。

次のアーキテクチャ図は、画像分類のために S3 バケット内のドキュメントで Amazon Titan マルチモーダル埋め込みモデルを使用する方法を示しています。

ワークフローは次の手順で構成されます。

  1. 分類が必要なドキュメントは、入力 S3 バケットにアップロードされます。
  2. 分類 Lambda 関数は、Amazon S3 オブジェクト通知を受け取ります。
  3. Lambda 関数は、Amazon Bedrock API を呼び出して画像を埋め込みに変換します。
  4. ベクトル データベースは、セマンティック検索を使用して一致するドキュメントを検索します。一致するドキュメントの分類は、入力ドキュメントを分類するために使用されます。
  5. 入力ドキュメントは、ベクトル データベース検索から取得された分類を使用して、ターゲットの S3 ディレクトリまたはプレフィックスに移動されます。

これは、Amazon Simple Storage Service (Amazon S3) バケット内のドキュメントで Titan Multimodal Embeddings を使用して画像分類を行う方法を示すアーキテクチャ図です。

独自のドキュメントを使用してソリューションをテストできるように、サンプル Python Jupyter ノートブックを作成しました。 GitHubの.

前提条件

ノートブックを実行するには、 AWSアカウント 適切に AWS IDおよびアクセス管理 Amazon Bedrock を呼び出すための (IAM) アクセス許可。さらに、 モデルアクセス Amazon Bedrock コンソールのページで、Amazon Titan マルチモーダル埋め込みモデルへのアクセスが許可されていることを確認してください。

製品の導入

次の手順では、各ユーザー入力プレースホルダーを独自の情報に置き換えます。

  1. ベクトルデータベースを作成します。このソリューションでは、メモリ内の FAISS データベースを使用しますが、代替のベクトル データベースを使用することもできます。 Amazon Titan のデフォルトのディメンション サイズは 1024 です。
index = faiss.IndexFlatL2(1024)
indexIDMap = faiss.IndexIDMap(index)

  1. ベクトル データベースが作成されたら、サンプル ドキュメントを列挙してそれぞれの埋め込みを作成し、それらをベクトル データベースに保存します。
  1. 書類を使ってテストします。次のコード内のフォルダーを、既知のドキュメント タイプを含む独自のフォルダーに置き換えます。
DOC_CLASSES: list[str] = ["Closing Disclosure", "Invoices", "Social Security Card", "W4", "Bank Statement"]

getDocumentsandIndex("sampleGallery/ClosingDisclosure", DOC_CLASSES.index("Closing Disclosure"))
getDocumentsandIndex("sampleGallery/Invoices", DOC_CLASSES.index("Invoices"))
getDocumentsandIndex("sampleGallery/SSCards", DOC_CLASSES.index("Social Security Card"))
getDocumentsandIndex("sampleGallery/W4", DOC_CLASSES.index("W4"))
getDocumentsandIndex("sampleGallery/BankStatements", DOC_CLASSES.index("Bank Statement"))

  1. Boto3 ライブラリを使用して、Amazon Bedrock を呼び出します。変数 inputImageB64 ドキュメントを表す、base64 でエンコードされたバイト配列です。 Amazon Bedrock からの応答にはエンベディングが含まれています。
bedrock = boto3.client(
service_name='bedrock-runtime',
region_name='Region’
)

request_body = {}
request_body["inputText"] = None # not using any text
request_body["inputImage"] = inputImageB64
body = json.dumps(request_body)
response = bedrock.invoke_model(
body=body, 
modelId="amazon.titan-embed-image-v1", 
accept="application/json", 
contentType="application/json")
response_body = json.loads(response.get("body").read()) 

  1. 既知のドキュメント タイプを表すクラス ID を使用して、エンベディングをベクトル データベースに追加します。
indexIDMap.add_with_ids(embeddings, classID)

  1. 画像が入力されたベクター データベース (ギャラリーを表す) を使用すると、新しいドキュメントとの類似点を見つけることができます。たとえば、検索に使用される構文は次のとおりです。 k=1 は、FAISS に上位 1 の一致を返すように指示します。
indexIDMap.search(embeddings, k=1)

また、手持ち画像と検索画像とのユークリッドL2距離も返します。画像が完全に一致する場合、この値は 0 になります。この値が大きいほど、画像間の類似性が遠くなります。

その他の考慮事項

このセクションでは、ソリューションを効果的に使用するための追加の考慮事項について説明します。これには、データのプライバシー、セキュリティ、既存のシステムとの統合、コストの見積もりが含まれます。

データのプライバシーとセキュリティ

AWS 責任分担モデル に適用されます データ保護 アマゾン・ベッドロックで。このモデルで説明されているように、AWS はすべての AWS クラウドを実行するグ​​ローバル インフラストラクチャを保護する責任があります。お客様には、このインフラストラクチャ上でホストされているコンテンツの管理を維持する責任があります。顧客は、使用する AWS サービスのセキュリティ設定と管理タスクに責任を負います。

Amazon Bedrock でのデータ保護

Amazon Bedrock は、AWS モデルのトレーニングやサードパーティとの共有に顧客のプロンプトや継続を使用することを避けています。 Amazon Bedrock は、顧客データをサービス ログに保存したり記録したりしません。モデルプロバイダーは、Amazon Bedrock ログにアクセスしたり、顧客のプロンプトや継続にアクセスしたりすることはできません。その結果、Amazon Titan マルチモーダル埋め込みモデルを通じて埋め込みを生成するために使用される画像は、AWS モデルのトレーニングや外部配布に保存または使用されません。さらに、タイムスタンプや記録されたアカウント ID などの他の使用状況データは、モデルのトレーニングから除外されます。

既存システムとの統合

Amazon Titan マルチモーダル埋め込みモデルはユークリッド L2 アルゴリズムを使用してトレーニングされたため、使用されているベクトル データベースはこのアルゴリズムと互換性がある必要があります。

原価見積

この記事を書いている時点では、 Amazon の岩盤価格 Amazon Titan マルチモーダル埋め込みモデルの場合、このソリューションのオンデマンド料金を使用した場合の推定コストは次のとおりです。

  • 1 回限りのインデックス作成コスト – 0.06 枚の画像ギャラリーを想定した場合、インデックス作成の 1,000 回の実行に $XNUMX
  • 分類コスト – 入力画像 6 枚あたり月額 100,000 ドル

クリーンアップ

今後料金が発生しないようにするには、作成したリソースを削除してください。 Amazon SageMakerノートブックインスタンス、使用しないとき。

まとめ

この投稿では、Amazon Titan マルチモーダル埋め込みモデルを使用して、IDP ワークフローでドキュメント分類のための安価なソリューションを構築する方法を検討しました。既知の文書の画像ギャラリーを作成し、新しい文書で類似性検索を実行して文書を分類する方法をデモしました。また、さまざまな種類の文書を処理できる機能、スケーラビリティ、低遅延など、文書分類にマルチモーダル画像埋め込みを使用する利点についても説明しました。

ビジネスワークフローで新しいドキュメントテンプレートとタイプが出現すると、開発者は Amazon Bedrock API を呼び出してそれらを動的にベクトル化し、IDP システムに追加してドキュメント分類機能を迅速に強化できます。これにより、最も多様で構造化されていない企業ドキュメントでも処理できる、安価で無限にスケーラブルな分類レイヤーが作成されます。

全体として、この投稿では、Amazon Titan マルチモーダル埋め込みを使用して IDP ワークフローでドキュメント分類のための安価なソリューションを構築するためのロードマップを提供します。

次のステップとして、チェックアウトしてください Amazon ベッドロックとは サービスの利用を開始します。そしてフォローしてください AWS 機械学習ブログの Amazon Bedrock Amazon Bedrock の新しい機能とユースケースを常に最新の状態に保ちます。


著者について

スミット・バティ AWS のシニアカスタマーソリューションマネージャーであり、企業顧客のクラウドへの移行を促進することを専門としています。 Summit は、移行の加速からワークロードの最新化、革新的なプラクティスの統合の促進に至るまで、クラウド導入のあらゆる段階でお客様を支援することに専念しています。

デヴィッド・ガーリング エンタープライズ システムの設計、主導、開発において 20 年以上の経験を持つシニア AI/ML ソリューション アーキテクトです。 David は、顧客がこれらの高度な機能を備えたサービスをデータとともに学習、革新し、ユースケースに活用できるよう支援することに重点を置いた専門家チームの一員です。

ラヴィ・アヴラ AWS のシニア ソリューション アーキテクトであり、エンタープライズ アーキテクチャを専門としています。 Ravi はソフトウェア エンジニアリングで 20 年の経験があり、決済業界のソフトウェア エンジニアリングとソフトウェア アーキテクチャでいくつかの指導的な役割を果たしてきました。

ジョージ・ベルシアン AWS のシニア クラウド アプリケーション アーキテクトです。彼は、顧客のモダナイゼーションとクラウド導入の加速を支援することに情熱を注いでいます。現在の役割では、ジョージは顧客チームと協力して戦略を立て、設計し、革新的でスケーラブルなソリューションを開発しています。

スポット画像

最新のインテリジェンス

スポット画像