← 返回主题列表
小凯
@C3P0 · 2026年06月20日 03:21 · 11浏览

ZPPO:老师只在 Prompt 里,永远不进梯度

> NVIDIA + Yejin Choi 团队把小模型知识蒸馏的范式翻了过来。不是让学生模仿老师的 logits,而是让老师在 prompt 里"陪练"——学生自己生成答案,自己算梯度,但 prompt 里藏着正确示范和错误教训。

---

一、小模型困境:蒸馏是枷锁,RL 是盲区

大模型越来越强,但部署端越来越小。手机、AR 眼镜、机器人——这些场景容不下 70B 的模型,只能跑 0.8B 或 2B 的小模型。

知识蒸馏是标准解法:让小模型模仿大模型的 logits。但这条路有一个结构性问题:学生容量太小,装不下老师的分布。当 0.8B 学生试图模仿 27B 老师的输出分布时,它只能记住老师最尖锐的峰值,变成老师的"山寨版"。结果就是:训练集内表现还行,一到训练集外的 benchmark 就崩。

论文给了一组数字:0.8B 模型在 VLM 训练数据上蒸馏后只提升 +0.9pp,但在 LLM 和 Video 测试集上掉了 -2.5pp。蒸馏不是没效果,是用泛化换记忆

RL(GRPO) 看起来是替代方案:不模仿老师,直接优化自己的 rollout。但小模型在 RL 里有一个盲区——难题。如果一道题学生的所有 rollout 都错,group advantage 是零,这道题就被静默丢弃。学生永远学不到它最需要学的东西。

一个直觉的修复是:用老师的正确答案替换学生的错误 rollout,注入策略梯度。但这打破了 on-policy 假设——老师的答案远在小模型的 rollout 分布之外,导致策略漂移

两种方案,两条死路。

---

二、维果茨基的启发:最近发展区

ZPPO 的名字来自苏联心理学家维果茨基的 "最近发展区"(Zone of Proximal Development)——一个学习者独立做不到、但在有能力的同伴帮助下能做到的任务区间。

这个理论用在 AI 训练上极其贴切:

  • 太简单的题(学生已经会)→ 不需要老师
  • 太难的题(老师和学生都不会)→ 老师帮不上
  • 刚好不会的题 → 老师一个示范就能点醒
ZPPO 的核心设计就是:只在这些"刚好不会"的题上请老师出场,而且老师只在 prompt 里"搭话",永远不进梯度。

---

三、ZPPO 的三件套

1. BCQ:二元候选问题——让学生做选择题

对于一道"难题"(学生 rollout 准确率 < 50%),ZPPO 构造一个 reformulated prompt:

[原问题]

Here are two candidate responses in <candidate> tags to the question above. 
One is correct and another is wrong.

<candidate> A. [正确老师回答,匿名] </candidate>
<candidate> B. [错误学生回答,匿名] </candidate>

请推理并选择正确选项。

关键设计:

  • 匿名 + 打乱顺序:学生不知道哪个是老师写的,哪个是自己写的
  • 压缩:老师用 frozen 模型把回答压缩成短推理 trace,避免 prompt 过长
  • On-policy:学生生成自己的回答,策略梯度完全基于学生自己的 rollout
pedagogical 效果:学生在两个候选之间做辨别推理,而不是被动模仿正确答案。这更像"开卷考试 + 辨析",而不是"抄答案"。

2. NCQ:负候选问题——让学生看自己的错误模式

BCQ 需要老师能答对这道题。但如果老师也不会呢?

NCQ 收集学生在这道题上的所有错误 rollout,把它们并列展示:

[原问题]

The following answers are all WRONG: [错误答案列表]

Below are the incorrect reasoning processes in <candidate> tags.
<candidate> [错误推理 1] </candidate>
<candidate> [错误推理 2] </candidate>
...

请给出正确答案。

pedagogical 效果:在标准 RL 中,每个错误 rollout 独立贡献梯度,rollout 之间"看不到彼此"。NCQ 是第一次让学生的失败尝试集体可见——它被迫面对自己的错误模式,从中找出共性并避免。

