跳转到内容

EVE-Agent — 自我训练前先把证据钉在桌上

待复核

EVE-Agent 是一种**让 agent 自己出题自己学,但每道题必须附”出处证据”**的训练方法。日常类比:像律师写辩词,每一句结论后面都得贴一份证据卷宗的页码——没卷宗的话即使说得头头是道也不算数。

self-evolving search agent 之前的玩法是:proposer 编一个问题,solver 回答,分对错。问题在于 proposer 可能编一个听起来很合理但根本没出处的问题,solver 也跟着编一个听起来对但没来源的答案。两边互相加强,结果训出一个会讲故事但讲不出依据的 agent。这种”自我喂养”会随轮次累积偏差,最后越训越偏。

EVE 改的事很小:proposer 出题时必须同时给一个 evidence span——文档里的那一段原话。verifier 不再问”答案对不对”,而是问”加上这段证据,模型回答的边际增益有多大”。能涨分的 span 得高分,没用的 span 直接 0 分。整套机制不需要 oracle 答案,也不需要人工标注,全程自驱。

不理解 EVE-Agent,下面这些事都没法解释:

  • 为什么很多 self-evolving agent 论文报告”训练后效果更好”,但实际部署后幻觉变多了
  • 为什么 RLHF / self-instruct 都会面临”自我喂养崩塌”(model collapse)的隐忧
  • 为什么 search-agent-2510 这类工作开始把 retrieval 看成 reasoning 的一等公民,而不是后处理
  • 为什么”可审计”(auditable)正在变成 agent 训练数据的硬要求,不只是合规话术

EVE 的思路可以拆成 三步

  1. proposer 出三件套,不是两件套:传统是 (question, answer),EVE 加一个 evidence span——“这道题的答案出自原文哪段”。类比:考研出题人不只给题和答案,还得标第几页第几行。这一步把 evidence 从”事后补的引用”提升成”出题时的硬约束”。

  2. verifier 测边际增益,不测绝对正确:把 evidence 喂给模型 vs 不喂,看回答质量差多少。差距大 → 这段 evidence 有用 → 这条训练数据可用。差距 0 → 模型本来就会,evidence 是装饰 → 丢掉。这一步对应论文的 “marginal accuracy gain”,比传统 reward 更难被作弊。

  3. 训练信号天然可审计:每条进 batch 的样本都带着原文 span,出问题时可以查到根。类比:数据库 audit log——不只记结果,还记凭据。这让训练后的 agent 有”我说这话因为见过这段”的 trace ability。

三步加起来叫 evidence-grounded curriculum——核心思想是把”凭据”从输出阶段前移到输入阶段。

案例 1:proposer 出题三件套(伪代码)

Section titled “案例 1:proposer 出题三件套(伪代码)”
def proposer(doc):
span = pick_random_span(doc, min_tokens=20, max_tokens=80)
q = llm.ask(f"基于这段:{span},出一道需要这段才能答对的题")
a = llm.ask(f"题目:{q}\n依据:{span}\n用一句话作答")
return {"question": q, "answer": a, "evidence": span}

注意:evidence 必须是原文 verbatim,不是摘要。否则 verifier 没法测”加这段 vs 不加”。span 边界要切在句号上,不要切在词中间——否则模型会被 cut-off 误导。

def verifier(item, model):
score_with = score(model.answer(item["question"], ctx=item["evidence"]))
score_without = score(model.answer(item["question"], ctx=""))
return score_with - score_without

教学上可先按增益分档:gain 接近 0 的样本几乎不贡献新信息,可丢掉;增益明显为正的样本优先进 batch;中间区段按 gain 加权,比一刀切硬阈值更平滑。具体阈值要按任务校准,不要照搬别人的数字。

维度self-instructEVE-Agent
proposer 输出(q, a)(q, a, evidence span)
训练信号answer 是否正确evidence 的边际增益
有无 oracle 数据不需要不需要
可审计难(要事后回溯)天然可审计
抗幻觉累积弱(错误会自我强化)强(无依据样本被滤掉)

EVE 不增加人工标注成本,但把”凭空生成的训练样本”问题堵死了。它的成本主要在 verifier——每条样本要做两次推理(带 evidence + 不带),相当于训练吞吐减半。

