Amazon Web Services ブログ

RAG を改善するために最適化された Amazon Titan Text V2 が Amazon Bedrock で使用可能に

Amazon Titan モデルファミリーは、Amazon Bedrock でのみ利用可能で、人工知能 (AI) と機械学習 (ML) の進歩において 25 年間にわたって Amazon が培ってきた専門知識に基づいて構築されています。Amazon Titan 基盤モデル (FM) は、フルマネージド API を通じてアクセスできる、事前トレーニング済みの画像、マルチモーダル、テキストモデルの包括的なスイートを提供します。広範なデータセットでトレーニングされた Amazon Titan モデルは強力かつ多用途で、責任ある AI の慣行を遵守しながら、さまざまなアプリケーション向けに設計されています。

Amazon Titan ファミリーに最近追加されたのは Amazon Titan Text Embeddings V2 です。これは、Amazon Bedrock 内で使用できるようになった Amazon の第 2 世代テキスト埋め込みモデルです。この新しいテキスト埋め込みモデルは、検索拡張生成 (RAG) 向けに最適化されています。100 以上の言語とコードで事前トレーニングされています。

Amazon Titan Text Embeddings V2 では、出力ベクトルのサイズを選択できるようになりました (256、512、または 1024)。ベクトルサイズが大きくなると、より詳細な応答が作成されますが、計算により長い時間がかかります。ベクトルが短くなるほど詳細度は低くなりますが、応答時間は短縮されます。より小さいベクトルを使用すると、ストレージコストが削減されるとともに、ベクトルデータベースからドキュメント抽出を検索および取得する際のレイテンシーが低減します。当社は Amazon Titan Text Embeddings V2 によって生成されたベクトルの精度を測定しました。その結果、512 次元のベクトルは、1024 次元のベクトルによって提供される精度の約 99% を維持していることがわかりました。256 次元のベクトルはその精度の 97% を維持します。これは、ベクトルストレージを 75 % 節約でき (1024 次元から 256 次元に削減)、より大きなベクトルによって提供される精度の約 97 % を維持できることを意味します。

また、Amazon Titan Text Embeddings V2 は、ベクトルの類似性を測定する際の精度の向上に役立つ、改善された単位ベクトル正規化も提案します。ユースケースに基づいて、正規化バージョンと非正規化バージョンの埋め込みを選択できます (RAG ユースケースでは正規化の方が正確です)。ベクトルの正規化は、単位の長さまたは大きさが 1 になるようにベクトルをスケーリングするプロセスです。すべてのベクトルが同じスケールを持ち、ベクトル演算中に均等に寄与するようにして、大きさが大きいために一部のベクトルが他のベクトルを支配しないようにします。

この新しいテキスト埋め込みモデルは、さまざまなユースケースに適しています。これは、例えば盗作を検出するために、ドキュメントに対してセマンティック検索を実行するのに役立ちます。別の例では、映画をジャンル分けするために、ラベルをデータに基づいて学習した表現に分類できます。また、RAG を使用して興味に基づいてコンテンツを推奨するなど、取得または生成された検索結果の質と関連性を高めることもできます。

埋め込みが RAG の精度向上にどのように役立つのか
自分が大規模言語モデル (LLM) の強力な研究アシスタントであると想像してみてください。LLM は、さまざまなクリエイティブなテキスト形式を作成できる極めて賢い人々のようなものですが、その知識はトレーニングの際に使用された大規模なデータセットから得られています。このトレーニングデータは少し古いか、またはニーズに合った具体的な詳細が不足している可能性があります。

ここで RAG の出番です。RAG はアシスタントのように機能し、企業のナレッジベースのようなカスタムソースから関連情報を取得します。LLM が質問に答える必要がある場合、RAG は可能な限り最善の応答を生成できるように最新の情報を提供します。

最新の情報を見つけるために、RAG は埋め込みを使用します。これらの埋め込み (またはベクトル) が、テキストの重要なアイデアを捉えた、極めて凝縮された要約であると想像してください。Amazon Titan Text Embeddings V2 などの高品質の埋め込みモデルは、各ドキュメントの重要なポイントを迅速に把握できる優れたアシスタントのように、これらの要約を正確に作成できます。これにより、RAG は LLM のために最も関連性の高い情報を取得できるようになり、より正確で的を射た回答を得ることが可能になります。

