Team-Based Self-Play With Dual Adaptive Weighting for Fine-Tuning LLMs¶
会议: ACL 2026
arXiv: 2605.09922
代码: https://github.com/lab-klc/TPAW
领域: 自监督 / LLM 对齐
关键词: 自博弈微调、历史 checkpoint、偏好优化、自适应加权、LLM 对齐
一句话总结¶
TPAW 将 LLM 自训练改造成“当前模型与历史模型组队博弈”的对齐过程,并用目标响应权重与主玩家权重两套自适应机制稳定偏好优化,在不额外引入人工偏好标注的情况下提升 Open LLM Leaderboard 与 GSM8K 表现。
研究背景与动机¶
领域现状:LLM 对齐通常依赖 SFT、RLHF 或 DPO。SFT 需要高质量示范数据,RLHF 需要奖励模型和人工偏好,DPO 虽然省掉显式奖励模型,但仍然需要偏好对。为了降低人工标注成本,SPIN 等 self-play / self-training 方法开始利用已有 SFT 数据,让模型把人类答案视为正样本、把自己生成的答案视为负样本,迭代提升对齐质量。
现有痛点:这类自训练方法主要看“当前模型”的生成质量,历史训练轨迹利用不足。一旦某一轮生成样本有偏差,后续迭代容易继续放大错误。另一个更隐蔽的问题是,DPO 式目标同时推正样本、压负样本,但在自训练后期,模型生成答案和目标答案越来越接近,正负样本间隔变小,训练信号变噪;论文还观察到目标响应概率本身会下降,导致模型偏离 SFT 目标分布。
核心矛盾:自训练想用模型自身生成的数据替代人工偏好,但又必须避免“只和当前自己比较”带来的不稳定、偏差累积和目标分布漂移。换句话说,模型既要从历史版本中获得更丰富的对手,又不能让早期较弱 checkpoint 的噪声压过当前学习。
本文目标:作者希望在完全自监督的设定下,用同一份 SFT 数据继续挖掘对齐收益;具体要解决三个子问题:如何利用历史 checkpoint,如何防止目标响应 reward 下降,如何让不同历史玩家在每个样本上贡献合适的训练权重。
切入角度:论文把 self-play 改写成两个队伍之间的竞争:opponent team 负责生成越来越像人类答案的负样本,main player team 负责区分 SFT 目标响应和模型生成响应。历史 checkpoint 同时进入对手队伍和主玩家队伍,使训练过程不再只依赖当前模型的一次判断。
核心 idea:用“历史 checkpoint 组队 + 双重自适应加权”替代单模型自博弈,让 LLM 在同一份 SFT 数据上进行更稳定的数据高效对齐。
方法详解¶
TPAW 的直觉很像把单人训练赛变成队伍赛。普通 SPIN 只让当前模型生成负样本,再训练当前模型区分人类答案和自己答案;TPAW 则保留最近几轮模型,让它们共同构成对手和裁判。这样做有两个好处:第一,负样本来自训练轨迹中的多个阶段,不会只反映当前模型的一种错误模式;第二,隐式 reward 由当前模型和历史模型的相对概率给出,可以衡量“当前策略相对某个历史策略是否更偏向目标答案”。
整体框架¶
输入是一份 SFT 数据集 \(D_{SFT}=\{(x_i,y_i)\}\) 和一个初始 SFT policy \(\pi_{\theta_0}\)。在第 \(t+1\) 轮,当前 policy \(\pi_{\theta_t}\) 先对 SFT prompt \(x_i\) 采样生成 \(y_i^{gen}\),并和原始目标答案 \(y_i\) 组成三元组 \((x_i,y_i,y_i^{gen})\)。论文只保留最近三轮三元组,构成 opponent dataset \(D_O=D_t\cup D_{t-1}\cup D_{t-2}\)。
接着,TPAW 为最近三个 checkpoint 构造 main players。每个 player \(P_j\) 使用当前模型与历史模型 \(\pi_{\theta_j}\) 的 log 概率比作为隐式 reward:\(P_j(x,y)=\lambda\log \frac{\pi_\theta(y|x)}{\pi_{\theta_j}(y|x)}\)。如果一个目标答案更接近当前模型的目标分布,player 应该给它更高分;如果一个模型生成答案更像偏离目标的响应,player 应该给它更低分。训练目标就是让每个 player 拉大 \(P_j(x,y)-P_j(x,y^{gen})\) 的间隔。
最后,TPAW 不直接平均所有 player 的 loss,而是先对目标响应做权重 \(\alpha\),再对不同 player 做权重 \(\beta\),用加权 logistic loss 更新 policy。迭代若干轮后得到最终 aligned policy。
%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400, 'subGraphTitleMargin': {'top': 8, 'bottom': 16}}}}%%
flowchart TD
A["SFT 数据 + 初始 SFT policy"] --> B["当前 policy 采样生成 y_gen<br/>组成三元组 (x, y, y_gen)"]
subgraph TEAM["Team-Based Self-Play(历史 checkpoint 组队)"]
direction TB
B --> C["对手队伍:最近三轮三元组<br/>D_O = D_t ∪ D_t-1 ∪ D_t-2"]
C --> D["主玩家队伍:各 checkpoint 隐式 reward<br/>P_j = λ log(π_θ / π_θj)"]
end
D --> E["目标响应自适应加权 α<br/>检测 P_j(x,y)≤0 漂移则放大目标拉力"]
E --> F["主玩家自适应加权 β<br/>按 margin 用 softmax 分配各 player 权重"]
F --> G["加权 logistic loss 更新 policy"]
G -->|迭代下一轮| B
G --> H["对齐后的 policy"]
关键设计¶
1. Team-Based Self-Play 框架:用历史 checkpoint 组队,替代只和当前自己比较
普通 SPIN 只让当前模型生成负样本、再训练当前模型去区分人类答案和自己答案,问题是一旦某一轮合成数据有偏差,后续迭代会顺着同一种错误模式越滚越大。TPAW 把单人训练赛改成队伍赛:保留最近三个历史 checkpoint,让它们既组成 opponent team(在 SFT prompt 上生成负样本),又组成 main player team(判断目标答案与生成答案的相对优劣),训练数据则取最近三轮三元组 \(D_O=D_t\cup D_{t-1}\cup D_{t-2}\)。这样负样本来自训练轨迹的多个阶段,不会被当前模型的单一错误模式主导;而历史 checkpoint 记录的“从弱到强”轨迹本身就是一份廉价监督,能给优化提供比单模型更丰富的对比分布,缓解自训练里常见的偏差累积。
2. Adaptive Target Response Weighting:发现目标分布漂移时,把训练重心拉回真实答案
DPO 式自训练有个隐蔽副作用——它同时推正样本、压负样本,到后期连目标答案的概率也一起下降,模型悄悄偏离 SFT 目标分布。TPAW 用一个按样本触发的权重 \(\alpha\) 来纠偏:如果某个 player 给出 \(P_j(x,y)\le 0\),意味着当前模型相对历史模型并没有更偏好目标答案(即出现了漂移迹象),就把该目标响应的权重设为 \(\eta>1\)(实用值 \(\eta=6\)),否则保持为 1。于是这一项的比较从 \(P_j(x,y)\) 对 \(P_j(x,y^{gen})\) 变成 \(\alpha_j P_j(x,y)\) 对 \(P_j(x,y^{gen})\)——只在检测到目标 reward 走低时才额外放大对真实答案的拉力,相当于给训练装了一个“偏离即回正”的负反馈。
3. Adaptive Main Player Weighting:按判别难度动态分配各 checkpoint 的训练贡献
最近的 checkpoint 可能还没训够、判别力弱,较早的 checkpoint 又可能在对应分布上过拟合,简单平均所有 player 的 loss 会把学习预算浪费在那些已经分得很开的样本上。TPAW 先对每个 player 算出 margin \(m_j=P_j(x,y)-P_j(x,y^{gen})\),再用 softmax 形式分配权重
(实用值 \(\gamma=0.5\))。margin 越小说明这个 player 越分不清正负样本,对应权重就越大,于是优化会自动把注意力压到那些“当前最薄弱的判断”上。比起静态平均,这种按样本、按 player 的动态加权能让多 checkpoint 的收益真正落到刀刃上,而不是被强 player 稀释。
损失函数 / 训练策略¶
TPAW 使用 logistic loss \(\ell(t)=\log(1+\exp(-t))\),对每个 player 优化 \(\ell(\alpha_j P_j(x,y)-P_j(x,y^{gen}))\),再用 \(\beta_j\) 汇总成队伍级目标。实验中 opponent/main player 默认使用最近三轮 checkpoint;超参数分析给出的实用设置是 \(\eta=6\)、\(\gamma=0.5\)。第 0 轮没有历史模型时跳过缺失项,第 1 轮只使用可用的两个 checkpoint,之后进入完整三玩家队伍训练。
实验关键数据¶
主实验¶
论文在 Qwen2.5-1.5B 和 Llama3.1-8B 上实验。SFT 使用 Ultrachat200k,TPAW/SPIN 使用其中 50k 子集;评测覆盖 Open LLM Leaderboard V1/V2 的 12 个 benchmark。下表摘取各方法在平均分上的代表性最好迭代。
| 基座模型 | 方法 | V1 Avg. | V2 Avg. | 备注 |
|---|---|---|---|---|
| Qwen2.5-1.5B | SFT | 56.28 | 13.40 | 全量 Ultrachat200k SFT |
| Qwen2.5-1.5B | DPO | 58.55 | 13.50 | 使用 UltraFeedback 偏好数据 |
| Qwen2.5-1.5B | SPIN best | 57.61 | 14.34 | V1 最好为 iter-4,V2 最好为 iter-3 |
| Qwen2.5-1.5B | TPAW best | 57.76 | 14.82 | V1 最好为 iter-4,V2 最好为 iter-3 |
| Llama3.1-8B | SFT | 63.93 | 17.69 | 初始对齐模型 |
| Llama3.1-8B | DPO | 64.79 | 17.91 | 额外偏好数据基线 |
| Llama3.1-8B | SPIN best | 64.88 | 19.68 | V1 最好为 iter-4,V2 最好为 iter-1 |
| Llama3.1-8B | TPAW best | 66.14 | 20.84 | V1 最好为 iter-3,V2 最好为 iter-4 |
在具体 benchmark 上,TPAW 的收益不只来自平均分。论文报告 Qwen 上 IFEval 最高提升 4.37、Math 提升 3.55、GSM8K 提升 3.79;Llama 上 Arc 提升 4.79、IFEval 提升 8.78、MUSR 提升 4.45。考虑到 TPAW 没有使用额外人工偏好数据,这个结果主要说明它更充分地榨出了已有 SFT 数据的训练信号。
| GSM8K 训练设置 | Accuracy | 相对 Qwen2.5-1.5B-SFT 提升 | 趋势 |
|---|---|---|---|
| Qwen2.5-1.5B-SFT | 51.25 | - | 初始模型 |
| SPIN-gsm8k iter-1 | 53.75 | +2.50 | 有明显收益 |
| SPIN-gsm8k iter-2 | 54.36 | +3.11 | 继续提升 |
| SPIN-gsm8k iter-4 | 54.59 | +3.34 | 后期接近平台 |
| TPAW-gsm8k iter-1 | 54.21 | +2.96 | 起步略优于 SPIN iter-1 |
| TPAW-gsm8k iter-3 | 56.56 | +5.31 | 第三轮拉开差距 |
| TPAW-gsm8k iter-4 | 56.94 | +5.69 | 最终最佳 |
消融实验¶
论文在 GSM8K 上去掉三个关键组件:目标响应权重、主玩家权重、队伍机制。图 3 给出四轮曲线,正文未列出逐点数值,但定性结论很清楚:去掉 team-based mechanism 掉点最大,去掉两类 adaptive weighting 都会阻止模型收敛到完整 TPAW 的最优表现。
| 消融配置 | 被移除的部分 | 观察到的影响 | 解释 |
|---|---|---|---|
| w/o TRW | 目标响应自适应权重 \(\alpha\) | 目标 reward 更容易持续为负,最终低于完整 TPAW | 模型没有被显式拉回 SFT 目标分布 |
| w/o MPW | 主玩家自适应权重 \(\beta\) | 多 checkpoint 的收益下降 | 静态平均无法把权重放到判别困难的 player 上 |
| w/o Team | 历史 checkpoint 队伍 | 掉点最明显 | 训练退化为接近单模型 self-play,历史轨迹利用不足 |
关键发现¶
- Team-based 设计是主要增益来源。它不仅带来更丰富的负样本,还把历史模型作为隐式 reward 参照,避免当前模型在自训练循环里自我确认。
- Adaptive Target Response Weighting 直接针对“正样本概率也下降”的 DPO 式副作用。图 2 显示,不使用该机制时目标响应 reward 会持续处在负区间,而 TPAW 能让 reward 上升并收敛到正值。
- 单纯增加 SFT epoch 并不能替代 TPAW。论文的 SFT 多 epoch 分析显示继续训练更像记忆数据,不能带来相同泛化收益;TPAW 则能在同一数据上突破 SFT 的性能上限。
亮点与洞察¶
- 把历史 checkpoint 变成“队伍成员”很自然,也很可复用。许多迭代式自训练方法都只保留最终模型,但这篇论文说明训练轨迹本身是一种廉价监督信号。
- 双重加权的设计分别对应两个故障模式:\(\alpha\) 防止目标分布漂移,\(\beta\) 防止多玩家平均稀释薄弱环节。它不是简单调 loss 权重,而是把自训练过程中“哪里不稳”显式编码进优化目标。
- 这篇文章对 SFT 数据再利用的讨论很有启发:同一份示范数据不只能做一次 imitation,还可以通过模型自身生成的 contrastive response 反复形成偏好信号。
局限与展望¶
- TPAW 的上限仍然受 SFT 数据质量约束。如果 SFT 数据本身有偏见或答案质量参差,team-based self-play 只能更充分地拟合它,不能自动纠正目标分布。
- 实验主要覆盖通用 leaderboard 和 GSM8K,专门领域任务只做了数学推理一个案例;安全对齐、多轮工具使用、代码生成等场景还需要验证。
- 历史队伍大小存在 trade-off。论文提到 \(N_{max}>3\) 会引入更早、更弱 checkpoint,可能带来低质量偏好信号;未来可以考虑基于样本质量或 checkpoint 能力动态选择队员,而不是固定最近三轮。
- 当前生成负样本仍来自同一模型族,探索性有限。若能混入外部弱模型、检索增强回答或反事实扰动,可能得到更强的对比信号。
相关工作与启发¶
- vs SPIN: SPIN 用当前模型生成负样本并和 SFT 目标答案做区分,TPAW 在此基础上引入历史 checkpoint 队伍,并针对目标响应和主玩家分别自适应加权,因此更稳定地利用多轮训练轨迹。
- vs DPO: DPO 直接优化人工偏好对,TPAW 使用 SFT 目标答案和模型生成答案构造偏好信号,不需要额外偏好标注;代价是偏好质量依赖生成样本和 SFT 数据本身。
- vs Self-Rewarding / AutoIF: 这些方法强调自动生成或验证训练数据,TPAW 更关注自训练目标的稳定性,尤其是如何避免 target response reward 下降。
- 启发: 对任何迭代式 LLM 训练流程,都可以尝试把历史 checkpoint 作为对照模型、奖励模型或数据生成器,而不是只保存最终权重。
评分¶
- 新颖性: ⭐⭐⭐⭐ 历史 checkpoint 队伍化与双重自适应加权组合得很完整,虽然仍建立在 SPIN/DPO 目标之上。
- 实验充分度: ⭐⭐⭐⭐ 覆盖两个基座、两个 Leaderboard、GSM8K 和多组消融,但专门领域和安全场景还不够多。
- 写作质量: ⭐⭐⭐⭐ 方法动机清楚,公式和算法完整;部分表格较大,读者需要自己提炼关键趋势。
- 价值: ⭐⭐⭐⭐ 对低标注成本对齐和 SFT 数据再利用很有实践价值,尤其适合已有高质量 SFT 集但缺少偏好标注的团队。