Amazon Bedrock での Amazon Titan テキスト埋め込みの開始 |アマゾン ウェブ サービス

Amazon Bedrock での Amazon Titan テキスト埋め込みの開始 |アマゾン ウェブ サービス

埋め込みは、自然言語処理 (NLP) と機械学習 (ML) において重要な役割を果たします。 テキストの埋め込み テキストを高次元ベクトル空間に存在する数値表現に変換するプロセスを指します。この手法は、データの意味とコンテキスト (意味的関係) の理解と、データ内の複雑な関係とパターン (構文的関係) の学習を可能にする ML アルゴリズムの使用によって実現されます。結果のベクトル表現は、情報検索、テキスト分類、自然言語処理などの幅広いアプリケーションに使用できます。

Amazon Titan テキスト埋め込み は、単一の単語、語句、または大きなドキュメントで構成される自然言語テキストを、意味的類似性に基づいた検索、パーソナライゼーション、クラスタリングなどのユースケースを強化するために使用できる数値表現に変換するテキスト埋め込みモデルです。

この投稿では、Amazon Titan Text Embeddings モデル、その機能、および使用例について説明します。

いくつかの重要な概念は次のとおりです。

  • テキストの数値表現 (ベクトル) は、単語間の意味論と関係を捉えます。
  • 豊富な埋め込みを使用してテキストの類似性を比較できます
  • 多言語テキスト埋め込みにより、さまざまな言語の意味を識別できる

テキストの一部はどのようにベクトルに変換されるのでしょうか?

文をベクトルに変換する手法は複数あります。一般的な方法の 2 つは、WordXNUMXVec、GloVe、FastText などの単語埋め込みアルゴリズムを使用し、単語埋め込みを集約して文レベルのベクトル表現を形成する方法です。

もう 1 つの一般的なアプローチは、BERT や GPT などの大規模言語モデル (LLM) を使用することです。これにより、文全体にコンテキストに応じた埋め込みを提供できます。これらのモデルは、Transformers などの深層学習アーキテクチャに基づいており、文内の文脈情報や単語間の関係をより効果的にキャプチャできます。

Amazon Bedrock での Amazon Titan テキスト埋め込みの開始 |アマゾン ウェブ サービス PlatoBlockchain データ インテリジェンス。垂直検索。あい。

なぜエンベディングモデルが必要なのでしょうか?

ベクトル埋め込みは、LLM が言語の意味論的な度合いを理解するための基礎であり、LLM が感情分析、固有表現認識、テキスト分類などの下流の NLP タスクで適切に実行できるようにします。

セマンティック検索に加えて、埋め込みを使用してプロンプトを拡張し、検索拡張生成 (RAG) を通じてより正確な結果を得ることができます。ただし、それらを使用するには、ベクトル機能を備えたデータベースに格納する必要があります。

Amazon Bedrock での Amazon Titan テキスト埋め込みの開始 |アマゾン ウェブ サービス PlatoBlockchain データ インテリジェンス。垂直検索。あい。

Amazon Titan Text Embeddings モデルは、RAG ユースケースを可能にするテキスト取得用に最適化されています。これにより、最初にテキスト データを数値表現またはベクトルに変換し、次にそれらのベクトルを使用してベクトル データベースから関連する文章を正確に検索できるため、独自のデータを他の基盤モデルと組み合わせて最大限に活用できます。

Amazon Titan Text Embeddings は、 アマゾンの岩盤、完全にサーバーレスのエクスペリエンスとして提供されます。 Amazon Bedrock REST 経由で使用できます。 API または AWS SDK。必須パラメータは、埋め込みを生成するテキストと、 modelID パラメータ。Amazon Titan Text Embeddings モデルの名前を表します。次のコードは、AWS SDK for Python (Boto3) を使用した例です。

