埋め込みプロバイダーを選択する際、ニーズと好みに応じて考慮できるいくつかの要因があります:
Anthropicは独自の埋め込みモデルを提供していません。上記のすべての考慮事項を包含する幅広い選択肢と機能を持つ埋め込みプロバイダーの一つがVoyage AIです。
Voyage AIは最先端の埋め込みモデルを作成し、金融や医療などの特定の業界ドメイン向けのカスタマイズされたモデル、または個別の顧客向けのオーダーメイドのファインチューニングされたモデルを提供しています。
このガイドの残りの部分はVoyage AI向けですが、特定のユースケースに最適な選択肢を見つけるために、さまざまな埋め込みベンダーを評価することをお勧めします。
Voyageは以下のテキスト埋め込みモデルの使用を推奨しています:
| モデル | コンテキスト長 | 埋め込み次元 | 説明 |
|---|---|---|---|
voyage-3-large | 32,000 | 1024(デフォルト)、256、512、2048 | 最高の汎用および多言語検索品質。詳細はブログ投稿をご覧ください。 |
voyage-3.5 | 32,000 | 1024(デフォルト)、256、512、2048 | 汎用および多言語検索品質に最適化。詳細はブログ投稿をご覧ください。 |
voyage-3.5-lite | 32,000 | 1024(デフォルト)、256、512、2048 | レイテンシとコストに最適化。詳細はブログ投稿をご覧ください。 |
voyage-code-3 | 32,000 | 1024(デフォルト)、256、512、2048 | コード検索に最適化。詳細はブログ投稿をご覧ください。 |
voyage-finance-2 | 32,000 | 1024 | 金融検索とRAGに最適化。詳細はブログ投稿をご覧ください。 |
voyage-law-2 | 16,000 | 1024 | 法的および長いコンテキスト検索とRAGに最適化。すべてのドメインでのパフォーマンスも向上。詳細はブログ投稿をご覧ください。 |
さらに、以下のマルチモーダル埋め込みモデルが推奨されます:
| モデル | コンテキスト長 | 埋め込み次元 | 説明 |
|---|---|---|---|
voyage-multimodal-3 | 32000 | 1024 | PDF、スライド、テーブル、図などのスクリーンショットなど、インターリーブされたテキストとコンテンツリッチな画像をベクトル化できる豊富なマルチモーダル埋め込みモデル。詳細はブログ投稿をご覧ください。 |
どのテキスト埋め込みモデルを使用するかの決定にお困りですか?FAQをご確認ください。
Voyage埋め込みにアクセスするには:
export VOYAGE_API_KEY="<your secret key>"公式のvoyageai PythonパッケージまたはHTTPリクエストのいずれかを使用して埋め込みを取得できます。以下で説明します。
voyageaiパッケージは以下のコマンドを使用してインストールできます:
pip install -U voyageaiその後、クライアントオブジェクトを作成し、テキストの埋め込みに使用を開始できます:
import voyageai
vo = voyageai.Client()
# これは自動的に環境変数VOYAGE_API_KEYを使用します。
# または、vo = voyageai.Client(api_key="<your secret key>")を使用できます
texts = ["Sample text 1", "Sample text 2"]
result = vo.embed(texts, model="voyage-3.5", input_type="document")
print(result.embeddings[0])
print(result.embeddings[1])result.embeddingsは、それぞれ1024個の浮動小数点数を含む2つの埋め込みベクトルのリストになります。上記のコードを実行すると、2つの埋め込みが画面に印刷されます:
[-0.013131560757756233, 0.019828535616397858, ...] # "Sample text 1"の埋め込み
[-0.0069352793507277966, 0.020878976210951805, ...] # "Sample text 2"の埋め込み埋め込みを作成する際、embed()関数にいくつかの他の引数を指定できます。
Voyage pythonパッケージの詳細については、Voyageドキュメントをご覧ください。
Voyage HTTP APIをリクエストして埋め込みを取得することもできます。例えば、ターミナルでcurlコマンドを通じてHTTPリクエストを送信できます:
curl https://api.voyageai.com/v1/embeddings \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $VOYAGE_API_KEY" \
-d '{
"input": ["Sample text 1", "Sample text 2"],
"model": "voyage-3.5"
}'取得するレスポンスは、埋め込みとトークン使用量を含むJSONオブジェクトです:
{
"object": "list",
"data": [
{
"embedding": [-0.013131560757756233, 0.019828535616397858, ...],
"index": 0
},
{
"embedding": [-0.0069352793507277966, 0.020878976210951805, ...],
"index": 1
}
],
"model": "voyage-3.5",
"usage": {
"total_tokens": 10
}
}
Voyage HTTP APIの詳細については、Voyageドキュメントをご覧ください。
Voyage埋め込みはAWS Marketplaceで利用可能です。AWSでVoyageにアクセスするための手順はこちらで利用可能です。
埋め込みの取得方法がわかったので、簡単な例を見てみましょう。
検索対象の6つのドキュメントからなる小さなコーパスがあるとします
documents = [
"The Mediterranean diet emphasizes fish, olive oil, and vegetables, believed to reduce chronic diseases.",
"Photosynthesis in plants converts light energy into glucose and produces essential oxygen.",
"20th-century innovations, from radios to smartphones, centered on electronic advancements.",
"Rivers provide water, irrigation, and habitat for aquatic species, vital for ecosystems.",
"Apple's conference call to discuss fourth fiscal quarter results and business updates is scheduled for Thursday, November 2, 2023 at 2:00 p.m. PT / 5:00 p.m. ET.",
"Shakespeare's works, like 'Hamlet' and 'A Midsummer Night's Dream,' endure in literature."
]
まず、Voyageを使用してそれぞれを埋め込みベクトルに変換します
import voyageai
vo = voyageai.Client()
# ドキュメントを埋め込む
doc_embds = vo.embed(
documents, model="voyage-3.5", input_type="document"
).embeddings埋め込みにより、ベクトル空間でセマンティック検索/検索を行うことができます。例のクエリが与えられた場合、
query = "When is Apple's conference call scheduled?"これを埋め込みに変換し、埋め込み空間での距離に基づいて最も関連性の高いドキュメントを見つけるために最近傍検索を実行します。
import numpy as np
# クエリを埋め込む
query_embd = vo.embed(
[query], model="voyage-3.5", input_type="query"
).embeddings[0]
# 類似性を計算
# Voyage埋め込みは長さ1に正規化されているため、内積と
# コサイン類似度は同じです。
similarities = np.dot(doc_embds, query_embd)
retrieved_id = np.argmax(similarities)
print(documents[retrieved_id])ドキュメントとクエリの埋め込みにそれぞれinput_type="document"とinput_type="query"を使用していることに注意してください。詳細な仕様はこちらで確認できます。
出力は5番目のドキュメントになり、これは実際にクエリに最も関連性があります:
Apple's conference call to discuss fourth fiscal quarter results and business updates is scheduled for Thursday, November 2, 2023 at 2:00 p.m. PT / 5:00 p.m. ET.ベクトルデータベースを含む埋め込みを使用したRAGの詳細なクックブックセットをお探しの場合は、RAGクックブックをご確認ください。
最新の価格詳細については、Voyageの価格ページをご覧ください。