Claude Platform Docs
Messagesモデルの機能

埋め込み

テキスト埋め込みは、意味的な類似性の測定を可能にするテキストの数値表現です。このガイドでは、埋め込みとその応用、そして検索、レコメンデーション、異常検知などのタスクに埋め込みモデルを使用する方法を紹介します。

埋め込みを実装する前に

埋め込みプロバイダーを選択する際には、ニーズや好みに応じて考慮できるいくつかの要素があります。

  • データセットのサイズとドメイン特異性:モデルの訓練データセットのサイズと、埋め込みたいドメインとの関連性。一般的に、より大規模またはよりドメイン特化したデータほど、ドメイン内でより優れた埋め込みを生成します
  • 推論パフォーマンス:埋め込みの検索速度とエンドツーエンドの「latency」(レイテンシ)。これは大規模な本番デプロイメントにおいて特に重要な考慮事項です
  • カスタマイズ:プライベートデータでの継続的な訓練や、非常に特定のドメイン向けのモデルの特化のためのオプション。これにより、独自の語彙に対するパフォーマンスを向上させることができます

Anthropicで埋め込みを取得する方法

Anthropicは独自の埋め込みモデルを提供していません。前述のすべての考慮事項を網羅する幅広いオプションと機能を備えた埋め込みプロバイダーの1つがVoyage AIです。

Voyage AIは最先端の埋め込みモデルを開発しており、金融やヘルスケアなどの特定の業界ドメイン向けにカスタマイズされたモデルや、個々の顧客向けに特別に「fine-tuning」(ファインチューニング)されたモデルを提供しています。

このガイドの残りの部分はVoyage AIに関するものですが、特定のユースケースに最適なものを見つけるために、さまざまな埋め込みベンダーを評価することをお勧めします。

利用可能なモデル

Voyageは以下のテキスト埋め込みモデルの使用を推奨しています。

Voyage 4(最新世代)

モデルコンテキスト長埋め込み次元説明
voyage-4-large32,0001024(デフォルト)、256、512、2048最高の汎用および多言語検索品質。詳細はVoyage 4ブログ記事を参照してください。
voyage-432,0001024(デフォルト)、256、512、2048汎用および多言語検索品質に最適化。品質と効率のバランスが取れています。詳細はVoyage 4ブログ記事を参照してください。
voyage-4-lite32,0001024(デフォルト)、256、512、2048レイテンシとコストに最適化。詳細はVoyage 4ブログ記事を参照してください。
voyage-4-nano32,0001024(デフォルト)、256、512、2048Hugging Faceで利用可能なオープンウェイトモデル(Apache 2.0ライセンス)。詳細はVoyage 4ブログ記事を参照してください。

前世代

モデルコンテキスト長埋め込み次元説明
voyage-3-large32,0001024(デフォルト)、256、512、2048最高の汎用および多言語検索品質。詳細はvoyage-3-largeブログ記事を参照してください。
voyage-3.532,0001024(デフォルト)、256、512、2048汎用および多言語検索品質に最適化。詳細はvoyage-3.5ブログ記事を参照してください。
voyage-3.5-lite32,0001024(デフォルト)、256、512、2048レイテンシとコストに最適化。詳細はvoyage-3.5ブログ記事を参照してください。
voyage-code-332,0001024(デフォルト)、256、512、2048コード検索に最適化。詳細はvoyage-code-3ブログ記事を参照してください。
voyage-finance-232,0001024金融の検索とRAGに最適化。詳細はvoyage-finance-2ブログ記事を参照してください。
voyage-law-216,0001024法律および長文コンテキストの検索とRAGに最適化。また、すべてのドメインにわたってパフォーマンスが向上しています。詳細はvoyage-law-2ブログ記事を参照してください。

さらに、Voyageは以下のマルチモーダル埋め込みモデルを推奨しています。

モデルコンテキスト長埋め込み次元説明
voyage-multimodal-3.532,0001024(デフォルト)、256、512、2048テキスト、画像、動画が混在したコンテンツをベクトル化できるリッチなマルチモーダル埋め込みモデル。初の本番グレードの動画埋め込みモデルとして動画サポートを含みます。詳細はvoyage-multimodal-3.5ブログ記事を参照してください。
voyage-multimodal-332,0001024テキストと、PDFのスクリーンショット、スライド、表、図などのコンテンツが豊富な画像が混在したものをベクトル化できるリッチなマルチモーダル埋め込みモデル。詳細はvoyage-multimodal-3ブログ記事を参照してください。

