好的调节器,必然是被控对象的模型
上一章是物理的边界。这一章是控制的边界,而它同样可以写成一个熵的不等式。写出来之后,你会发现 KPI 失效、reward hacking 和「压不住的干扰」是同一件事。
一个代理指标和真实目标的相关性是 0.9(相当高)。你从 4096 个候选里挑代理指标最高的那一个。它的真实目标大概能达到代理指标的百分之多少?
第一条定律:你压不住你分辨不出来的东西
1956 年,英国精神病学家兼控制论学者 W. Ross Ashby 提出了一条定律,名字很拗口——必要多样性定律(Law of Requisite Variety)——但内容极其简单:
艾什比自己的说法是:「只有多样性才能吸收多样性。」(Only variety can destroy variety.)
用熵写出来是这样:
H(结果) ≥ H(干扰) − H(控制器) # 干扰有多少种花样,控制器至少要能做出同样多种花样的应对, # 否则剩下的差额【必然】漏到结果里。
换句话说:一个只会「开」和「关」的控制器,压不住一个有一百种花样的干扰。它最多能吸收 1 比特,剩下的 log₂100 − 1 = 5.64 比特必然出现在结果里。
下面那台 demo 的后半部分就在算这笔账。而前半部分先讲另一件事:
第二条定律:Goodhart 不是人性问题
Goodhart 定律的流行版本是:「当一个指标成为目标,它就不再是一个好指标。」
常见的解释是「人会钻空子」——员工发现绩效看代码行数,就开始写又臭又长的代码。这个解释不能说错,但它把这件事归给了道德,于是让人误以为「找诚实的人就能解决」。
不能。因为这件事在没有任何人作弊的情况下也一样会发生。
设真实目标是 G(看不见),你能测到的代理指标是:
M = ρ · G + √(1−ρ²) · ε ρ = 代理和真值的相关性 ε = 和真值无关的噪声(测量误差、运气、可以被优化但无意义的东西)
现在你从 N 个候选里挑 M 最大的那个。
关键在于:M 特别高的候选,往往不是因为 G 高,而是因为 ε 高。
N 越大,这个效应越强。因为「G 特别高」是罕见的,「ε 特别高」也是罕见的,但当你从很多个里挑最大值时,你实际上在挑「两个罕见事件的和最大」——而运气那一项更容易被拉到极端(它没有任何约束,而 G 通常有)。
把 demo 里的「优化压力」滑杆一路拉大,看那两条柱子怎么分家:
| 从几个候选里挑 | 代理指标 M | 真实目标 G | 白干的比例 |
|---|---|---|---|
| 1(不挑) | ≈ 0 | ≈ 0 | — |
| 16 | 高 | 跟着涨 | 约 10% |
| 256 | 更高 | 涨得慢了 | 约 10% |
| 4096 | 很高 | 停在约 ρ 倍 | 约 10% |
(具体数字随随机种子波动,拉一拉滑杆看趋势。)
真实目标最多只能达到代理指标的 ρ 倍,剩下的 (1−ρ) 全部是白干。而且优化压力越大,你付出的努力里白干的绝对量越大。
更糟的是:在很多真实场景里,代理和真值的关系不是固定的线性相关,而是会在被优化时崩坏——因为「让 M 高」的那些做法本身就在破坏 G。这时候曲线不只是变平,而是掉头向下。
这不需要任何人有恶意。它只需要:一个不完美的代理,加上足够大的优化压力。
- KPI 与绩效考核。「代码行数」「工单关闭数」「会议时长」——每一个都是真实贡献的含噪声代理。
- 论文引用数。是学术影响力的代理。优化压力上来之后,出现了引用农场、切香肠式发表。
- 点击率。是「用户觉得有价值」的代理。用力优化它,得到的是标题党和信息茧房。
- 考试分数。是学习成果的代理。用力优化它,得到的是应试技巧。
- 基准测试分数。是模型能力的代理。用力优化它,得到的是基准污染——模型在榜上很好,在真实任务上不行。
- RLHF 里的奖励模型。是「人类偏好」的代理。用力优化它会出现 reward model overoptimization:奖励分一路涨,人类实际评分先涨后跌。这条曲线在论文里被反复画出来,形状和 demo 里那两条柱子分家一模一样。
- 交通事故率 vs 报告的事故数。考核报告数,结果是少报。
七个例子横跨管理学、学术界、产品、教育和 AI 安全。它们不是「七个类似的现象」,是同一个算术后果在七个地方现身。
那怎么办
既然这是算术,就不能靠「加强管理」解决。但算术也给出了可行的方向:
- 提高 ρ。找一个更贴近真值的代理,这是最直接的。代价是通常更难测。
- 降低优化压力。不要从一万个候选里挑最好的那一个。「够好就行」(satisficing)在数学上是有道理的。RLHF 里的 KL 惩罚项做的就是这件事——它限制模型偏离初始策略太远,字面上就是在给优化压力设上限。
- 用多个不相关的代理。如果几个代理的噪声互相独立,同时把它们都推高就难得多。这是「不要只看一个指标」的信息论理由。
- 定期换代理。让被考核方来不及适应。(有效,但代价是可比性丧失。)
- 把代理和真值的差距本身当成监控对象。定期抽样做一次昂贵的真值测量,看它和代理还对不对得上。
两条定律合起来:好的调节器必是模型
1970 年,Roger Conant 和 Ashby 证明了一条比必要多样性更锋利的定理,标题就是结论:
「Every good regulator of a system must be a model of that system.」
任何一个好的调节器,必然是被调节系统的一个模型。
大意是:如果一个控制器能把系统的输出熵压到最小,那么它内部必然存在一个从「系统状态」到「应对动作」的映射——而那个映射,就是这个系统的一个模型。它不是「用了模型」,它就是模型。
这条定理值得停下来想一想,因为它把这本书前面二十二章接了起来。
第 12 章:压得越小 ⟺ 预测得越准 ⟺ 模型越好 第 23 章:模型越好 ⟺ 控制得越好 于是: 压缩 ⟺ 预测 ⟺ 建模 ⟺ 控制
这条链解释了一件很多人觉得奇怪的事:为什么「预测下一个词」这么一个看起来纯粹是文字游戏的训练目标,能训练出会做事的系统?
因为按 Conant–Ashby,要在一个环境里有效行动,你必须携带那个环境的模型;而按第 12 章,要把关于那个环境的描述压到最小,你也必须携带那个环境的模型。两个任务要求的是同一样东西。
但要小心不要把这条链读得太满。它说的是「必要」不是「充分」——一个好的压缩器必然含有模型,但「含有模型」离「会用模型去行动」还差着执行、规划、和与环境的实际交互。这条链解释了为什么预训练有用,它没有证明预训练就够了。
必要多样性在工程里
- 只有开/关两档的空调压不住连续变化的室温——所以它必然在设定值附近来回震荡。要压平,需要变频(连续档位)。这是必要多样性的物理版:控制器的输出多样性不足。
- 只有「重启」一个动作的运维压不住多样的故障。你的应对手段必须和故障模式一样丰富。
- 只监控 CPU 和内存的告警系统看不见网络分区、时钟漂移、依赖服务降级——传感器的多样性不足,比执行器不足更隐蔽,因为你连「没压住」都不知道。
- 只有单一策略的限流器挡不住多样的流量模式。
- 只有一条规则的内容审核挡不住多样的规避方式——这是必要多样性和 Goodhart 的合流:对抗方会主动增加自己的多样性。
共同的诊断问题是:「我能分辨出多少种不同的情况?我能做出多少种不同的反应?」如果这两个数小于「实际会发生多少种情况」,剩下的差额一定会漏到结果里,而且是可以算出来的。
最干净的证据就是 AI:一个强化学习智能体没有动机、没有道德、也不会「钻空子」——它只是在最大化你写下的那个数。而 reward hacking 照样发生,而且比人类更彻底。
所以对策不能只放在「人」那一侧。它必须放在「指标设计」和「优化压力」这两侧。
《打分》那本 RL 小书的招牌实验是:同一台物理引擎,只改 reward,训出四种生物——走 9.47 米的、往前扑的、站着不动拿满分的、当场趴下刷姿态分的。
那四种生物,全是这一章这个算术的产物。没有一个「作弊」,它们都在精确地做被要求的事。
两本书从不同方向到了同一个地方:《打分》从「你写下的分数」出发,这本书从「你能测到的比特」出发。
这个答案听起来不算太糟(毕竟 90%),但要看清楚它的含义:
你付出的全部优化努力里,有恒定的 10% 是在推高噪声,而不是推高真实目标。而且这个比例不随优化压力下降——你越用力,白干的绝对量越大。
更要紧的是,ρ = 0.9 已经是一个非常好的代理了。现实里的 KPI、基准测试、奖励模型,ρ 常常只有 0.5–0.7。把 demo 里的相关性滑杆拉到 0.5 看看那两条柱子——那才是大多数指标的真实处境。
这一章的一句话
你压不住你分辨不出来的东西(必要多样性),而任何一个好的调节器必然携带被控对象的模型(Conant–Ashby)。所以「压缩 = 预测 = 建模 = 控制」是一条链——而 Goodhart 定律是这条链上不可避免的税。
最后一章:把二十三章里散落的错误直觉集中收一次账,把这本书的尺子交到你手上,然后告诉你从这里可以往哪走。