AI ベクトル埋め込みモデル徹底比較(2026)
埋め込みモデル選択の重要性
2026 年 RAG は標準だが、埋め込みモデル選択を軽視するチームが多い。埋め込みは全意味検索の基盤。不適切なら LLM コンテキストが的外れ(GIGO)、クラスタリング混乱、多言語同義語が無関係空間に。
5 評価軸
| 軸 | 質問 |
|---|---|
| 意味品質 | MTEB Retrieval/STS スコア |
| 次元数 | Matryoshka 短縮対応? |
| 多言語 | 言語横断品質 |
| コスト | /1M トークン価格、オンプレ可? |
| 遅延 | p95、バッチスループット |
6 モデル
1. text-embedding-3-small
1536次元、Matryoshka 512 で品質 2% 低下のみ。$0.02/1M。最適:英語 RAG、プロトタイプ。
from openai import OpenAI; c=OpenAI()
r=c.embeddings.create(model="text-embedding-3-small",input=["hello"],dimensions=512)
print(len(r.data[0].embedding)) # 512
2. text-embedding-3-large
3072次元、MTEB avg 64.6。$0.13/1M。最適:法務/医療高精度。
3. Cohere embed-v3
多言語デファクト。1024次元。非対称:search_document/search_query。$0.10/1M。
import cohere; co=cohere.Client("key")
doc=co.embed(texts=["Kubernetes guide"],model="embed-multilingual-v3.0",input_type="search_document").embeddings[0]
q=co.embed(texts=["Kubernetes ネットワーク"],model="embed-multilingual-v3.0",input_type="search_query").embeddings[0]
⚠️ 格納/検索で異なる input_type 必須。
4. BGE-M3
密・疎・多ベクトル 3 方式同時サポート。MIT。A10 1 枚。中英極強。
from sentence_transformers import SentenceTransformer
m=SentenceTransformer("BAAI/bge-m3")
d=m.encode("TiDB 検索文書",normalize_embeddings=True)
q=m.encode("Represent this sentence for searching relevant passages: TiDB インデックス選択",normalize_embeddings=True)
ハイブリッド使用で再現率+精度向上。
5. E5 シリーズ
命令チューニング型。multilingual-e5-large 1024次元。e5-mistral-7b 4096次元最高品質。
6. Jina v3
多ベクトル+長文(8192トークン)。Apache-2.0。
MTEB 速報 (2026 Q2)
| モデル | Retr | STS | 言語 |
|---|---|---|---|
| text-embedding-3-large | 59.3 | 82.7 | 多言語 |
| Cohere embed-v3 | 60.1 | 81.5 | 多言語最強 |
| BGE-M3 | 58.7 | 80.2 | 中英極強 |
| text-embedding-3-small | 56.8 | 80.1 | 英語 |
| E5-mistral-7b | 61.2 | 84.3 | 英語 |
| multilingual-e5-large | 57.2 | 78.9 | 多言語 |
⚠️ 公開≠自前。自己評価必須。
コスト (2 億トークン)
| モデル | コスト | オンプレ |
|---|---|---|
| small(512) | $4 | ❌ |
| large(512) | $26 | ❌ |
| Cohere | $20 | ❌ |
| BGE-M3 | $0(GPU) | ✅ |
継続更新ならオープンソースが数ヶ月で回収。
選定表
| 状況 | 推奨 |
|---|---|
| 英語迅速 | text-embedding-3-small |
| 多言語 RAG | Cohere |
| 中国語多 | BGE-M3 |
| オンプレ | BGE-M3/e5 |
| 高精度 | large/E5-mistral |
| 長文 | Jina v3 |
| 予算極小 | BGE-M3+単GPU |
自己評価
from sentence_transformers import SentenceTransformer, evaluation
model=SentenceTransformer("BAAI/bge-m3")
evaluator=evaluation.InformationRetrievalEvaluator(queries=...,corpus=...,relevant_docs=...)
results=evaluator(model)
print(f"NDCG@10: {results['ndcg@10']:.4f}")
比較:意味検索(NDCG)、分類(線形プローブ)、クラスタリング(Silhouette)、言語横断(mAP)。
FAQ
Q1:Matryoshka とは?——多次元同時最適化学習。生成後短縮可能。例:3072→256、92% 節約。
Q2:微調整時期?——専門領域で不足時。2–5k ペア+数エポック。
Q3:非対称埋め込み?——クエリと文書で異符号化経路。Cohere が代表的。
Q4:疎 vs 密?——疎=キーワード完全一致、密=意味一致、ハイブリッド最強。
Q5:コスト最適化?——短縮・キャッシュ・バッチ API。
結論
3 ステップ:決定表で 2–3 候補→BEIR 自前評価→AB テスト。