以下のコンテキスト化チャンク埋め込みモデルは、手動でのメタデータ拡張なしにドキュメント全体のコンテキストを捉えたチャンクレベルのベクトルを生成します。これらのモデルはembed()の代わりにcontextualized_embed()で呼び出してください。

モデルコンテキスト長埋め込み次元説明
voyage-context-4120,0001024(デフォルト)、256、512、2048汎用および多言語検索品質に最適化されたコンテキスト化チャンク埋め込み。詳細はvoyage-context-4ブログ記事を参照してください。
voyage-context-3120,0001024(デフォルト)、256、512、2048汎用および多言語検索品質に最適化されたコンテキスト化チャンク埋め込み。詳細はvoyage-context-3ブログ記事を参照してください。

Voyage AIはリランカーも提供しています。リランカーはクエリとドキュメントのリストを受け取り、クエリとの関連性でランク付けして返します。これらのモデルはrerank()で呼び出してください。

モデルコンテキスト長説明
rerank-2.532,000最高の精度。ほとんどのアプリケーションに推奨されます。詳細はrerank-2.5ブログ記事を参照してください。
rerank-2.5-lite32,000レイテンシとコストに最適化。詳細はrerank-2.5ブログ記事を参照してください。

どのテキスト埋め込みモデルを使用すべきか迷っていますか?Voyage AI FAQをご確認ください。

Voyage AIを使い始める

Voyageの埋め込みにアクセスするには:

  1. Voyage AIのウェブサイトでサインアップします。
  2. APIキーを取得します。
  3. 便利なように、APIキーを環境変数として設定します。
export VOYAGE_API_KEY="<your secret key>"

以下のセクションで説明するように、公式のvoyageai PythonパッケージまたはHTTPリクエストのいずれかを使用して埋め込みを取得できます。

Voyage Pythonライブラリ

以下のコマンドを使用して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-4", input_type="document")
print(result.embeddings[0])
print(result.embeddings[1])

result.embeddingsは2つの埋め込みベクトルのリストで、それぞれ1024個の浮動小数点数を含んでいます。前述のコードを実行すると、2つの埋め込みが画面に出力されます。

[-0.013131560757756233, 0.019828535616397858, ...]   # embedding for "Sample text 1"
[-0.0069352793507277966, 0.020878976210951805, ...]  # embedding for "Sample text 2"

埋め込みを作成する際に、embed()関数に他のいくつかの引数を指定できます。

Voyage Pythonパッケージの詳細については、Voyage Pythonパッケージのドキュメントを参照してください。

Voyage HTTP API

Voyage HTTP APIにリクエストすることで埋め込みを取得することもできます。例えば、ターミナルでcurlコマンドを使用してHTTPリクエストを送信できます。

cURL
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-4"
  }'

得られるレスポンスは、埋め込みとトークン使用量を含むJSONオブジェクトです。

{
  "object": "list",
  "data": [
    {
      "embedding": [-0.013131560757756233, 0.019828535616397858 /* ... */],
      "index": 0
    },
    {
      "embedding": [-0.0069352793507277966, 0.020878976210951805 /* ... */],
      "index": 1
    }
  ],
  "model": "voyage-4",
  "usage": {
    "total_tokens": 10
  }
}

Voyage HTTP APIの詳細については、Voyage HTTP APIのドキュメントを参照してください。

AWS Marketplace

Voyageの埋め込みはAWS Marketplaceで利用可能です。AWSでVoyageにアクセスする手順は、Voyage AWS Marketplaceのドキュメントで確認できます。

クイックスタートの例

以下の簡単な例は、埋め込みの使用方法を示しています。

検索対象として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-4", input_type="document").embeddings

埋め込みにより、ベクトル空間でセマンティック検索/取得を行うことができます。例として次のクエリが与えられたとします。

query = "When is Apple's conference call scheduled?"

次に、これを埋め込みに変換し、最近傍探索を行って、埋め込み空間内の距離に基づいて最も関連性の高いドキュメントを見つけます。

import numpy as np

# クエリを埋め込む
query_embd = vo.embed([query], model="voyage-4", 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"が使用されていることに注意してください。詳細な仕様はVoyage Pythonライブラリで確認できます。

出力は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レシピをご確認ください。

FAQ

料金

最新の料金の詳細については、Voyageの料金ページをご覧ください。

Was this page helpful?