Embedding模型对比:OpenAI、Cohere、开源哪个好
🩺 摘要
做RAG需要选Embedding模型,但OpenAI的贵、Cohere的有限额、开源的不知道效果。怎么选?
📝 详情
什么是Embedding模型
Embedding模型把文本变成向量(一串数字),RAG用它搜索相似文档。选对Embedding模型直接影响RAG效果。
代码实测:不同Embedding的效果差距
from sentence_transformers import SentenceTransformer
import numpy as np
query = "怎么办理退货"
docs = ["退货政策是30天内免费退货", "新品上架:iPhone15已到货", "满200元包邮"]
model = SentenceTransformer("BAAI/bge-large-zh-v1.5")
query_vec = model.encode(query)
doc_vecs = model.encode(docs)
scores = np.dot(doc_vecs, query_vec) / (
np.linalg.norm(doc_vecs, axis=1) * np.linalg.norm(query_vec)
)
for doc, score in zip(docs, scores):
print(f"{score:.3f} -> {doc}")
# 0.892 -> 退货政策...(正确命中)
# 0.451 -> 新品上架(无关,分数低)
# 0.523 -> 运费政策(部分相关)
主流方案对比
| 模型 | 维度 | 价格 | 中文MTEB |
|---|---|---|---|
| text-embedding-3-small | 1536 | $0.02/百万Token | 62.1 |
| text-embedding-3-large | 3072 | $0.13/百万Token | 64.5 |
| BAAI/bge-large-zh-v1.5 | 1024 | 免费开源 | 65.8 |
| shibing624/text2vec | 768 | 免费开源 | 63.2 |
| Cohere embed-multilingual-v3 | 1024 | $0.10/百万Token | 63.9 |
推荐
中文场景:BAAI/bge-large-zh-v1.5(开源免费、中文MTEB最高) 英文场景:OpenAI text-embedding-3-small(性价比最高) 多语言:Cohere embed-multilingual-v3(覆盖最广)
注意:embedding维度高不等于效果好,关键看对应语言的评测分数。
💬 评论 (0)