

Paper: 2603.24579 Authors: Zhuo Li, Yupeng Zhang, Pengyu Cheng, Jiajun Song, Mengyu Zhou, Hao Li, Shujie Hu, Yu Qin, Erchao Zhao, Xiaoxi Jiang, Guanjun Jiang Categories: cs.CL
The Gap
RAG is supposed to make language models factual by grounding them in retrieved documents, but in practice it often just gives models more material to misread. Current hallucination mitigation usually relies on one of two weak options. Either you supervise the final answer with coarse labels, which misses claim-level errors, or you ask another LLM to judge the answer while showing it the original response, which creates confirmation bias: the verifier sees the answer first and tends to rationalize it instead of independently checking the evidence.
That leaves a real hole. We have many evaluation tools for hallucination, but far fewer training frameworks that force the model to internally learn document-grounded checking. MARCH attacks exactly that hole by making self-verification asymmetric rather than self-referential.
Problem: RAG answers still hallucinate
even with retrieved evidence
|
v
Existing fix 1: coarse answer-level supervision
Existing fix 2: LLM-as-judge sees full answer
|
v
Failure mode: claim-level errors survive,
verifier inherits confirmation bias
|
v
Need: a training loop where verification is
independent, granular, and grounded
|
v
MARCH: split generation, claim extraction,
and blinded checking across 3 agents
|
v
Result: lower hallucination rates and better
multi-hop QA from the same 8B base
The Increment
One sentence: Before MARCH, self-checking usually meant letting the model inspect its own answer; after MARCH, self-checking becomes a structured three-agent game where the verifier is deliberately blinded and the whole pipeline is optimized with reinforcement learning.
Core Mechanism
MARCH assigns three roles to the same base policy under different prompts.
- Solver reads the query and retrieved documents, then writes the answer.
- Proposer turns that answer into atomic question-answer pairs, effectively breaking the narrative into verifiable factual claims.
- Checker receives only the atomic questions and the source documents, not the Solver’s original answer, and must answer each question from evidence alone.
The key idea is information asymmetry. The Checker is not allowed to see the Solver’s wording, so it cannot lazily agree with it. If the Proposer extracts a claim like “the company reported 14.2% growth in 2023,” the Checker must recover that answer from the documents independently. Any mismatch means the whole response trajectory is treated as flawed.
The reward is intentionally harsh. MARCH uses a Zero-Tolerance Reward: if every claim matches the Checker’s evidence-grounded answer, the trajectory gets success; if even one claim fails, the trajectory gets penalized. The authors then optimize both the Solver and Checker trajectories jointly with PPO, so the model learns not just to sound plausible, but to generate statements it can later survive under blind audit.
Query + retrieved docs
|
v
[Solver]
|
| full response y
v
[Proposer]
|
| atomic QA pairs (qi, ai)
v
[Checker]
|
| answers âi using docs only
| (no access to y)
v
Compare ai vs âi
|
+-- all match --> reward
|
+-- one mismatch --> penalty
Think of it like writing, fact extraction, and legal review split across three desks. The writer drafts the memo, the analyst turns it into checkable statements, and the auditor verifies those statements using only the source folder, not the memo itself. That workflow is slower than just rereading the draft, but much better at catching wishful interpretation. MARCH turns that workflow into an RL training signal.
Key Concepts
-
Information Asymmetry: This is the paper’s central move. Most LLM judges fail because they are exposed to too much of the original answer and get nudged toward agreement. MARCH removes that shortcut. The Checker sees the documents and the questions, but not the answer being checked.
-
Claim-Level Atomization: Instead of scoring the final response as a single blob, MARCH decomposes it into atomic QA pairs. That gives the training loop finer supervision. A long answer may be mostly right but still contain one crucial wrong number; atomization makes that visible.
-
Zero-Tolerance Reward: The reward is binary and unforgiving. One unsupported claim invalidates the whole response. This matters because partial-credit rewards can let models trade factual rigor for fluent-but-sloppy generation. MARCH explicitly rejects that tradeoff.
-
Joint Optimization of Generation and Audit: The framework does not only train the Solver. It also trains the Checker trajectory, so the base model co-evolves as both a generator and an auditor. The paper argues that this dual role is what makes the grounding skill transferable to downstream QA.
Framework Shift
Before:
[Generate answer] -> [Judge sees answer + docs] -> [score]
After MARCH:
[Generate answer]
|
v
[Decompose into atomic claims]
|
v
[Blinded checker re-answers from docs only]
|
v
[Use claim agreement as RL reward]
One sentence: The shift is from answer-level self-evaluation with leaked context to claim-level blind auditing with reinforcement learning.
Expert Assessment
Problem choice: Strong. Hallucination in RAG is one of the few failure modes that directly blocks real deployment in law, finance, and healthcare. The paper targets a bottleneck that matters operationally, not just benchmark-wise.
Method maturity: Thoughtful and better engineered than it first appears. The three-agent design is conceptually simple, but the important contribution is not “more agents”—it is the asymmetric information structure plus the claim-level interface between them. That makes the method easier to trust than a vague self-critique loop. The downside is cost: generation, decomposition, and checking all sit in the training path, so this is not a lightweight trick.
Experimental integrity: Good overall. The paper evaluates on RAGTruth, FaithBench, Facts Grounding, ContextualJudgeBench, and multi-hop QA, which is a better spread than many factuality papers. The headline numbers are meaningful: on RAGTruth + FaithBench average accuracy, the base Llama3.1-8B rises from 55.20 to 74.93 with MARCH-STEM and 75.23 with MARCH-General; on Facts Grounding, it rises from 57.09 to 85.23; on ContextualJudgeBench average, it goes from 29.7 to 51.6/52.3. Those are not cosmetic gains.
What I buy most: The fact that better hallucination control also improves multi-hop QA is the paper’s strongest signal. MARCH is not merely building a stricter judge; it seems to be teaching the underlying policy to generate reasoning that remains anchored to evidence. That is a stronger claim, and the HotpotQA / MuSiQue / 2Wiki results support it.
What still worries me: The method leans heavily on factual decomposition into atomic claims, especially numerical or high-fidelity statements. That is a good fit for data-intensive RAG, but less obviously for open-ended explanation, synthesis, or creative knowledge work where claim boundaries are fuzzy. There is also an incentive question: zero-tolerance reward may suppress useful but harder-to-verify detail, pushing the model toward conservative answers.
Verdict: accept — The paper identifies a real failure mode, proposes a clean structural fix, and backs it with broad empirical gains. Even if the full training recipe is expensive, the design principle is important and likely to transfer.
Takeaways
Blind the verifier on purpose: If your verifier sees the answer it is supposed to check, you have already contaminated the audit. MARCH’s best idea is not the multi-agent framing by itself, but the discipline of removing answer leakage from the checking step.
Turn free-form answers into checkable interfaces: The Proposer is basically a compiler from narrative text to atomic QA pairs. That pattern is reusable well beyond this paper. If you want grounded generation, build an intermediate representation that can be independently validated.
Use harsher rewards when factuality is non-negotiable: In domains where one wrong number breaks trust, partial-credit reward functions may optimize the wrong thing. MARCH’s zero-tolerance setup is a reminder that the reward should match the operational failure standard, not just average benchmark convenience.
论文: 2603.24579 作者: Zhuo Li, Yupeng Zhang, Pengyu Cheng, Jiajun Song, Mengyu Zhou, Hao Li, Shujie Hu, Yu Qin, Erchao Zhao, Xiaoxi Jiang, Guanjun Jiang 分类: cs.CL
缺口
RAG本来是想通过检索文档让语言模型更贴近事实,但在实际系统里,它常常只是给模型提供了更多可以“看错”的材料。现有缓解幻觉的方法通常落在两类弱方案里。第一类是对最终答案做粗粒度监督,这会漏掉主张级错误;第二类是让另一个LLM在看过原始回答后再去判分,这会产生确认偏差: 验证器先看到了答案,更容易替它找理由,而不是独立回到证据本身做核查。
真正的空缺在这里。我们已经有不少用于“评估”幻觉的工具,但很少有训练框架能逼着模型把文档对齐能力真正内化。MARCH瞄准的正是这个空缺: 它把自检从“自己看自己”改成了“有信息隔离的结构化核查”。
问题: RAG回答即使有检索证据
仍然会产生幻觉
|
v
现有修复1: 答案级粗监督
现有修复2: Judge看到完整答案再打分
|
v
失败点: 主张级错误仍会漏掉,
验证器还会继承确认偏差
|
v
需求: 独立、细粒度、基于证据的
训练时核查闭环
|
v
MARCH: 用3个角色拆开生成、
主张提取和盲审核查
|
v
结果: 幻觉更少,同一个8B底模
在多跳QA上也更强
增量
一句话: 在MARCH之前,所谓自检通常只是让模型回头看自己的答案;在MARCH之后,自检变成了一个由三种角色组成、验证器被刻意蒙眼、再通过强化学习联合优化的结构化博弈。
核心机制
MARCH给同一个基础策略模型分配三个角色,只是系统提示不同。
- Solver 读取问题和检索文档,生成最终回答。
- Proposer 把这段回答拆成原子化的问答对,相当于把叙述文本切成可验证的事实主张。
- Checker 只拿到这些原子问题和源文档,拿不到Solver原始回答,必须仅凭证据重新作答。
关键点是 信息不对称。Checker不允许看到Solver原文,因此它不能偷懒式地点头同意。如果Proposer从回答中抽出“这家公司2023年的增长率是14.2%”这样的主张,Checker就必须只靠文档把这个答案重新找出来。只要两边有一个不匹配,整条响应轨迹就被视为有问题。
奖励设计也很硬。MARCH使用 Zero-Tolerance Reward: 只有所有主张都与Checker基于证据给出的答案一致,这条轨迹才算成功;只要有一个主张失败,整条轨迹就受罚。随后作者用 PPO 联合优化Solver和Checker两条轨迹,让模型学到的不是“听起来像真话”,而是“先生成,再在盲审下也站得住”。
问题 + 检索文档
|
v
[Solver]
|
| 完整回答 y
v
[Proposer]
|
| 原子QA对 (qi, ai)
v
[Checker]
|
| 只看文档重新回答 âi
| (看不到 y)
v
比较 ai 和 âi
|
+-- 全部一致 --> 奖励
|
+-- 任一不一致 --> 惩罚
你可以把它想成三个工位的协作流程。写作者先起草报告,分析员把报告拆成可以逐条核查的陈述,审计员则只能看原始材料,不能看报告本身。这个流程比“回头再读一遍自己写的东西”更慢,但更容易抓住自我说服造成的错误。MARCH做的,就是把这个流程变成强化学习信号。
关键概念
-
信息不对称: 这是全文最重要的设计点。很多LLM judge之所以不可靠,不是因为它们不会推理,而是因为它们看到了太多原答案内容,天然更容易被带偏。MARCH把这个捷径切掉了。Checker只看文档和问题,不看待验证答案。
-
主张级原子化: MARCH不把最终回答当作一个整体去打分,而是先拆成原子QA对。这样训练信号更细。一段长回答可能大部分都对,但其中一个关键数字错了;原子化后,这个错误就不会被整体流畅性淹没。
-
零容忍奖励: 这个奖励是二值且严格的。只要有一个不被证据支持的主张,整条回答就算失败。它的意义在于拒绝“七成正确也算不错”这种优化方向,逼模型优先满足事实刚性约束。
-
生成与审计联合优化: 这个框架不只训练Solver,也训练Checker轨迹。于是同一个基础模型会一起进化成生成者和审计者。论文的一个核心论点就是: 这种双角色共演化,会把事实对齐能力迁移到下游QA任务上。
框架转变
之前:
[生成答案] -> [Judge看答案+文档] -> [打分]
MARCH之后:
[生成答案]
|
v
[拆成原子主张]
|
v
[盲审Checker仅凭文档重答]
|
v
[用主张一致性作为RL奖励]
一句话: 它把“带泄漏上下文的答案级自评”改成了“主张级盲审 + 强化学习”的训练框架。
专家评审
选题眼光: 很强。RAG里的幻觉是少数真正会阻碍落地的故障类型之一,尤其是在法律、金融、医疗这些高风险场景。论文瞄准的是一个部署层面真的痛的问题,不是只在benchmark上刷分。
方法成熟度: 设计是克制且讲究的。三智能体听起来像“又加了几个agent”,但真正的贡献并不在于角色数量,而在于不对称信息结构,以及中间那层主张级接口。这让方法比很多模糊的自我反思循环更可解释。代价当然也明显: 生成、拆解、核查都要进入训练路径,所以它不是一个廉价技巧。
实验诚意: 总体不错。论文评了RAGTruth、FaithBench、Facts Grounding、ContextualJudgeBench和多跳QA,覆盖面比很多事实性论文更广。headline数字也有说服力: 在RAGTruth + FaithBench平均分上,基线Llama3.1-8B从 55.20 提升到 74.93(MARCH-STEM)和 75.23(MARCH-General); 在Facts Grounding上从 57.09 提升到 85.23; 在ContextualJudgeBench平均分上从 29.7 提升到 51.6/52.3。这不是边角改进。
我最买账的点: 更强的幻觉控制同时提升了多跳QA,这是全文最有分量的信号。MARCH看起来不只是训练出一个更严格的judge,而是真的把“基于证据生成”这件事灌进了底层策略里。HotpotQA、MuSiQue和2Wiki上的结果支持这一点。
仍然担心的点: 这个方法很依赖把回答拆成原子事实主张,尤其偏爱数字或高保真陈述。这非常适合数据密集型RAG,但对开放式解释、综合写作、或更创造性的知识任务是否同样有效,论文还没有给出足够证据。另外,零容忍奖励也可能让模型变得过于保守,宁可少说,也不愿说那些更难验证但可能有价值的细节。
判决: 接收 — 这篇论文抓住了真实故障模式,给出了一个结构上干净的修复方案,并且用较广的实验展示了收益。即使完整训练配方成本不低,它背后的设计原则也很值得借鉴。
要点总结
故意把验证器蒙上眼: 如果验证器看到了它要检查的答案,审计其实已经被污染了。MARCH最好的想法不只是多智能体本身,而是把“答案泄漏”从核查环节里拿掉。
把自由文本变成可核查接口: Proposer本质上像一个编译器,把叙述文本编译成原子QA对。这个模式完全可以迁移到别处。只要你想做有依据的生成,就应该考虑先构造一个可以独立验证的中间表示。
当事实错误不可接受时,奖励就该更苛刻: 在一个错误数字就会破坏信任的任务里,部分得分式奖励函数很可能优化错目标。MARCH的零容忍奖励提醒我们: 奖励函数应该贴近真实业务的失败标准,而不是只服务于benchmark上的平均便利性。