用 γ 抓住 RLHF 的“假性变好“——一个能看穿局部指标的长程监控量

📅 2026/7/7 7:49:46
用 γ 抓住 RLHF 的“假性变好“——一个能看穿局部指标的长程监控量
一个反直觉的现象DPO 训得越狠distinct-2 越高、重复率越低、熵越高——所有多样性指标都在喊模型变好了。但它其实正在变差。本文讲一个单一标量γ专门抓这种局部指标骗你的退化以及——诚实地——它抓不到什么。一、问题RLHF 过优化时常用指标会集体撒谎做 RLHF/DPO 时大家习惯盯几个指标判断输出质量distinct-2二元组多样性越高越好重复率 rep44-gram 重复越低越好token 熵适中偏高为好听起来很合理。但我们实测发现一个麻烦事DPO 过优化reward over-optimization的时候这几个指标会一路变好而模型实际在退化。DPO 阶段distinct-2rep4熵真实质量baseline0.3500.2795.85健康heavy DPO0.450↑0.222↓6.83↑退化按传统指标heavy DPO “更多样、更少重复、更丰富”——应该最好。但人读起来长程连贯性已经塌了句子之间不再有逻辑承接像把漂亮的片段随机拼接。局部指标看不见这种退化因为它们只看相邻几个 token 的统计而连贯性是长程的。二、γ 是什么一句话“长程相关的衰减速度”定义很简单把生成文本里距离为ddd的两个 token 之间的互信息I(d)I(d)I(d)算出来它随距离衰减I(d)∼d−γ I(d) \sim d^{-\gamma}I(d)∼d−γγ\gammaγ就是衰减指数。γ\gammaγ小→ 互信息衰减慢 → 远处的 token 之间还有强相关 →长程结构连贯健康。γ\gammaγ大→ 互信息衰减快 → 远处基本无关 →长程结构崩塌退化。它本质上是从统计物理借来的临界性诊断自然语言处于一种临界状态长程相关呈幂律γ≈0.15\gamma \approx 0.15γ≈0.15一旦生成偏离这种结构γ\gammaγ就会动。两个关键性质我们都验证过它测的是结构秩序不是词频把文本顺序打乱保留词频γ\gammaγ立刻坍塌到 ≈0而 distinct-2/熵基本不变。→γ\gammaγ专测序列的长程组织。健康基线明确人类文本γ≈0.147\gamma \approx 0.147γ≈0.147一个连贯模型的生成γ≈0.14\gamma \approx 0.14γ≈0.14乱码模型γ→0\gamma \to 0γ→0。γ\gammaγ给了有多接近人类长程结构的绝对刻度。三、实测γ 抓住了 DPO 的退化而局部指标在骗你我们在一个 60M 的 FRSMASH 模型上做真 DPOminimind 的偏好数据policy referenceβ0.1扫过优化强度 baseline → light → heavy每点测γ\gammaγ和局部指标。DPO 阶段γ (greedy)γ (T0.8)distinct-2rep4baseline0.1420.0600.3500.279light0.1530.0800.3220.314heavy0.2050.0840.450↑0.222↓读这张表的方式γ 单调上升0.142 → 0.205——它在说长程连贯性在流失。distinct-2 上升、rep4 下降——它们在说变更多样、变更好。baseline 的 γ ≈ 0.142 ≈ 人类 0.147heavy 把它推到 0.205明显偏离人类。→γ 和局部指标在过优化时反方向走。γ 是对的那个。这就是γ\gammaγ的独特价值它是少数能在局部多样性假象下报警的单一标量。四、但 γ 不是万能的——它和 rep4 是互补的诚实部分来了。我们把γ\gammaγ放到另一种退化上SFT 过拟合在对话数据上硬过训练制造记忆/重复。结果SFT 过拟合γ (greedy)rep4baseline0.1200.411overtrain0.098几乎没动0.456↑重复变多这次γ 失灵了几乎不动甚至略降而rep4 正确报警重复率上升 退化。把两种退化并排放退化模式γrep4谁抓到DPO 奖励过优化↑抓到↓漏γSFT 过拟合/记忆平/↓漏↑抓到rep4结论很清楚γ 和 rep4 各管一种失效模式覆盖范围几乎不重叠。任何一个单独用都会漏掉对方那类退化。γ专抓reward hacking 式的长程连贯性流失DPO/PPO 的典型病。rep4专抓记忆/重复SFT 过拟合的典型病。不存在一个指标监控所有 RLHF 退化这种好事。五、可落地的配方γ rep4 并联既然它们互补实践上就简单了——两个一起盯健康基线 γ ≈ 0.14-0.15接近人类, rep4 在你的 SFT 模型水平 DPO/PPO 训练中 - γ 升过基线如 0.17→ reward 过优化告警 → 停或加 KL - rep4 突升 → 过拟合/重复 → 停或降 LR - 任一报警就停 注意DPO 阶段 rep4 会假性变好别被它骗SFT 阶段 γ 会假性平稳别只看它。计算成本极低γ\gammaγ只需要在生成 token 上做一遍互信息统计一遍前向的量级可以做成实时仪表盘和 perplexity 那样常驻。六、原理小结为什么长程相关能当健康计回到统计物理的直觉自然语言处在一个临界态——既不全随机无结构也不全周期死板长程相关呈幂律衰减。一个好的语言模型应该复现这种临界性 → 生成文本的γ≈\gamma \approxγ≈人类的γ\gammaγ。DPO 的 reward hacking会把模型推向局部高概率、长程失联的状态——表面流畅每一步都合理但整体没有长程组织 →γ\gammaγ上升。而记忆/重复是另一种病周期化倾向它不破坏长程相关重复反而让远处强相关所以γ\gammaγ不动——这种病得靠 rep4。一句话γ\gammaγ测的是语言临界性是否还在它最适合抓奖励把模型推离临界态这种退化。七、边界别过度解读只在 60M 玩具级过优化上验过。生产级大模型 真人类偏好 长 DPO/PPO 的复测还没做。γ 抓结构连贯性退化不抓事实幻觉——一段流畅的胡说八道γ\gammaγ可能完全正常。它是结构健康计不是事实核查器。γ 对采样温度敏感高温本身就把γ\gammaγ压低所以监控时固定采样参数比的是同温度下的γ\gammaγ漂移。基线γ\gammaγ随模型/语料/分词器变先在你自己的 SFT 模型上定基线再盯漂移。八、代码与复现全部开源在 https://github.com/dfytensor/critical_tokenization # 真 DPO γ 监控60M FRSMASH minimind dpo.jsonlpython llm_verify/dpo_gamma.py# 扫 DPO 强度每点测 γpython llm_verify/analyze_dpo.py# 出图γ vs DPO 阶段 局部指标对照# 第二种退化模式rlaif SFT 过拟合python llm_verify/sft_overfit_rlaif.py数据ModelScopegongjy/minimind_datasetdpo.jsonl偏好对、rlaif.jsonl对话模型FRSMASH v3.6 60Mpretrainsft。TL;DRDPO 过优化时distinct-2/rep4/熵会假性变好而模型其实在退化——它们只看局部。γ互信息幂律衰减指数测长程连贯性能在这种情况下正确报警DPO 过优化下 γ 0.14→0.21。但 γ 不通用SFT 过拟合重复/记忆γ 抓不到得靠 rep4。所以γ 和 rep4 并联用DPO 阶段盯 γ、SFT 阶段盯 rep4任一报警就停。原理γ 测的是语言临界性是否还在reward hacking 把模型推离临界态γ 就升。这篇出自临界分词系列实验的一部分——把统计物理的长程相关概念落地成一个能用的 RLHF 监控指标。完整论文与全部命题的逐条裁决见仓库PAPER.md。