嵌入模型重回「性能差距主战场」的原因
- 年RAG热潮初期,嵌入模型被视为「text-embedding-ada-002就够用」,往往作为差异化要素被轻视。2026年的情况截然不同。LLM的生成性能在部分任务上趋于饱和,而Retrieval侧遗漏的信息决定了RAG整体的上限——这已成为业界共识,嵌入模型的选型与调优作为ROI最高的投资领域重新受到重视。
Hugging Face的MTEB(Massive Text Embedding Benchmark)排行榜截至2026年4月已有200个以上模型上榜,但对于日语产品而言实际可用的选项约在10个模型左右。本文横跨OpenAI、Voyage、Cohere、BAAI、Jina,对MTEB/BEIR/JMTEB得分与实现上的易用性进行并列比较。
2026年4月得分一览(摘要)
- OpenAI text-embedding-3-large:MTEB 64.6、JMTEB 75.2、3072维、8192 tokens、$0.13/M tokens
- OpenAI Embed-4(2026/02发布):MTEB 68.9、JMTEB 79.8、4096维、32k tokens、$0.18/M tokens
- Voyage-3-large:MTEB 67.8、BEIR 58.3、1024/2048/4096维、32k tokens、$0.18/M tokens
- Voyage-3:MTEB 64.2、1024维、32k tokens、$0.06/M tokens(性价比最优级)
- Cohere Embed v4:MTEB 68.1、JMTEB 77.5、1536维、支持128k tokens、$0.12/M tokens、多模态
- BGE-M3(BAAI):MTEB 59.4、JMTEB 73.1、1024维、8192 tokens、OSS (MIT)
- Jina Embeddings v3:MTEB 65.5、JMTEB 74.8、1024维(Matryoshka)、8192 tokens、OSS + API
单看得分,Embed-4与Voyage-3-large并列顶端,但「生产环境实际选用哪款」由以下4个维度决定:(1)领域微调可行性;(2)延迟与维度;(3)多语言/日语性能;(4)数据跨境合规。
日语性能:JMTEB是关键
JMTEB是东京工业大学Okazaki研究室等机构整备的日语版MTEB,综合评估Retrieval、STS、Classification、Clustering、Reranking。在英语MTEB中排名靠前的模型,日语排名可能大幅变动。
- 年4月JMTEB的趋势:
- 日语Retrieval子集中:Embed-4 > Voyage-3-large > Cohere Embed v4 > BGE-M3 > text-embedding-3-large
- STS(句子相似度)中,Cohere Embed v4位居首位,对日语敬语和表达变体的处理能力较强
- 多语言跨越(英日语义搜索)中,BGE-M3表现出乎意料地出色,与Voyage-3-large相差无几
在国内金融和公共领域禁止数据跨境的项目中,OpenAI/Voyage/Cohere无法使用,唯一的出路是自托管BGE-M3。2026年使用Llama.cpp和vLLM可在1台H100上以GGUF/AWQ量化版BGE-M3处理2000 req/s,已成为本地部署RAG的事实标准嵌入模型。
Matryoshka Representation:对维度进行层次化
Voyage-3、Jina v3、OpenAI text-embedding-3-*共同采用的2026年重要技术是Matryoshka Representation Learning(MRL)。这是一种在训练时将损失函数分层,使从单个模型得到的向量的前k维也能充分保留语义的方法。
传统方式是「3072维精度高但重,削减至256维时精度崩溃」,而MRL对应模型则可以实现「以3072维建立索引,first-stage检索用256维快速完成,second-stage用3072维全量重新排序」的两段式方法。
```python from openai import OpenAI import numpy as np
client = OpenAI() resp = client.embeddings.create( model="text-embedding-3-large", input=texts, dimensions=256, # MRL仅返回前256维 ) short_vecs = np.array([d.embedding for d in resp.data])
# 全量3072维版本另行获取用于全量重排序 resp_full = client.embeddings.create( model="text-embedding-3-large", input=texts, ) full_vecs = np.array([d.embedding for d in resp_full.data]) ```
- 亿个向量以3072维存储,原始数据就高达1.2TB。通过MRL裁剪至256维可降至100GB,HNSW构建和常驻内存均变得可行。与Qdrant/Weaviate的多向量功能结合使用效果更为强大。
ColBERT与Late Interaction
- 年,不依赖单一dense向量、而是在生产RAG中实现Late Interaction(ColBERT系列)的案例增多。ColBERT不将文档压缩为1个向量,而是以token粒度的向量集合保存,通过与查询侧token向量进行MaxSim运算来计算相似度。
- 长文档中细节语义的保留能力远超单一dense向量
- 存储成本是dense的10至50倍(取决于token数量)
- Qdrant 1.12、Vespa、Weaviate 1.28已原生支持多向量
Jina-ColBERT-v2和ColBERTv2(Stanford)在MTEB非对称任务中Retrieval性能接近dense顶级模型,且在偏离训练数据的领域中也不容易崩溃。对于长篇合同、论文、源代码等「单一向量难以容纳」的领域尤为有效。
```python from ragatouille import RAGPretrainedModel
rag = RAGPretrainedModel.from_pretrained("jinaai/jina-colbert-v2") rag.index( collection=documents, index_name="contracts", max_document_length=512, split_documents=True, ) hits = rag.search("与液晶面板保修期相关的条款", k=20) ```
领域专属微调
通用嵌入模型覆盖面广、整体表现不错,但在专业领域(医疗、法律、企业内部术语)中必然落后于专属模型。2026年,基于对比学习的微调工具链已能在数小时内完成训练。
- sentence-transformers 3.x:通过`SentenceTransformerTrainer`进行带LoRA的微调
- Voyage Fine-tuning API:从企业自有领域的查询/文档对,2小时内生成专属模型
- Cohere Custom Models:支持对Rerank和Embed同时进行领域学习
KGA的医疗类项目中,对BGE-M3使用5万对内部Q&A进行微调,在JMTEB医疗Retrieval子集中提升了8个百分点,在内部测试集上nDCG@10提升了14个百分点。能够摆脱对通用最强模型的依赖,意义重大。
选型规则
- 领域广泛、以英语为主、可接受API → Voyage-3-large
- 以日语为主、需要长文128k → Cohere Embed v4
- 必须本地部署、MIT许可证 → BGE-M3
- 性价比优先 → Voyage-3或text-embedding-3-small
- 图像+文本融合检索 → Cohere Embed v4(多模态)
- 长文语义细节最优先 → Jina-ColBERT-v2(Late Interaction)
嵌入并非「选定一个模型了事」,而是first-stage dense + second-stage Late Interaction + 领域reranker的分层设计,这才是2026年的生产形态。