本文是 RAG 系列的第 4 篇。前情回顾:第 2 篇用百行代码跑通了 RAG,第 3 篇讲透了文本分块。

上一篇,我们把资料切成了漂亮的块。但块切得再好,如果向量模型不行——给每个块标注的"语义坐标"本身就标错了位置——检索照样抓瞎。

Embedding 模型是 RAG 的眼睛。生成端的大模型再聪明,眼睛看错了资料,嘴上答得再流畅也是错的。

很多人调 RAG 效果时只盯着 Prompt 和大模型换来换去,其实:答得不准,问题常常不在"嘴"(生成),而在"眼"(检索)。

今天这篇,专门讲中文场景下这双"眼睛"怎么选。

一、30 秒复习 + 为什么"中文"要单独讲

复习一句:Embedding 把文字变成"语义坐标",意思越近的文本坐标越近;检索就是找坐标最近的块。坐标系的质量,就是 Embedding 模型的质量。

那为什么中文要专门挑?三个原因:

一是很多国际明星模型以英文语料为主,中文成绩参差不齐;二是中文的分词、成语、一词多义、近义表达,需要充足的中文语料训练才能捕捉到位;三是国内技术文档普遍中英夹杂,对模型的双语对齐能力有额外要求。

二、榜单怎么看:认识 C-MTEB

比较 Embedding 模型,业界最通行的标尺是 MTEB(海量文本嵌入基准)及其中文部分 C-MTEB:用几十个数据集,从检索(Retrieval)、语义相似度、分类、重排等多个任务维度给模型打分,结果汇总成公开排行榜。

但看榜之前,先记住两条提醒:

提醒一:做 RAG,重点看 Retrieval 单项,而不是总均分。总分是十八般武艺的平均值,而你只关心它"找资料"找得准不准。

提醒二:榜首常换人,别把榜单当圣旨。这几年,百川、合合 acge、浪潮 Yuan、腾讯 Conan 等模型都先后登顶过 C-MTEB——"第一名"的宝座几个月就易主一次。而且公开榜单存在被"应试训练"的问题:榜上高分,未必等于在你的数据上好用。

正确姿势:榜单用来缩小候选范围,最终排名用自己的数据测出来(第七节给你 20 分钟自测法)。

三、主流选手盘点

以下是截至写作时(2026 年中)的格局,动手前建议顺手查一眼最新榜单。

开源本地派:免费、可控、数据不出门

BGE 家族(智源 BAAI)——中文 RAG 的"国民款"

bge-small / base / large-zh-v1.5 是流传最广的中文经典三兄弟,我们系列 demo 用的就是 small 档。成熟稳定、资料最多,缺点是上下文只有 512 token。

bge-m3 则是家族里的多面手:支持 100 多种语言、8192 token 长上下文,还能同时输出稠密向量、稀疏向量、多向量三种检索表示(“一模三用”)。如今大量生产环境把它当默认底座,常与 bge-reranker 重排器搭配——这对组合我们下一篇细讲。

Qwen3-Embedding(阿里)——新生代旗舰

基于 Qwen3 底座训练,提供 0.6B / 4B / 8B 三档,多语言能力强,支持 32K 长上下文、查询侧任务指令和灵活的向量维度。

其中 0.6B 档在 8GB 显存的消费级设备上就能跑,效果/资源比非常出色,是当下新项目的热门默认选项;8B 档则代表开源效果的天花板档位,需要一块像样的显卡。

GTE 家族(阿里)

gte-large-zh 等中文档位实力在线;基于大模型的 gte-Qwen2-7B-instruct 曾长期占据榜单前列,效果强悍但资源要求高。

其他值得知道的名字

腾讯 Conan、合合 acge、浪潮 Yuan、商汤 piccolo——都登顶过 C-MTEB,侧面印证了"榜首常换人";M3E 和 text2vec 是更早期的轻量经典,老教程里随处可见,如今一般不再作为新项目首选;网易有道的 bce-embedding 主打中英双语,配套自家重排器,在 RAG 圈口碑实用。

API 闭源派:省心,但数据要出门

OpenAI text-embedding-3、通义千问、智谱、百度等厂商都提供 Embedding API。

优点是零部署、零运维、开箱即用;代价是数据要发给第三方(合规敏感场景直接出局)、按量持续付费、没法离线运行。

四、一张速览表

(体积为约数,向量维度各有不同且部分可调,均以模型主页为准)

