エンベディング
テキストエンベディングは、意味的類似性を測定できるテキストの数値表現です。このガイドでは、エンベディング、その応用、および検索、レコメンデーション、異常検知などのタスクにエンベディングモデルを使用する方法を紹介します。
エンベディングを実装する前に
エンベディングプロバイダーを選択する際、ニーズと好みに応じて考慮すべき要因がいくつかあります:
- データセットのサイズとドメインの特異性:モデルの学習データセットのサイズと、エンベッドしたいドメインとの関連性。より大きなデータセットや、より特定のドメインに特化したデータは、一般的にドメイン内でより良いエンベディングを生成します
- 推論パフォーマンス:エンベディングの検索速度とエンドツーエンドのレイテンシー。これは特に大規模な本番環境での展開において重要な考慮事項です
- カスタマイズ:プライベートデータでの継続的なトレーニング、または非常に特定のドメイン向けのモデルの特殊化のオプション。これにより、独自の語彙に対するパフォーマンスを向上させることができます
Anthropicでエンベディングを取得する方法
Anthropicは独自のエンベディングモデルを提供していません。上記の考慮事項をすべて網羅する幅広いオプションと機能を持つエンベディングプロバイダーの1つがVoyage AIです。
Voyage AIは最先端のエンベディングモデルを提供し、金融や医療などの特定の業界ドメイン向けのカスタマイズされたモデル、または個々の顧客向けにカスタマイズされた微調整モデルを提供しています。
このガイドの残りの部分はVoyage AIについてですが、特定のユースケースに最適なものを見つけるために、さまざまなエンベディングベンダーを評価することをお勧めします。
利用可能なモデル
Voyageは以下のテキストエンベディングモデルの使用を推奨しています:
モデル | コンテキスト長 | エンベディング次元 | 説明 |
---|---|---|---|
voyage-3-large | 32,000 | 1024(デフォルト)、256、512、2048 | 最高の汎用および多言語検索品質。 |
voyage-3 | 32,000 | 1024 | 汎用および多言語検索品質に最適化。詳細はブログ記事をご覧ください。 |
voyage-3-lite | 32,000 | 512 | レイテンシーとコストに最適化。詳細はブログ記事をご覧ください。 |
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 AIを始める
Voyageエンベディングにアクセスするには:
- Voyage AIのウェブサイトでサインアップ
- APIキーを取得
- 便宜上、APIキーを環境変数として設定:
以下に説明するように、公式のvoyageai
PythonパッケージまたはHTTPリクエストを使用してエンベディングを取得できます。
Voyage Pythonパッケージ
voyageai
パッケージは以下のコマンドでインストールできます:
その後、クライアントオブジェクトを作成し、テキストのエンベディングを開始できます:
result.embeddings
は、それぞれ1024個の浮動小数点数を含む2つのエンベディングベクトルのリストになります。上記のコードを実行すると、2つのエンベディングが画面に表示されます:
エンベディングを作成する際、embed()
関数に他のいくつかの引数を指定することもできます。仕様の詳細はこちらをご覧ください
Voyage HTTP API
Voyage HTTP APIにリクエストを送信してエンベディングを取得することもできます。例えば、ターミナルでcurl
コマンドを使用してHTTPリクエストを送信できます:
レスポンスとして、エンベディングとトークン使用量を含むJSONオブジェクトが返されます:
エンベディングエンドポイントの詳細については、Voyageのドキュメントをご覧ください。
AWS Marketplace
VoyageエンベディングはAWS Marketplaceでも利用可能です。AWSでのVoyageへのアクセス手順はこちらで確認できます。
クイックスタート例
エンベディングの取得方法がわかったところで、簡単な例を見てみましょう。
6つの文書からなる小さなコーパスから検索を行うとします:
まず、Voyageを使用してそれぞれをエンベディングベクトルに変換します:
エンベディングにより、ベクトル空間での意味的検索/検索が可能になります。例えばこのようなクエリがあるとします:
これをエンベディングに変換し、エンベディング空間での距離に基づいて最も関連性の高い文書を見つけるために最近傍検索を行います。
文書とクエリのエンベディングには、それぞれinput_type="document"
とinput_type="query"
を使用していることに注意してください。詳細な仕様はこちらで確認できます。
出力は5番目の文書となり、これが実際にクエリに最も関連性の高いものです:
ベクターデータベースを含むエンベディングを使用したRAGの詳細なクックブックをお探しの場合は、RAGクックブックをご覧ください。
FAQ
価格
最新の価格詳細については、Voyageの価格ページをご覧ください。
Was this page helpful?