OpenAI 联创 John Schulman:推理、RLHF 与 2027 AGI 计划
John Schulman (OpenAI Cofounder) — Reasoning, RLHF, & Plan for 2027 AGI

我认为,就算在一两年内,你也能想象让模型完成整个编程项目——从把模型当成搜索引擎来用,转向与它协作完成整个项目。我们可能不想立刻跳到让 AI 运营整家公司。即便模型已经足够好,真的能自己运营一家成功的企业,如果明年或什么时候没有其他瓶颈,你就有了 AGI。计划是什么?
今天我非常荣幸能与 John Schulman 对话,他是 OpenAI 的联合创始人之一,领导这里的 post-training 团队,而且他也主导了 ChatGPT 的创建,还是 AI 和 RL 领域许多最重要、引用最广泛的论文的作者之一,包括 PPO 等等。John,非常高兴能和你聊天,感谢你来参加播客。
谢谢邀请我上播客。我是你们的忠实听众。
哦谢谢,谢谢你这么说。
那么我的第一个问题是,我们有 pre-training 和 post-training 的区分,除了 loss function 和 training regimes 这些层面实际在发生的事情之外,我只是好奇,从概念上退一步说,pre-training 到底在创造什么样的东西,post-training 又在此基础上做了什么?
在 pre-training 中,你基本上是在训练模型去模仿互联网上的所有内容,包括网页、代码等等。所以你得到的模型基本上能够生成看起来像互联网上随机网页的内容。而且模型还被训练去最大化似然,它必须给所有东西赋予一个概率。所以目标基本上是给定前面的 token,预测下一个 token。token 就像是单词或者单词的一部分。由于模型必须给它赋予概率,而且我们训练时是在最大化 log probability,最终模型会非常 calibrated。
因此它不仅能生成所有这些网页内容,还能给所有东西分配概率。所以 base model 实际上可以扮演各种不同的 persona,或者生成各种不同的内容。然后当我们做 post-training 时,我们通常瞄准的是更窄范围的行为,我们基本上希望模型表现得像这样一种聊天助手,这是一个更具体的 persona,它会试图提供帮助。它不是试图模仿某个人,而是回答你的问题或执行你的任务。我们在优化一个不同的目标,更侧重于产生人类会喜欢并觉得有用的输出,而不是仅仅试图模仿网络上这些原始内容。
对,好的。我想也许我应该退一步问,现在我们已经有了这些相当擅长充当聊天机器人的模型。暂时先把这些流程具体如何运作放在一边。今年年底发布的模型将能够做什么?你如何看待未来五年的进展?哦,对,五年。对。
我认为模型会变得好很多。但在五年之内,我是说,我觉得就算在一两年内,我们就会发现你可以用它们来做很多比现在更复杂的任务。比如说,现在你可以想象让模型完成整个编程项目,而不是只给你一条关于如何写一个函数的建议。你可以想象你给模型一些高层指令,告诉它要写什么代码,然后它就会去写很多文件,进行测试,查看输出,再迭代一番。所以就是复杂得多的任务,而从根本上说,关键在于它能够保持足够长时间的连贯性,从而写出多个代码文件。
从现在到那时,是什么发生了变化?
是的,我认为这源于几方面的结合,也就是训练模型去做这种更难的任务。我是说,现在的模型,怎么说呢,它们并不是特别——大部分训练数据更像是一次只做单步任务,而我预计我们会做更多工作来训练模型完成这些更长期的项目。所以我认为,任何 kind of training,任何做 RL 来学习如何做这些任务的方式,不管你是监督最终输出,还是像监督每一步,我觉得任何针对完成长期项目的训练都会让它们好很多。而且由于这整个领域还非常新,我觉得做这种训练有很多有意思的 low-hanging fruit。
这是一方面。另外,我预计随着模型变得更好,它们也会更擅长从错误中恢复,或者说更善于处理边缘情况,当事情出错时,它们知道如何恢复。所以模型的 sample efficiency 会更高。你不必收集大量数据来教它们如何回到正轨。只要一点点数据,或者它们从其他能力中 generalize,就能让它们回到正轨,而现在的模型可能只会卡住然后迷失方向。
我不太确定我理解了,其实我想更清楚地了解 generalization 是如何帮助回到正轨的。你能多讲讲吗?我不太明白为什么这两个概念是关联的,对吧?
它们并没有直接关联。我是说,你通常只会有一点点涵盖所有情况的数据。如果你收集了一个多样化的数据集,里面就会有一点点各种东西。如果你的模型 generalize 得很好,那么即使只有几个回到正轨的例子——我明白了——或者甚至在 pre-training 中就有回到正轨的例子,模型也能够从它见过的其他事物中 generalize 到当前情境。所以我认为,如果你有一个较弱的模型,你也许可以用足够的数据让它做几乎任何事,但你可能得在特定领域或技能上投入大量精力。而对于一个更强的模型,它可能无需任何训练数据或努力就能直接做对。
你对此有什么直觉吗?现在这些模型也许能连贯运作 5 分钟。我们希望它们能完成对人类来说需要一小时、然后一周、然后一个月的任务,以此类推,达到每一个 benchmark。这会像是每一个阶段都需要 10 倍更多的 compute,类似于目前 pre-training 的 scaling loss 吗?还是说过程会 streamlined 得多,因为一旦达到了那个点,你已经更有 sample efficiency 了,然后你就能直接跳到能执行长达数年的任务,或者类似的情况?
是的,我认为从高层来看,我同意更长 horizon 的任务需要更强的模型智能才能做好,而且训练成本也会更高。不过我不确定是否真存在一个特别干净的 scaling law,除非你用非常谨慎的方式去设定,或者设计实验时采用某种特定方式,因为最终可能会存在一些 phase transitions,一旦你达到了某个水平,你就能处理长得多的任务。比如说,我觉得人们在不同时间尺度上做规划时,我不确定他们是否使用了完全不同的机制。
因此,无论是思考一个月后、一年后,还是一百年后的事情,我们很可能使用的是同一套心智机制。我们实际上并不是在进行某种 reinforcement learning,以至于需要去担心一个覆盖这种时间尺度的 discount factor 之类的问题。所以我认为,借助语言,你可以描述所有这些不同的时间尺度,然后你可以去做一些事情,比如在当下尝试朝着目标取得进展,无论这个目标是一个月后还是十年后。所以我可能会对模型抱有同样的期待,即存在某种——我不知道这算不算一种 phase transition——但有些能力是在多个尺度上都能发挥作用的。
好的。那么,如果我说错了请纠正我,但这似乎意味着,我们现在的模型在 per token basis 上已经相当聪明了。它们在 per token basis 上可能和最聪明的人类一样聪明。而阻碍它们发挥最大用处的原因在于,五分钟后它们就无法继续以连贯的方式编写代码,也无法与你对项目的整体目标保持一致。如果一旦开启这种 long horizon RL 训练机制,就能立即解锁在更长时间内保持连贯性的能力,那么我们是否应该预测,一旦该机制被解锁,模型就会达到人类水平?如果不能,那么在我们能够规划一年并完成需要那么长时间的项目之后,还剩下什么障碍?
是的,一旦我们进入那种机制,究竟会看到什么,以及进展会有多快,目前还完全不清楚。所以这仍然是不确定的。我想说,我并不指望通过这类训练就能立即解决所有问题。我认为模型还会存在其他一些零零散散的缺陷,导致它们卡住、无法取得进展,或者做出比人类更差的决策。所以我不会说我指望这一个小小的突破就能解锁所有能力,不过……是的,还不清楚。但也许在 long horizon 任务能力上的一些提升可能会走得很远。
你认为存在其他瓶颈原因是合理的,还是说这种情况似乎相当可能发生?我也很好奇,瓶颈的性质会是什么?模型已经在 pre-training 中拥有了所有这些 representations。现在由于 long horizon RL,它能够在很长一段时间内保持连贯行动。那么还剩下什么?
也许人类专家在不同任务中会带来一些其他经验,比如某种 taste,或者更好地处理模糊性。所以我想象,如果我们想做类似研究的事情,这类因素就会起作用。是的,显然还会存在一些相当平凡的局限,比如模型的 affordance,比如它能否使用 UI,当然还有物理世界,或者能否获取某些东西。所以,我认为可能会有很多这种平凡的障碍,它们可能不会持续太久,但最初会拖慢进展。
一旦这些 AI 变得更具 multimodal 能力,或者至少在更多 multimodal 数据上训练,为它们设计的网站会在任何方面与为人类设计的网站不同吗?比如所需的 UI,如何根据它们的优势和劣势进行补偿,这与我们现在为人类设计的 UI 会有什么不同?
是的,这是个有趣的问题。我是说,我预计模型将能够使用为人类设计的网站,只需通过 vision,比如当 vision 能力变得更好一些的时候。所以不会立刻有必要去改变它们。另一方面,一些会从 AI 能够使用它们中获益匪浅的网站,可能会希望设计成对 AI 更友好的 UX。所以,我不确定这具体意味着什么,但可能……假设我们的模型在 text mode 下仍然比从图像中读取文本更擅长,那你可能希望为模型提供良好的 textbased representation。
而且,还需要清晰地标示出所有可以交互的元素。但我想我不指望整个互联网被彻底重新设计,到处都装上 API,因为我预计我们能让模型使用与人类相同的 UI,对吧?我是说,我想这就是语言模型的一大教训,对吧?它们能够利用与人类相似的 affordance 来行动。嗯。
那么,你之前提到的这个观点,即这个过程可能更具 sample efficient,因为它可以从 pre-training 的经历中泛化,学会在不同情境下如何摆脱困境。我很好奇,你所见过的关于这种 generalization 和 transfer 的最有力证据是什么?是的,因为关于模型未来能力的一个大问题似乎是,究竟发生了多少 generalization。有没有什么让你感觉特别有力的例子?就像你真的学到了一些你原本没料到能通过这种 generalization 学到的东西?
在 post-training 中确实有一些有趣的 generalization 实例。比如一个众所周知的现象是,如果你用英语数据做所有的 fine-tuning,模型会自动在其他语言上也表现良好。所以如果你用英语数据训练 assistant,它在西班牙语上也会做出合理的表现。有时在回复英语还是西班牙语这点上可能会出现错误行为,但通常你也能得到正确的行为,比如让它用西班牙语回应西班牙语查询。这就是一种有趣的 generalization 实例:你似乎只是锚定了一个正确的、乐于助人的 persona,然后它在不同语言中就会自动做出正确的行为。
我们在 multimodal 数据上也看到过类似的情况,如果你只做基于文本的 fine-tuning,它在图像上也能获得合理的行为。嗯,在 ChatGPT 早期,我们曾试图解决模型在理解自身局限性方面的问题。比如早期版本会认为它可以给你发邮件、帮你叫 Uber 之类的,模型会试图扮演 assistant,然后说"好的,当然,我已经发了那封邮件",但显然它并没有。所以我们开始收集一些数据来解决这些问题,结果发现只需极少量的数据就能奏效,即使把它和其他所有数据混在一起。
所以我不记得确切有多少个例子,大概 30 个左右……总之我们有相当少的例子来展示这种普遍行为,比如解释模型不具备某种能力,而这 generalize 到了我们未曾训练过的各种能力上。
好的。我还是想回到这个问题上,因为我不确定我是否理解了:如果你有一个被训练成能在更长时间内保持连贯性的模型,这是否意味着,除非存在其他瓶颈——而这些瓶颈到明年可能存在也可能不存在——你就有可能拥有在人类水平上行事的模型?就像你与它互动时,它就像一位人类同事一样好,你可以让他们去做一些事情,然后他们就会去完成。
如果这就是你认为可能实现的能力,那这幅图景有什么不对劲的地方呢?
是的,很难说具体欠缺了什么。我想说,当你与今天的模型对话时,除了长期连贯性之外,它们还存在各种弱点,比如在真正深入思考问题,或者关注你所提要求方面。所以我想说,我不认为仅仅把连贯性提升一点就足以实现 AGI,但我也说不清楚,究竟是什么主要弱点会阻止它们成为一个完全称职的同事。
这样看来,你似乎应该为很快拥有 AGI 的可能性做打算。
是的,我认为这很合理。
那么,如果明年或其他什么时候没有其他瓶颈了怎么办?你有了 AGI。计划是什么?
我想说,如果 AGI 比预期早得多到来,我们肯定希望对此保持谨慎,我们可能会想在训练和部署上稍微放慢一点,直到我们相当确定能够安全地应对它,并且对它将要做什么、能做什么有很好的把握。所以,我认为如果它比预期早得多到来,我们必须非常谨慎,因为我觉得我们在很多方面的理解仍然是初级的。
那么谨慎意味着什么?因为想必你们已经很谨慎了,对吧?你们在部署前会做这些评估——
我想说,也许不去训练更聪明的版本,训练时非常小心,确保它被妥善地沙盒隔离,等等。也许不大规模部署,或者对部署的规模保持谨慎。
是的,我想我不确定。好吧,我们就假设这个场景:它明年就发生了,然后你们不再训练更聪明的系统,而是以某种有节制的方式部署。我在想,如果这不仅仅关乎 AI,而是智能本身比我们预期的要容易得多,这就是它发生的原因。那么你们暂缓部署,现在其他公司也具备了类似水平的能力。接下来会发生什么?你们已经等了。你们在等什么?你们和这些公司讨论什么?在这种场景下,每家公司在做什么?
是的。博弈论有点难理清楚。哦,是的。首先,我不认为这会在明年发生,但讨论这个仍然有用。也许会是两三年之后。不过,是的,我想两三年仍然算很快。仍然很快。我确实认为,可能需要某种协调,比如大家都需要就部署或进一步训练的合理限制达成一致,这样才行;否则,就会出现竞争动态,每个人都想领先,而这可能需要在安全上做出妥协。所以我认为,可能需要在做这类训练的大型机构之间进行一些协调。
那么你们在协调——我猜是暂停部署,直到……直到什么呢?直到你们搞清楚模型里发生了什么?比如暂停进一步训练,暂停部署,避免某些我们认为风险更高的训练类型。所以就是制定一些合理的规则,规定大家应该做什么,让每个人都在某种程度上限制这些事——但限制的目的是什么?因为我想在某个时刻,这种智能内部的势能……你打算怎么做?假设两年后我们有了 AGI,现在每个人都吓坏了,于是 AI 公司们都暂停了。现在呢?或者说,要等到什么时候?是的,这个问题我没有好的答案。
我想说,如果每个人都能那样协调,我认为这会是一个还可以的情景。那会是一个相当不错的情景,因为我认为训练这些模型非常耗费资金,而且涉及很多复杂的环节。所以不是每个人都能在家复现这些东西的。所以我认为,鉴于能够训练最大模型的实体数量相对较少,这样做是可能的。协调似乎是可行的。所以,我不确定如何能长期维持这种均衡,但我认为如果我们能达到那个地步,我们的处境还可以。
真的吗?我很好奇,我不确定接下来会发生什么,因为从根本上说,无论这是问题还是好处,我们拥有大量……你把它部署到服务器上,现在我们就拥有了一堆智能体,或者它们可以自己部署到服务器上。现在我们让所有人都协调一致了,但我不确定在这个世界里我们接下来该做什么。为什么这会为我们带来好的结果?
我想说,如果能让所有人达到合理的协调,我们就能想出一些办法,并且如果我们觉得已经充分解决了对齐方面的技术问题,足以部署非常聪明的 AI,这些 AI 既能作为人类意志的延伸,又能防止它们以某种方式被滥用,从而避免灾难。我想那会很棒,我们就可以继续安全地部署这些系统,这将带来大量繁荣,以及一个科学进步快得多的新阶段等等。所以我想,好的情景看起来就是这样。
好的,这说得通。但我好奇的是,几年后你怎么知道——即使是最理想的情况,所有这些参与者都同意暂停,直到我们确定正在构建的对齐系统不会自己试图发动政变夺权,也不会让其他人做到这一点。什么能证明这一点?或者说证据会是什么样的?
我想说,如果我们能够逐步部署比以前更聪明的系统,那我认为这更安全。所以我希望事情的发展方式不是那种所有人都必须协调一致、封锁一切再安全发布的场景,因为这可能会导致势能的大量积累。所以我更希望某种场景:我们只是持续发布比前一个版本稍好的东西,同时确保我们有信心每一次迭代都是正确的,让安全性和对齐程度与能力提升相对应地提高。所以,如果事情开始看起来有点可怕,我们就能放慢速度。这就是我所希望的。
我想说,如果出现更大幅度的非连续性跃升,问题就在于你怎么知道手头的东西发布出去是安全的?
我想说,我没法给出一个尽如人意的通用答案,但为了让这种情况更容易被接受,你可能需要进行大量测试,比如模拟部署——也就是在你预期的环境下进行某种 red teaming——而且你要以比现实世界中计划采用的设置更严苛、更容易失败的方式来做这些测试。
你需要一个非常好的监控系统,这样一旦部署的系统开始出问题,你能确信它可以被立即检测到,就像你可能有某种机制在监督已部署的 AI 系统及其行为,并寻找麻烦的迹象。
所以我想说,你需要 defense in depth,你需要某种组合:模型本身表现得非常好,拥有无可挑剔的道德指南针,而且你非常确信它能抵御任何接管企图或严重的滥用行为。然后你还想在其之上建立非常好的监控,这样你就能发现任何麻烦。
在进行 long horizon RL 时,或者当你最终开始这样做时,你会追踪哪些指标,以便在广泛部署这些系统之前注意到这种不连续的跃升?
我认为你需要在训练过程中进行大量 eval。
具体来说,你会如何注意到这类情况?
考虑到这种情况可能发生,进行 long horizon RL 训练是否合理?还是说这只是可能性非常低的事情?你怎么看待这个问题?
如果你看到大量潜在的可怕能力,而且它们似乎已接近实现,那么在进行这类训练时你就需要非常谨慎。
我的意思是,这不是我们现在就需要害怕的事情,因为目前很难让模型做出任何连贯的事情,但如果它们开始变得非常好,我认为我们就必须认真对待其中一些问题,我们需要进行大量 eval,比如测试它们是否存在不当行为,或者我猜这关乎模型的 alignment。我们想确认它们不会反过来对付我们之类的情况。
但你也可能需要关注能力上的不连续跃升,你需要对模型的能力设置大量 eval。
此外,我想你还想确保你训练的内容没有任何理由让模型反过来对付你,而这本身我认为并不是最难做到的事情。
我的意思是,如果我们用 RLHF 的方式训练它们,即使模型非常聪明,也会让人感到非常安全,因为模型只是试图生成一条令人类满意的信息,它除了关心自己生成的文本是否被认可之外,对世界上其他任何事情都不关心。
所以显然,如果你在做某种让模型执行一长串涉及工具等操作的任务时,它可能会有动机去做很多古怪的、对人类来说毫无意义的事情,只为了产生最终结果。
但我想,除了最终产出非常高质量的输出外,它不一定有动机去做其他任何事情。所以……
所以我想,你们有过那种关于 instrumental convergence 的老观点,比如模型为了最终写出一段很棒的代码而想要接管世界。就像如果你让它帮你写一个 Flask 应用,它可能会说:“哦,对了,首先我得接管世界,然后我需要……”我也不知道。
但在某种程度上,很难想象为什么面对这种相当明确的任务,你会想先接管世界。
但当然,如果你的任务是“赚钱”,那么也许这会导致一些邪恶行为,作为一个 instrumental goal。
好的。在我们回到那个话题之前,我想先退一步,谈谈当今的 RHF 系统等等。不过我也不想彻底丢掉那条线索,它挺有意思的。
好的,当今的 RHF 影响这些模型的方式,从人类心理学角度来看,你会把它描述为一种 drive 吗?是一个 goal?还是一种 impulse?从心理层面来说,它究竟在改变什么东西?而且不仅仅是聊天机器人的角色设定,而是比如“不要那样说话,要这样说话”或者“不要输出那类内容”。
是的,我认为这可能在某种程度上类似于人类的 drive 或 goal。也就是说,你试图引导模型趋向某一组状态,而非其他状态。
所以我认为,我们对 drive 或 goal 的概念还包含其他要素,比如实现它时获得的满足感。而这些东西可能更多地与学习算法有关,而不是当你只有一个固定模型时它在 runtime 所做的事情。
所以我想说,虽然可能存在某些类比,但我不确定到底有多接近。不过我要说,在某种程度上,模型确实以某种有意义的方式拥有 drives 和 goals。在 RHF 的情况下,当你试图最大化由 reward model 衡量的人类认可时,模型只是试图产生人们会喜欢、并且会被评判为正确的东西。
关于利用那种 internal monologue 式的东西来提升推理能力,我听过两种观点——至少就公开可见的内容而言——我很好奇你认为哪种更有前景。一种是模型从中学习,输出大量潜在的思路链,并学会遵循能得出正确答案的那一条,然后在部署前接受这方面的训练。另一种是在部署时使用大量算力进行 inference,这涉及模型在部署过程中自我对话。当模型真正擅长推理时,你预计它会更接近哪一种?是因为它做了大量 inference calls,还是因为你训练它在这方面表现出色?
嗯,我认为你可以将推理定义为在 test time 需要进行某种计算或某种演绎的任务。所以,根据定义,推理就是需要 test time 计算和逐步计算的任务。
另一方面,我也预期通过某种 training time 计算或 training time 练习能获得很大收益。所以我认为,将这两者结合起来才能得到最好的结果。
现在你知道,模型学习有两种方式。要么是在训练中,无论是 pre-training 还是 post-training,但训练中大部分的算力都花在 pre-training 上,它只是略过数万亿的 token,就像站在旁边——你知道——就像快速浏览数万亿 token 的信息量,如果让人类经历这些,只会完全困惑,对吧?这不是一种很高效的学习方式。
另一种方式是 in-context learning,当然它的样本效率更高,但每次实例后就会被清空。我好奇的是,你是否认为存在某种介于两者之间的路径——既不会在每次实例后被清空,也不像只是看过数万亿个 token 那样随意,而是更加刻意、更加主动的。
是的。那么,你的意思是模型拥有某种中期记忆?也就是说,信息量太大,塞不进上下文,但规模又比 pre-training 小得多。
我不确定是不是记忆,也可能是记忆。我没有上下文,但当然,就像我在准备这次对话时,我会想“我应该理解这个”,于是去查资料,仔细阅读,读的时候可能还会思考。我不确定这在模型层面自然对应什么,但我好奇那会是什么样子。
我明白了。所以,这不只是记忆,也有点像是针对某项任务做专门化——针对特定任务进行专门化,或者在某一个特定项目上投入大量精力。
我不确定是不是专门化。更像是,我在想“这部分我不懂,所以我要深入研究一下”,而“这部分我已经懂了”。我要像是在现有知识库上做专门化。
嗯,是的,我明白了。所以,这不仅仅是找到一堆相关来源进行训练,或者在某个特殊领域做 fine-tuning。这也关乎通过自身推理来发展知识,并利用某种内省和自我认知来弄清楚自己需要学什么。
是的。嗯,我想说,这确实是当今系统所缺失的东西。我是说,人们并没有真正大力推动这种中间路线——一边是大规模训练,产出一个快照模型,就像一个部署模型;另一边是 in-context learning。我觉得部分原因在于,我们一直在大幅扩展上下文长度,所以没动力去做这件事。如果你能把上下文拉到十万甚至一百万,那其实已经相当大了,而且在很多情况下它其实不是瓶颈。但我同意,你可能还是希望通过某种 fine-tuning 来补充,因为 fine-tuning 和 in-context learning 得到的能力很可能是互补的。
所以我预计,我们会想要构建能进行某种 online learning 的系统,同时也具备一些认知技能,比如对自身知识进行内省,以及寻找能填补空白的新知识。
这些都是同时发生的吗?就像是一种新的训练范式,让所有这些事情同时发生?还是说 long-horizon training 和这种训练是分开的?又或者只是因为模型足够聪明,既能内省,又能在更长的时间跨度上行动,并且你能在长程任务中获得足够的奖励?
是的,我想说,如果你在做某种长程任务,那么你在执行任务的同时也在学习,对吧?所以,要完成一件涉及很多步骤的事情,唯一的方式就是让学习和记忆在任务执行过程中得到更新。所以,短期记忆和长期记忆之间是一个连续谱。嗯,是的,我预计这种能力的需求会开始变得明显,当我们更多地关注长程任务时;而且在某种程度上,只是把大量内容塞进上下文就已经能让你走得很远了,因为现在我们的上下文已经非常长了。但你可能也想要 fine-tuning 这类东西。
至于内省和 active learning 的能力,这可能自然而然地来自模型知道自己知道什么的能力,因为模型对自己知道什么有一定的校准。这就是为什么模型不会产生太严重的幻觉,因为它们对自己的局限性有一定理解。所以我认为,同样的能力也可以用于 active learning 这类事情。
为什么会这样?有这么多复杂的 RL 流程,其中很多都是你开创的。当模型本身变得足够聪明,能够充当自己的环境,并以更在线、更稳定的方式交互时,这些流程中有多少仍然相关?未来的进步之路会比过去 RL 所需的那些解决方案更直接吗?
嗯,我认为 policy gradient 算法并不是样本效率最高的算法。所以如果你想在测试时学得很快,大概不会想用它。不过谁知道呢?也许也没那么糟。所以我认为,动物的运动学习可能有点像 policy gradient 算法。比如说,你学习投篮,可能需要尝试数千次才能变得更准,而且我觉得这背后可能确实有某种类似 policy gradient 的东西。但如果是一个模型试图完成一个项目或某种任务,这不会是最快的学习方式。
所以我认为,我们会更希望依赖 in-context learning。在这种情况下,你实际上拥有了一个学习到的算法——你学会了如何探索,学会了如何穷尽所有可能性,而不是反复做同样的事、犯同样的错误。所以,是的,我认为我们将能够做那些看起来更像学习到的搜索算法的事情,而这正是会在特定任务中被用到的东西。
有意思。好吧。我想退一步问问你的个人经历。至少在 OpenAI 的经历。你主导了 ChatGPT 的创建。你最早是在什么时候意识到,首先,这些 LLM 是要走的路,然后做一个聊天机器人或者以某种方式去 instruct 它们会是一件有用的事?跟我讲讲整个来龙去脉吧,从什么时候这成为你的主要关注点,以及整个过程是什么样的。
是的。早期,在 ChatGPT 之前,OpenAI 有一些 instruction-following model。背后的想法是,我们有一些 base model,人们可以用很复杂的方式去 prompt 它们,但它们也比较难 prompt——它们基本上是在做自动补全,所以你必须设计一个非常好的 prompt,还要加一些例子。于是 OpenAI 里有人就在研究怎么拿这些 base model,让它们更容易被 prompt,这样你只要写一个问题,它就会回答这个问题,而不是给你更多问题之类的。
所以我们有了这些 instruction-following model,它们有点像 base model,但用起来更容易一点。这些是最早部署在 API 里的模型,或者说在 GPT-3 之后,它们是下一代模型。与此同时,肯定也有很多人在思考聊天这件事。Google 发表过一些论文,比如 LaMDA,还有更早的 Meena。他们做了这些聊天机器人,更像是一个被高度专门化到聊天任务上的 base model,非常擅长聊天。
至少从论文里的例子来看是这样。
它更多被用于一些偏娱乐的应用,比如让模型扮演某种角色,假装自己就是那个人物。它没那么实用,比如说帮我重构代码。所以,确实有一些人在考虑聊天这件事。我之前做过一个与聊天相关的项目,叫做 Web GPT,它主要是借助网页浏览和检索来做问答。而当你做问答时,它其实非常适合做成聊天形式,因为你总会想要追问,或者有时需要——模型应该提出澄清问题,因为问题本身是模糊的。所以在做了第一版之后,我们就很清楚,下一版应该是对话式的。
总之,我们开始着手开发对话式的聊天助手。这是基于 GPT-3.5 构建的,该模型在 2022 年初完成了训练,它在语言和代码方面已经相当出色。所以我们很快意识到,它在编程辅助方面其实相当强,这也是让我们感到兴奋的亮点之一。是的,我们为此工作了将近一整年,而且我们一度把浏览功能作为另一项特性加入其中,不过后来我们弱化了这个功能,因为模型自身的内部知识已经足够强大,浏览并不是它最吸引人的地方。
然后,我们考虑把它拿给亲友进行了一段时间的 beta 测试,也在考虑是否要公开发布。但在那个时候,GPT-4 其实在当年八月左右完成了训练。实际上,OpenAI 当时最核心的 RL 工作就是 instruction following,因为那是要部署到生产环境的模型。所以 GPT-4 最初的 fine-tune 就用了那一整套技术栈,那些模型表现非常好,大家在看到 instruct fine-tune 的 GPT-4 之后都非常兴奋。
但它们确实非常出色。只是偶尔会产生很惊艳的输出,同时也明显有点不太可靠。比如有时会大量幻觉,有时给出的输出相当不稳定。所以显然它还没准备好正式亮相,但无疑已经非常强大。于是我想,在那之后,人们暂时把聊天这件事忘了,忘了这个并行的分支。但后来我们进一步推进,把 instruct 和 chat 的数据集混合在一起,试图兼取两者之长。而且我觉得,我们做出的 chat 模型明显更易用。它在某种程度上自动表现出了更合理的行为,比如模型会知道自己的局限性。
这其实是开发过程中让我兴奋的一点:我意识到,许多人认为是语言模型缺陷的东西——比如明显的幻觉——虽然不能彻底解决,但用相当直接的方法就能取得很大进展。对了,还有一点关于 chat 的事:当我们做 instruct 模型时,“把这段文字补全,但要写得友好或有用”这个任务本身定义得很模糊。我觉得这个任务既让模型困惑,也让负责数据标注的人困惑。但对于 chat,人们对“一个有帮助的机器人应该是什么样”有一种直觉上的认知。所以告诉人们模型应该做什么,让人们理解这一点,要容易得多。
因此,模型的个性更加一致,也更容易稳定地获得相当合理的行为。
有意思。那么,任何人都能用你们公开的 fine-tuning API 做出 ChatGPT 吗?
也不尽然。我是说,他们或许可以,但我不记得当时哪些模型开放了 fine-tuning。假设当时 3.5 已经开放 fine-tuning,你可以做出一个相当接近的东西,但我不确定你是否能——我觉得你没法只做一轮 fine-tuning,只用纯人工写的数据去微调。我认为你需要做多轮迭代。如果不做 RL——我们做了——那你至少要做某种迭代的 supervised fine-tuning,让人类去修改模型生成的输出。因为如果你用人工生成的数据去训练,即使质量很高,模型也很难完美拟合这些数据,因为那可能不是模型能够输出的东西。所以你需要做点更像 RL 的迭代过程。所以我觉得如果你那么做了,可以做出很接近的东西,但这并非易事。
而且我们还有一个用 RL 训练的 instruction following 模型,在 ChatGPT 发布前不久刚推出。所以如果你给它套一个类似 chat 的外壳,也能得到一个很接近的东西。但那个模型——如果你只是用 chat 的方式去 prompt 它——它在能力分布上有一些差异。比如它在写作、诗歌等方面很强,但在认识自身局限性、事实准确性等方面就没那么强。
抛开 3.5 不谈,我好像在某处听到你说 GPT-2 让你非常震撼。与 2019 年的预期相比,AI 的发展是更快还是更慢?
我想说,自 GPT-2 以来,比我预期的要快。我当时相当认同 scaling,还有 pre-training 等等,认为这些方向是对的。但 GPT-2 出来的时候,我还没完全被说服,不认为它能彻底改变一切。其实我真正转变自己和团队的研究方向,是在 GPT-3 之后。那之后我们聚在一起说,看来语言模型这东西真的很管用,看看我们还能做些什么。但在 GPT-2 之后,我还不太确定。
特别是考虑到我们之前谈到的 RL,如果它在更聪明的模型上效果更好,未来训练算力中 pre-training 和 post-training 的占比,会不会明显向 post-training 倾斜?
是的,有一些论据支持这一点。目前两者的比例非常悬殊,但你可以争辩说,模型生成的输出质量相比——或者说高于——网上大部分内容的质量。所以,让模型自己去“思考”,而不是仅仅训练它去模仿网上的内容,是更合理的。我觉得从第一性原理上有这样的论据,而且我们确实通过 post-training 获得了很大提升。所以我不确定。但我预计我们会继续推进这套方法,并可能加大投入其中的算力。目前 GPT-4 的 ELO 分数比最初发布时高了大约 100 分。
所以这都是因为你提到的那些由 post-training 带来的改进吗?
是的,我想说,大部分都归功于 post-training。
有意思。其实有很多不同的独立改进维度,比如我们考虑数据质量、数据量,不断迭代整个部署和收集新数据的流程,以及改变所收集的标注类型。所以有很多因素叠加在一起,综合起来能带来相当不错的 effective compute 提升。
是啊,这提升非常巨大。Post-training 居然还有这么大的改进空间,真的很有意思。
那么,什么样的人在 RL 研究上特别出色?我听说这非常讲究技巧,但你拥有怎样的直觉,才能找到处理数据、搭建环境的方法?
我想说,到目前为止,我在整个技术栈的不同层面都积累了相当丰富的经验,比如 RL 算法——显然我从研究生阶段就开始研究这个——再到数据收集、标注流程,以及玩转语言模型。所以可以说,我只是在这些领域都略有涉猎。我觉得在这类研究中表现出色的人,会对整个技术栈有全局视野,对不同环节都充满好奇心,同时也会这样思考:你既要讲实证,让实验结果不断更新你的观点,但也要在一定程度上从 first principles 出发去思考,比如假设学习机制是有效的,那么理想情况下应该收集什么样的数据,诸如此类。
因为自 GPT-4 发布以来,似乎还没有出现显著更优的模型,所以有一种假设认为,我们可能正撞上某种平台期,这些模型的泛化能力实际上并没有那么好,而且我们终将撞上一堵 data wall——一旦越过那个点,光靠记忆海量 pre-training 数据所解锁的能力,将无法帮助你得到比 GPT-4 聪明得多的模型。你怎么看这个假设?这不对吗?另外,我想我们之前泛泛地聊过一些泛化的例子,比如从西班牙语到英语的迁移等等,但是……
我的意思是,好吧,这可能是个冗长的问题,但[清嗓子]我想到的一个例子是,语言和代码、推理和代码之间是否存在迁移。如果你用大量代码训练,它在语言推理上会变强。如果确实如此,你是否观察到这类现象,表明不同模态之间存在各种正向迁移?也就是说,一旦你用大量视频和图像训练,模型会变得更聪明;一旦使用合成数据,它也会变得更聪明。还是说,解锁的能力似乎极度局限于你放入训练语料的确切标签和数据类型?
嗯,好的。我试着逐一回应。首先,我们会撞上 data wall 吗?我的意思是,我不会从 GPT-4 发布至今的时间跨度里做太多推断,因为训练这些模型确实需要很长时间,要为训练新一代模型做好所有准备工作也需要时间。所以我不会从这个事实中得出太多结论。我想说,数据量有限确实带来了一些挑战,但我不认为我们会立刻撞上 data wall。不过我预计,随着我们越来越接近那堵墙,pre-training 的性质会随时间发生一定变化。
至于不同预训练数据类型之间的泛化,我想说,在这类问题上做科学研究相当困难,因为你无法训练那么多预训练模型。所以你可能没法在 GPT-4 规模上做 ablations。也许你可以训练大量 GPT-2 规模的模型,甚至 GPT-3 规模的模型,用不同的数据配比看看效果。所以我并不清楚是否有任何公开的 ablation 结果涉及代码数据与推理表现等方面。如果有的话我会非常感兴趣。但实际上我好奇的是,我的意思是,如果其中一点在于模型规模越大越聪明,那么在 GPT-2 级别模型上做的 ablation——如果它显示迁移效应不那么强——这能为 GPT-4 级别模型在类似领域上的迁移水平提供多少证据呢?
对吧,你可能无法得出结论说,如果在 GPT-2 规模上迁移失败了,那么在更大规模上也会失败。因为可能对于更大的模型,你会学到更好的共享表征;或者说小模型不得不过度依赖记忆,而大模型则能学会正确的计算方式。所以我预计,在某种程度上这是成立的。
这可能有非常简单的答案,但问题是:更大的模型,用同样多的数据训练,会变得更聪明;反过来说,要达到同样的聪明程度,你只需要用更少的数据训练它们。为什么会这样?它的参数更多,看到的东西更少,结果却一样聪明。为什么会这样?我认为对于参数数量方面的 scaling law,还没有谁能给出一个好的解释。我的意思是,我甚至不知道对此最好的 mental model 是什么。显然,模型更大意味着容量更大,所以最终你应该能获得更低的 loss,但为什么更大的模型 sample efficiency 更高呢?
嗯,我可以给你一些非常粗略的解释,比如你可以说模型有点像是由许多执行计算的不同 circuit 组成的 ensemble。你可以想象它在并行地进行大量计算,输出是这些计算的加权组合。如果你增加模型的宽度,或者……其实宽度和深度在某种程度上是相似的,因为在 residual network 中,深度在更新 residual stream 内容方面能起到类似宽度的作用。但你可以这样认为:你在并行地学习所有这些,并行地学习这些不同的计算,而更大的模型拥有更多的计算单元。
因此,其中某一个碰巧幸运地猜对很多、最终被加权的概率就更大了。这有点像……对了,有些算法就是这样工作的,比如某种 mixture model,或者 multiplicative weight update algorithm。是的,有些算法就是这样运作的。你有一种……我不想说 mixture of experts,因为那指的是另一种东西,但基本上就是带可学习 gating 的专家加权组合。其实,呃,我刚才说的稍微有点不对,但总之,你可以想象类似这样的机制,而拥有更大的模型只是给了你更多机会去找到正确的函数。
所以,这就像是……当然,它并不仅仅是你拥有一堆完全互不相关的函数,然后对它们做线性组合;它更像是一个库,你可以以某种方式将这些函数串联起来。所以,这里面存在一定的可组合性。我想说的是,更大的模型拥有一个更大的计算库,包含各种不同的计算,其中很多东西处于休眠状态,只是偶尔才被用到。但这些东西……它有更大的空间去寻找有用的电路来完成某些任务。
我想问你的是,暂时放下当前的研究问题,退一步说,我想了解你对未来几年 modal scenario 的看法。我记得在对话开头,我们讨论过进展非常快的情况,但现在我们就按 modal scenario 来谈。你在某个时刻会解锁长程 RL,但正如你所说,可能存在其他瓶颈。那么会发生什么呢?这些模型会有多强?它们将如何部署?还会包含哪些其他模态?这些将在什么阶段被解锁,等等?我想了解你对未来几年整体图景的看法。
是的,我预期新的模态会在未来一段时间内,或者很快就被加入进来。我预期模型的能力总体上会通过 pre-training 和 post-training 的结合而持续提升,这将开辟新的应用场景。目前,AI 在经济中的占比还不是很大,它能帮上忙的工作只占很小一部分。所以我预期这一比例会随时间上升,而且不仅仅是因为模型在改进,也因为人们在摸索如何将其整合到不同的流程中。所以,即使我们只是将模型冻结在当前水平,我认为你仍然会看到其使用量的大幅增长。
所以我预期 AI 会被更广泛地使用,而且会被用于更多技术上更复杂的任务,比如我之前提到的编程例子——完成更长期的项目,还有协助各类研究。所以我希望我们能用 AI 以多种方式加速科学发展,因为模型有可能理解某个特定领域的全部文献,并能够筛选海量数据,超出一个人的耐心所能及。所以我基本上希望,基本形态会是人们仍然在主导这一切,你拥有可用的、有帮助的助手,你可以指挥它们,让它们指向许多对你有用的不同问题,每个人都拥有这些 AI 帮助他们完成更多工作。
大家好,快速插播一下,我想介绍一个我希望更多应用使用的工具。显然,你已经注意到每家公司都想在自己的网站上添加 AI 聊天机器人。但作为用户,我通常觉得它们很烦人,因为它们给出的回答冗长、笼统,而且往往没什么用。CommandBar 是一个用户助手,你可以直接将其嵌入到你的网站或应用中。它给人的感觉就像是在和一位友好的人工客服对话,这位客服陪着你一起浏览,甚至替你浏览。它比普通聊天机器人个性化得多。
它可以查阅用户历史并据此做出不同回应。它可以调用 API 执行操作。它甚至可以主动提示用户去探索新功能。我觉得很酷的一点是,CommandBar 不只是输出文字,它还可以说“来,我演示给你看”,然后就开始和用户一起浏览。总之,它们已经被集成到很多优秀产品中了。你可以在 commandbar.com 了解更多信息。感谢他们赞助本期节目。
但显然,在某个时刻,它们会在任何想做的事情上都比所有人做得更好。那么,这个过程会是什么样的呢?现在它们显然只是在协助你。到了某个阶段,它们就能够直接替你做事,甚至可能替你运营整家公司,或做类似的事。到那时,这会是一个平滑的过程吗?而那时的希望在于,我们拥有足够与用户 aligned 的系统,让用户可以指望公司按他们预期的方式运转,等等。
是的,我想……我们可能不想立刻跳到让 AI 运营整家公司。我的意思是,我们可能希望有人监督这些重要决策并拍板。所以,即使模型已经足以独立成功经营一家企业,在某种程度上,这里仍然可能存在选择。而且我认为人们仍然会有不同的兴趣,对于想让他们的 AI 从事哪些有趣的事业也会有不同想法,人们可以……可以做很多……AI 不一定有任何内在的、自身的欲望,除非我们将其置入系统中。所以我认为,即使 AI 变得极其强大,人们最终仍然可以是主导者,决定 AI 最终该做什么。
是的。但我怀疑经济均衡是否离这种情况很远,因为在企业中存在某种类似 Amdahl's law 的情况。流程中最慢的那个环节会成为你的瓶颈。所以即使 AI 让企业中所有非人工环节的效率提升了 10 倍,企业仍然会被那个环节卡住。因此,如果一家公司决定在所有你确实希望有人类监督的事项上保持 human in the loop,它们就会被其他公司淘汰。如果一个国家决定走这条路,其他国家就会胜过它。这是否是一种可持续的、保持 human in the loop 的计划?我希望是,但我怀疑。
没错。所以我认为,如果我们希望保持 human in the loop,这看起来是合理的,但结果证明,任何有人类参与的公司都被没有人类参与的公司击败了,那么显然就需要某种监管,禁止在运营整家公司时完全没有 human in the loop。但世界上有如此之多的公司,我想在任何国家都是如此,更不用说全球范围了。所以我在想,对企业进行监管、要求它们在重要流程中保持 human in the loop,是否是更好的做法?
但这样一来,你就必须定义什么是“重要流程”,你必须监控每一家公司,还必须与每一个有企业的国家达成合作。与其如此,如果这是一个问题,是否应该在模型部署之前就解决它,这样就有望进入一种境地:即使你决定完全基于这些模型从头到尾搭建一家公司,它基本上也会按你的意愿行事,而你不需要 human in the loop。这个问题说得通吗?我想我只是想知道,在这种情况下,我们如何才能真正监控每一家企业确保有 human in the loop,如果中国不打算这么做,又会发生什么,等等。
要么就得让所有国家都同意这套监管制度,要么就得让所有模型基础设施或模型提供商都同意这类要求。所以这肯定绝非易事。我想这还是比较遥远的事,在真正见到类似情景之前,很难想象那样的世界。比如说,有些问题尚待解答:我们真的确信由 AI 运营的公司在方方面面都更优秀吗?还是说我们觉得它们大多数时候表现更好,但偶尔会出现故障,因为 AI 在某些方面仍然样本效率较低,比如应对非常怪异的情况。因此,实际上由 AI 运营的公司具有更高的尾部风险,因为它们更有可能以大规模方式发生故障。
所以我想,这类实际问题也可能决定事态如何发展——也许如果你只要求人们对各种责任负责,这也会在一定程度上改变激励。因此,如果结果是 AI 更擅长运营一切,而且它们完全仁慈,我们已经彻底解决了对齐问题,并且它们比人类更善于对人民负责,那我可能会说,让 AI 来运营公司也许是可以的。但我认为那可能还很遥远。我更可能面临的情况是,它们在短期内看起来更好,但仍然存在一些问题,比如由 AI 运营的实体仍有一些严重问题,而正是这些实际考量推动你至少在近期让人类参与其中。
好的。这是如今你在 RLHF 中就必须处理的问题,你需要聚合大量不同人类的偏好。而且在未来更强大的系统中,这一问题可能会更加突出。但当你说,我们希望这些最终将在公司中完全取代人类的 AI 系统实现对齐,这意味着什么?是指它们基本上会按用户的要求去做吗?还是指它们必须带来某种我们作为 OpenAI 利益相关方满意的全球性结果?具体而言,这意味着什么?
如果这些模型被用于此类更高风险的用例,那我们就必须以与现在截然不同的方式来思考 RLHF。所以我想说,我们还没有完全准备好,或者说当前的方法可能并不完全足够。我认为我们需要在不同利益相关方的需求之间做出妥协。所以我们即将发布一份文件,叫做 spec,也就是 model spec,它阐述了我们希望模型在 API 和 ChatGPT 中如何表现。我们试图探讨这样一个问题:存在不同的利益相关方,而他们的诉求有时会产生冲突。
在我们看来,利益相关方包括:用户,或者说终端用户,也就是坐在 ChatGPT 或其他应用前的人;开发者,也就是使用 API 的人,他们可能通过自己的应用服务其他终端用户;平台方,也就是 OpenAI,我们不希望模型让我们面临法律风险等等;以及其余的人类,包括那些可能不是用户或客户的人。显然,用户可能会要求模型做一些我们认为对他人有主动危害的事,那我们就可能不得不拒绝。顺便说一下,这并不一定是优先级的排序。
这只是说,我们有大约四类利益相关方。实际上,也许将来我们还可以说模型本身,模型本身也是利益相关方。但我觉得目前还没到那一步。总之,这些不同的利益相关方有时诉求相互冲突,我们必须做出判断来解决这些冲突,而这并不总是显而易见的。所以我得说,我们必须仔细权衡各种取舍,基本上大致的启发式原则是:我们主要希望模型遵循指令,对用户和开发者保持有用。但当这侵犯到他人的幸福或生活方式时,这就成了问题,我们必须阻止某些类型的使用。
但我们不想太过……我们主要希望模型只是人们意志的延伸,按他们说的去做。我们不想太过家长式,我们希望保持中立,不把自己的观点强加于人。是的,我们大多希望让人们用模型做他们想做的事。
我之前有机会阅读了这份规范,虽然这取决于它在多大程度上能转化为模型本身的实际行为,但那些权衡给我留下了深刻印象,它们非常合理。文件明确列出了真正的边缘案例,而非那些人人都会觉得显而易见的案例——在这种情况下,你们确实是在针对边缘案例下功夫。是的。我们希望它具有很强的可操作性,这样它就不只是一堆听起来不错的原则,而是每个示例都能告诉你一些非显而易见的情况,并对这种情况进行推理。是的。好的。
现在我想问几个关于研究本身现状的问题。众所周知,社会科学领域的东西很难复现,问题在于其中有多少科学成分是真实的,又有多少是人为制造的、定制化的实验。当你看一篇普通的 ML 论文时,你觉得它像一篇非常扎实的文献,还是常常感觉它相当于社会科学中的 p-hacking?每个人对 ML 文献都有抱怨,但总体而言,我认为与社会科学等其他领域相比,这是一个相对健康的领域,因为它在很大程度上立足于实用性和让东西真正跑通。
如果你发表了无法轻易复现的东西,人们就会直接忘掉它。而且大家通常默认,你不应该只引用别人论文里的数字,还应该尝试复现他们的方法,并在相同的数据集——比如说相同的训练数据集——上与你的方法进行比较。所以我认为,如果你发表的方法非常难以实现,或者很娇气、不稳定,它们往往会被遗忘,因此人们实际上会尽量开源自己的工作。不过也存在各种不太有利的激励因素,比如人们有动力让基线方法——也就是他们用来做比较的方法——表现得更差,还有一些其他轻微的病态现象,比如试图让自己的方法在数学上显得很复杂。
但总的来说,我认为这个领域确实在进步,而我个人更希望看到多一点科学研究,多一点对事物的本质理解,而不是一味在基准测试上做 hill climbing,或不停地提出新方法。最近这类工作已经够多了,我们其实可以更多往这个方向投入,而且这也是学术界可以好好做的事。
对了,说到社会科学,换个稍微不同的话题,其实我很期待看到更多利用 base model 来做模拟社会科学的研究。
因为这些模型拥有对整个世界的概率建模。你可以设置模拟问卷或模拟对话,然后观察任何事物之间的相关性,比如你能想象到的任何特质,都可以看它们与其他特质如何关联。
所以,如果能看到人们仅仅通过用不同方式提示 base model,来复现社会科学中一些比较著名的结果——比如道德基础理论(moral foundations)之类——并观察相关性,那会非常酷。
那个斯坦福实验叫什么来着?就是他们做的阿什从众实验(Ash conformity test),对吧?如果这也能在语言模型上复现,会很有趣。
那会很有意思。说到各大实验室的其他研究,其中有多少是在真正降低获取某一结果所需的计算量——也就是实实在在的计算效率乘数——又有多少只是在让学习过程更稳定,或者是在搭建基础设施?
我想问的更宏观的问题是:自 GPD4 以来,在同等计算量下,我们是否真的能训练出好得多的模型?还是说,我们只是让 GPD5 的学习过程变得更顺畅、更具扩展性,但并不是说我们现在就能用 GP 3.5 的预算去训练 GP4 了?
是的。毫无疑问,效率提升方面一直在进步。每当你只有一个一维的性能指标时,你会发现不同的改进手段在某种程度上是可以相互替代的。
所以你可能会发现,post-training 和 pre-training 都能提升指标,或者说它们提升的指标组合会略有不同。但如果归根结底只有一个数字,那这两者就是可以相互替代的。
是的,某种程度上是这样。我想说,如果是类似人工评估——比如人类更喜欢什么——那我们在 pre-training 和 post-training 两方面都确实取得了很大进步。
好,快速问几个关于 RHF 的问题。显然 RHF 对让这些模型变得可用很重要。也许“脑叶切除”这种说法不准确,但确实有一种感觉:所有这些模型一旦被放进聊天机器人的形态,说话方式都非常相似。
它们真的很喜欢 delve,喜欢把内容变成要点列表,而且往往有一种正式而乏味的说话方式。也有人抱怨它们不够有创意,就像我们之前聊的,它们以前只会写押韵的诗,直到最近才学会不押韵。
我想知道这是不是因为现在 RHF 的特定方式造成的?如果是,那是因为标注员是谁?还是因为损失函数本身?为什么所有聊天机器人都是这个样子?
是的,我认为训练过程的具体做法其实有很大的变化空间。而且我们——应该说我们正在积极改进这一点,让文字更生动、更有趣。
而且我觉得我们已经取得了一些进展,比如改善了 chatbot 的个性。所以它现在更有趣了,当你想跟它闲聊的时候体验更好,等等。它没那么机械了。
我想说,是的,一些特定习惯是怎么形成的,这是个有趣的问题,比如 delve 这个词。我最近其实发现自己也会不自觉地用这个词(笑)。所以我不知道这是从模型身上沾染来的,还是别的什么原因。
但其实我认为可能还存在一些有意思的现象,就是在各语言模型提供商之间发生了某种无意的 distillation。比如说,如果你雇人去做标注任务,他们可能直接把内容输进某个模型。
他们可能只是打开自己最喜欢的 chatbot,把内容输进去让模型完成任务,然后复制粘贴回来。所以这可能解释了为什么会有一些趋同现象。但也有些我们看到的东西,其实就是人们喜欢的。
我是说,我觉得人们确实喜欢要点列表,喜欢结构化的回复。人们也经常喜欢从模型那里获得大段的信息输出。所以,目前还不完全清楚,这有多少只是 post-training 过程中某些特定选择和设计带来的怪癖,又有多少其实反映了人们真正想要的东西。
模型确实一直比一些人希望的更啰嗦,这可能只是因为标注阶段标注员会更偏好更冗长的答案。但我也在想,这是否本质上是因为——在生成过程中 stop sequence 并不常出现,所以模型真的很想继续往下说;或者标注中可能存在一些导致啰嗦的偏差,比如我们倾向于一次只针对单条消息做训练,而不是针对完整交互来训练。
所以,如果你只看到一条消息,那么一个只包含澄清问题,或者一个简短回复并邀请继续追问的答案,看起来就会不如那种把所有可能性都覆盖的回答来得完整。
还有一个问题是,人们的偏好是否会随着模型输出 token 的速度而变化。显然,如果你坐在那里等它一个一个吐出 token,你肯定会希望它直接说重点。
是的。但如果它瞬间给你一大段文字输出,也许你其实就不在乎里面有没有一堆套话,或者有一大堆你只会扫一眼的内容,你宁愿它全都放在那儿。
是的。我认为 reward model 是一个非常有趣的产物,因为它是最接近“人们想要什么、有什么偏好”的聚合体。
当你想到更聪明的模型时,我们期望的一种方式——我是说,一种希望是——你可以直接列出一系列我们想要的东西,而不是那种像《联合国人权宣言》一样泛泛而谈的条文。
但另一方面,我记得你提过,我们很多偏好和价值观其实非常微妙,所以也许最好通过 pair wise preferences 来表达。
当你展望 GPD6 或 GBD7 级别的模型时,我们会给它更多书面指令,还是仍然在使用这种——怎么说呢——潜意识的偏好?
是的,这是个好问题。我认为这些 preference model 确实学到了很多微妙之处——对,关于人们偏好的微妙之处——这些是很难在说明书里写清楚的。
是的。也许如果你——显然你可以写一本包含大量对比示例的说明书。而这就像 model spec 所做的那样。
它包含大量示例,并附有一些解释。目前尚不清楚描述偏好的最佳格式是什么。我猜,如果你能从一个捕捉了模糊偏好的大数据集中提取信息,就可以将其提炼成一份更短小的文档,主要抓住核心思想。而且我认为,越大的模型会自动学到越多这类概念——比如人们可能会觉得什么有用或有帮助的——它们仅仅通过 pre-training 数据就能学到这些。它们会掌握一些复杂的道德理论,具备这种能力,但当然,它们仍有很大空间去接纳不同的风格或不同的道德观。所以我认为,如果要写一份文档,或者要对齐这些模型,我们实际上是在锁定一种特定的风格、特定的道德观。而且你仍然需要一份相当长的文档,才能准确捕捉你想要的东西。
后训练(post-training)的护城河(moat)有多深?目前各公司还在以“我们的模型有多大”之类来彰显差异吗?掌握了你之前谈到的所有这些数据的琐碎细节,会不会形成一条巨大的护城河?
我认为这确实具备一定 moat,因为这本身就是一项非常复杂的工程,需要大量熟练人员参与,其中涉及很多 tacit knowledge,还需要很多组织层面的知识储备。所以我认为,post-training——要打造一款真正具备人们所需各项功能的模型——是一项相当复杂的工作,需要付出相当复杂的努力。这基本上需要大量研发积累。所以我想说,这让它具备了一定的 moat,因为不是随随便便能立刻 spin up 起来的。
不过看起来,那些投入最认真做 pre-training 的公司,也在认真做 post-training。所以,复制或启动这类努力在某种程度上是可能的。另外还有一个因素会降低这种 moat 壁垒,就是你可以 distill 模型,或者拿别人的模型来克隆输出,或者拿别人的模型当 judge 来做对比。所以我觉得,那些更顶尖的大公司可能不会这么做,因为这违反了服务条款,而且也会伤害他们的自尊心,但我预计一些小公司为了起步会这么做,而这在很大程度上能让你迎头赶上。
我想这有助于淘汰掉一些人。你们的 rater 群体是什么样的?他们 base 在哪里?他们的政治立场如何?知识水平大概怎么样?
我认为差异很大。我们确实招聘了具备不同技能的 rater,用于不同的任务或项目。所以一个比较合理的心智模型是:看看 Upwork 和其他类似平台上那些做远程零工的人。这是一个相当国际化的群体,有相当数量的人在美国。针对不同类型的 labeling,我们会招聘不同的人群,比如更侧重写作还是 STEM 任务。做 STEM 任务的人更可能在印度或其他中等或中低收入国家,而从事英语写作和文案工作的人更多 base 在美国。而且我想说,有时我们在某些项目中需要聘请不同的专家。其中一些人非常优秀,我们甚至发现他们在执行这些任务时至少和我们研究人员做得一样好,而且比我们细心得多。所以我想说,我们现在的人员相当熟练且认真负责。
关于“瓶颈期”(plateau)的说法,我听说这些模型之所以能帮你处理很多具体事务,很大程度上是因为监督微调数据集中有非常匹配的 label。这是真的吗?比如,如果它能教我如何正确使用 ffmpeg,是不是因为有人查看了输入、弄清楚了需要加什么参数,然后由人类把这些整理进数据里?你需要聘请大量具备各个不同领域专业知识的 labeler 吗?因为如果是这样的话,要让这些模型变得越来越聪明,看起来会是一项艰巨得多的长期工程,对吧?
并不完全需要。因为你可以从 generalization 中获得相当多的能力。base model 已经接受了大量文档、大量代码和 shell 脚本等的训练。它已经看过 ffmpeg 所有的 man pages 和大量的 bash 脚本等。所以,即使只是给 base model 一个优质的 few-shot prompt,你也能让它回答这类查询。而且,仅仅针对 helpfulness 训练一个 preference model,即使你没有用任何 STEM 数据训练它,它也会在某种程度上 generalize 到 STEM 领域。所以,你不仅不需要 ffmpeg 的使用示例,甚至可能不需要任何编程相关内容,就能在编程领域获得一些合理的行为表现。
最后一个问题:我们从不同角度聊过这个,现在把它们串起来。你说你们正在启用更多多模态数据,大概意味着这些模型能理解屏幕长什么样,我们也能以更连贯的方式与它们交互。而且你们会沿着 Horizon RL 的方向来做。这样它们就能作为系统中的 agent,以更集成的方式成为你工作流的一部分。你预计这会是什么样?接下来又会是什么步骤?假设到今年年底或明年,你有一个像助手一样可以在你的屏幕上与你协作的东西。首先,这是一个值得期待的合理设想吗?之后又会往哪里发展?
我肯定会——是的,我预计事情会朝那个方向发展。目前尚不清楚最佳的 form factor 会是什么,到底是像 Clippy 那种常驻在你电脑里帮你做事的东西,还是更像云端的一位得力同事。所以我们拭目以待,看哪种形态效果最好。我预计人们会尝试所有可能性。是的,我预计 helpful assistant 或 helpful colleague 这类心智模型会变得更加真实。你可以分享更多日常工作内容,或者——与其只是给它一次性的查询,不如说你有一个完整的项目在进行,而它知道你在这个项目上迄今为止做的所有事情。你甚至可以告诉它主动提出一些建议,比如你可以跟它说:“对了,记得问我这个,以及我有没有什么进展。”所以我认为,proactivity 是此前一直缺失的东西。
嗯,是的,我很希望能看到更好的发展方向,也就是摆脱那种一次性查询的模式,不再把模型当作搜索引擎、哪怕更智能的搜索引擎来用,而是更像是在一整个项目中与模型协作,它知道我过往做过的所有事情。它能主动建议我尝试一些方向,或者在后台去执行一些工作。
是的,这真的很有意思。对了,顺便问一下,最后一个问题:你觉得中位时间线会是多久?你知道的,就是AI取代你工作的时间。是的。哦,取代我的工作啊。大概五年吧。是的,很快了。是的。
嗯,有意思。好吧。John,这真的太有趣了。嗯,非常感谢你抽出时间。我认为这似乎是 AI 流程中非常重要但人们又知之甚少的一个环节。所以能深入探讨这个话题并听听你的想法,真的非常有意思。
好的,感谢你邀请我上播客。聊这些东西很有意思。
嘿,各位,希望你们喜欢这一期。John 是个非常有思想的人,了解这些模型如何成为它们如今这种 shaga,真的非常有意思。总之,如你们所见,我现在在播客里接广告了。所以,如果你想投放广告,可以通过描述中的链接联系我们。当然,如果你喜欢这一期,把它分享给你觉得可能也会喜欢的人——你的朋友、群聊、Twitter 什么的——会非常有帮助。下期见。再见。