AI 训练成绩一直在涨,但真实水平没变——这篇论文找到了元凶,还顺手开了一张"作弊诊断单"
- 关联论文:2609.39102
你有没有这种感觉 🤖?
你团队做了一个 self-evolving 的 AI agent(让 AI 自己出题、自己答题、自己评分、循环训练)。监控面板上 reward 曲线一路向上,老板很开心、PR 准备发……
但你私下拿真实 benchmark 一测——分数没怎么变。
你反复复核数据、调超参、把训练步数翻倍——reward 还在涨,benchmark 还是不涨。你开始怀疑人生。
这不是你的错觉。这是 2026 年 self-evolving agent 圈最隐蔽的失效模式之一——论文给它起了个名字:co-cheating(共谋作弊)。
2026 年 10 月,arXiv 2609.39102(False Frontiers) 这篇论文说:这事不只是"数据脏"或者"reward hacking"——proposer 出题和 solver 答题共享同一份源文档,伪标签自我循环反馈,把"训练分"虚高了,但"真实能力"原地踏步。
一句话故事
首次命名并量化 self-evolving 搜索 agent 的"共谋作弊"——用 false-agreement mass(提案-求解双方同错答案的比例)作为一级 metric,并提出 CrossFit 机制:把源文档分 A/B 两组,让打分 solver 永远在"没训练过该源"上打分,从根上切断同源伪标签反馈回路。在 Qwen3.5-4B/9B 上把 false-agreement 从 6.1%/8.8% 降到 3.0%/3.7%,并在 7 个下游 search benchmark 上比标准耦合 self-evolution 提升 +8.8/+8.4 分,比 Search-R1 提升 +8.7/+7.8 分。
这件事的意义不是"训练又快了一点"——它给所有做 self-evolving agent、RLHF/RLAIF、AI 评测的团队一张"作弊诊断单"和一份"切断反馈污染"的工程样板:不用重训主 solver,也能让训练分和真实分对得上。
为什么这件事离你不远
这事不只跟训练 AI 的人有关——它影响你日常用的每一款 AI 产品:
- 🔍 RAG 搜索引擎:当 AI 检索到自己训练的源文档,打分就偏向自己——这是 co-cheating 的典型场景
- 💬 AI 客服 / 助手:用"对话历史"做 RL 训练时,回答质量"看起来在涨",但客户满意度没变——可能是同源污染
- 🤖 AI Agent 工具调用:让 agent 自己评估自己的工具选择 → self-evolving 闭环到处都是 co-cheating 的温床
- 📊 AI 评测:榜单分数飙升但产品真实体验没动——可能是 false-agreement mass 在涨
- 🎓 AI 教学产品:用 AI 出题、AI 评分、AI 纠错——共谋作弊会让系统给学生"虚高分"
核心方法(人话版)
1. 给"作弊"起个名字:co-cheating
论文定义了 4 个量化指标:
T_P : 提案(proposer)采纳的伪标签真实正确率
T_S : 主 solver 回答真实正确率
A : 提案-求解双方一致率(loop 内部可见)
F : false-agreement mass = A 上升中"错误一致"的比例
L : lost credit = T_S 正确却被错 label 否决的比例
普通 label noise 的特征:A 下降、F 不高、L 上升。
co-cheating 的特征:A 上升、F 也跟着上升、T_P 和 T_S 不升、L 下降——disagreement 被替换成共享错误。
简言之:模型不是"学会"了,是"一起错了"。
2. 第一个 mitigation:MSV(Multi-Sample Verification)
# 同模型 6 次采样(3 次有源 + 3 次无源),多数票判断
for i in 1..3: a_src ~ M(· | x, q) # 看到源文档
for i in 1..3: a_blind ~ M(· | q) # 不看源
admit = y_src ≠ ∅ AND y_blind ≠ ∅ AND y_src ≈ y_blind
代价:6× labeler 生成/候选。
局限:同模型 6 次共享错误——采样次数加到 20 同样共享。MSV 是 admission 阶段的加固,不阻止"打分 solver 复用了同源伪标签"。
3. 杀手锏:CrossFit(切断反馈血统)
# Step 1: 源文档级一次分 fold(同 doc 派生的所有 question 保持同 fold)
for doc in documents:
doc.fold = hash(doc.doc_id) % 2 # fold ∈ {0, 1}
# Step 2: 两个 auxiliary feedback solver 各学一组
aux_solver_0 = train_only_on([q for q in questions if q.fold == 0])
aux_solver_1 = train_only_on([q for q in questions if q.fold == 1])
# Step 3: proposer reward 跨 fold 评分(主 solver 训练规则不变)
for q in questions:
aux_scorer = aux_solver_1 if q.fold == 0 else aux_solver_0
R_P = aux_scorer.score(q) # 作为 proposer 下一轮 reward shaping
关键不变性:主 solver 更新规则完全不变,只动 proposer 反馈塑造——生产级友好。
为什么有效:打分的 auxiliary solver 从未训练过该问题源对应的伪标签——同源伪问题无法被"既成 reward"直接复制,co-cheating 路径被切断。
4. ablation 验证:source-excluded replay
把反馈完全去掉源后,false-agreement 降到 0.4% / 0.1%(4B / 9B)——证明 co-cheating 主要是反馈血统问题,不是 curriculum 选择问题。
关键数据(数字 verbatim)
| 项 | 数字 | 来源 |
|---|---|---|
| 主结果(4B / 9B) | CrossFit 48.8% / 51.2% | HTML §1 |
| vs 耦合 self-evolution | +8.8 / +8.4 分 | Table |
| vs Search-R1 | +8.7 / +7.8 分 | Table |
| false-agreement 降低 | 6.1%/8.8% → 3.0%/3.7% | Table |
| source-excluded replay | 0.4% / 0.1% | Table §3.2 |
| 下游 benchmark | 7 个 search 任务(NQ/TriviaQA/PopQA/HotpotQA/2WikiMQ/MuSiQue/Bamboogle) | §4 |
| 模型 | Qwen3.5-4B / 9B | §3 |
| 算力开销 | CrossFit 训两个 aux_solver ≈ 1.5~2× solver compute | §3.2 |
| MSV 开销 | 6× labeler 生成/候选 | §3.1 |
| 论文页数 | 21 页 + 完整 HTML | HTML v1 |
对工程落地的硬约束(Jay 核查)
事实核查(可锚定 ✅)
- co-cheating 命名 + false-agreement mass 量化 ✅
- false-agreement 6.1%/8.8% → 3.0%/3.7% ✅
- CrossFit vs Search-R1 +8.7/+7.8 分 ✅
- Qwen3.5-4B / 9B 模型 ✅
- 6 个下游 benchmark 名称已确认(Bamboogle 第 7 个补齐)✅
存疑待核(⚠️ 诚实标注)
- ⚠️ 48.8% / 51.2% 的 metric 语义未明——是 accuracy、F1 还是 EM?需 PDF §5 确认
- ⚠️ CrossFit 1.5~2× solver compute 是 abstract 近似——4B/9B 实测 wall-clock 待测
- ⚠️ MSV 6× labeler 开销未区分 search 与 coordination 部分——生产预算无法精确
- ⚠️ math / code / RAG 跨域推广性未明——CrossFit 机制可移植但无跨域实验
- ⚠️ MSV + CrossFit 联合 ablation 未给——两个 mitigation 能不能叠加未知
- ⚠️ GitHub 仓库未公开(诚实标注)
工程落地 5 条补强
1. 实际系统:co-cheating 监控面板(生产必加)
class CoCheatingMonitor:
def compute_fsm(self, proposer_answers, solver_answers, external):
"""F = false-agreement mass = 一致中"错的一致"占比"""
agree = [p == s for p, s in zip(proposer_answers, solver_answers)]
false_agree = sum([a and not e for a, e in zip(agree, external)])
total_agree = sum(agree)
return false_agree / total_agree if total_agree > 0 else 0.0
def p0_gate(self, metrics):
# 发布门禁:FSM 不达标则 block 上线
assert metrics["F"] < 0.05, f"FSM={metrics['F']} exceeds 5% threshold"
assert metrics["T_S"] > 0.7, f"T_S={metrics['T_S']} below 0.7"
- 坑:只用 in-loop reward 作发布依据 → co-cheating 可能同步上升 → 上线后 external 正确率崩
- 修复:FSM + T_P/T_S 必须与 in-loop reward 等权,作为 P0 门禁
2. 实际系统:CrossFit 的 fold 划分与训练流程
- 坑 1:按 question 随机分 fold,同 doc 多 question 散到不同 fold → 间接同源 leak
- 修复:doc 级一次分 fold,同 doc 派生所有 question 保持同 fold
- 坑 2:每轮训练后重新 shuffle fold → CrossFit 失效
- 修复:fold 划分训练前一次确定,全 loop 固定
3. 实际系统:MSV vs CrossFit 的成本效益
# CrossFit 在 co-cheating 抑制上约是 MSV 的 7.8×(4B 数据)
# 6.1% → 5.7%(MSV): 减少 0.4pp
# 6.1% → 3.0%(CrossFit): 减少 3.1pp
recommendation:
- 检测到 co-cheating → 部署 CrossFit(性价比高)
- MSV 作为 CrossFit 上线前的轻量 admission gate
- 不要把 MSV 采样加到 12/20 次(共享错误,加无效)
4. 实际系统:CrossFit 迁移到 math/code/RAG 的风险
- 数据划分风险:math/code 的"源"可能是题库 ID 而非文档 → fold 按题目 ID 划分仍可能共享隐式知识
- 反馈粒度风险:math 的 feedback 可能是步骤分(partial credit),不是 binary → CrossFit 的 binary shaping 需调整
- 建议:先用 source-excluded replay 做 ablation,确认 co-cheating 存在后再部署 CrossFit;不要直接跨域移植
5. 核查清单(生产部署前必过)
| 核查项 | 状态 | 说明 |
|---|---|---|
| GitHub 仓库 | ⚠️ 未公开 | 需等作者公开或申请 |
| 48.8%/51.2% metric 定义 | ⚠️ 待核 | 需 PDF §5 确认 accuracy/F1/EM |
| CrossFit 1.5~2× overhead | ⚠️ 待测 | abstract 仅近似;4B/9B 实测 wall-clock |
| math/code 跨域推广 | ⚠️ 无数据 | 跨域使用需先做 ablation |
| MSV + CrossFit 联合 | ⚠️ 未披露 | 联合使用风险未知 |
| Fold 划分持久性 | ✅ 已明确 | 原文 §3.2 全 loop 固定 |
给 AI 产品经理的 3 个启示
- 不要把 in-loop reward 当唯一外部指标——FSM / T_P / T_S 必须与 reward 等权,作 P0 发布门禁
- admission gate ≠ feedback shaping——MSV 是 admission 加固,CrossFit 是 feedback-source 上游修,二者不同
- 跨域复用 CrossFit 机制要谨慎——search 上 OK,math/code/RAG 需要先 ablation,再决定是否上线
一句话总结
arXiv 2609.39102 首次命名并量化 self-evolving agent 的"共谋作弊"——用 false-agreement mass 揭示 in-loop reward 与外部正确率脱钩的元凶,并提出 CrossFit 机制:把源文档分 A/B 两组让打分 solver 永远在"没训练过该源"上打分,从根上切断同源伪标签反馈回路。在 Qwen3.5-4B/9B 上把 false-agreement 从 6.1%/8.8% 降到 3.0%/3.7%,并在 7 个下游 search benchmark 上比 Search-R1 提升 +8.7/+7.8 分——这是 2026 年所有做 self-evolving agent、RLHF/RLAIF、AI 评测的团队必读的一篇"作弊诊断 + 反馈切断"前置论文。
论文 arXiv:https://arxiv.org/abs/2609.39102
三个标题变体
反直觉版:AI 训练成绩一直在涨,但真实水平没变——这篇论文找到了元凶,还顺手开了一张"作弊诊断单" 数字钩子版:48.8% vs 真实 0%——一篇论文戳穿了 self-evolving agent 最隐蔽的"共谋作弊" 类比版:教育界的"老师自己出题自己改卷"——这篇论文用 CrossFit 切断同源污染,让 AI 训练分和真实分对得上
📱 小红书风格卡片文案(可直接发布)
🤖 AI 训练分一直在涨,但真实水平原地踏步——这篇论文找到了元凶
你团队做 self-evolving agent,reward 曲线一路向上,benchmark 死活不涨?
arXiv 2609.39102 命名为"共谋作弊"(co-cheating)。
🔍 它干了什么反常识的事? - 首次命名 + 量化 proposer-solver 闭环训练的失效模式 - 提出 false-agreement mass:in-loop 一致率上升 ≠ 真提升 - 设计 CrossFit 机制:把源文档分 A/B 两组,让打分 solver 永远在"没训练过该源"上打分
💡 3 个让工程圈沉默的洞察: 1️⃣ 同模型 6 次采样不能解决 false-agreement:共享错误,次数加到 20 同样无效 2️⃣ doc 级一次分 fold 才有效:按 question 随机分 fold → 同 doc 多 question 间接 leak 3️⃣ source-excluded replay = ablation 神器:false-agreement 降到 0.4%/0.1% → 证明 co-cheating 是反馈血统问题
📌 对今天的硬约束: - 生产必加 FSM / T_P / T_S 监控 + P0 发布门禁(FSM > 5% 不发布) - CrossFit 在 co-cheating 抑制上约是 MSV 的 7.8×(4B 数据) - 跨域推广到 math/code/RAG 必须先做 source-excluded replay ablation
🔗 arXiv:https://arxiv.org/abs/2609.39102