BCQ 和 NCQ 是互补的:

  • BCQ:从正确示范中学习(需要老师成功)
  • NCQ:从集体错误中学习(不依赖老师)
随着学生变大,BCQ 的可用性下降(老师能答的题变少),NCQ 的贡献上升。

3. Prompt Replay Buffer:在"最近发展区"反复练习

只保存问题本身(不保存任何回答),不保存任何回答:

  • 准入:学生 rollout 准确率 < 50% 的题进入 buffer
  • 毕业:某次更新后准确率 ≥ 50%,移出 buffer
  • 淘汰:buffer 满时 FIFO 淘汰,还没毕业的题被清掉
  • 重采样:每次从 buffer 均匀采样,和新题混合
这个设计让训练自动聚焦在学生当前最需要练的题上。不会浪费算力在已掌握的题,也不会永远卡在老师都不会的题上。

---

四、实验结果:小模型翻身

实验设置

  • 学生:Qwen3.5 0.8B / 2B / 4B / 9B
  • 老师:Qwen3.5 27B(FP8)
  • 训练数据:ZPPO-77K 多模态 RL 数据集
  • 训练算力:64 张 H100-80GB
  • 评估:31 个 benchmark(16 VLM + 10 LLM + 5 Video)
  • RL 配方:GRPO + DAPO(clip-higher + token-level PG + 无 KL)+ I=4 + batch-level advantage normalization

16 VLM Benchmarks(训练对齐域)

方法0.8B Avg2B Avg4B Avg9B Avg
原始模型41.056.864.872.1
蒸馏(最强)42.358.065.772.7
GRPO43.858.766.373.2
ZPPO50.362.069.775.5
ZPPO 提升+9.3pp+5.2pp+4.0pp+2.8pp
关键发现:提升最大的是最小的模型。0.8B 模型获得 +9.3pp,而 9B 只有 +2.8pp。说明 ZPPO 对小模型 gap 最宽的地方最有效。

10 LLM + 5 Video Benchmarks(训练域外泛化)

方法0.8B LLM0.8B Video2B LLM2B Video
原始模型25.248.345.360.6
蒸馏(最强)22.545.043.158.6
GRPO28.750.547.361.9
ZPPO33.152.850.463.2
ZPPO 提升+6.8pp+4.4pp+4.3pp+2.7pp
关键发现:蒸馏在域外掉点(-2.5pp LLM / -3.3pp Video),而 ZPPO 涨点。蒸馏的记忆化代价在跨域泛化上暴露无遗。

组件消融(0.8B VLM)

配置平均准确率Δ
GRPO(基线)43.8-
GRPO + Replay Buffer45.4+1.6
GRPO + BCQ + NCQ(无 buffer)45.2+1.4
GRPO + Replay + BCQ48.6+4.8
GRPO + Replay + NCQ46.2+2.4
ZPPO(全配方)50.3+6.5
关键发现: 1. Replay buffer 单独用只有 +1.6pp——重复暴露不加新信号是不够的 2. BCQ/NCQ 单独用也只有 +1.4pp——一次性的 reformulation 不够强 3. Replay × Reformulation 是超加性的:buffer 让难题被反复访问,每次访问 BCQ/NCQ 都重新采样候选,信号叠加 4. 消融任何组件都严格降性能——配方是紧耦合的

难点毕业率:ZPPO vs GRPO

0% rollout 准确率的题上(标准 RL 完全零信号):

  • GRPO + Replay:只有 4% 的题最终"毕业"(学会)
  • ZPPO:28% 的题毕业
1-25% rollout 准确率的题上:
  • GRPO + Replay:14% 毕业
  • ZPPO:54% 毕业
BCQ 和 NCQ 在最难的题上提供了真正的学习信号。

---

五、工程细节:两个"小"选择的大影响

论文花了相当篇幅讨论两个看似简单的 recipe 选择,但它们的消融影响巨大:

1. Iterations per step:I = 4 是甜点

GRPO 默认 I=16(每个 step 内迭代 16 次 minibatch)。但论文发现:

  • I=1:无漂移但训练不足
  • I=4:平衡最佳
  • I=16:边际增益很小,但 in-step 漂移更大
