flow-copd / refine-logs /FINAL_PROPOSAL.md
Ziruibest's picture
Flow-CoPD migration package: code + teacher LoRAs + setup/download scripts + docs
00d75f0 verified
|
Raw
History Blame Contribute Delete
4.82 kB
# Final Proposal — Flow-CoPD: Contrastive On-Policy Distillation for Flow-Matching T2I
**Working name**: **Flow-CoPD** · 把 **DistiLLM-2 / PBSD 的对比式(contrastive)蒸馏**移植到 Flow-OPD。
**Date**: 2026-06-01 · 1× A100 80GB · SD3.5-M + LoRA · 2-teacher 最小可证。
**用户选择**: C —— 干净移植一个 LLM-OPD 改进(保留 task teacher,换取最锋利的 novelty)。
**演进**: DMR-GRPO→TAD(散度塌缩)→TimeRoute(仍需 N 专家)→LRD(=SDEdit+SFT,不锋利)→ **Flow-CoPD**
---
## 创新点(一句话)
> **Flow-OPD 和它的孪生 DiffusionOPD 都是"只拉不推"(positive-only:只把学生拉向 teacher)。我们补上缺失的对比负项——把学生自己的低 reward on-policy 轨迹"推开"——即 DistiLLM-2 的异号异源不对称(teacher 轨迹用 forward-KL 拉、student 低分轨迹用 reverse-KL 推)。这个负半项正是 positive-only 蒸馏压不住的 reward-hacking 模式的克星。**
## 为什么这次"不塌缩、不撞车"
- **不塌缩**(吸取 TAD 教训):散度选择类(skew/JSD/forward)在 velocity-L2 下退化成加权 L2,是空的;但对比负项是**异号**(把 v_θ 推离低分行为),不能被任何正向 L2 加权表示 → 真信号。
- **不撞车**(已查):DiffusionOPD 官方页明确"**No contrastive terms**";Flow-OPD 也是 positive-only;PBSD 做这件事但**只在 LLM**;DiffusionNFT 有负样本但是 **GRPO/policy-improvement** 框架、无 teacher 蒸馏;Diffusion-DPO 是**终端 pair、无 teacher、非稠密**。Flow-CoPD 落在这几者之间的真实空隙。
## Problem Anchor(frozen)
> Flow-OPD/DiffusionOPD 用 task teacher 的稠密 velocity 监督把学生**拉向**高质量,但**没有显式负信号**;它们靠 MAR(冻结美学 anchor 的静态 KL)被动防 reward-hacking。**本工作**:把 DistiLLM-2 的对比不对称引入 flow OPD,用学生**自己的低 reward 轨迹**作动态负样本,问:对比负项能否在拿到同等 teacher 对齐增益的同时,**显著降低 reward-hacking**、并提样本效率?
**Non-goals**:不解决 task-teacher 成本(用户已接受保留);不做 GRPO/policy-gradient;不改 SDE 采样器;不做散度调度(已知塌缩)。
## Method
- 骨架同 Flow-OPD/DiffusionOPD:task teacher + 学生 on-policy SDE 轨迹 + 每步 reverse-KL→time-weighted velocity-L2(=**正项** $L_\text{pos}$,在 teacher 轨迹上拉)。
- **新增对比负项** $L_\text{neg}$:在学生自己 reward 低的轨迹上,skew-reverse-KL 的**排斥**项,把 $v_\theta$ 推离低 reward 行为(降低生成这些轨迹的似然)。
- **异源不对称**(DistiLLM-2 核心):SFKL on teacher 轨迹(拉)+ SRKL on student 低分轨迹(推);reward-tilted 目标(PBSD)$\pi^\star\!\propto\!\pi_\text{teach}\exp(r/\beta)$,梯度 = 升 teacher 似然 + 降 student 似然(按 $\sigma(-\text{margin})$ 加权)。
- $L=L_\text{pos}+\lambda(t,\text{stage})\,L_\text{neg}$,DistiLLM-2 式 curriculum 调 $\lambda$。**用动态对比负项替代/增强 MAR 的静态 anchor。**
## 区分(把明显的拒稿理由前置)
| 工作 | 负信号? | teacher? | 稠密? | 框架 | 与 Flow-CoPD 差异 |
|---|---|---|---|---|---|
| **Flow-OPD / DiffusionOPD** | ❌ positive-only | ✅ task | ✅ | OPD | 我们加**对比负项**(它们明确没有) |
| **Diffusion-DPO** | ✅ | ❌ | ❌ 终端 pair | DPO | 我们**有 teacher + 稠密 per-step + on-policy** |
| **DiffusionNFT** | ✅ neg-aware | ❌ | forward-process | GRPO | 我们是**蒸馏(teacher velocity)+ 对比**,非 policy-gradient |
| **PBSD** | ✅ | ✅ context | ✅ token | OPD,**仅 LLM** | 我们移植到 **flow,velocity-field 稠密目标** |
## Dominant Contribution
**首个把对比式不对称(positive-teacher / negative-student)引入 flow-matching on-policy distillation,并证明对比负项专门压制 reward-hacking。** 这是 Flow-OPD/DiffusionOPD 缺的那一半。
## Why it survives review(外审历史 6/10 区间;hacking-suppression 决定性图可上 7)
- 真信号(异号负项,不塌缩)+ 真空隙(DiffusionOPD 明确无对比)。
- **决定性 claim 可证伪**:对比负项相对 positive-only **降低 reward-hacking**(FID/美学漂移/伪影)且不掉 reward;反例=对称负项/DPO 追平。
- 单卡友好:负项复用已采的学生轨迹,几乎零额外采样。
## Key Risks
- R1:窄空隙 → 必须靠"vs DiffusionNFT / vs Diffusion-DPO / vs 对称负项"三个对照立住"对比不对称 + teacher + 稠密"的组合贡献。
- R2:负项可能不稳/把分布推崩 → curriculum 调 $\lambda$、限制负项幅度、保留 MAR 兜底。
- R3:"reward-hacking 降低"要可测 → 固定 reward 预算下报 reward × FID/美学漂移 的前沿。
- R4(诚实):保留了 task teacher 成本(用户已接受);贡献是**算法(对比项)**,不是省 teacher。