粉丝337获赞464

面试官问你,你们 r a g 召回不准的时候是怎么解决的?你要是回答,那就换个更好的向量模型呗。面试官心里立马就凉了半截。因为召回不准这件事,九成的问题不是向量模型不行,而是你只用了一路解锁。 真实项目里,光靠向量解锁,遇到编号错误码、专有名词这种,他经常给你召回一堆意思相近但根本不对的东西。这道题考的就是你会不会用混合解锁加重排把召回救回来。我是小哲,点赞收藏加关注,我们马上开始!想系统学习 ag 的 开发的同学可以查看橱窗哦! 先说这题在考什么,他表面问你召回不准怎么办,实际是在考你懂不懂。解锁的两种能力,其实是互补的。 向量解锁,也就是语义解锁,他强在理解意思,你问怎么退款,他能找到跟退货流程相关的段落,哪怕一个字都没重合。 但他有个死穴,碰到那些必须字面精确匹配的东西,比如产品型号、订单号、错误码、法律条款里的专有词,他反而不灵,因为这些 token 很 稀有,语义空间里区分度低,他容易召回一堆行进意进。但其实答非所问的内容,面试官想看的就是你知不知道单路召回的天生短板,以及怎么补。 一句话给你总答案,召回不准的标准解法是混合解锁加重排这套组合拳。混合解锁就是让关键词解锁和向量解锁同时上,一个负责字面精确,一个负责语意理解。把两边的结果融合成一个后选集,先保证该找的都被捞回来。 重排就是在这个后选集上再用一个更精细的模型重新打分排序,把最相关的顶到最前面,保证未给大模型的是真正对的。一个管召回够不够全,一个管排序准不准,这就是现在生产环境里最主流的绞索架构。 先说混合绞索怎么落地,你要跑两路,一路是传统的关键词绞索,业界经典的算法是 b m 二五,它做的就是字面匹配谁的关键词命中的多,命中的稀有,谁排前面,专门解决那些精确匹配的场景。 另一路是向量解锁,否则语义相似,两路各自召回一批。问题来了,这两个分数体系根本不在一个量纲上,你没法直接加权,平均硬加就乱套。 工程上通用的做法是用一种基于排名的融合方法,他不看原始分数,只看每一路里的排名位次,谁在两边都排的靠前,融合后就靠前,这样就绕开了分数不兼容的坑,把两路结果干净的合成一个统一的后选列表。这一步的目标只有一个,提高召回率,宁可先多捞点,也别把正确答案漏在门外。 再说重排这一步,这才是精度提升的关键。前面混合检测,为了不漏,会捞回比较多的后选,比如几十条里面难免混着一些看着相关其实没用的。 这时候上一个重排模型通常是一个交叉编码器,他跟前面的检测不一样,他会把你的问题和每一个后选片段成对的放进模型里,一起做深度比对,给出一个非常精准的相关度分数。他算的慢,但准,所以只用来处理那几十个后选,不用扫全库,重排完只把最靠前的三五条真正喂给大模型。 你可以这么理解,混合解锁是海选,尽量别漏人。重排是精选,把最好的挑出来。业界的共识是,一个 r a g 系统里大部分的精度提升恰恰来自重排这一步,很多人漏掉它,召回质量自然上不去, 那线上还有什么坑?顺带讲两个,第一,别指望向量模型一招通吃,凡是涉及编号、代码、版本号、专有名词的场景,关键词解锁这一路千万不能省,它才是精确匹配的兜底。 第二,重排虽好,但有延迟和成本,所以候选级别给太大,几十条足够给,几百条上去又慢又贵,还不一定更准。第三,这一整套到底有没有效,不能靠感觉得见评估,拿真实问题去测召回命中率,看正确片段有没有被召回,有没有被排到前面,用数据说话,而不是拍脑袋说我们上了重排应该好了。 给你一个面试回答模板。第一句先点元音,召回不准,大多不是向量模型不行,而是单路召回有天生短板,语义检测搞不定精确匹配。第二句给方案我会上混合检测加重排,关键词检测管字面精确,向量检测管语义理解,两路并行。 第三句讲融合,两路分数量纲不同,用基于排名的融合方法合并,先保召回不漏。第四句讲重排,再用交叉编码器把问题和后选成对精算,重新排序,只留最相关的几条位给模型,大部分精度提升就来自这一步。 最后补一句,整套要靠离线评估,看召回命中和排序质量来验证。这么讲下来,面试官就知道你是真搭过绞索练路的。 其实大模型面试最难的不是背概念,而是每一道题你都要知道面试官真正想考什么,应该回答到什么深度,哪些地方会继续追问。 所以我把 agent, r a g m c p do agent 这些高频工程化面试题全部整理成了一套系统课程,不是带你被 prompt, 而是带你建立真正的大模型工程思维。如果你最近准备 ai 岗位面试,或者想转 agent 的 开发,可以去橱窗看看。