rag面试题之多轮对话时的上下文依赖检索设计

一句话回答

多轮 RAG 难点:用户后续提问是省略式、指代式("那它有什么限制?"),直接拿当前这句话去检索会语义缺失,召回垃圾文档;

核心思路:把历史对话信息合理融入检索环节,还原完整用户意图,同时不能把全部历史直接塞进检索,避免噪声膨胀。

总结的说法:

多轮对话检索最大问题是用户存在指代、省略,直接拿当前问句检索效果很差。

主流方案是 Query 重写:结合最近几轮对话,调用 LLM 把当前问题补全为完整查询(提问),拿补全后的语句做知识库检索;

注意区分:检索用改写后的 query ,最终大模型生成回答,仍然要带上原始完整对话。同时要限制对话轮次做截断,防止上下文无限膨胀

难点解析:检索器的每一次检索都是独立的,它不会记住历史的,所以我们要进行 query 重写,所谓的 query 重写,就是把问题给小型的大模型,让其润色,比如:

用户:BGE‑M3 怎么做混合检索?

AI:BGE‑M3 可以同时输出稠密向量与稀疏向量,再用 RRF 融合结果......

用户:那参数怎么调?(当前用户提问,有代词 "那")

当用户问: 那参数怎么调? 时,如果直接给向量模型,向量模型是不知道这个那指的是什么的,需要让模型润色为如下问题: BGE‑M3做混合检索时相关参数如何调优

然后问题输入给参数比较大的大模型时,需要将历史所有对话(原始的)+ 用户当前原始的对话一起输入给大模型,这样的问题不要润色,因为大模型可以理解。

相关推荐
玩美数据7 分钟前
海外市场数据服务常用术语与名词解释权威指南
大数据·人工智能
Lansonli25 分钟前
Claude Code 写 Shell 脚本翻车实录:一份避坑指南
人工智能
IT_陈寒1 小时前
Vue的这个响应式陷阱,差点让我加班到天亮
前端·人工智能·后端
东离与糖宝2 小时前
Spring AI 大模型容易混淆概念一次性讲透
人工智能
复杂网络与机器学习2 小时前
全双工 160 毫秒一格:李沐让模型不再「一问一答」
人工智能
武子康2 小时前
Qwen-Drive 的 91.4 分,究竟选中了什么?
大数据·人工智能·agent
王中阳Go3 小时前
你把重试加到 2 次那天,200 条里成功还是 181 条,你回看过吗?
人工智能·后端·架构
北杨3 小时前
三键之内的意图:用 AIUI 在 Rokid 眼镜上做一个能玩的 21 点
人工智能
火山引擎开发者社区3 小时前
给企业配一双 AI 的手:火山引擎 OS Agent 替你操作手机和电脑
前端·人工智能
神鹰手哥_起飞版3 小时前
我是怎么管理 Coding Agent 的:把任务交出去,也把结果验回来
人工智能·架构·产品经理