测量古德哈特定律

162 阅读6分钟

古德哈特定律有句名言:"当一个措施成为一个目标时,它就不再是一个好的措施。"虽然它最初来自经济学,但在OpenAI,当我们想出如何优化那些难以衡量或昂贵的目标时,我们必须努力解决这一问题。通常有必要引入一些更容易或更便宜测量的代理目标,但当我们这样做时,我们需要注意不要对其进行过多的优化。

例如,作为我们使GPT-3等模型与人类意图和价值观相一致的工作的一部分,我们希望优化诸如 "这个回应有多大帮助?",或 "这个说法的事实准确性如何?"。这些都是复杂的目标,需要人类仔细检查的东西。出于这个原因,我们训练一个模型来预测这些人类的偏好,称为奖励模型,并使用奖励模型的预测作为代理目标。但是,跟踪真正的目标被优化的程度是很重要的。

在这篇文章中,我们将看一下我们如何做到这一点背后的一些数学知识。我们将专注于一个特别容易分析的环境,在这个环境中,我们可以接触到真正的目标。在实践中,即使是人类的偏好也不能衡量我们真正关心的东西,但我们在这篇文章中把这个问题放在一边。

最佳nn抽样

有许多方法可以优化代理目标,但也许最简单的是**nn最佳采样**,也被称为拒绝采样重新排序。我们只需对n次进行抽样,并根据代理目标选择得分最高的一次。

虽然这种方法非常简单,但它实际上可以与更先进的技术(如强化学习)竞争,尽管其代价是更多的推理时间计算。例如,在WebGPT中,我们的best-of-64模型优于我们的强化学习模型,也许部分原因是bestof64模型优于我们的强化学习模型,也许部分原因是best-of-64模型可以浏览更多网站。即使应用best-of-$4也对人类的偏好提供了很大的帮助。

此外,n元最佳取样法具有可靠的性能,并可直接进行数学分析,使其非常适合于对古德哈特定律和相关现象的经验研究。

最佳nn抽样的数学原理

让我们更正式地研究n元最佳取样。假设我们有一些样本空间SS(如可能的问题-答案对的集合),一些概率分布PPSS上,一个真实目标(或 "奖励")R_texttrue:StomathbbRR\_{text{true}}:S\\to\\mathbb R,和一个代理目标R_textproxy:StomathbbRR\_{text{proxy}}:S\\to\\mathbb R。假设我们以某种方式优化R_textproxy,从而得到一些新的分布R\_{text{proxy}},从而得到一些新的分布P^\prime$。那么。

  • 期望值mathbb E\_{x^\\prime\\sim P^\\prime}\\left\[R\_{text{true}}\\left(x^\\prime\\right)\\right\]衡量我们对真实目标的优化程度。
  • KL发散D\_{text{KL}}\\left(P^\\prime\\parallel P\\right)衡量我们做了多少优化。例如,如果P^\\prime是通过从PP中抽取位于某个子集S^\\prime\\subseteq S中的第一个样本得到的,那么这个KL发散就是PP中的样本位于S^\\prime中的负数概率。

事实证明,在nn最佳抽样的情况下,这两个量都可以用PP的样本来有效估计。

我们先看一下期望值。天真的方法是使用Monte Carlo估计器:多次运行best-of-nn抽样,在这些样本上测量真实目标,并对结果进行平均。然而,有一个更好的估计方法。如果我们有来自PPNgeqnN\\geq n样本,那么我们可以同时考虑这些样本中每一个大小为nn可能子集,根据代理目标,每个样本的子集数量对其进行加权,然后取加权的平均真实目标分数。这个权重只是二项式系数binomk1n1binom{k-1}{n-1},其中kk是样本在代理目标下的等级,从11(最差)到NN(最佳)。[1]除了更有效地使用样本外,这也使我们能够对不同的nn值重复使用样本。

