做 RAG、语义搜索、知识库召回时,很多人一开始会纠结同一个问题:向量模型这么多,到底该选哪一个。
常见模型大致可以分成两组。一组是通用文本向量,覆盖中英文和多语言任务;另一组更适合中文场景,重点看中文检索、中文问答和中文知识库效果。
如果先给一个很短的结论,可以这样看:
- 想省事、直接用 API:
text-embedding-3-small或text-embedding-3-large - 想做中文检索,且希望开源可自部署:
bge-base-zh-v1.5、bge-m3、gte-large-zh - 想兼顾多语言:
multilingual-e5-base、multilingual-e5-large、jina-embeddings-v3 - 想在中文场景里压成本:
bge-small-zh-v1.5、gte-base-zh
一、先按类型看这些模型
1. OpenAI 系列
text-embedding-3-smalltext-embedding-3-large
这类模型的特点是调用简单、稳定,适合直接接 API 做检索、RAG、分类和相似度匹配。它们的优势不在“某一个中文榜单分数特别高”,而在整体体验完整:接入门槛低、效果稳定、工程成本也低。
如果团队不想自己托管模型、不想维护推理服务,OpenAI 这类方案通常最省时间。
2. BGE 系列
BAAI/bge-small-zh-v1.5BAAI/bge-base-zh-v1.5bge-m3
BGE 是中文检索里很常见的一条线。bge-small-zh-v1.5 和 bge-base-zh-v1.5 更偏中文单语任务,适合中文语义搜索、知识库召回、FAQ 匹配。bge-m3 则更通用,能覆盖多语言、多粒度和更复杂的检索场景。
如果你的数据主要是中文文本,BGE 往往是最容易进入候选名单的一组。
3. E5 系列
intfloat/multilingual-e5-basemultilingual-e5-large
E5 系列的特点是多语言能力比较均衡,适合中英混合、跨语种检索、国际化内容库。它不是只盯中文,而是更强调“不同语言都能放到一个统一检索体系里”。
如果你的语料不是纯中文,而是中文、英文、日文甚至更多语言混在一起,E5 通常比中文专用模型更稳。
4. GTE 系列
Alibaba-NLP/gte-base-zhgte-large-zh
GTE 在中文任务里也很常见,定位和 BGE 有点接近,都是中文检索的实用型选手。它的特点通常是比较平衡,没有特别复杂的使用门槛,适合做中文知识库、站内搜索和企业内部文档召回。
如果你想在中文开源模型里多做一组对照,GTE 很值得一起评测。
5. Jina Embeddings
jina-embeddings-v3
Jina 这一类更偏通用和现代工程场景,常见于多语言检索、长文本、网页内容处理等任务。它经常出现在“一个模型覆盖更多任务形态”的讨论里,适合希望统一 embedding 层的团队。
如果你的内容来源比较杂,既有网页、文档,也有多语言文本,Jina 往往是一个值得测试的备选。
二、中文场景里,哪些模型更常用
如果把范围收窄到中文场景,常见候选基本就是这些:
bge-small-zh-v1.5bge-base-zh-v1.5bge-m3gte-base-zhgte-large-zhmultilingual-e5-basemultilingual-e5-large
这几类里,最典型的分法其实不是“谁绝对更强”,而是下面这三个问题:
- 你的数据是不是以中文为主
- 你是不是需要多语言
- 你更在意效果、成本,还是部署方便
三、把这些模型放在一起看
1. 如果只看中文效果
纯中文知识库、中文问答、中文文档召回,一般优先看 BGE 和 GTE。
bge-small-zh-v1.5:更轻,适合成本敏感场景bge-base-zh-v1.5:通常是中文场景里更均衡的一档gte-base-zh:和轻量 BGE 类似,适合先做基线gte-large-zh:更适合追求召回质量的场景bge-m3:适合希望把中文检索和更复杂能力放到一起考虑的团队
如果语料几乎全是中文,E5 虽然也能用,但很多时候不会是第一优先。
2. 如果需要多语言
这时优先级会明显变化。
multilingual-e5-base和multilingual-e5-large更适合多语言统一检索jina-embeddings-v3也适合多语言和通用文本任务bge-m3比传统中文专用模型更适合扩展到多语言text-embedding-3-small和text-embedding-3-large适合想直接上 API 的场景
如果你的库里同时有中文、英文、产品文档、网页文案和用户问题,多语言模型会比中文专用模型省掉很多后续改造成本。
3. 如果要控制推理和存储成本
轻量模型更有优势。
bge-small-zh-v1.5gte-base-zhmultilingual-e5-basetext-embedding-3-small
这类模型通常更适合:
- 文档量大
- 更新频繁
- 需要批量向量化
- 对延迟和成本比较敏感
如果数据规模很大,embedding 维度、推理速度、索引占用都会直接影响总成本,所以“先上小模型做基线”通常是更稳的做法。
4. 如果优先追求上限
更大的模型通常更适合复杂检索或高质量召回,例如:
text-embedding-3-largemultilingual-e5-largegte-large-zhbge-base-zh-v1.5bge-m3
但这里要注意,模型越大不代表线上体验一定越好。很多项目最后的瓶颈不是模型本身,而是切分策略、召回条数、重排、数据清洗和评测方式。
四、每个模型更适合什么任务
| 模型 | 更适合的场景 | 简单判断 |
|---|---|---|
text-embedding-3-small |
通用检索、RAG、快速接入 | API 省事,成本友好 |
text-embedding-3-large |
更重视质量的通用检索 | 效果优先,工程最省心 |
bge-small-zh-v1.5 |
中文轻量检索 | 中文常用入门款 |
bge-base-zh-v1.5 |
中文知识库、FAQ、语义搜索 | 中文场景很均衡 |
bge-m3 |
中文为主但希望兼顾更复杂检索 | 扩展性更强 |
multilingual-e5-base |
多语言基础检索 | 国际化项目常用 |
multilingual-e5-large |
多语言高质量召回 | 更偏效果导向 |
gte-base-zh |
中文轻量召回 | 适合先做基线 |
gte-large-zh |
中文质量优先场景 | 可作为 BGE 对照组 |
jina-embeddings-v3 |
多语言、网页、通用文本任务 | 统一 embedding 层时值得测 |
五、实际选型时可以怎么决策
如果你只是要落地,而不是写论文,选型顺序可以简单一点:
场景一:中文知识库
优先测试这几组:
bge-base-zh-v1.5gte-large-zhbge-small-zh-v1.5
如果预算紧,先从小模型开始;如果更重视召回质量,再往更大的模型试。
场景二:中英混合知识库
优先测试:
multilingual-e5-basemultilingual-e5-largetext-embedding-3-smalltext-embedding-3-large
如果不想自部署,OpenAI 会更直接;如果要自己托管,E5 更常见。
场景三:中文为主,但未来可能扩到多语言
优先测试:
bge-m3multilingual-e5-basejina-embeddings-v3
这类场景最怕的是一开始只看中文,后面又要重做整个向量库。
六、最后怎么选,关键不是“榜单第一”
向量模型选型里,最容易踩的坑就是只看公开分数,然后直接上线。
更靠谱的方式通常是:
- 先挑 2 到 4 个候选模型
- 用自己的真实数据做 embedding
- 跑一轮召回评测
- 再结合成本、延迟、部署方式做决定
因为真正决定结果的,往往不是模型名本身,而是模型和你的语料、分块策略、查询形式到底合不合。
总结
如果只想记住一版实用结论,可以这样:
- 中文优先:先看
bge-base-zh-v1.5、gte-large-zh - 成本优先:先看
bge-small-zh-v1.5、gte-base-zh、text-embedding-3-small - 多语言优先:先看
multilingual-e5-base、multilingual-e5-large、jina-embeddings-v3 - 直接上 API:先看
text-embedding-3-small、text-embedding-3-large - 想兼顾中文和后续扩展:先看
bge-m3
没有一个模型适合所有项目,但大多数项目都可以先从这几组里很快筛出第一批候选。