案例 4:HotpotQA 上的评测口径(对齐论文)

Section titled “案例 4:HotpotQA 上的评测口径(对齐论文)”

论文不是在讲”第几个 epoch 曲线怎么弯”,而是在 七个开放域 QA(含 HotpotQA)上同时报三类指标:答案 exact match、证据是否被判定为支撑、以及”答对且证据也过关”的联合率。EVE-Agent 的卖点是:在相近算力/搜索预算下,证据支撑率明显抬升,答案正确率也不掉——可审计不是拿准确率换来的装饰。读表时先看 HotpotQA 这一列的 evidence / joint,再回头看平均列,才不会把”会讲故事”和”给得出处”混成一个分数。

案例 5:边际增益不为 0 也未必有用

Section titled “案例 5:边际增益不为 0 也未必有用”

考虑这种情况:模型不带 evidence 时随机猜对了 50%,带 evidence 时升到 55%。gain=0.05,看似有信号但太弱——可能只是 evidence 引导了某个表面线索(如关键词匹配),不是真在用证据推理。实现上可先丢掉近零增益样本,再按任务调一条最低增益门槛;不要把所有正 gain 都当高质量教材。

RLHF 的 reward 来自人类偏好,单一标量信号,无法追溯具体哪段证据起作用。EVE 的训练信号是结构化的——question / answer / evidence / gain 四元组,模型不只是学”这答案是好的”,还学”哪段原文支撑了这答案”。这种结构化反馈对推理类任务尤其重要:单标量奖励学不到推理路径,只能学结果。

  1. span 太长 verifier 失灵:evidence 取整段 paragraph 时,无关事实变多,边际增益被稀释;论文也用 brevity bonus 鼓励短而准的 span。教学实现可先限制在几十到一百 tokens 量级,再按增益分布微调。
  2. proposer 偷懒抄 span 当问题:让 question 和 evidence 字面重合度过高,模型只是在做 copy,没学推理;论文的 validity filter 会丢掉”答案直接嵌在问题里”的退化题,工程上还可再加字面重合检查。
  3. verifier 用同一个模型自己测自己:scoring model 和 trained model 同源会循环偏差;更稳的做法是用一个冻结的 reference model 作为 scorer,定期换但不跟着训。
  4. 多文档场景 span 来源歧义:同一答案在多份文档里都有依据,evidence span 该取谁?论文主设定是源文本上的 verbatim span;多文档时常见折中是按 retrieval rank 取 top-1,但这仍是开放问题。

适用:

  • search / RAG agent 训练,需要从大语料自动生成监督信号
  • 高合规要求场景(医疗、法律、金融)——审计追溯是硬要求
  • 想避免幻觉随训练放大的 self-evolving 流水线

不适用:

  • 数学 / 代码 agent——证据不是”原文 span”而是”运行结果”,机制不一样,需要换成执行验证
  • evidence span 难以定位的任务(如总结、创作)——没有 verbatim 锚点
  • 单步 QA 任务——不需要 self-evolving,直接 SFT 更快也更便宜
  • 训练资源紧张时——双倍推理成本不划算,先用 self-instruct 起步再升级
  • 2022:self-instruct 让 LLM 自己造训练数据,开启 self-evolving 路线
  • 2023:constitutional AI 引入”自我打分”,但 scorer 与被训模型同源问题暴露
  • 2024:多篇论文报告 self-instruct 训出来的 agent 在 OOD 上幻觉变多
  • 2025:apex-policy-exploration 等开始把 verifier 拆出来作为独立角色
  • 2026:EVE-Agent 把 verifier 的判别标准从”绝对对错”改成”证据带来的边际增益”
  • 自训练流水线的瓶颈不是 proposer 而是 verifier 信号是否可信
  • 让模型对自己负责的方法:要求它给出处,不只是给答案
  • “边际增益”是比”绝对分数”更鲁棒的训练信号——抗作弊
  • 可审计 ≠ 性能损失;EVE 在 ablation 中显示带 evidence 检查反而更稳
  • evidence span 这个数据结构同时承担三个角色:训练样本、验证锚点、审计凭据