CMT-RAG:告别粗暴拼历史!子问题级DAG追踪让多轮问答F1提升6.8
CMT-RAG: Complementary Memory Traces for Multi-turn Multi-hop RAG

在长时间的信息检索与对话问答(Conversational RAG)中,用户极少会一次性抛出语义完整、自给自足的长问题。最真实的交互形态往往是碎片的:上一轮追问了某个核心概念,下一轮仅用代词“那它的研发者后来去了哪里”进行延续;或者随着讨论深入,用户的新问题实际上建立在前面某两轮推论的交集之上。
ArXiv URL:https://arxiv.org/abs/2607.26470v1
面对这种多轮、多跳的真实交互,现有 RAG 系统的表现往往会迅速衰减。行业通用的做法大多停留在两个极端:要么将过去的聊天记录、摘要或者重写后的单轮 Query 粗暴拼接,塞进有限的上下文窗口,交给大语言模型去硬扛指代消解与推理;要么采用代理式(Agentic)或迭代式重检索,让昂贵的前沿模型反复生成思考链。然而,中山大学、香港大学与深圳河套研究院的研究人员在最新论文《CMT-RAG: Complementary Memory Traces for Multi-turn Multi-hop RAG》中直切痛点:多轮多跳问答之所以脆弱,根源在于“对话记忆的存储粒度”与“检索执行的单元粒度”存在结构性错配。
为了弥合这一鸿沟,研究团队提出了 CMT-RAG(互补记忆轨迹框架)。其核心创新在于不再将记忆视为扁平的文本串,而是将其解构为子问题级别的推理轨迹(Sub-question-level Reasoning Traces),并拆解为双通道协同系统:前端借助轻量级状态空间模型(SSM)的状态循环维护当下语境的连续性,后端则依托会话级有向无环图(Trace DAG)持久化锁定推理路径和支撑证据。在保持终端阅读器(Reader)完全无状态的前提下,CMT-RAG 在跨轮依赖多跳测试中将问答 F1 显著提升了 6.82 分,且比复杂的逻辑迭代基线快了 8.4 倍。
记忆单元错配:多轮多跳检索为何屡屡失效?
传统 RAG 系统在处理单轮复杂问题时,通常依赖查询重写(Query Rewriting)或查询分解(Query Decomposition)。查询重写试图把带有指代和省略的句子改写为语义独立的单句,但这会把原本跨越多轮的多跳逻辑链硬生生压缩进一个检索意图里,往往直接抹杀了中间检索目标的独立表征;而常见的子问题分解算法又大多默认查询是封闭且自包含的,只能在当前单轮内部拆解,无法感知当前动作到底承接了历史上的哪个前置推论。
更严重的问题发生在记忆的召回环节。现有的对话式 RAG 习惯存储历史全文、段落摘要或对话状态向量。但当用户在第 5 轮提出一个需要结合第 1 轮实体属性与第 3 轮结论的问题时,检索器实际需要的不是“第 1 轮说了什么”,而是“第 1 轮推导目标实体时所依赖的具体段落证据与中间答案”。粗粒度的上下文回放不仅容易引发大模型的“迷失在中间”(Lost-in-the-Middle)现象,还会引入大量与当前跳无关的噪声上下文,导致召回率虽然好看,最终生成答案的准确率却雪崩式下跌。
这促使研究团队反思:多轮多跳场景中最理想的记忆单元应当具备什么特征?它必须兼具精准的检索导向与结构化的依赖绑定。具体而言,它必须记录当初分解出的具体子问题是什么、为了回答它引入了哪些底层段落证据,以及它与上下游推论之间构成了怎样的拓扑依赖。换言之,对话记忆本身应当是一个随着多轮交互逐步生长的推理轨迹图。
双通道记忆设计:SSM 运行时状态与持久化 Trace DAG
为了在低推理开销下实现这一机制,CMT-RAG 构建了一个高度解耦的双通道记忆系统,把复杂的状态维护与跨轮记忆彻底移出主力生成模型,让负责最后答案生成的下游 Reader 保持轻便的无状态调用。
第一条通道是基于状态空间模型(Mamba-2 架构)的轨迹生成器(Trace Generator)。针对局部语境的承接,常规 Transformer 架构每轮都要对累积的历史 Token 进行二次自注意力计算,开销随着轮次线性暴增。CMT-RAG 采用微调后的 2.7B Mamba-2 作为前置解析器,其内部的选择性状态空间混合器(Selective State-space Mixer)所保留的循环隐状态 $h_{t}$,恰好可以作为极其紧凑的运行时局部记忆。在每个对话轮次 $t$,生成器只需吃进前一轮的隐状态 $h_{t-1}$ 和当前用户的原始输入 $q_{t}$,即可在维护话题聚焦点与浅层共指的同时,快速输出当前轮次的结构化轨迹草稿集合 ${\mathcal{T}^{\mathrm{draft}}{k}}$,并输出演进后的局部状态 $h{t}$ 传递给下一轮。
第二条通道则是会话级持久化存储的 Trace DAG。轨迹生成器产出的每一个子问题草稿,形式上被严格约束为一个三元组:
\[\mathcal{T}^{\mathrm{draft}}_{k} = \bigl(q_{k}^{\mathrm{decom}},\ kw_{k},\ \mathrm{deps}(k)\bigr)\]其中 $q_{k}^{\mathrm{decom}}$ 是分解后的自然语言子问题;$\mathrm{deps}(k)$ 显式标记了其依赖的前置轨迹节点编号;而 $kw_{k}$ 则是高度归一化的关键词字段。这个关键词字段的设计极为精妙:它并不用于喂给大模型阅读,而是作为一种检索锚点,专门在历史 DAG 中通过轻量级的词法匹配快速查找潜在关联的前置轨迹,完全不需要额外维护笨重的稠密检索向量库。
当一个子问题草稿产生后,系统首先根据全局命名空间中的依赖指针,把前置轨迹节点的答案填充进当前子问题中,消除未决参数,获得语义解析完备的独立子问题 $q_{k}^{\mathrm{sub}}$。紧接着,系统通过两条路径组装证据:一方面沿 DAG 的依赖边直接继承前置节点已经验证过的历史证据段落 $\mathcal{P}^{\mathrm{prior}}{k}$;另一方面,使用稠密检索器 DRAGON 针对当前新解析的子问题从海量外部语料中拉取全新的增量证据 $\mathcal{P}^{\mathrm{local}}{k}$。两者合并后,与子问题一同交由无状态 Reader 作答。一旦子问题答案生成,该节点连同其确证的支撑段落 ID 便被以拓扑序固化写入 Trace DAG 中,成为后续交互中随时可以被调用的确定性砖石。
课程学习与 DPO:如何教会轻量模型精准拆解依赖?
将多轮对话即时转化为结构化拓扑图,对仅有 2.7B 规模的 Mamba-2 提出了极高的推理精度要求。如果模型生成的依赖标记乱码或者子问题拆解偏差,整条证据链路就会崩溃。为此,研究团队设计了一套紧密的“三阶段课程学习 + 直接偏好优化(DPO)”训练方案。
在监督微调(SFT)阶段,模型按照复杂度递增的节奏循序渐进:
-
第一阶段从单轮多跳样本切入,迫使模型在无历史干扰的纯净环境下,牢固掌握轨迹生成的基础语法规范以及基本的分解语义;
-
第二阶段引入 3 至 7 轮的短对话样本,引导模型学习跨越 1-2 轮的浅层代词消解与依赖关系建立;
-
第三阶段则将上下文拉长到数十轮的长程交互,高密度地注入交错跳跃的跨轮依赖,同时按照一定比例回放早期基础样本以避免灾难性遗忘。
然而,仅通过最大似然估计拟合黄金标签,无法让生成器直观感知下游 RAG 流水线的实际痛点——即“什么样的子问题切分能让检索器更容易捞到正确文档,让阅读器更容易答对”。
研究者为此在微调后追加了强化对齐阶段。他们固定下游检索器和 Reader 的参数,从轨迹生成器中采样多套候选轨迹,并将其扔进整套 RAG 链路跑出最终答案。对齐的奖励函数由两部分加权组合而成:一是最终答案与标准答案之间的 Token 级 F1 得分($F_{\mathrm{final}}$),二是生成子问题与参考子问题之间的词法匹配度($F_{\mathrm{sub}}$)。通过构建高低分对比偏好对,使用 DPO 算法优化轨迹生成策略,让模型在面对模糊歧义的上下文时,自发倾向于生成那些能最大化下游检索收益与阅读准确率的子问题及拓扑依赖。
MuMu-QA 基准:补齐多轮多跳的细粒度评测短板
在过往的评测体系中,人们一直缺乏一个能直接衡量“跨轮子问题依赖恢复”的数据集。现有的多轮对话基准(如 TopiOCQA、QReCC 等)评测往往停留在最终单句答案或整轮粗粒度重写的层面上,系统到底在哪个中间推理环节漏掉了先验条件,完全是个黑盒。
研究团队基于多跳经典基准 MuSiQue 深度重构,推出了专门针对该场景的基准集 MuMu-QA。MuMu-QA 提供了全会话唯一的子问题标识、显式依赖边标注、轨迹关键词以及严格对应的支撑段落标注。其构建依赖于两种严格受控的拓扑算子:
其一是子问题重定位(Sub-question Relocation),算法将原始多跳推理网络中的某个前置子问题剥离出来,放置在较早的对话轮次中作为独立交互,随即将后续关联问题改写为必须依赖该轮答案的追问;其二是图拼接(Graph Splicing),通过共享的桥接实体将两条本不相关的多跳推理链在不同轮次上锚定缝合。
通过这两种操作,研究者不仅能构建逻辑严密的短对话,还能通过交错拼接多个主题相关的对话会话,无损合成包含长达 33 至 67 轮、依赖交织的超长交互序列,为检验检索系统在跨越漫长轮次后是否仍能精确捞回历史推论提供了严苛的试炼场。
实验印证:更少但更准的证据,换来更高的准确率
在 MuMu-QA 的长对话评测集上,研究团队将 CMT-RAG 与五大流派的基线模型展开了全面对抗,涵盖了以 unresolved query 直接检索的直接 C-RAG、以 ReAct 和 IRCoT 为代表的迭代代理式方案、以 ChatQA 为代表的上下文拼接方案、以 RQ-RAG 和 LogicRAG 为代表的查询分解方案,以及显式建模对话结构的图方案。阅读器则分别测试了 Qwen3-32B 和 Llama-3.3-70B-Instruct。
评测展现出了一组极为反直觉而又发人深省的数据趋势。许多业界寄予厚望的迭代式代理方法,在长程多轮多跳的严格评测下,最终得分甚至未能稳定超越最朴素的直接检索基线。原因就在于无序的自主迭代极易在漫长的历史上下文中发散偏航,产生严重的幻觉累积。
相比之下,CMT-RAG 的表现刷新了非 Oracle 系统的上限:
在以 Qwen3-32B 作为无状态阅读器的条件下,CMT-RAG 斩获了 41.73 的精确匹配(EM)与 55.63 的 F1 得分,相比直接检索基线分别拉开了 6.07 EM 和 6.82 F1 的巨大差距;在 Llama-3.3-70B-Instruct 上,同样取得了 4.08 EM 和 3.85 F1 的扎实提升。
格外值得关注的是上下文的使用效率指标。在评测中,基线模型 ConvSearch-R1 依靠漫无边际的检索,在最终交付给阅读器的上下文中堆叠了大量内容,获得了最高的黄金段落召回率(GoldCtx),但其最终答案的 F1 却落后 CMT-RAG 超过 10 个百分点。CMT-RAG 最终输入给 Reader 的段落数稳定维持在平均每轮仅 14 个左右,不仅上下文负载显著低于传统方案的 20 个段落,而且答案准确度断层领先。这一结果充分印证了作者的判断:在复杂的多轮多跳交互中,模型需要的绝不是“把可能有关的文档全拿过来”,而是“只组装能够支撑当前逻辑跳跃的精密最小因果集”。
剥离验证:双通道各自发挥了什么作用?
在消融实验与外推分析中,CMT-RAG 的设计哲学得到了更透彻的解释。
为了搞清双记忆通道到底谁在起决定性作用,研究人员在超长对话集(33 至 67 轮)及各长度区间切片上做了阻断测试。数据显示出清晰的梯次分工:
移除 SSM 的跨轮循环隐状态,会导致模型全轮次区间的 F1 得分骤降 7 至 11 个点,直接导致系统对眼前交互的指代消解与意图拆解能力瘫痪;这表明无论对话有多长,前置状态空间模型对于维持局部会话连贯性具有不可替代的基础承托作用。
而移除会话级 Trace DAG 的影响,则随着轮次的递增呈现出剧烈的“放大效应”。在 3 至 7 轮的短对话中,去掉 DAG 仅带来 0.02 到 0.04 的微弱波动,因为短期上下文大多还能靠局部隐状态勉强覆盖;但在跨越 16 轮乃至 33 轮以上的极端长程测试中,DAG 带来的增益迅速拉大至 1.15 个百分点。显式拓扑结构在长程穿透中的抗衰减优势,在此处展露无遗。
在跨基准泛化测试中,CMT-RAG 同样展现了强劲的实用价值。在通用的多轮检索基准 RECOR 上,该框架横扫了全部对比指标;而在单轮复杂多跳基准 2WikiMultiHopQA 上,尽管基于多次昂贵的大模型推理调用的 LogicRAG 在 F1 上略高微弱优势,但其实际端到端推理耗时却比 CMT-RAG 高出了整整 8.4 倍。利用 2.7B 的微调小模型承担全部拓扑编排与轨迹追踪,让数十甚至数百亿参数的核心大模型仅做单步事实推理,CMT-RAG 证明了其在实际工程部署中所蕴含的计算收益比。
架构的解耦:走向外部化记忆的下一代 Agentic RAG
CMT-RAG 展现的技术演进方向,不仅是对多轮检索细节的一次缝补,更揭示了大模型应用在记忆管理架构上的范式迁移。
在过往很长一段时间里,工程师们习惯于信任大模型原生超长上下文窗口(Long-context Window)的吞吐能力,倾向于把整个世界的动态全塞进 Prompt。但从 CMT-RAG 的实验可以看到,当多跳推理与多轮长程相互嵌套时,隐式的软注意力机制在处理跨轮因果拓扑时依然表现出明显的疲软与不确定性。
将“状态追踪”从主力生成模型中剥离出去,交由轻量、高效的结构化架构去消化,让大模型回归其最擅长的无状态事实整合与语言呈现,或许是突破复杂多轮问答瓶颈更优雅、更可靠的工程路径。随着未来对话系统朝长程执行、持续学习的 Agent 演进,这种将每一次思考沉淀为持久化轨迹节点的思路,正为构建可追溯、可信赖的外部认知外脑提供一份清晰的落地方案。