检索做了哪些优化,如何验证提升?

考查重点:错误驱动优化与多维对照。从漏召/错排选改动,固定集与其他配置做前后比较,分别看证据覆盖、排序、答案、时延与费用

本题目录

参考答案

核心回答

检索优化要从失败样本出发,说明原来漏掉或排错什么、具体改了哪一层,以及同条件下哪些指标变好。可以沿解析与切分、查询表达、召回、排序和上下文逐层检查,避免同时换一堆组件后只报一个总正确率。

以下以运维知识库为参考:编号查询漏证据时补 BM25;相似型号或旧版本混入时补范围过滤;小块缺前置条件时调整结构切分或补父段;正确证据已在候选中却排后时比较 Rerank。验证时固定文档与问题集、生成配置和预算,用消融区分各项贡献,再检查最终答案、引用、延迟和成本。具体效果以项目的实际对照记录说明。

先建立基线与失败分类

基线可以是当前的单路向量检索。保存每题的问题、标准证据位置、候选名次、最终上下文和答案,按阶段归因:原文没解析出来、证据被切断、查询表达不匹配、索引版本错、召回漏掉、排序淘汰,或者生成没有正确使用。

“检索到了同主题材料”不等于找到了可支持答案的证据。例如问某型号错误码,返回同类设备通用手册,语义很像但不能回答。评测集要包含这种难负例,也要覆盖无答案、跨段条件和版本差异。

改动与原因怎样对应

文档与块。 标题、表头和限定条件缺失时,先修解析和结构,再比较块大小、重叠或父子扩展。保留原文标识、版本与位置,更新时清理旧记录。相关方法见如何评估分块效果并进行优化?。

查询与召回。 精确编号、产品名和字段查询可以增加词法检索;同义表达依靠合适的向量模型,并按需补查询改写。两路融合前统一标识和去重,版本、租户与资源范围由可信条件过滤。改写不得擅自改变用户型号、时间和否定要求。

排序与上下文。 正确证据已进入候选,但位置靠后,可以测试重排;命中块缺背景时再做受控扩展。粗召回、重排与上下文分别设预算,重复和无关内容不直接全部交给模型。若候选根本没有证据,先改召回而不是只换重排模型。

怎样证明收益来自这些改动

固定留出集与原文版本,分别比较向量基线、增加词法召回、增加融合、增加重排或扩展等组合。每步同时记录新增命中与退化样本,必要时移除某个模块复测,判断它是否仍有独立价值。

指标按对象说明:候选层看所需证据的 Recall@K,排序层看 MRR 或 nDCG,最终上下文看完整证据覆盖、噪声和重复,答案层看事实、条件与引用。比较不同块大小时,还要控制上下文 Token 预算,不能只固定块数。

一个问题需要多处证据时,单条命中率不足以代表可回答率。使用模型评分检查支持关系时,先与人工抽样对齐,保留判断不一致的案例。调参集与留出集分开,避免参数只适合已经反复查看的问题。

项目结果怎样讲清楚

说明指标、分母、样本范围和对照条件。例如一个纯说明性的算例:相同问题集上,某项指标从 60% 到 72%,是增加 12 个百分点,相对提高 20%;两种表述不能混用。这不是本项目实测结果。

除了质量,还要给出相同负载下的检索与端到端延迟、超时、Token 和成本。多召回很多内容再获得一点正确率,是否值得,要结合延迟预算和实际任务判断;没有收益的步骤也可以移除。

最后保留新索引或配置版本与回退办法,在适当流量下观察线上问题分布。离线留出集提供可比依据,线上仍需检查新增文档、权限变更与真实查询变化。

对应教程

  • RAG检索增强生成:第1.3.4及3.3节介绍完整链路和有无知识库的对照;本题进一步讨论分层消融与检索收益验证。

参考资料

相关面经

3 篇

字节跳动

Agent 全栈开发工程师
一面
查看原面经 →
底层检索做了哪些提升?

小红书

AI Native 全栈开发工程师
日常实习一面、二面
查看原面经 →
项目中进行了什么优化?

百度

前端开发工程师
实习一面
查看原面经 →
你的 RAG 召回率提升了大约 20%,主要做了哪些工作?

收录题集

1 个来源,共1 份题集

Agent 开发实战追问

阿东玩 AI · AgentGuide · 1 条原题

查看题集 →

相关题目

4 题