Voyage Embedding(Voyage AI埋め込みモデル)とは、Voyage AI社が開発・提供するテキスト埋め込みモデルシリーズである。Voyage-3を筆頭に、コード特化のVoyage-code-3やファイナンス特化のVoyage-finance-2など、ドメイン特化モデルを展開し、MTEBベンチマークで最高水準の検索性能を達成している。
Voyage AIは、スタンフォード大学のAI研究者によって設立された企業で、高精度なテキスト埋め込みモデルの開発に特化している。2024年にリリースされたVoyage-3は、MTEBベンチマークのRetrieval部門でトップクラスのスコアを記録し、OpenAI text-embedding-3-largeやCohere embed-v3を上回る性能を示している。
Voyage Embeddingの最大の特徴は、汎用モデルに加えてドメイン特化モデルを提供している点である。コード検索に最適化されたVoyage-code-3、法律文書検索のVoyage-law-2、金融テキスト向けのVoyage-finance-2など、特定分野での精度を最大限に引き出すモデルラインナップを展開している。
| モデル | 次元数 | 最大トークン | コンテキスト | 用途 | 料金 ($/1Mトークン) |
|---|---|---|---|---|---|
| voyage-3 | 1,024 | 32,000 | 汎用 | 検索・RAG全般 | $0.06 |
| voyage-3-lite | 512 | 32,000 | 汎用(軽量) | コスト重視 | $0.02 |
| voyage-3-large | 1,024 | 32,000 | 汎用(高精度) | 最高精度要求 | $0.12 |
| voyage-code-3 | 1,024 |
| 32,000 |
| コード |
| コード検索・理解 |
| $0.06 |
| voyage-law-2 | 1,024 | 16,000 | 法律 | 法律文書検索 | $0.12 |
| voyage-finance-2 | 1,024 | 32,000 | 金融 | 金融レポート検索 | $0.12 |
| voyage-multilingual-2 | 1,024 | 32,000 | 多言語 | 多言語検索 | $0.12 |
Voyage Embeddingは入力テキストの種類に応じてプレフィックスを付与する方式を採用している。検索クエリには自動的にクエリ用の最適化が適用され、文書側にはドキュメント用の処理が施される。APIのinput_typeパラメータでqueryまたはdocumentを指定するだけで、内部的に最適なプレフィックスが適用される仕組みである。
全モデルで最大32,000トークンの入力に対応しており、技術文書や法律契約書といった長文テキストの埋め込みが可能である。内部的にはRoPE(Rotary Position Embedding)ベースの位置エンコーディングを採用し、長文でも位置情報の劣化を最小限に抑えている。
Voyage-3シリーズはMatryoshka Representation Learningに対応しており、1,024次元のベクトルを256次元や512次元に切り詰めても、高い検索性能を維持する。ストレージコストを75%削減しながら、精度低下を2-3%以内に抑えることが可能である。
コードリポジトリ検索で、汎用モデルと比較して15-25%の精度向上を達成。関数名・変数名だけでなく、コードの意味的な構造(ループ、条件分岐、データフロー)を理解し、自然言語クエリからの適切なコード検索を実現する。GitHub Copilotの内部検索エンジンとしても採用されている。
法律用語の曖昧性(例: 「善意」の法律的意味と日常的意味の区別)を適切に処理し、判例検索や契約書レビューのワークフローに統合できる。米国法・英国法のコーパスで学習されているが、日本法の検索にも一定の効果がある。
import voyageai
client = voyageai.Client(api_key="your-api-key")
# ドキュメント埋め込み
documents = [
"Transformerアーキテクチャはself-attentionメカニズムを基盤とする",
"GPUメモリの制約はバッチサイズとシーケンス長に依存する",
]
doc_embeddings = client.embed(
documents,
model="voyage-3",
input_type="document"
)
# クエリ埋め込み
query = "Transformerの計算量を決定する要因は?"
query_embedding = client.embed(
[query],
model="voyage-3",
input_type="query"
)
| 指標 | Voyage-3 | OpenAI ada-3-large | BGE-M3 | Cohere v3 |
|---|---|---|---|---|
| MTEB Retrieval | 67.3 | 64.6 | 66.1 | 64.5 |
| コード検索 (CodeSearchNet) | 82.1 | 73.4 | 71.8 | 70.2 |
| 長文検索 (LongEmbed) | 78.5 | 74.2 | 76.8 | 72.1 |
| API料金 ($/1Mトークン) | $0.06 | $0.13 | 無料(OSS) | $0.10 |
ほとんどのユースケースではVoyage-3で十分な性能が得られる。Voyage-3-largeは、医療・法律・金融など精度が直接ビジネスインパクトに影響するドメインで、MTEBスコアの1-2ポイント差が重要な場合に選択すべきである。料金はVoyage-3の2倍であるため、コスト対効果を事前に検証することを推奨する。
2024年時点ではAPI提供のみで、モデルの重みは非公開である。オンプレミス運用が必須の場合は、BGE-M3やE5-Mistralなどのオープンソースモデルが代替となる。Voyage AIはエンタープライズ向けにプライベートデプロイオプションを提供する計画を発表しているが、具体的な時期は未定である。
Voyage APIは1リクエストあたり最大128テキストのバッチ処理に対応する。スループット最大化には、テキスト長が均一に近いバッチを構成し、128件単位で送信するのが効率的である。レート制限は月間300RPM(リクエスト/分)で、大規模インデックス構築時はバッチキューイングの実装が必要となる。