import boto3
import json #Create the connection to Bedrock
bedrock = boto3.client( service_name='bedrock', region_name='us-west-2', ) bedrock_runtime = boto3.client( service_name='bedrock-runtime', region_name='us-west-2', ) # Let's see all available Amazon Models
available_models = bedrock.list_foundation_models() for model in available_models['modelSummaries']: if 'amazon' in model['modelId']: print(model) # Define prompt and model parameters
prompt_data = """Write me a poem about apples""" body = json.dumps({ "inputText": prompt_data,
}) model_id = 'amazon.titan-embed-text-v1' #look for embeddings in the modelID
accept = 'application/json' content_type = 'application/json' # Invoke model response = bedrock_runtime.invoke_model( body=body, modelId=model_id, accept=accept, contentType=content_type
) # Print response
response_body = json.loads(response['body'].read())
embedding = response_body.get('embedding') #Print the Embedding print(embedding)

出力は次のようになります。

[-0.057861328, -0.15039062, -0.4296875, 0.31054688, ..., -0.15625]

参照する Amazon Bedrock boto3 のセットアップ 必要なパッケージのインストール、Amazon Bedrock への接続、モデルの呼び出し方法の詳細については、を参照してください。

Amazon Titan テキスト埋め込みの機能

Amazon Titan Text Embeddings を使用すると、最大 8,000 個のトークンを入力できるため、ユースケースに基づいて単一の単語、フレーズ、またはドキュメント全体を操作するのに適しています。 アマゾンタイタン 次元 1536 の出力ベクトルを返すため、高い精度が得られると同時に、低遅延でコスト効率の高い結果が得られるように最適化されます。

Amazon Titan Text Embeddings は、25 を超える異なる言語でのテキストの埋め込みの作成とクエリをサポートしています。これは、サポートする言語ごとに個別のモデルを作成して維持する必要がなく、モデルをユースケースに適用できることを意味します。

単一のエンベディング モデルを多くの言語でトレーニングすると、次のような主な利点が得られます。

  • リーチの拡大 – 25 を超える言語をすぐにサポートできるため、多くの国際市場のユーザーやコンテンツにアプリケーションの適用範囲を拡大できます。
  • 一貫したパフォーマンス – 複数の言語をカバーする統合モデルにより、言語ごとに個別に最適化するのではなく、言語間で一貫した結果が得られます。モデルは総合的にトレーニングされるため、言語を超えて利点が得られます。
  • 多言語クエリのサポート – Amazon Titan Text Embeddings を使用すると、サポートされている言語でテキスト埋め込みをクエリできます。これにより、単一言語に制限されることなく、言語間で意味的に類似したコンテンツを取得できる柔軟性が得られます。同じ統合された埋め込みスペースを使用して、多言語データのクエリと分析を行うアプリケーションを構築できます。

この記事の執筆時点では、次の言語がサポートされています。

  • アラビア語
  • 中国語(簡体字)
  • 中国語(繁体字)
  • チェコ語
  • オランダ語
  • 英語
  • フランス語
  • ドイツ語
  • ヘブライ語
  • ヒンディー語
  • イタリア語
  • 日本語
  • カンナダ語
  • 韓国語
  • マラヤーラム語
  • マラーティー語
  • ポーランド語
  • ポルトガル語
  • ロシア語
  • スペイン語
  • スウェーデン語
  • フィリピン語・タガログ語
  • タミル語
  • テルグ語
  • トルコ語

LangChain での Amazon Titan テキスト埋め込みの使用

ラングチェーン を操作するための人気のあるオープンソース フレームワークです。 generative AI モデルとそれをサポートするテクノロジー。これには、 BedrockEmbedding クライアント これは、Boto3 SDK を抽象化レイヤーで便利にラップします。の BedrockEmbeddings クライアントを使用すると、JSON リクエストまたはレスポンス構造の詳細を知らなくても、テキストと埋め込みを直接操作できます。以下は簡単な例です。

from langchain.embeddings import BedrockEmbeddings #create an Amazon Titan Text Embeddings client
embeddings_client = BedrockEmbeddings() #Define the text from which to create embeddings
text = "Can you please tell me how to get to the bakery?" #Invoke the model
embedding = embeddings_client.embed_query(text) #Print response
print(embedding)

LangChain を使用することもできます BedrockEmbeddings Amazon Bedrock LLM クライアントと並行して使用すると、RAG、セマンティック検索、その他の埋め込み関連パターンの実装が簡素化されます。

