エンベディングを実装する前に
エンベディングプロバイダーを選択する際、ニーズと好みに応じて考慮すべき要因がいくつかあります:- データセットのサイズとドメインの特異性:モデルの学習データセットのサイズと、エンベッドしたいドメインとの関連性。より大きなデータセットや、より特定のドメインに特化したデータは、一般的にドメイン内でより良いエンベディングを生成します
- 推論パフォーマンス:エンベディングの検索速度とエンドツーエンドのレイテンシー。これは特に大規模な本番環境での展開において重要な考慮事項です
- カスタマイズ:プライベートデータでの継続的なトレーニング、または非常に特定のドメイン向けのモデルの特殊化のオプション。これにより、独自の語彙に対するパフォーマンスを向上させることができます
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のスクリーンショット、スライド、表、図などのテキストとコンテンツが豊富な画像を組み合わせてベクトル化できる豊かなマルチモーダルエンベディングモデル。詳細はブログ記事をご覧ください。 |
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リクエストを送信できます:
AWS Marketplace
VoyageエンベディングはAWS Marketplaceでも利用可能です。AWSでのVoyageへのアクセス手順はこちらで確認できます。クイックスタート例
エンベディングの取得方法がわかったところで、簡単な例を見てみましょう。 6つの文書からなる小さなコーパスから検索を行うとします:input_type="document"
とinput_type="query"
を使用していることに注意してください。詳細な仕様はこちらで確認できます。
出力は5番目の文書となり、これが実際にクエリに最も関連性の高いものです:
FAQ
なぜVoyageエンベディングは優れた品質を持つのですか?
なぜVoyageエンベディングは優れた品質を持つのですか?
エンベディングモデルは、生成モデルと同様に、意味的コンテキストをキャプチャーして圧縮するために強力なニューラルネットワークに依存しています。Voyageのチームは経験豊富なAI研究者で構成されており、エンベディングプロセスのあらゆる要素を最適化しています:
- モデルアーキテクチャ
- データ収集
- 損失関数
- オプティマイザーの選択
どのエンベディングモデルが利用可能で、どれを使用すべきですか?
どのエンベディングモデルが利用可能で、どれを使用すべきですか?
汎用エンベディングには以下を推奨します:
voyage-3-large
:最高品質voyage-3-lite
:最低レイテンシーとコストvoyage-3
:競争力のある価格で優れた検索品質を実現するバランスの取れたパフォーマンス
input_type
パラメータを使用してクエリまたはドキュメントタイプを指定します。ドメイン固有のモデル:- 法律タスク:
voyage-law-2
- コードとプログラミングドキュメント:
voyage-code-3
- 金融関連タスク:
voyage-finance-2
どの類似度関数を使用すべきですか?
どの類似度関数を使用すべきですか?
Voyageエンベディングは以下をサポートしています:
- 内積類似度
- コサイン類似度
- ユークリッド距離
- コサイン類似度は内積類似度と等しくなります(内積計算の方が高速です)
- コサイン類似度とユークリッド距離は同じランキングを生成します
input_typeパラメータはどのように使用すべきですか?
input_typeパラメータはどのように使用すべきですか?
RAGを含む検索タスクでは、常にドキュメントの場合:
input_type
を”query”または”document”として指定してください。この最適化により、特殊なプロンプトプレフィックスを通じて検索品質が向上します:クエリの場合:検索タスクでは、
input_type
を省略したりNone
に設定したりしないでください。voyage-large-2-instruct
を使用した分類、クラスタリング、その他のMTEBタスクについては、GitHubリポジトリの指示に従ってください。どの量子化オプションが利用可能ですか?
どの量子化オプションが利用可能ですか?
量子化は、高精度の値を低精度のフォーマットに変換することで、ストレージ、メモリ、コストを削減します。利用可能な出力データ型(
例: バイナリ量子化は8つのエンベディング値を1つの8ビット整数に変換します:
output_dtype
):型 | 説明 | サイズ削減 |
---|---|---|
float | 32ビット単精度浮動小数点(デフォルト) | なし |
int8 /uint8 | 8ビット整数(-128~127 / 0~255) | 4倍 |
binary /ubinary | ビットパックされた1ビット値 | 32倍 |
バイナリ型は8ビット整数を使用してパックされたビットを表現し、
binary
はオフセットバイナリ方式を使用します。マトリョーシカエンベディングをどのように切り詰めることができますか?
マトリョーシカエンベディングをどのように切り詰めることができますか?
マトリョーシカエンベディングには粗から細かいまでの表現が含まれており、先頭の次元を保持することで切り詰めることができます。1024次元のベクトルを256次元に切り詰める方法は以下の通りです: