In 第1部 このシリーズでは、 Amazon Titan マルチモーダル埋め込み モデルを使用して、スライドデッキの個々のスライドを埋め込みに変換します。埋め込みをベクトル データベースに保存し、 大規模な言語および視覚アシスタント (LLaVA 1.5-7b) ベクトル データベースから取得した最も類似したスライドに基づいて、ユーザーの質問に対するテキスト応答を生成するモデル。 AWS のサービスを利用しました。 アマゾンの岩盤, アマゾンセージメーカー, Amazon OpenSearch サーバーレス このソリューションでは。
この投稿では、別のアプローチを示します。私たちが使用するのは、 人間のクロード 3 ソネット モデルを使用して、スライドデッキ内の各スライドのテキスト説明を生成します。これらの説明は、 Amazon Titan テキスト埋め込み モデルを作成し、ベクトル データベースに保存します。次に、Claude 3 Sonnet モデルを使用して、ベクトル データベースから取得した最も関連性の高いテキスト説明に基づいてユーザーの質問に対する回答を生成します。
データセットに対して両方のアプローチをテストし、結果を評価して、どちらのアプローチが最良の結果をもたらすかを確認できます。このシリーズのパート 3 では、両方の方法の結果を評価します。
ソリューションの概要
このソリューションは、スライドデッキのテキストおよび視覚要素に含まれる情報を使用して質問に答えるための実装を提供します。この設計は、検索拡張生成 (RAG) の概念に基づいています。従来、RAG は大規模言語モデル (LLM) で処理できるテキスト データに関連付けられてきました。このシリーズでは、RAG を拡張して画像も含めます。これにより、テキストとともに表やグラフなどの視覚要素から文脈に関連したコンテンツを抽出する強力な検索機能が提供されます。
このソリューションには、次のコンポーネントが含まれています。
- Amazon Titan Text Embeddings は、単一の単語、フレーズ、さらには大きなドキュメントを含む自然言語テキストを、意味的類似性に基づいた検索、パーソナライゼーション、クラスタリングなどのユースケースを強化するために使用できる数値表現に変換するテキスト埋め込みモデルです。
- Claude 3 Sonnet は、Anthropic の次世代の最先端モデルです。 Sonnet は、複雑な推論や分析から迅速な出力、そして膨大な量の情報にわたる効率的な検索や取得まで、幅広いタスクを処理できる多用途ツールです。
- OpenSearch Serverless は、Amazon OpenSearch Service のオンデマンドのサーバーレス構成です。 Amazon Titan Text Embeddings モデルによって生成された埋め込みを保存するためのベクトル データベースとして OpenSearch Serverless を使用します。 OpenSearch Serverless コレクションで作成されたインデックスは、RAG ソリューションのベクター ストアとして機能します。
- Amazon OpenSearch の取り込み (OSI) は、OpenSearch サービス ドメインおよび OpenSearch サーバーレス コレクションにデータを配信する、フルマネージドのサーバーレス データ コレクターです。この投稿では、OSI パイプライン API を使用して、OpenSearch サーバーレス ベクター ストアにデータを配信します。
ソリューション設計は、取り込みとユーザー対話の 2 つの部分で構成されます。取り込み中に、各スライドを画像に変換し、各画像の説明とテキスト埋め込みを生成することにより、入力スライド デッキを処理します。次に、ベクター データ ストアに各スライドの埋め込みとテキストの説明を入力します。これらのステップは、ユーザー対話ステップの前に完了します。
ユーザー対話フェーズでは、ユーザーからの質問がテキスト埋め込みに変換されます。類似性検索がベクトル データベースで実行され、ユーザーの質問に対する回答が含まれている可能性があるスライドに対応するテキスト説明が検索されます。次に、スライドの説明とユーザーの質問を Claude 3 Sonnet モデルに提供して、クエリに対する回答を生成します。この投稿のコードはすべて次の場所にあります。 GitHubの レポ。
次の図は、取り込みアーキテクチャを示しています。
ワークフローは次の手順で構成されます。
- スライドは JPG 形式の画像ファイル (スライドごとに 3 つ) に変換され、Claude XNUMX Sonnet モデルに渡されてテキストの説明が生成されます。
- データは Amazon Titan Text Embeddings モデルに送信され、埋め込みが生成されます。このシリーズではスライドデッキを使用しています AWS Trainium と AWS Inferentia を使用した Stable Diffusion のトレーニングとデプロイ 2023 年 31 月にトロントで開催された AWS サミットから、ソリューションのデモンストレーションを行いました。サンプルデッキには 31 枚のスライドがあるため、それぞれ 1536 次元を持つ XNUMX セットのベクトル埋め込みを生成します。 OpenSearch の強力な検索機能を使用して豊富な検索クエリを実行するために、追加のメタデータ フィールドを追加します。
- 埋め込みは、API 呼び出しを使用して OSI パイプラインに取り込まれます。
- OSI パイプラインは、データをドキュメントとして OpenSearch サーバーレス インデックスに取り込みます。インデックスはこのパイプラインのシンクとして構成され、OpenSearch サーバーレス コレクションの一部として作成されます。
次の図は、ユーザー対話アーキテクチャを示しています。
ワークフローは次の手順で構成されます。
- ユーザーは、取り込まれたスライドデッキに関連する質問を送信します。
- ユーザー入力は、Amazon Bedrock を使用してアクセスされる Amazon Titan Text Embeddings モデルを使用して埋め込みに変換されます。 OpenSearch Service のベクトル検索は、これらの埋め込みを使用して実行されます。 k 近傍 (k-NN) 検索を実行して、ユーザーのクエリに一致する最も関連性の高い埋め込みを取得します。
- OpenSearch Serverless からの応答のメタデータには、最も関連性の高いスライドに対応する画像と説明へのパスが含まれています。
- プロンプトは、ユーザーの質問と画像の説明を組み合わせて作成されます。プロンプトは、Amazon Bedrock でホストされている Claude 3 Sonnet に提供されます。
- この推論の結果はユーザーに返されます。
次のセクションで両方の段階の手順について説明し、出力の詳細も含めます。
前提条件
この投稿で提供されているソリューションを実装するには、 AWSアカウント FM、Amazon Bedrock、SageMaker、OpenSearch Service に精通していること。
このソリューションは、Amazon Bedrock でホストされている Claude 3 Sonnet および Amazon Titan Text Embeddings モデルを使用します。に移動して、これらのモデルが使用可能になっていることを確認してください。 モデルアクセス Amazon Bedrock コンソールのページ。
モデルが有効になっている場合、 アクセス状況 述べます アクセスが許可されました.
モデルが利用できない場合は、選択してアクセスを有効にします。 モデルへのアクセスを管理する、モデルの選択、および選択 モデルへのアクセスをリクエストする。モデルはすぐに使用できるようになります。
AWS CloudFormation を使用してソリューション スタックを作成する
AWS CloudFormation を使用してソリューション スタックを作成できます。同じ AWS アカウントでパート 1 のソリューションを作成した場合は、このスタックを作成する前に必ずそれを削除してください。
AWSリージョン | リンク |
---|---|
us-east-1 |
|
us-west-2 |
スタックが正常に作成されたら、AWS CloudFormation コンソールでスタックの [出力] タブに移動し、次の値をメモします。 MultimodalCollectionEndpoint
および OpenSearchPipelineEndpoint
。これらは後続の手順で使用します。
CloudFormationテンプレートは、次のリソースを作成します。
- IAMの役割 - 次の AWS IDおよびアクセス管理 (IAM) ロールが作成されます。で説明されているように、これらのロールを更新して最小権限のアクセス許可を適用します。 セキュリティのベストプラクティス.
SMExecutionRole
Amazon シンプル ストレージ サービス (Amazon S3)、SageMaker、OpenSearch Service、および Amazon Bedrock のフル アクセス。OSPipelineExecutionRole
S3 バケットと OSI アクションにアクセスできます。
- SageMaker ノート – この投稿のすべてのコードは、このノートブックを使用して実行されます。
- OpenSearch サーバーレス コレクション – これは、エンベディングを保存および取得するためのベクトル データベースです。
- OSIパイプライン – これは、OpenSearch Serverless にデータを取り込むためのパイプラインです。
- S3バケット – この投稿のすべてのデータはこのバケットに保存されます。
CloudFormation テンプレートは、ソースとして HTTP、シンクとして OpenSearch サーバーレス インデックスを使用して OSI パイプラインを構成するために必要なパイプライン構成をセットアップします。 SageMaker ノートブック 2_data_ingestion.ipynb
を使用してデータをパイプラインに取り込む方法を示します。 つながり申請 HTTPライブラリ。
CloudFormation テンプレートはまた、 ネットワーク, 暗号化 および データアクセス OpenSearch サーバーレス コレクションに必要なポリシー。これらのポリシーを更新して、最小特権のアクセス許可を適用します。
CloudFormation テンプレート名と OpenSearch Service インデックス名は SageMaker ノートブックで参照されます 3_rag_inference.ipynb
。デフォルトの名前を変更する場合は、必ずノートブック内でそれらの名前を更新してください。
ソリューションをテストする
CloudFormation スタックを作成した後、ソリューションをテストできます。次の手順を実行します。
- SageMakerコンソールで、 ノートブック ナビゲーションペインに表示されます。
- 選択
MultimodalNotebookInstance
選択して JupyterLab を開きます。 - In ファイルブラウザ、ノートブック フォルダーに移動して、ノートブックとサポート ファイルを表示します。
ノートブックには、実行される順序で番号が付けられます。各ノートブックの指示とコメントは、そのノートブックによって実行されるアクションを説明します。これらのノートブックを 1 つずつ実行します。
- 選択する
1_data_prep.ipynb
JupyterLab で開きます。 - ソフトウェア設定ページで、下図のように ラン メニュー、選択 すべてのセルを実行 このノートブックのコードを実行します。
このノートブックは、公開されているファイルをダウンロードします。 スライドデッキ、各スライドを JPG ファイル形式に変換し、S3 バケットにアップロードします。
- 選択する
2_data_ingestion.ipynb
JupyterLab で開きます。 - ソフトウェア設定ページで、下図のように ラン メニュー、選択 すべてのセルを実行 このノートブックのコードを実行します。
このノートブックでは、OpenSearch Serverless コレクションにインデックスを作成します。このインデックスには、スライドデッキの埋め込みデータが保存されます。次のコードを参照してください。
Claude 3 Sonnet および Amazon Titan Text Embeddings モデルを使用して、前のノートブックで作成した JPG 画像をベクトル埋め込みに変換します。これらの埋め込みと追加のメタデータ (S3 パスや画像ファイルの説明など) は、埋め込みとともにインデックスに保存されます。次のコード スニペットは、Claude 3 Sonnet が画像の説明を生成する方法を示しています。
画像の説明は Amazon Titan Text Embeddings モデルに渡され、ベクトル埋め込みが生成されます。これらの埋め込みと追加のメタデータ (S3 パスや画像ファイルの説明など) は、埋め込みとともにインデックスに保存されます。次のコードスニペットは、Amazon Titan Text Embeddings モデルの呼び出しを示しています。
データは、OSI パイプラインへの API 呼び出しを行うことによって OpenSearch サーバーレス インデックスに取り込まれます。次のコード スニペットは、Requests HTTP ライブラリを使用して行われた呼び出しを示しています。
- 選択する
3_rag_inference.ipynb
JupyterLab で開きます。 - ソフトウェア設定ページで、下図のように ラン メニュー、選択 すべてのセルを実行 このノートブックのコードを実行します。
このノートブックは RAG ソリューションを実装しています。ユーザーの質問を埋め込みに変換し、ベクター データベースから類似の画像の説明を検索し、取得した説明を Claude 3 Sonnet に提供してユーザーの質問に対する回答を生成します。次のプロンプト テンプレートを使用します。
次のコード スニペットは、RAG ワークフローを提供します。
結果
次の表には、実装によって生成されたユーザーの質問と回答が含まれています。の 質問 列はユーザーの質問をキャプチャし、 回答 列は、Claude 3 Sonnet によって生成されたテキスト応答です。の 画像 列は、OpenSearch サーバーレス ベクトル検索によって返された k-NN スライド マッチを示します。
マルチモーダル RAG の結果
インデックスをクエリする
OpenSearch ダッシュボードを使用して OpenSearch API と対話し、インデックスと取り込まれたデータに対して簡単なテストを実行できます。
掃除
今後料金が発生しないようにするには、リソースを削除してください。これを行うには、AWS CloudFormation コンソールを使用してスタックを削除します。
まとめ
企業は常に新しいコンテンツを生成しており、スライドデッキは組織内で情報を共有し、外部に顧客やカンファレンスで情報を広める一般的な方法です。時間の経過とともに、豊富な情報がこれらのスライドデッキのグラフや表などの非テキスト形式に埋もれ、隠されたままになる可能性があります。
このソリューションと、Amazon Titan Text Embeddings や Claude 3 Sonnet などのマルチモーダル FM の機能を使用して、新しい情報を発見したり、スライドデッキのコンテンツに関する新しい視点を明らかにしたりできます。を更新することで、Amazon Bedrock で利用可能なさまざまな Claude モデルを試すことができます。 CLAUDE_MODEL_ID
セクションに globals.py
ファイルにソフトウェアを指定する必要があります。
これは 2 部構成のシリーズの第 1 部です。パート 3 では、Amazon Titan マルチモーダル埋め込みと LLaVA モデルを使用しました。パート 1 では、パート 2 とパート XNUMX のアプローチを比較します。
このコードの一部は以下に基づいてリリースされています。 Apache 2.0 ライセンス。
著者について
アミット・アロラ は、アマゾン ウェブ サービスの AI および ML スペシャリスト アーキテクトであり、企業顧客がクラウドベースの機械学習サービスを使用してイノベーションを迅速に拡張できるよう支援しています。 彼は、ワシントン DC のジョージタウン大学で修士課程のデータ サイエンスおよび分析プログラムの非常勤講師でもあります。
マンジュ・プラサド アマゾン ウェブ サービスのシニア ソリューション アーキテクトです。彼女は、AI/ML を含むさまざまな技術領域での技術指導の提供に重点を置いています。 AWS に入社する前は、金融サービス部門の企業や新興企業向けのソリューションを設計および構築していました。彼女は知識を共有し、新たな才能への関心を高めることに情熱を持っています。
アルチャナ・イナプディ AWS のシニア ソリューション アーキテクトで、戦略的な顧客をサポートしています。彼女は 10 年以上にわたり、戦略的な技術的取り組みを主導する業界横断的な専門知識を持っています。 Archana は、AWS の AI/ML 技術分野コミュニティの意欲的なメンバーです。 Archana は、AWS に入社する前に、ヘルスケア企業で従来のサイロ化されたデータ ソースから Hadoop への移行を主導しました。彼女は、テクノロジーを使用して成長を加速し、顧客に価値を提供し、ビジネス成果を達成することに情熱を持っています。
アンタラ・ライサ アマゾン ウェブ サービスの AI および ML ソリューション アーキテクトで、テキサス州ダラスを拠点に戦略的な顧客をサポートしています。彼女は、AWS で大企業パートナーと協力した経験もあり、デジタル中心の顧客向けのパートナー サクセス ソリューション アーキテクトとして働いていました。
- SEO を活用したコンテンツと PR 配信。 今日増幅されます。
- PlatoData.Network 垂直生成 Ai。 自分自身に力を与えましょう。 こちらからアクセスしてください。
- プラトアイストリーム。 Web3 インテリジェンス。 知識増幅。 こちらからアクセスしてください。
- プラトンESG。 カーボン、 クリーンテック、 エネルギー、 環境、 太陽、 廃棄物管理。 こちらからアクセスしてください。
- プラトンヘルス。 バイオテクノロジーと臨床試験のインテリジェンス。 こちらからアクセスしてください。
- 情報源: https://aws.amazon.com/blogs/machine-learning/talk-to-your-slide-deck-using-multimodal-foundation-models-hosted-on-amazon-bedrock-and-amazon-sagemaker-part-2/