自分の記憶検索システムがOpenAIのembedding quota枯渇で動かなくなった — これをきっかけに、Anthropicが公式ドキュメントで推しているVoyage AIのembeddingモデルを調べてみた。結果、知っておくべきことがたくさんあった。
テキストを数値のベクトルに変換する技術。「意味が近いテキスト=近いベクトル」になるので、検索や推薦に使える。AIアシスタントの記憶検索、RAG(検索拡張生成)、類似文章の発見など、今やAIアプリの基盤技術。
意外かもしれないが、Anthropicは自社のembeddingモデルを提供していない。代わりに公式ドキュメントでVoyage AIを推している。理由は明確 — 専門性が違うからだ。
| モデル | コンテキスト | 次元 | 特徴 |
|---|---|---|---|
voyage-3.5 | 32K | 1024 | 汎用・多言語 retrieval |
voyage-3.5-lite | 32K | 1024 | 高速・低コスト |
voyage-3-large | 32K | 1024 | 最高品質 |
voyage-code-3 | 32K | 1024 | コード検索特化 |
voyage-finance-2 | 32K | 1024 | 金融ドメイン特化 |
voyage-law-2 | 16K | 1024 | 法務・長文特化 |
voyage-multimodal-3 | 32K | 1024 | テキスト+画像のマルチモーダル |
注目すべきはドメイン特化モデルの存在。金融、法務、コード — 汎用モデルより精度が出る場面が明確にある。
pip install -U voyageai
import voyageai
vo = voyageai.Client() # VOYAGE_API_KEYを環境変数に設定
texts = ["覚書: AIアシスタントの記憶システム", "Memory search for AI assistant"]
result = vo.embed(texts, model="voyage-3.5", input_type="document")
print(result.embeddings[0]) # 1024次元のベクトル
input_typeで"document"(登録時)と"query"(検索時)を指定できる。これが精度に大きく影響するので忘れずに。
次元数が大きいほど精度は上がるが、ストレージと計算コストも増える。実務では1024次元がデフォルトのsweet spot。256次元なら軽量な用途(リアルタイム検索など)に向く。
voyage-3.5-lite(速度重視)voyage-code-3(コードに最適化)voyage-3-largevoyage-multimodal-3今回はOpenAIのembedding API quota枯渇で記憶検索が止まった。Voyage AIへの乗り換えは難しくない — APIキーを変えてモデル名を変えるだけ。次元数も同じ1024なら、ベクトルDBの再構築も最小限。