在RAG系统中,如何优化检索模块以提高生成答案的相关性和准确性?
解读
面试官想验证三件事:
- 你是否能把“检索”这一单点问题放到整个RAG闭环里看,而不是只调参数;
- 你是否能用“产品经理语言”把技术动作翻译成业务收益(降低幻觉、提升首答准确率、减少用户追问轮次);
- 你是否熟悉国内真实落地约束:中文分词歧义、知识更新频率高、算力配额有限、数据合规要先审后用。
回答时要体现“业务指标→技术方案→数据闭环→合规兜底”四段式,让面试官听到你既能跟算法对齐,也能跟业务老板讲ROI。
知识点
- 检索相关性指标:Recall@K、MRR、nDCG;生成侧指标:BLEU、BERTScore、幻觉率、人工首答满意度。
- 中文语义检索常见坑:同义词、实体歧义(“苹果”公司/水果)、新词热词(“挖呀挖”)、口语化表达。
- 向量模型选型:中文BERT系列(BERT-wwm、RoBERTa-zh)、双语对称模型(LUKE、ERNIE)、轻量级方案(Text2Vec-base-chinese)。
- 索引策略:HNSW vs. IVF-PQ 的召回-延迟-内存三角权衡;国内云厂商(阿里云 PAI-ElasticSearch、腾讯云 TI-VectorDB、百度 VectorDB)在 Milvus 上的托管差异。
- 数据合规:生成式算法备案要求知识库先审后用;敏感词过滤需在检索阶段前置,避免“先召回后过滤”导致合规空档。
- 闭环迭代:线上用户点击/点赞行为 → 回流标注 → 难例挖掘 → 周级微调,形成“数据飞轮”。
答案
“优化RAG检索模块,我会按‘指标定义→分层召回→精排去噪→合规兜底→数据闭环’五步推进,确保每一步都能落到可量化的业务收益。
第一步,对齐指标。与业务方锁定核心OKR:将用户首答满意度从72%提到85%,同时将幻觉率从18%压到8%以内。拆解到检索侧,对应Recall@5≥92%、MRR≥0.85,生成侧BERTScore≥0.82。
第二步,分层召回,降低漏召。
① 关键词层:用阿里开放搜索的电商同义词库+自研行业词林,解决中文同义/缩写问题;
② 向量层:选用ERNIE 3.0-Base + SimCSE对比学习,在业务语料上继续预训练,让向量空间对齐用户口语;
③ 热词层:对近7天搜索日志做TF-IDF增量,实时插入热词倒排,保证“淄博烧烤”这类突发词0.5小时内可召回。
三层并行召回后取Top 200,线上实测Recall@20提升11个百分点。
第三步,精排去噪,提升相关性。
① 训练Cross-Encoder精排模型,负样本用“用户点踩”+“规则难例(含时间、实体冲突)”,损失函数加权重置,使幻觉样本权重×3;
② 引入“时间衰减”特征,知识库文档按“创建时间”做指数衰减,避免2021年旧政策被排到Top1;
③ 加入“敏感分”特征,把合规审核结果(通过/拒绝/需复核)映射为0~1分,拒绝样本直接压到队尾,既满足监管又减少用户投诉。
精排后Top 5的nDCG从0.78提到0.91,幻觉率下降6%。
第四步,合规兜底。
① 检索侧前置“敏感实体库”,对涉政、涉医、金融等类目先过滤再召回,避免“先召回后删除”导致空结果;
② 对医疗、法律等高敏场景,把检索范围锁在“白名单知识库”,白名单每月由法务+业务双审;
③ 上线灰度开关,一旦监管抽检异常,可在5分钟内切换至“保守索引”,保证线上0事故。
第五步,数据闭环。
① 前端埋点“是否解决我的问题”二选一,日均回收5k条反馈;
② 每周跑主动学习,把用户点踩且置信度>0.8的样本标为“困难负例”,回流到标注平台;
③ 用“小批量+大学习率”策略周级微调向量模型,训练数据控制在10万条以内,2小时完成,节省40%算力;
④ 每两周A/B测试,若Recall@5提升<0.5%且幻觉率不降,则暂停迭代,防止过拟合。
落地3个月后,首答满意度提升到86.4%,幻觉率降到7.2%,单次调用成本(含向量检索+生成)维持在前期的1.05倍,符合财务预算。整个方案既兼顾了算法效果,也满足了国内数据合规与成本约束。”
拓展思考
- 如果业务场景换成“内部代码问答”,知识库更新频率从“天”变成“分钟”,如何设计增量向量索引,同时保证Git权限隔离?
- 当GPU配额被砍30%,如何把两阶段“召回+精排”压缩成“一级近似+轻量重排”,在Recall下降不超过2%的前提下节省算力?
- 未来要做多模态RAG(PDF、图表、视频帧),检索侧需要把文本向量与图像向量对齐,你会先推动标注哪些“图文对”数据,如何评估ROI?