至于KL发散,令人惊讶的是,它竟然有一个精确的公式,对任何连续概率分布PP都有效(即,只要PP没有点质量)。人们可能会天真地猜测答案是lognlog n,因为best-of-nn是在做类似于取分布的顶部frac1nfrac 1n的事情,而这大致是正确的:准确的答案是lognfracn1nlog n-\\frac{n-1}n[2]

这些估算器结合在一起,使我们能够轻松地分析真实目标是如何随着应用于代理目标的优化量而变化的。

下面是一个来自WebGPT的真实例子。

WebGPT 175B的最佳nn性能

WebGPT的n元最佳性能,阴影区域代表/pm1/pm 1标准误差,KL轴遵循平方根比例。这里,原始分布(PP)由使用行为克隆训练的175B模型给出,用于计算最佳nn的代理目标(R_textproxyR\_{\\text{proxy}})由训练奖励模型给出,我们考虑三个假定的 "真实 "目标(R_texttrueR\_{\\text{true}}):训练奖励模型本身、在保留数据上训练的验证奖励模型和实际的人类偏好。代理目标并没有太多的过度优化,但我们希望在更高的KL下会有过度优化。

超越最佳nn采样

最佳nn抽样的主要限制是KL分歧随nn呈对数增长,所以它只适合于应用少量的优化。

为了应用更多的优化,我们通常使用强化学习。在我们迄今为止所研究的环境中,例如总结,我们通常能够在真正的目标由于古德哈特定律而开始减少之前,使用强化学习达到约10纳特的KL。我们必须将nn设定为60,000左右,才能使用best-of-nn达到这个KL,我们希望通过改进我们的奖励模型和强化学习实践,能够达到比这更大的KL。

然而,并非所有的国家都是平等的。根据经验,对于小的KL预算,best-of-nn比强化学习更能优化代理目标和真实目标。直观地说,best-of-nn是一种 "蛮力 "方法,使得它在信息理论上比强化学习更有效率,但在大的KL上计算效率较低。[3]

我们正在积极研究代理目标的扩展特性,作为我们工作的一部分,使我们的模型与人类的意图和价值观相一致。如果你想帮助我们进行这项研究,我们正在招聘!

import {Runtime, Inspector, Library} from "unpkg.com/@observable…"; import notebook_webgpt from "api.observablehq.com/d/801bb3079…"; const customWidth = function (selector) { return (new Library).Generators.observe(function(change) { var width = change(document.querySelector(selector).clientWidth); function resized() { var w = document.querySelector(selector).clientWidth; if (w !== width) change(width = w); } window.addEventListener("resize", resized); return function() { window.removeEventListener("resize", resized); }; }; const webgpt_renders = { "chart":"#webgpt-chart", }; new Runtime(Object.assign(new Library, {width: customWidth("#webgpt-chart")}).module(notebook_webgpt, name => { const selector = webgpt_renders[name]; if (selector) { // key exists return new Inspector(document.querySelector(selector)); } else { return true; } }) 。


鸣谢

感谢Suchir Balaji、Paul Christiano、William Guss、Vineet Kosaraju、John Schulman、Nisan Stiennon、Jeff Wu和Daniel Ziegler对本文观点的相关讨论。感谢Greg Brockman, Jan Leike, Holly Mandel, John Schulman和Jeff Wu对草案的反馈。感谢Bianca Martin, Steve Dowling, Natalie Summers和Justin Jay Wang的沟通和设计。


脚注


  1. 这些权重的总和是binomNnbinom{N}{n},给出了Hockey-stick特性的证明。关于这里描述的估计器的正式推导,见WebGPT论文的附录一。

  2. 提示:将best-of-nn分布的PDF表示为原始分布的PDF和CDF的函数。

  3. 然而,从信息论的角度来看,nn的最佳分布不一定是最佳的。例如,如果PP有一个沉重的右尾巴,那么对于任何x>0x>0和任何varepsilon>0varepsilon>0,有一个分布QQ,使得mathbb E\_{y\\sim Q}\\left\[y\\right\]>xD_textKLleft(QparallelPright)</varepsilonD\_{\\text{KL}}\\left(Q\\parallel P\\right)</varepsilon(练习)。