埋め込みの使用例

RAG は現在、埋め込みを操作する最も一般的なユース ケースですが、埋め込みを適用できるユース ケースは他にもたくさんあります。以下に、エンベディングを単独で、または LLM と連携して使用して特定の問題を解決できる追加のシナリオをいくつか示します。

  • 質問と答え – 埋め込みは、RAG パターンを通じて質問と回答のインターフェイスをサポートするのに役立ちます。エンベディング生成とベクトル データベースを組み合わせることにより、ナレッジ リポジトリ内の質問とコンテンツの間で厳密に一致するものを見つけることができます。
  • パーソナライズされた推奨事項 – 質問と回答と同様に、埋め込みを使用して、ユーザーが指定した基準に基づいて休暇の目的地、大学、乗り物、またはその他の製品を検索できます。これは単純な一致リストの形式を取ることも、LLM を使用して各推奨事項を処理し、それがユーザーの基準をどのように満たしているかを説明することもできます。このアプローチを使用して、ユーザーの特定のニーズに基づいて、ユーザー向けのカスタムの「ベスト 10」記事を生成することもできます。
  • データ管理 – データ ソースが相互に明確にマッピングされていないが、データ レコードを説明するテキスト コンテンツがある場合、埋め込みを使用して重複する可能性のあるレコードを特定できます。たとえば、埋め込みを使用して、異なる書式設定や略語が使用されている可能性がある、または名前が翻訳されている可能性がある重複した候補を識別できます。
  • アプリケーションポートフォリオの合理化 – 親会社と買収先全体でアプリケーション ポートフォリオを調整しようとする場合、重複する可能性のあるものをどこから見つけ始めればよいのかが必ずしも明らかではありません。構成管理データの品質が制限要因となる可能性があり、アプリケーションの状況を理解するためにチーム間で調整することが困難になる場合があります。埋め込みとのセマンティック マッチングを使用することで、アプリケーション ポートフォリオ全体を迅速に分析して、合理化の可能性が高い候補アプリケーションを特定できます。
  • コンテンツのグループ化 – 埋め込みを使用すると、類似したコンテンツを事前には分からないカテゴリに簡単にグループ化できます。たとえば、顧客からの電子メールやオンラインの製品レビューのコレクションがあるとします。アイテムごとに埋め込みを作成し、それらの埋め込みを実行できます。 k-クラスタリングを意味します 顧客の懸念、製品の賞賛や苦情、その他のテーマを論理的にグループ化して特定します。その後、LLM を使用して、それらのグループのコンテンツから焦点を絞った概要を生成できます。

セマンティック検索の例

GitHub 上の例では、Amazon Titan Text Embeddings、LangChain、Streamlit を使用した単純な埋め込み検索アプリケーションを示します。

この例では、ユーザーのクエリをメモリ内のベクトル データベース内の最も近いエントリと照合します。次に、それらの一致をユーザー インターフェイスに直接表示します。これは、RAG アプリケーションのトラブルシューティングを行う場合、または埋め込みモデルを直接評価する場合に役立ちます。

簡単にするために、インメモリを使用します。 フェイス 埋め込みベクトルを保存および検索するためのデータベース。実際の大規模なシナリオでは、次のような永続データ ストアを使用することになるでしょう。 Amazon OpenSearch サーバーレス用のベクトル エンジン または ベクター PostgreSQL の拡張機能。

Web アプリケーションからさまざまな言語で次のようなプロンプトをいくつか試してみます。

  • 自分の使用状況を監視するにはどうすればよいですか?
  • モデルをカスタマイズするにはどうすればよいですか?
  • どのプログラミング言語を使用できますか?
  • コメントを送信してください。
  • 私のデータはどのように保護されていますか?
  • Bedrock のモデルを開発する場所はありますか?
  • ウェルヒェン地域では Amazon Bedrock が最適ですか?
  • いくつかのサポートがありますか?

ソース資料が英語であっても、他の言語のクエリが関連するエントリと一致することに注意してください。

まとめ