図書館を探し回るようなものだと考えてください。本の各ページにはインデックスが付けられ、ベクトルで表されます。検索システムの能力が低いと、最終的には、まったく必要としていない本が山積みになってしまうことも考えられます。しかし、コンテンツを理解する優れた検索システム (高品質の埋め込みモデルなど) があれば、探しているものを正確に得ることができ、答えを生成する LLM の仕事がはるかに容易になります。

Amazon Titan Text Embedding V2 の概要
Amazon Titan Text Embeddings V2 は、ストレージを削減し、レイテンシーを低減するために、より小さい次元で高い精度と検索パフォーマンスを実現するように最適化されています。当社は、1024 次元のベクトルが提供する精度の約 99 % を、512 次元のベクトルが維持することを測定しました。256 次元のベクトルはその精度の 97% を提供します。

最大トークン 8,192
言語 事前トレーニングで 100 以上
微調整をサポート いいえ
正規化をサポート はい
ベクトルサイズ 256、512、1,024 (デフォルト)

Amazon Titan Text Embeddings V2 の使用方法
お客様はおそらく、Amazon Bedrock のナレッジベースを通じて間接的に Amazon Titan Text Embeddings V2 を操作することになるでしょう。ナレッジベースは、RAG ベースのアプリケーションを作成するための面倒な作業を引き受けます。ただし、Amazon Bedrock Runtime API を使用してコードからモデルを直接呼び出すこともできます。Swift プログラミング言語のシンプルな例を次に示します (これは単に、Python だけでなく、任意のプログラミング言語を使用できることを示すためのものです)。

import Foundation
import AWSBedrockRuntime 

let text = "This is the text to transform in a vector"

// API クライアントを作成
let client = try BedrockRuntimeClient(region: "us-east-1")

// リクエストを作成 
let request = InvokeModelInput(
   accept: "application/json",
   body: """
   {
      "inputText": "\(text)",
      "dimensions": 256,
      "normalize": true
   }
   """.data(using: .utf8),
   contentType: "application/json",
   modelId: "amazon.titan-embed-text-v2:0")

// リクエストを送信 
let response = try await client.invokeModel(input: request)

// 応答をデコード
let response = String(data: (response.body!), encoding: .utf8)

print(response ?? "")

モデルはペイロードで 3 つのパラメータを取ります:

  • inputText – 埋め込みに変換するテキスト。
  • normalize – 出力埋め込みを正規化するかどうかを示すフラグ。デフォルトは true です。これは RAG のユースケースに最適です。
  • dimensions – 出力埋め込みが持つべき次元数。256、512、および 1024 (デフォルト値) の 3 つの値が可能です。

Package.swiftAWS SDK for Swift での依存関係を追加しました。このコードをビルドして実行するために swift run と入力します。次の出力が表示されます (簡潔にするために切り詰められています):

{"embedding":[-0.26757812,0.15332031,-0.015991211...-0.8203125,0.94921875],
"inputTextTokenCount":9}

いつものように、API を使用する前に、Amazon Bedrock コンソール新しいモデルへのアクセスを有効にすることを忘れないでください。

Amazon Titan Text Embeddings V2 は間もなく、Amazon Bedrock のナレッジベースによって提案されるデフォルトの LLM となります。オリジナルの Amazon Titan Text Embeddings モデルで作成された既存のナレッジベースは、変更なしで引き続き機能します。

Amazon Titan モデルファミリーの詳細については、次の動画をご覧ください。

新しい Amazon Titan Text Embeddings V2 モデルは現在、米国東部 (バージニア北部) および米国西部 (オレゴン) AWS リージョンの Amazon Bedrock で利用可能です。今後の最新情報については、詳細なリージョンリストをご確認ください。

詳細については、Amazon Bedrock での Amazon Titan の製品ページと料金ページをご覧ください。また、このブログ記事では Amazon Titan Text Embeddings モデルの使用方法を知ることができますので、お見逃しなく。また、community.aws サイトにアクセスして、詳細な技術コンテンツを検索したり、ビルダーコミュニティが自らのソリューションで Amazon Bedrock をどのように利用しているかを学んだりすることもできます。

今すぐ Amazon Bedrock コンソール で Amazon Titan Text Embeddings V2 をお試しいただき、AWS re:Post for Amazon Bedrock 宛てに、または通常の AWS サポートの連絡先を通じて、ぜひフィードバックをお寄せください。

— seb

原文はこちらです。