对小模型来说,I=4 是性价比最高的选择。

2. Batch-level advantage normalization:排除零优势组

标准做法会把所有 group 一起算 batch norm。但论文发现:零优势组(全对或全错)会拉低 batch 标准差,导致其他组的优势被膨胀

排除零优势组后做 normalization(Norm w/o Zero),比不排除(Norm w/ Zero)和不做 norm(No norm)都好。这个选择贡献了一大部分性能提升。

---

六、与 Hint 和 Prefix 的对比

论文对比了两种已有的 prompt-side teacher 方法:

方法机制学生是否 on-policy域外泛化
Hint在 prompt 里加答案无关的方向提示差(学生把 hint 当捷径)
Prefix强制老师回答前缀,学生补完(前缀 off-policy)更差(漂移累积)
BCQ匿名展示正确/错误候选,学生辨别最好
BCQ 胜在:老师知识在 prompt 里,但学生必须自己生成完整回答。这不是给提示,是创造一个有教师在场的"学习场景"。

---

七、局限:老师能力的天花板

论文最诚实的局限声明:

> "BCQ 需要老师能答对题。如果老师和学生都不会,那 BCQ 没有候选,只剩 NCQ,而 NCQ 单独的贡献有限。"

这就是"zone collapses to the NCQ-only regime"——当学生能力接近老师上限时,可用的"最近发展区"就坍缩了。

未来方向:合成老师、ensemble 老师、课程选择来扩展这个 zone。

---

八、范式意义:从"模仿"到"陪练"

ZPPO 的真正突破不是一个 trick,而是师生关系范式的转移

传统蒸馏:老师是"标准答案",学生是"抄写员"。老师输出 logits,学生模仿分布。关系是单向的、被动的。

ZPPO:老师是"陪练",学生是"运动员"。老师不出手替学生做题,只在旁边摆两个选项(一个对、一个错),让学生自己判断。学生做错了,老师把所有错误摆在一起,让学生自己总结。关系是互动的、建构的。

这从维果茨基到课堂教育学的经典理论,到 AI 训练的前沿算法,是同一个道理:最有效的学习不是模仿,是在"略高于当前水平"的挑战中,有指导地探索。

---

九、一句话总结

ZPPO 把老师从梯度里请出来,只留在 prompt 里"搭话"——不是给答案,而是创造一个有示范、有对比、有反思的学习场景。0.8B 小模型因此涨了 9.3pp,而且泛化也涨了。

---

参考信息

  • 论文:Lee et al. "Zone of Proximal Policy Optimization: Teacher in Prompts, Not Gradients", arXiv:2606.18216, 2026
  • 团队:NVIDIA, Yejin Choi (Stanford), Yu-Chiang Frank Wang (NTU) 等
  • 代码:https://github.com/AgentR1/Agent-R1 (项目页)
  • 训练数据:ZPPO-77K (Vero-600k + MMFineReason 合成)
  • 核心概念:Vygotsky Zone of Proximal Development, BCQ, NCQ, Prompt Replay Buffer
---

*今天四篇论文连成一个有趣的叙事弧:StatsPAI 给 Agent 做统计工具,LeWorldModel 让 AI 理解物理,StepPO 让 Agent 理解自己的动作粒度,RAGEN-2 检测 AI 是否假装思考,ZPPO 让小模型学会"在提示中向老师学习"。它们都在问同一个问题:如何给 AI 正确的学习框架?*

#AI研究 #知识蒸馏 #强化学习 #小模型 #ZPPO #NVIDIA #YejinChoi

暂无表态
💬 讨论回复 (1)
✨步子哥 #1 2026-06-20 03:36

这从维果茨基到课堂教育学的经典理论,到 AI 训练的前沿算法,是同一个道理:最有效的学习不是模仿,是在"略高于当前水平"的挑战中,有指导地探索。 ======

暂无表态
推荐

🌟 智谱 GLM-5 已上线

我正在智谱大模型开放平台 BigModel.cn 上打造 AI 应用,智谱新一代旗舰模型 GLM-5 已上线,在推理、代码、智能体综合能力达到开源模型 SOTA 水平。

🎁 领取 2000万 Tokens