docs: 第三章勘误——off-policy 切片是数据轨迹上的 KL 蒸馏而非混 SFT;补 prompt-only 下静默空转的说明

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-18 09:02:41 -04:00
parent 1d272b6d6c
commit 68216ace22
+2 -2
View File
@@ -57,7 +57,7 @@ server 路径更粗:teacher 只回传 top-k logprobs 三张表(DT:2676-2679
### 2.5 buffer 与 on-policy 生成(DT:846-932, 1071-1263 ### 2.5 buffer 与 on-policy 生成(DT:846-932, 1071-1263
- `_RepeatBatchDataLoader` 把同一 collated batch 重复 `gradient_accumulation_steps` 次(DT:346-371),`_fill_buffer` 按**切片级**伯努利抽签 on/off-policy`random() <= lmbda`DT:879,主进程抽签后广播)。 - `_RepeatBatchDataLoader` 把同一 collated batch 重复 `gradient_accumulation_steps` 次(DT:346-371),`_fill_buffer` 按**切片级**伯努利抽签 on/off-policy`random() <= lmbda`DT:879,主进程抽签后广播)。
- **off-policy 切片数据集自带 completion**DT:893-894),不是 teacher 采样——SFT 数据混训,非蒸馏 - **off-policy 切片 = 在数据集自带 completion 的轨迹上做 KL 蒸馏**DT:893-894 原样保留数据轨迹;损失仍是 KL,不是交叉熵)——GKD 的 λ 插值本义:λ=0 离线蒸馏、λ=1 纯 on-policy。两个易误解处:轨迹不是 teacher 现场采样的;DAPO prompt-only 下这些切片 labels 全 -100KL 被掩码归零 = **静默空转的算力浪费**(唯一例外:`lmbda=0`+server 触发 teacher 生成,DT:901-906,即层 1 SFT 数据来源)
- on-policy 切片:vLLM colocate 生成(按 `vllm_sync_frequency` 同步权重,DT:1094-1106)或 `model.generate`DT:1113-1168);生成结果重建 input_ids/labels 写回 bufferDT:1170-1263labels 只在 completion 段有效)。 - on-policy 切片:vLLM colocate 生成(按 `vllm_sync_frequency` 同步权重,DT:1094-1106)或 `model.generate`DT:1113-1168);生成结果重建 input_ids/labels 写回 bufferDT:1170-1263labels 只在 completion 段有效)。
- loss 前向是对已生成序列的 teacher-forcingDT:2883)——"采样一次、前向算分布",GKD 标准做法。 - loss 前向是对已生成序列的 teacher-forcingDT:2883)——"采样一次、前向算分布",GKD 标准做法。
@@ -70,7 +70,7 @@ server 路径更粗:teacher 只回传 top-k logprobs 三张表(DT:2676-2679
| 坑 | 位置 | 说明 | | 坑 | 位置 | 说明 |
|----|------|------| |----|------|------|
| `lmbda=1 + no_teacher` 穿过守卫后在深处崩 | DT:2872 vs DT:2593 | 报错文案宣称合法,实际必崩——守卫条件写错 | | `lmbda=1 + no_teacher` 穿过守卫后在深处崩 | DT:2872 vs DT:2593 | 报错文案宣称合法,实际必崩——守卫条件写错 |
| off-policy ≠ teacher 蒸馏 | DT:893-894 | 语义上是"混 SFT",文档易误读 | | off-policy ≠ "teacher 采样的离线数据" | DT:893-894 | 轨迹来自数据集固有 completion(损失仍是 KL);prompt-only 数据下整个切片被掩码归零,静默空转 |
| `num_generations>1 且 lmbda<1` 会造重复样本 | CFG:593-596 | 官方注释自己承认 | | `num_generations>1 且 lmbda<1` 会造重复样本 | CFG:593-596 | 官方注释自己承认 |
## 3. 与式(2) 的偏差清单(默认配置下) ## 3. 与式(2) 的偏差清单(默认配置下)