embedding选错召回全废:嵌入模型怎么选
先把结论给你:RAG里如果召回不准、答非所问,先别怪大模型,八成是embedding选错了。这篇讲为什么,以及怎么选。
为什么embedding这么关键。 RAG的流程是:用户问题→转成向量→在知识库里找最近的几个向量块→把这几块喂给大模型生成答案。注意,"找最近"这一步完全由embedding决定。embedding就是把文字压成一串数字(向量),语义相近的文字,向量距离就近。如果这个模型对你的领域语义理解得糙,"社保缴费基数"和"医保报销比例"在它眼里挨得很近,那召回就会把不相关的块捞上来。后面大模型再强,喂的料是错的,答案必然废。这就是"垃圾进垃圾出"。
怎么选,看四点:
-
语种匹配最优先。 中文场景一定用中文或中英双语训练充分的embedding。拿纯英文语料为主训出来的模型套中文,向量空间是歪的,召回准确率能差出一大截。这是最常见的坑。
-
领域贴近度。 通用embedding在通用问答上够用,但你要是做法律、医疗、政务这种术语密集的领域,得测一下专业词的区分度。有些通用模型把领域近义术语全挤成一团,区分不开。
-
向量维度别盲目求高。 维度高不等于效果好,反而更占存储、检索更慢。我实测过同一批文档,某个768维的在我们场景里召回比某个1536维的还略好,又省一半空间。维度是工程权衡,不是越大越牛。
-
最大输入长度。 有些embedding一次只吃512个token,你的文档块切太长会被截断,尾巴丢了。切片粒度得跟它的输入上限对齐。
最实在的一招:自己拿真实问题测。 别信榜单。我攒了五十条真实用户问法,配上"理想该召回哪块",换不同embedding跑一遍,看Top3命中率。换embedding前后,我们这个库的命中率从七成出头提到九成,就靠换对了一个模型,prompt一个字没改。说实话这五十条测试集是手工标的,挺枯燥,但这步省不得——没有评测基准,选型就是凭感觉。
我是在一个零代码就能配智能体、知识库里能切换embedding的平台上做的对比,换嵌入模型是下拉选一下、重建索引就行,不用改代码。它能多源切换embedding这点确实方便测,但它不会告诉你哪个最适合你的数据——选型这事永远得你自己拿数据说话。
收个尾:embedding是RAG的地基。地基歪了,上面盖多高都白搭。选之前,先攒一套你自己的真实评测集。
(嵌入和生成我都走的讯飞 MaaS,现成多模型按需调,没自建。)
更多推荐



所有评论(0)