模型体积(约)上下文长度一句话点评
bge-small-zh-v1.5100MB512 token轻量常青款,本系列 demo 同款
bge-large-zh-v1.51.3GB512 token中文经典强档
bge-m32.2GB8192 token多语言 + 长文本 + 三种检索一体,生产常用底座
Qwen3-Embedding-0.6B1.2GB32K token新生代性价比之王,消费级设备可跑
Qwen3-Embedding-8B16GB(FP16)32K token开源效果天花板档,需专业显卡
gte-Qwen2-7B-instruct14GB+32K token曾经的榜单霸主,资源要求高

五、选型看五个维度

1. 效果:看 C-MTEB 的 Retrieval 单项圈出候选,再用自己的数据实测。

2. 资源与速度:建库时每个块都要算一遍向量,查询时每个问题都要实时算。文档量一大,向量模型的速度就是真金白银和用户体验。

3. 长度上限:这一条直接和上一篇的 chunk_size 联动——512 token 的模型,别配五百字以上的大块,超出部分会被静默截断,你以为存进去了,模型压根没看见。想用大块,就选 bge-m3、Qwen3-Embedding 这类长上下文模型。

4. 部署与合规:涉密数据必须本地跑;不在乎数据出门、又不想碰运维,API 更省心。

5. 开源协议:BGE 系列、Qwen3-Embedding 等都采用宽松的开源协议,但商用前请以模型主页的 License 说明为准。

六、换模型的三个坑

坑一(最重要):换 Embedding 模型,必须全量重建索引。

不同模型的向量空间互不相通,连维度都可能不一样。库里存的是 A 模型的坐标,查询用 B 模型算坐标,等于两个人拿着不同城市的地图对暗号。对应到我们的 demo:删掉 chroma_db 文件夹,重新建库。

坑二:查询指令 / 前缀,要按说明书来。

有些模型要求给"查询"加特定前缀才能发挥全力——比如 BGE v1 时代著名的"为这个句子生成表示以用于检索相关文章:"(v1.5 已弱化这一要求);Qwen3-Embedding 则支持在查询侧附带任务指令,用对了还能涨分。

麻烦在于:前缀用错了不报错,只是效果悄悄打折,排查起来极其头疼。换模型时,务必去模型主页看一眼查询侧和文档侧分别该怎么处理。

坑三:维度不是越大越好。

维度翻倍,索引体积和内存占用大致翻倍,检索耗时也上涨——百万块级别时差异非常明显。新一代模型(如 Qwen3-Embedding、OpenAI v3)普遍支持"套娃维度"(MRL),可以按需截短向量,效果损失很小,值得利用。

七、20 分钟,用自己的数据一锤定音

比刷三天榜单更有用的,是这个 20 分钟的小评测:

第一步,收集 20~50 个真实用户会问的问题;第二步,人工标注每个问题"正确答案在哪个块/哪份文档";第三步,给每个候选模型各建一份索引;第四步,跑检索,算 Hit@3——前 3 个检索结果里,是否包含正确的块。

核心逻辑十行代码就够:

def hit_at_k(questions, truths, k=3):
    hit = 0
    for q, truth_ids in zip(questions, truths):
        got = retrieve_ids(q, top_k=k)   # 返回检索到的块 ID 列表
        hit += any(t in got for t in truth_ids)
    return hit / len(questions)

哪个模型 Hit@3 高,就用哪个——在你的数据上,这个数字比任何榜单都权威。

(这只是检索环节的"体检";整套 RAG 的系统性评估——答案质量、忠实度怎么量化——后面会用专门一篇来讲。)

八、场景速查

  • 学习练手 / 轻量应用:bge-small 或 bge-base-zh-v1.5(demo 同款,开箱即用);
  • 中文为主的生产起步:bge-large-zh-v1.5 或 Qwen3-Embedding-0.6B;
  • 中英混合、多语言、想配大块:bge-m3 或 Qwen3-Embedding;
  • 追求开源效果上限、有专业显卡:Qwen3-Embedding-8B、gte-Qwen 档(务必自测);
  • 不想碰部署:OpenAI v3 或国产大厂 API(先过数据合规这一关)。

写在最后

回顾今天的要点:

  1. Embedding 是 RAG 的眼睛,检索不准,生成端再强也白搭;
  2. 看榜先看 Retrieval 单项,榜单只当候选名单,自测定生死
  3. 长度上限要和 chunk_size 匹配,超长会被静默截断
  4. 换模型必须全量重建索引,查询前缀按说明书来。

下期预告:《检索又快又准的秘密:混合检索与重排序》——纯向量检索会漏掉"关键词明明对上了"的内容,怎么办?bge-m3 的稀疏向量和 Reranker 重排器正式登场。

如果这篇文章对你有帮助,欢迎点赞、在看、转发三连。关注本号,不错过下一篇。

Logo

欢迎加入DeepSeek 技术社区。在这里,你可以找到志同道合的朋友,共同探索AI技术的奥秘。

更多推荐