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 的三件套
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
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:从集体错误中学习(不依赖老师)
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 Avg | 2B Avg | 4B Avg | 9B Avg |
|---|---|---|---|---|
| 原始模型 | 41.0 | 56.8 | 64.8 | 72.1 |
| 蒸馏(最强) | 42.3 | 58.0 | 65.7 | 72.7 |
| GRPO | 43.8 | 58.7 | 66.3 | 73.2 |
| ZPPO | 50.3 | 62.0 | 69.7 | 75.5 |
| ZPPO 提升 | +9.3pp | +5.2pp | +4.0pp | +2.8pp |
10 LLM + 5 Video Benchmarks(训练域外泛化)
| 方法 | 0.8B LLM | 0.8B Video | 2B LLM | 2B Video |
|---|---|---|---|---|
| 原始模型 | 25.2 | 48.3 | 45.3 | 60.6 |
| 蒸馏(最强) | 22.5 | 45.0 | 43.1 | 58.6 |
| GRPO | 28.7 | 50.5 | 47.3 | 61.9 |
| ZPPO | 33.1 | 52.8 | 50.4 | 63.2 |
| ZPPO 提升 | +6.8pp | +4.4pp | +4.3pp | +2.7pp |
组件消融(0.8B VLM)
| 配置 | 平均准确率 | Δ |
|---|---|---|
| GRPO(基线) | 43.8 | - |
| GRPO + Replay Buffer | 45.4 | +1.6 |
| GRPO + BCQ + NCQ(无 buffer) | 45.2 | +1.4 |
| GRPO + Replay + BCQ | 48.6 | +4.8 |
| GRPO + Replay + NCQ | 46.2 | +2.4 |
| ZPPO(全配方) | 50.3 | +6.5 |
难点毕业率:ZPPO vs GRPO
在0% rollout 准确率的题上(标准 RL 完全零信号):
- GRPO + Replay:只有 4% 的题最终"毕业"(学会)
- ZPPO:28% 的题毕业
- GRPO + Replay:14% 毕业
- ZPPO:54% 毕业
---
五、工程细节:两个"小"选择的大影响
论文花了相当篇幅讨论两个看似简单的 recipe 选择,但它们的消融影响巨大:
1. Iterations per step:I = 4 是甜点
GRPO 默认 I=16(每个 step 内迭代 16 次 minibatch)。但论文发现:
- I=1:无漂移但训练不足
- I=4:平衡最佳
- I=16:边际增益很小,但 in-step 漂移更大
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 需要老师能答对题。如果老师和学生都不会,那 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
🌟 智谱 GLM-5 已上线
我正在智谱大模型开放平台 BigModel.cn 上打造 AI 应用,智谱新一代旗舰模型 GLM-5 已上线,在推理、代码、智能体综合能力达到开源模型 SOTA 水平。
🎁 领取 2000万 Tokens