基礎モデルのテキスト生成機能は非常に魅力的ですが、生成 AI の価値を最大限に発揮するには、テキストを理解し、知識体系から関連するコンテンツを見つけ、文章間の接続を作成することが重要であることを覚えておくことが重要です。これらのモデルが改善され続けるにつれて、今後数年間にわたって、埋め込みの新しくて興味深い使用例が出現し続けるでしょう。

次のステップ

次のワークショップでは、ノートブックまたはデモ アプリケーションとして埋め込みの追加の例を見つけることができます。


著者について

Amazon Bedrock での Amazon Titan テキスト埋め込みの開始 |アマゾン ウェブ サービス PlatoBlockchain データ インテリジェンス。垂直検索。あい。ジェイソン・ステール は、ニューイングランド地域に拠点を置く AWS のシニア ソリューション アーキテクトです。 彼は顧客と協力して、AWS の機能をビジネスの最大の課題に合わせて調整しています。 仕事以外では、ものを作ったり、家族と一緒に漫画映画を観たりして時間を過ごしています。

Amazon Bedrock での Amazon Titan テキスト埋め込みの開始 |アマゾン ウェブ サービス PlatoBlockchain データ インテリジェンス。垂直検索。あい。ニティン・エウセビウス AWS のシニア エンタープライズ ソリューション アーキテクトであり、ソフトウェア エンジニアリング、エンタープライズ アーキテクチャ、AI/ML の経験があります。彼は生成 AI の可能性を探求することに深い情熱を持っています。彼は顧客と協力して、AWS プラットフォーム上で適切に設計されたアプリケーションを構築できるよう支援し、テクノロジーの課題を解決し、クラウドへの移行を支援することに専念しています。

Amazon Bedrock での Amazon Titan テキスト埋め込みの開始 |アマゾン ウェブ サービス PlatoBlockchain データ インテリジェンス。垂直検索。あい。ラジ・パタク は、カナダと米国のフォーチュン 50 に名を連ねる大企業および中堅金融サービス機関 (FSI) のプリンシパル ソリューション アーキテクトおよびテクニカル アドバイザーです。彼は、生成 AI、自然言語処理、インテリジェント文書処理、MLOps などの機械学習アプリケーションを専門としています。

Amazon Bedrock での Amazon Titan テキスト埋め込みの開始 |アマゾン ウェブ サービス PlatoBlockchain データ インテリジェンス。垂直検索。あい。マニカヌジャ テックリード – ジェネレーティブ AI スペシャリストであり、書籍「Applied Machine Learning and High Performance Computing on AWS」の著者であり、女性製造教育財団理事会のメンバーでもあります。 彼女は、コンピューター ビジョン、自然言語処理、生成 AI などのさまざまなドメインで機械学習 (ML) プロジェクトを主導しています。 彼女は、顧客が大規模な機械学習モデルを構築、トレーニング、デプロイできるよう支援します。 彼女は、re:Invent、Women in Manufacturing West、YouTube ウェビナー、GHC 23 などの社内外のカンファレンスで講演しています。自由時間には、ビーチに沿って長距離を走るのが好きです。

Amazon Bedrock での Amazon Titan テキスト埋め込みの開始 |アマゾン ウェブ サービス PlatoBlockchain データ インテリジェンス。垂直検索。あい。マークロイ AWS のプリンシパル機械学習アーキテクトとして、顧客の AI/ML ソリューションの設計と構築を支援しています。 Mark の仕事は、コンピュータ ビジョン、ディープ ラーニング、企業全体での ML のスケーリングに主な関心を持っており、幅広い ML ユースケースをカバーしています。 彼は、保険、金融サービス、メディアとエンターテイメント、ヘルスケア、公益事業、製造など、多くの業界の企業を支援してきました。 Mark は、ML スペシャリティ認定を含む 25 つの AWS 認定を取得しています。 AWS に入社する前、Mark は 19 年以上にわたってアーキテクト、開発者、テクノロジーのリーダーとして活躍し、その中には金融サービスでの XNUMX 年間の勤務も含まれます。

タイムスタンプ:

より多くの AWS機械学習