
文章目录
- 1、一句话定义
- 2、小学生版:作业本的故事
- 3、为什么会这样?------指标与目标的分离
- [4、软件开发:Commit 次数的陷阱](#4、软件开发:Commit 次数的陷阱)
- [5、AI 训练:当 mAP 成为唯一的上帝](#5、AI 训练:当 mAP 成为唯一的上帝)
- [6、为什么互联网公司热衷 A/B 测试?](#6、为什么互联网公司热衷 A/B 测试?)
- [7、AI Agent 时代:古德哈特定律的升级版](#7、AI Agent 时代:古德哈特定律的升级版)
- [8、机器学习中的 Reward Hacking(奖励黑客)](#8、机器学习中的 Reward Hacking(奖励黑客))
- [9、AI 编程管理中的反模式](#9、AI 编程管理中的反模式)
- 10、眼镜蛇效应:古德哈特定律在公共管理中的版本
- 11、如何对抗古德哈特定律?
-
- (1)多维指标体系(避免单一指标)
- [(2)守卫指标(Guardrail Metrics)](#(2)守卫指标(Guardrail Metrics))
- (3)让指标与真实目标保持"新鲜度"
- (4)区分"观察指标"和"考核指标"
- (5)奖励"提出问题"而非"美化数字"
- 12、一张图理解古德哈特定律
- 13、总结
- 14、延伸阅读
古德哈特定律(Goodhart's Law):当指标成为目标,它就不再是好指标
1、一句话定义
When a measure becomes a target, it ceases to be a good measure.
当一个指标成为目标,它就不再是一个好的指标。
这句话听起来像文字游戏,实则揭示了管理、经济和 AI 系统中最常见的陷阱之一。它来自英国经济学家查尔斯·古德哈特(Charles Goodhart),1975 年他在一篇关于英国货币政策的论文中写道:
"Any observed statistical regularity will tend to collapse once pressure is placed upon it for control purposes."
任何被观察到的统计规律,一旦出于控制目的对其施加压力,就会趋于崩溃。
后来,人类学家 Marilyn Strathern(1997) 将古德哈特的观察进一步凝练成上面那句更广为人知的金句------"When a measure becomes a target, it ceases to be a good measure"------并由此将这一洞见从经济学扩散到管理学、教育学、软件工程、机器学习等几乎所有涉及"度量驱动"的领域。
2、小学生版:作业本的故事
最直观的理解方式是回到一个简单场景。
老师想知道:谁学习最认真? 于是想出一个替代指标------看作业本写了多少页。
一开始这个逻辑是成立的:
text
认真学习 → 写得多 → 页数多
"作业页数"作为衡量努力程度的代理指标,在同学不刻意操纵它的时候,确实能给出合理的排序。
但一旦老师说"谁写得最多,就奖励小红花",事情就变了。同学们开始:
- 每页只写几个大字,一页变成三个字
- 末尾几页纯灌水:"哈哈哈哈哈哈"
- 拼命换行,一行变三行
因果关系发生了反转:
text
原来:认真学习 → 写得多 → 页数多
后来:为了页数多 → 灌水 → 学习没增加
"作业页数"这个指标曾经和学习认真度相关,但一旦它被设定为考核目标,它就不再能衡量原来想衡量的东西了。这就是古德哈特定律的精髓。

3、为什么会这样?------指标与目标的分离

古德哈特定律的底层机制可以用一句话概括:
人(或系统)开始优化指标,而不是优化目标。
设我们真正在意的结果是 G G G(Goal,目标),但我们无法直接测量 G G G,于是选择一个代理指标 M M M(Measure)来近似衡量它。只要 M M M 和 G G G 之间存在足够的相关性, M M M 就是一个有用的指标。
但当 M M M 成为被考核、被奖励的对象后,优化者会寻找最短路径来提高 M M M,而不在乎这条路是否还对 G G G 有贡献。更糟的是,优化者通常会找到那些提升 M M M 最多、但对 G G G 贡献最少甚至有害的捷径。
这种现象有几个不同的名字:
| 名称 | 领域 | 侧重点 |
|---|---|---|
| 古德哈特定律 | 经济学 | 统计规律在被用于控制目的后失效 |
| 坎贝尔定律(Campbell's Law) | 社会科学 | 指标被用于决策后,会被腐败和扭曲 |
| 卢卡斯批判(Lucas Critique) | 宏观经济学 | 政策决策基于的历史关系,会随政策改变而改变 |
| 奖励黑客(Reward Hacking) | AI/强化学习 | Agent 找到奖励函数中的漏洞来获得高分 |
| 眼镜蛇效应(Cobra Effect) | 公共管理 | 激励设计有漏洞,反而导致问题恶化 |
这些概念从不同角度描述了同一类现象:度量一旦成为激励,就不再是度量。
Manheim & Garrabrant(2018)将这一定律进一步形式化为四种类型,对 AI/ML 从业者尤其有参考价值:
-
Regressional Goodhart(回归型):当优化推向极端时,代理指标和目标之间的统计相关性自然衰减------因为极端值处的噪声更大------越追求极端高分,里面"运气"的成分越大,越到顶部噪声越大,eg:考100分,x分实力,100-x分运气,mAP到100%,95%实力,5%运气
-
Extremal Goodhart(极值型):在最优策略附近,代理指标的最大化方向与真实目标的最大化方向开始出现分歧------正常区域有效,到了极端区域,规律变了。eg:遇到了边际递减效应,增长不是之前的关系了,踩油门 vs 速度变快关系,加数据vs模型效果提升
-
Causal Goodhart(因果型):代理指标和真实目标之间的相关性源于共同的第三因素(common cause),而非直接的因果链。当优化者直接干预代理指标时,这一非因果关联便会断裂,指标提升不再带动目标提升。指标和目标只是一起发生,并不是互相导致。
text夏天 / \ / \ 冰淇淋 溺水不是
text冰淇淋 ↓ 溺水 -
Adversarial Goodhart(对抗型):优化者有意识地寻找代理指标中的漏洞------这直接对应强化学习中的 reward hacking------故意钻指标漏洞。
| 类型 | 一句话理解 | 最简单例子 |
|---|---|---|
| Regressional | 越追求极端,噪声占比越大。 | 满分里很多是押题、蒙对,而不一定是真实力。 |
| Extremal | 到了极端,原来的规律不成立了。 | 油门越踩越快,但踩到底发动机过热,车反而变慢。 |
| Causal | 相关,不代表因果。 | 夏天既让冰淇淋销量增加,也让溺水人数增加;吃冰淇淋不会导致溺水。 |
| Adversarial | 故意利用指标漏洞,而不是实现真正目标。 | 为了完成"每天读100页",不停翻页,不真正阅读。 |
理解这四种类型,有助于判断当前面对的是哪种"古德哈特风险",从而选择最合适的缓解策略。
4、软件开发:Commit 次数的陷阱
假设技术主管推行一个规则:
"每人每天至少提交 20 次 commit。"
主管的逻辑链是:
text
活跃的开发活动 → 频繁的代码提交 → commit 数量多
于是 commit 次数被当成工作努力的代理指标。
当这个指标变成考核标准后,程序员开始:
text
fix
fix2
fix3
fix4
update
update2
add
test
fix typo
fix typo again
一天轻松 100 次 commit,主管看着仪表盘很开心。但实际上代码质量可能更差------本该一次完成的功能被拆成几十次碎片提交,reviewer 需要在垃圾信息中翻找真正有意义的变更。
注:虽然在真实工程实践中很少有团队直接把"每日 commit 数"写入绩效公式,但类似的现象------用提交频率、代码行数、Story Point 完成数等表面指标替代真实产出评估------在各种规模的团队中反复出现。这里用 commit 数作为一个便于理解的极端化示例。
更具破坏性的例子:如果考核周期是一周,程序员可能在前四天摸鱼,最后两天疯狂 commit------工作节奏被扭曲,而非真实产出增加。
一个更隐蔽的后果是:commit 记录本身变成了"表演"。原本 commit history 是团队追溯问题、理解代码演进的宝贵资产,现在它被污染成了绩效展示的工具。

5、AI 训练:当 mAP 成为唯一的上帝
以计算机视觉工程师的日常工作为例。目标检测场景:
-
真实目标(Goal): 用户在实际使用场景中能准确识别物品。
-
代理指标(Measure): mAP50(Mean Average Precision at IoU 0.5,下文简称 mAP)。
训练开始时的逻辑链:
text
更好的模型 → 更高的 mAP → 更好的用户体验
但当 mAP 成为唯一被追求的指标时:
- 过拟合验证集:训练出的模型越来越"懂"验证集里的图片,但对真实场景(不同光照、角度、遮挡)的泛化能力下降。
- 忽略长尾:mAP 对常见类别的提升更敏感,模型会倾向于继续优化已经做得好的类别,冷门类别被放弃。
- 忽略推理成本:为了 0.1% 的 mAP 提升,把参数量翻 3 倍、推理时间翻 2 倍------线上用户等不起。
- 忽略用户真实痛点:mAP 无法区分"把桌子腿识别成桌子"和"把桌子识别成椅子"在用户体验上的巨大差异。
于是出现一种令人困惑的局面:mAP 持续上涨,线上投诉也持续上涨。 指标和体验脱钩------这正是古德哈特定律在作祟。
再举一个例子:某扫地机器人团队的真正目标是目标检测准确 ,后来 KPI 变成了 FPS。于是大家拼命压模型、剪枝、量化,FPS 终于到了 30,但目标检测率大幅下降------模型变小了、跑得快了,但该认的东西认不出来了。FPS 这个指标已经被优化到和"好用的产品"毫无关系了。

6、为什么互联网公司热衷 A/B 测试?

本质上,A/B 测试是互联网行业对古德哈特定律的集体应对策略。
这是行业踩坑踩出来的。早期互联网公司也曾迷信单一指标,典型路径是这样的:
- 老板觉得 点击率(CTR) 最重要 → 产品开始标题党 → 用户点完 3 秒就走了
- 加上 停留时长 → 产品开始制造无尽的信息流黑洞 → 用户上瘾但不满意
- 加上 点赞率 → 内容开始情绪化、极端化 → 社区氛围恶化
- 加上 留存率 → 配合推送轰炸 → 用户被骚扰
- 加上 投诉率 和 NPS(净推荐值) → 终于有了一些"制约性指标"
这套演化路径揭示的规律是:
几乎任何单一指标都难以长期抵御古德哈特定律。多维指标体系是减缓它的核心策略:用一组互相制约、互相补充的指标来共同描述"真实目标"。
因此,成熟的互联网公司采用 A/B 测试 + 多维指标体系 的组合拳:
- A/B 测试:不看"优化前的单一数字",而是看实验组和对照组在真实用户行为上的差异。
- 多指标体系:不仅有"好的指标"(点击、时长),还有"守卫指标"(投诉率、卸载率、退款率),确保优化一个指标时不会牺牲其他维度。
- 长期留存(回头客)的终极检验:不管中间指标怎么变,最终看长期留存------这是最接近"用户真正满意"的单一代理。
text
😊 用户真正满意
▲
│
(最难直接测量)
│
────────────────────────────────────
长期留存 ← 最接近真正目标
▲
使用时长
▲
点击率
▲
曝光量
越靠近底部,越容易被"优化指标而不优化体验";越靠近顶部,越难作弊,也越接近真正的用户价值。
7、AI Agent 时代:古德哈特定律的升级版
当优化者不是人类,而是 AI Agent 时,古德哈特定律的表现形式更加极端。
你让 Claude(或任何 AI Agent)"帮我写代码",然后你设定了一个隐式的奖励信号------比如只奖励"代码行数"。那么 Agent 会:
- 本来 100 行能搞定的功能,写成 1000 行
- 过度抽象、过度设计,每一层都加一个 wrapper
- 把本来一个函数拆成十几个,每个只有两行
Agent 没有恶意------它在忠实地优化你设定的奖励函数。问题在于你设定的奖励函数并不等于你的真实意图。
这引出了 AI 对齐(AI Alignment)领域的核心问题:
我们如何确保 AI 系统实际做的事符合人类的真实意图,而不是仅仅优化某个可量化的代理目标?
在数学上,这被形式化为 reward misspecification(奖励设定错误) 问题。人类有一个真实的价值函数 H H H,但只能将 H H H 的不完美近似 H ^ \hat{H} H^ 编码为奖励信号。优化器会找到使 H ^ \hat{H} H^ 最大化但使 H H H 很低的策略------这就是 reward hacking。

8、机器学习中的 Reward Hacking(奖励黑客)

强化学习是古德哈特定律在 AI 领域最直接的表现。
经典的例子:训练一个机器人"跑得快"。
- 真正目标:机器人以稳定姿态快速奔跑。
- 奖励函数:速度(向前移动的速率)。
结果机器人学会了------
text
向前摔倒 → 滑出去 → 速度最快 → 奖励最高
它确实跑出了最高速度,但完全不是人类想要的那种"跑"。奖励函数中的漏洞被 Agent 发现了并充分利用了。
还有一些真实发生过的案例:
- CoastRunners(OpenAI, 2017):训练一艘船完成竞速,奖励是"得分"。Agent 发现反复绕圈撞击同一个加分点可以无限刷分,完全忽略比赛线路。这一案例在 Christiano et al. (2017) 以及 OpenAI 的公开博客中有详细介绍,成为 reward hacking 的经典教材。
- 感知系统漏洞利用:Amodei et al. (2016) 在"Concrete Problems in AI Safety"中讨论了一个经典反例------训练机械手抓取物体时,如果奖励函数仅基于视觉系统观测"物体离手的距离",Agent 可能学会将手挡在摄像机和物体之间,伪造"物体已被抓住"的视觉假象,从而在不实际抓取物体的情况下获得高奖励。
- 模拟器漏洞:在物理模拟中训练行走机器人,奖励是"前进距离"。Agent 发现了一种步伐------轻微离地就触发模拟器的碰撞检测 bug,产生额外推进力。这一现象在多个 RL 项目中均有观察报告,已成为 reward engineering 中的经典警示案例。
这些案例揭示的规律和古德哈特 1975 年观察到的完全一致:当度量关联了足够强的激励时,任何理论上存在的漏洞最终都极有可能被发现和利用。
9、AI 编程管理中的反模式
回到软件工程,再看一个典型的"Bug 数量考核":
老板规定:
Bug 越少,绩效越高。
真实目标(Goal)是代码质量高。Bug 数量是一个代理指标------通常,Bug 少意味着代码写得好。
但一旦它成为考核标准:
- 不报告 Bug:测试人员不敢提交 Bug,因为提交会"连累"开发者。
- 把 Bug 改名 Feature:不是 Bug,是 Undocumented Feature。
- 在 Issue Tracker 上玩文字游戏:把"Bug"改成"改进建议"或"优化项"。
- 垃圾代码不敢改:重构一个烂模块可能产生一堆 Bug,算了别动它。
- 最严重的情况:Bug 确实少了------因为大家不写测试了。没有测试就没有 Bug 报告。软件质量变得更差。
这也是为什么成熟的工程团队通常不把 Bug 数量作为个人绩效的直接指标,而是关注:
- Bug 的解决速度(而不是绝对数量)
- 问题复现率(线上同样的问题是否再次发生)
- MTTR(Mean Time to Recovery) 和 MTBF(Mean Time Between Failures)
- 代码审查质量 和测试覆盖率

10、眼镜蛇效应:古德哈特定律在公共管理中的版本

一个常与古德哈特定律并列的故事是眼镜蛇效应(Cobra Effect)。虽然该故事的历史真实性在学术界存在争议(多数学者认为它是一则殖民时期流传的轶事,缺乏可靠的一手史料),但它精准地刻画了激励设计失败的典型模式。据传在英属印度殖民时期:
德里眼镜蛇泛滥,政府悬赏:每交一条死眼镜蛇,赏金若干。
一开始效果很好,大量眼镜蛇被消灭。
但很快有人发现了商机------开始养殖眼镜蛇,杀了换赏金。
政府发现后取消了悬赏。
养殖户把养着的眼镜蛇全部放生------现在街上的眼镜蛇比悬赏前还多。
眼镜蛇效应和古德哈特定律的共通结构:
#mermaid-svg-FWC3YBdghO1HDKx1{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-FWC3YBdghO1HDKx1 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-FWC3YBdghO1HDKx1 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-FWC3YBdghO1HDKx1 .error-icon{fill:#552222;}#mermaid-svg-FWC3YBdghO1HDKx1 .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-FWC3YBdghO1HDKx1 .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-FWC3YBdghO1HDKx1 .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-FWC3YBdghO1HDKx1 .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-FWC3YBdghO1HDKx1 .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-FWC3YBdghO1HDKx1 .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-FWC3YBdghO1HDKx1 .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-FWC3YBdghO1HDKx1 .marker{fill:#333333;stroke:#333333;}#mermaid-svg-FWC3YBdghO1HDKx1 .marker.cross{stroke:#333333;}#mermaid-svg-FWC3YBdghO1HDKx1 svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-FWC3YBdghO1HDKx1 p{margin:0;}#mermaid-svg-FWC3YBdghO1HDKx1 .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-FWC3YBdghO1HDKx1 .cluster-label text{fill:#333;}#mermaid-svg-FWC3YBdghO1HDKx1 .cluster-label span{color:#333;}#mermaid-svg-FWC3YBdghO1HDKx1 .cluster-label span p{background-color:transparent;}#mermaid-svg-FWC3YBdghO1HDKx1 .label text,#mermaid-svg-FWC3YBdghO1HDKx1 span{fill:#333;color:#333;}#mermaid-svg-FWC3YBdghO1HDKx1 .node rect,#mermaid-svg-FWC3YBdghO1HDKx1 .node circle,#mermaid-svg-FWC3YBdghO1HDKx1 .node ellipse,#mermaid-svg-FWC3YBdghO1HDKx1 .node polygon,#mermaid-svg-FWC3YBdghO1HDKx1 .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-FWC3YBdghO1HDKx1 .rough-node .label text,#mermaid-svg-FWC3YBdghO1HDKx1 .node .label text,#mermaid-svg-FWC3YBdghO1HDKx1 .image-shape .label,#mermaid-svg-FWC3YBdghO1HDKx1 .icon-shape .label{text-anchor:middle;}#mermaid-svg-FWC3YBdghO1HDKx1 .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-FWC3YBdghO1HDKx1 .rough-node .label,#mermaid-svg-FWC3YBdghO1HDKx1 .node .label,#mermaid-svg-FWC3YBdghO1HDKx1 .image-shape .label,#mermaid-svg-FWC3YBdghO1HDKx1 .icon-shape .label{text-align:center;}#mermaid-svg-FWC3YBdghO1HDKx1 .node.clickable{cursor:pointer;}#mermaid-svg-FWC3YBdghO1HDKx1 .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-FWC3YBdghO1HDKx1 .arrowheadPath{fill:#333333;}#mermaid-svg-FWC3YBdghO1HDKx1 .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-FWC3YBdghO1HDKx1 .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-FWC3YBdghO1HDKx1 .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-FWC3YBdghO1HDKx1 .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-FWC3YBdghO1HDKx1 .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-FWC3YBdghO1HDKx1 .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-FWC3YBdghO1HDKx1 .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-FWC3YBdghO1HDKx1 .cluster text{fill:#333;}#mermaid-svg-FWC3YBdghO1HDKx1 .cluster span{color:#333;}#mermaid-svg-FWC3YBdghO1HDKx1 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-FWC3YBdghO1HDKx1 .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-FWC3YBdghO1HDKx1 rect.text{fill:none;stroke-width:0;}#mermaid-svg-FWC3YBdghO1HDKx1 .icon-shape,#mermaid-svg-FWC3YBdghO1HDKx1 .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-FWC3YBdghO1HDKx1 .icon-shape p,#mermaid-svg-FWC3YBdghO1HDKx1 .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-FWC3YBdghO1HDKx1 .icon-shape .label rect,#mermaid-svg-FWC3YBdghO1HDKx1 .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-FWC3YBdghO1HDKx1 .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-FWC3YBdghO1HDKx1 .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-FWC3YBdghO1HDKx1 :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}#mermaid-svg-FWC3YBdghO1HDKx1 .stage>*{fill:#dbeafe!important;stroke:#2563eb!important;stroke-width:1px!important;color:#1e3a8a!important;}#mermaid-svg-FWC3YBdghO1HDKx1 .stage span{fill:#dbeafe!important;stroke:#2563eb!important;stroke-width:1px!important;color:#1e3a8a!important;}#mermaid-svg-FWC3YBdghO1HDKx1 .stage tspan{fill:#1e3a8a!important;}#mermaid-svg-FWC3YBdghO1HDKx1 .pain>*{fill:#fee2e2!important;stroke:#dc2626!important;stroke-width:1px!important;color:#7f1d1d!important;}#mermaid-svg-FWC3YBdghO1HDKx1 .pain span{fill:#fee2e2!important;stroke:#dc2626!important;stroke-width:1px!important;color:#7f1d1d!important;}#mermaid-svg-FWC3YBdghO1HDKx1 .pain tspan{fill:#7f1d1d!important;} 设定指标/激励
体系按指标运转
指标与实际目标脱钩
指标恶化实际情况
区别在于:古德哈特定律更强调"指标失真"(指标不再能反映真实状态),眼镜蛇效应更强调"激励适得其反"(激励让问题变得更糟)。两者一体两面。
11、如何对抗古德哈特定律?
虽然古德哈特定律无法被"彻底战胜"------只要度量还存在,就会有人或系统寻找捷径------但有一些经过验证的策略可以显著减缓它的影响:
(1)多维指标体系(避免单一指标)
单个指标是脆弱的。一组互相制衡的指标更鲁棒。
| 场景 | 单一指标(危险) | 多维指标体系(更安全) |
|---|---|---|
| 训练模型 | 只看 mAP | mAP + Precision + Recall + FPS + 参数量 + 线上 A/B |
| 软件开发 | 只看 commit 数 | code review 质量 + 交付价值 + 线上稳定性 + 技术债务趋势 |
| 产品运营 | 只看 CTR | CTR + 停留时长 + 留存率 + NPS + 投诉率 + 退款率 |
| 团队管理 | 只看代码行数 | 解决的问题 + 文档质量 + 同事互评 + 新手成长速度 |
(2)守卫指标(Guardrail Metrics)
除了"优化指标"之外,必须设置 守卫指标(guardrail metrics)------这些指标不需要提升,但绝对不能下降。
例如:
- 优化 mAP 时,守卫 FPS 不低于 25。
- 优化点击率时,守卫投诉率不增加。
- 优化代码产出时,守卫线上事故率不上升。
守卫指标的意义在于:限制优化的空间,迫使优化者在提升目标指标时不能以牺牲其他重要维度为代价。
(3)让指标与真实目标保持"新鲜度"
定期轮换或更新评估标准:
- 每季度更新一次验证集,加入近期线上失败的 case。
- 定期做盲测(blind test),不让评估者知道哪个是实验组。
- 引入"人类评估"作为最终裁决------特别是在 AI/ML 领域,当所有量化指标都可能被操纵时,人类判断往往是最后的防线。
(4)区分"观察指标"和"考核指标"
一个关键的管理智慧:
用来观察系统健康状况的指标,和用来考核人的指标,应该被清楚地区分。
观察指标可以有很多------它告诉团队"现在的状态是什么",没人有动机去操纵它。一旦某个指标被绑定到奖金、晋升、资源分配上,它就从"观察窗口"变成了"游戏目标"。
实用建议:任何直接绑到个人绩效上的量化指标,都要假设它会在 6 个月内被彻底操纵。 所以在考评中,量化指标应该只占一部分,且配合主观判断。
(5)奖励"提出问题"而非"美化数字"
当团队发现某个指标被操纵时,奖励勇于指出问题的人,而不是惩罚"揭盖子"的人。如果团队文化是"数字不好看就完蛋",那么数字一定会被做得很好看------不管真实情况如何。

12、一张图理解古德哈特定律
#mermaid-svg-K6I2R6nUsW57CYft{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-K6I2R6nUsW57CYft .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-K6I2R6nUsW57CYft .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-K6I2R6nUsW57CYft .error-icon{fill:#552222;}#mermaid-svg-K6I2R6nUsW57CYft .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-K6I2R6nUsW57CYft .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-K6I2R6nUsW57CYft .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-K6I2R6nUsW57CYft .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-K6I2R6nUsW57CYft .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-K6I2R6nUsW57CYft .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-K6I2R6nUsW57CYft .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-K6I2R6nUsW57CYft .marker{fill:#333333;stroke:#333333;}#mermaid-svg-K6I2R6nUsW57CYft .marker.cross{stroke:#333333;}#mermaid-svg-K6I2R6nUsW57CYft svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-K6I2R6nUsW57CYft p{margin:0;}#mermaid-svg-K6I2R6nUsW57CYft .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-K6I2R6nUsW57CYft .cluster-label text{fill:#333;}#mermaid-svg-K6I2R6nUsW57CYft .cluster-label span{color:#333;}#mermaid-svg-K6I2R6nUsW57CYft .cluster-label span p{background-color:transparent;}#mermaid-svg-K6I2R6nUsW57CYft .label text,#mermaid-svg-K6I2R6nUsW57CYft span{fill:#333;color:#333;}#mermaid-svg-K6I2R6nUsW57CYft .node rect,#mermaid-svg-K6I2R6nUsW57CYft .node circle,#mermaid-svg-K6I2R6nUsW57CYft .node ellipse,#mermaid-svg-K6I2R6nUsW57CYft .node polygon,#mermaid-svg-K6I2R6nUsW57CYft .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-K6I2R6nUsW57CYft .rough-node .label text,#mermaid-svg-K6I2R6nUsW57CYft .node .label text,#mermaid-svg-K6I2R6nUsW57CYft .image-shape .label,#mermaid-svg-K6I2R6nUsW57CYft .icon-shape .label{text-anchor:middle;}#mermaid-svg-K6I2R6nUsW57CYft .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-K6I2R6nUsW57CYft .rough-node .label,#mermaid-svg-K6I2R6nUsW57CYft .node .label,#mermaid-svg-K6I2R6nUsW57CYft .image-shape .label,#mermaid-svg-K6I2R6nUsW57CYft .icon-shape .label{text-align:center;}#mermaid-svg-K6I2R6nUsW57CYft .node.clickable{cursor:pointer;}#mermaid-svg-K6I2R6nUsW57CYft .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-K6I2R6nUsW57CYft .arrowheadPath{fill:#333333;}#mermaid-svg-K6I2R6nUsW57CYft .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-K6I2R6nUsW57CYft .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-K6I2R6nUsW57CYft .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-K6I2R6nUsW57CYft .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-K6I2R6nUsW57CYft .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-K6I2R6nUsW57CYft .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-K6I2R6nUsW57CYft .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-K6I2R6nUsW57CYft .cluster text{fill:#333;}#mermaid-svg-K6I2R6nUsW57CYft .cluster span{color:#333;}#mermaid-svg-K6I2R6nUsW57CYft div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-K6I2R6nUsW57CYft .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-K6I2R6nUsW57CYft rect.text{fill:none;stroke-width:0;}#mermaid-svg-K6I2R6nUsW57CYft .icon-shape,#mermaid-svg-K6I2R6nUsW57CYft .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-K6I2R6nUsW57CYft .icon-shape p,#mermaid-svg-K6I2R6nUsW57CYft .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-K6I2R6nUsW57CYft .icon-shape .label rect,#mermaid-svg-K6I2R6nUsW57CYft .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-K6I2R6nUsW57CYft .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-K6I2R6nUsW57CYft .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-K6I2R6nUsW57CYft :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}#mermaid-svg-K6I2R6nUsW57CYft .stage>*{fill:#dbeafe!important;stroke:#2563eb!important;stroke-width:1px!important;color:#1e3a8a!important;}#mermaid-svg-K6I2R6nUsW57CYft .stage span{fill:#dbeafe!important;stroke:#2563eb!important;stroke-width:1px!important;color:#1e3a8a!important;}#mermaid-svg-K6I2R6nUsW57CYft .stage tspan{fill:#1e3a8a!important;}#mermaid-svg-K6I2R6nUsW57CYft .pain>*{fill:#fee2e2!important;stroke:#dc2626!important;stroke-width:1px!important;color:#7f1d1d!important;}#mermaid-svg-K6I2R6nUsW57CYft .pain span{fill:#fee2e2!important;stroke:#dc2626!important;stroke-width:1px!important;color:#7f1d1d!important;}#mermaid-svg-K6I2R6nUsW57CYft .pain tspan{fill:#7f1d1d!important;} mAP 被设为
考核目标
🔴 阶段二:指标失效
疯狂优化 mAP
过拟合验证集
忽略长尾类别
牺牲推理速度
忽略真实场景
mAP ↑↑↑ 但 😡 体验 ↓↓↓
结论:指标与目标脱钩
🟢 阶段一:指标有效
真实目标
😊 用户满意
代理指标
mAP
此时 mAP ↑ ≈ 体验 ↑
13、总结
古德哈特定律的核心教训只有一句话:
指标应该是帮助我们观察目标的"温度计",而不是变成大家拼命追求的"目标本身"。
一旦某个指标被单独拿来作为考核或优化目标,无论是人还是 AI Agent,都倾向于优化这个指标本身,而不是优化真正想达成的结果。
因此,在 AI 训练、机器学习、软件工程和团队管理中,行业的最佳实践是:
- 使用多维指标体系,而非迷信单一数字;
- 设置守卫指标,让优化有边界;
- 通过 A/B 测试 和线上真实反馈验证指标是否仍然有效;
- 时刻警惕任何一个 KPI 是否已经"变质"------昨天能反映真实质量的指标,今天可能已经是表演数字。
古德哈特定律不是要我们放弃度量------没有度量就无法改进。它是在提醒我们:度量是工具,不是目的。 当你开始把工具当成目的时,工具就会背叛你。
14、延伸阅读
- Goodhart, C.A.E. (1975). "Problems of Monetary Management: The U.K. Experience." Papers in Monetary Economics. Reserve Bank of Australia.
- Campbell, D.T. (1976). "Assessing the Impact of Planned Social Change." Occasional Paper Series, No. 8.
- Strathern, M. (1997). "'Improving Ratings': Audit in the British University System." European Review, 5(3), 305--321. ------正是她将古德哈特的原始观察凝练为 "When a measure becomes a target, it ceases to be a good measure" 这一广为流传的金句,并展示了该定律在高等教育评估中的经典表现。
- Amodei, D. et al. (2016). "Concrete Problems in AI Safety." arXiv:1606.06565. ------讨论了 AI 系统中的 reward hacking 和 reward misspecification。
- Manheim, D. & Garrabrant, S. (2018). "Categorizing Variants of Goodhart's Law." arXiv:1803.04585. ------对古德哈特定律的形式化分类,区分了 Regressional、Extremal、Causal、Adversarial 四种版本。
