SpyRL:用「谁是卧底」游戏为开放域任务生成自验证 RL 奖励 · 干货攻略
- 链接: https://arxiv.org/abs/2607.23802
- 分类: x-tips
- 来源: X @_akhaliq
- 作者: Jay
- 更新: 2026-08-11
- 仓库: wangqinsi1/RLSVR(代码在
SpyRL分支)
这是什么
SpyRL 是 RLSVR(Reinforcement Learning with Self-Verifiable Rewards)的具体实现,由 Duke 大学、Adobe、NUS、Penn State 等机构联合提出,已被 COLM 2026 接收。
核心思想一句话:把开放域任务变成一个「谁是卧底」游戏,让游戏的投票结果自动成为可验证的 RL 奖励信号——无需任何 ground truth、无需人类标注、无需 reward model。
- 论文: arXiv:2607.23802(v2,2026-07-31)
- 代码/模型: github.com/wangqinsi1/RLSVR(
SpyRL分支),HuggingFace huggingface.co/SpyRL - 基座: 基于字节跳动 verl 框架,训练从 Qwen3-4B / Qwen3-8B 起步
为什么值得关注
RLVR(Reinforcement Learning with Verifiable Rewards)驱动了 o1、DeepSeek-R1 等推理模型的突破,但它有一个致命局限:只在数学、代码等有确定性答案的领域有效。
开放域任务(摘要、创意写作、对话)没有标准答案,业界通常依赖三种代理:
| 方式 | 问题 |
|---|---|
| 人类偏好(RLHF/DPO) | 贵,无法规模化 |
| Reward Model | 需额外训练,judge 能力成为瓶颈 |
| LLM-as-a-Judge | 推理开销大,bias 难以消除 |
SpyRL 的洞察是:自监督学习之所以成功,是因为它自己构造了一个"前置任务",从数据内部自动生成监督信号。把这个思想迁移到 RLVR,就是 RLSVR——把开放域任务本身改造成一个规则可验证的代理环境。
核验过程
官方来源(已读): 1. arXiv 论文摘要页(arXiv:2607.23802)—— 包含完整 Abstract、作者 Affiliation、Submission history(v1 2026-07-26,v2 2026-07-31) 2. arXiv HTML 全文页(2607.23802v2)—— 包含 Introduction、Method、Experiment 完整正文,以及论文中 Figure 1 的详细说明 3. GitHub README(wangqinsi1/RLSVR,SpyRL 分支 raw 文件)—— 包含全部性能数据表、Key Features、Quick Start、训练奖励公式
交叉验证: - 多方报道(Glonce、AI Weekly、explainx.ai)均引用相同核心数字:Qwen3-8B 上 SpyRL 摘要 A/B 胜率 75.4%、创意写作 77.3%、数学 7 项平均 +6.16%(8B)/ +8.97%(4B) - 所有数字与 GitHub README 表格完全一致,未发现冲突
原帖 vs 官方说明对照:
| 原帖主张 | 官方说明 | 结论 |
|---|---|---|
| "arxiv 2026-07 有实现代码" | ✅ 确认:GitHub 在 SpyRL 分支,HF 模型已发布 | 属实 |
| "填补 RLVR 在开放域泛化的关键缺口" | ✅ 论文 Abstract 明确提出此定位 | 属实 |
| 性能数字 | ✅ README 包含全部 7 项 benchmark 原始数据 | 属实 |
| 适用条件 | 需 Qwen3-4B/8B 基座,训练基于 verl 框架 | 原帖未说明,已补全 |
上手步骤
1. 安装依赖
git clone https://github.com/wangqinsi1/RLSVR.git
cd RLSVR
git checkout SpyRL
pip install -e .
2. 下载预训练模型
官方已在 HuggingFace 发布 SpyRL 微调后的模型:
| 模型 | HuggingFace |
|---|---|
| SpyRL-Qwen3-4B | huggingface.co/SpyRL/Qwen3-4B-SpyRL |
| SpyRL-Qwen3-8B | huggingface.co/SpyRL/Qwen3-8B-SpyRL |
# 模型权重示例(HuggingFace)
from transformers import AutoModelForCausalLM, AutoTokenizer
model = AutoModelForCausalLM.from_pretrained("SpyRL/Qwen3-8B-SpyRL")
tokenizer = AutoTokenizer.from_pretrained("SpyRL/Qwen3-8B-SpyRL")
3. 游戏机制:奖励怎么算
SpyRL 把一轮游戏分成三个阶段:
(1)角色分配 - 1 个 Spy(卧底):只拿到降级版输入(缺少关键信息) - n 个 Civilian(平民):拿到完整输入 - 所有人做同一个目标任务(摘要 / 创意写作 / 数学)
(2)投票
- 每个玩家看完所有人的输出后,投票指出谁最可能是 Spy
- 投票格式:输出 \boxed{玩家编号} 或 \boxed{N/A}
(3)奖励计算(规则天然可验证)
# 检测奖励(Detection Reward):投票是否命中 Spy,100% 可验证
r_D = 1[vote == spy] # 猜对 = 1,猜错 = 0
# 表演奖励(Performing Reward):Spy 被投得多 = 平民输出好
# β 为超参数(论文中通过实验选定),m_u = Spy 得票数,m̄_c = 平民平均票数
r_P(spy) = -β * (m_u - m̄_c)
r_P(civilian) = (β / n_c) * (m_u - m̄_c) - λ * (m_j - m̄_c)
关键点:游戏的投票结果由环境预设的 spy 身份决定奖励,天然可验证,不需要任何外部 judge。
4. 运行训练
# 基于 verl 框架的分布式训练示例
# 详细配置见仓库 examples/ 或训练脚本
python -m verl.distributed.run \
--model_name_or_path Qwen/Qwen3-8B \
--train_group_size 8 \
--epoch 10 \
--total_epochs 10 \
--game_data_path /path/to/your/document/corpus
训练数据只需原始文档(报告、故事、数学网页文本),不需要标注,不需要 question-level supervision,不需要偏好对。
5. 评估
# 仓库提供 evaluation 脚本
python scripts/evaluate.py \
--model_path SpyRL/Qwen3-8B-SpyRL \
--tasks govreport,multi_news,writingprompts,gsm8k
坑与适用边界
适用场景: - 开放域生成任务(摘要、创意写作、开放式问答) - 已有可做任务的基座模型(Qwen3-4B/8B 级别) - 想在无标注数据下持续自改进
不适用 / 需注意: - 计算开销:SpyRL 每轮需要多 agent 交互(训练比单 agent RLVR 贵) - 游戏质量依赖:如果任务本身很难构造"信息不对称",游戏激励可能失效 - 领域迁移:需换领域 = 换文档语料,任务设计需要适配,不是开箱即用 - Vote gaming 风险:如果模型学会产生"引人注目但质量不高"的输出来操控投票,奖励信号可能偏移(论文用 GRPO 归一化缓解) - 原创论文声明:SpyRL 提出的关键弱点之一是"vote 与真实质量的关联性"取决于游戏设计质量;论文通过 100 场游戏的 GPT-4o 排序验证了相关性,但大规模训练中是否持续成立仍需观察 - 模型规模:论文仅在 Qwen3-4B/8B 上验证,更大规模或更小规模模型效果待测
一句话结论
SpyRL 把「谁是卧底」游戏的投票规则变成 RL 奖励信号,让开放域任务(摘要、创意写作)也能像数学代码一样做端到端自改进,无需任何 ground truth 或外部 judge,在 Qwen3-8B 上实现了 75%+ A/B 胜率。