在 GPT-3 的时代
Noam: 在 GPT-3 的时代,你是无法扩展 test-time compute(测试时计算)的。比如,如果你给它 1000 万美元的预算,说:“好吧,让我们看看 GPT-3 能做什么。”它其实也做不了太多。现有的 preparedness frameworks(防范框架)和负责任的扩展政策(responsible scaling policies),其实并没有考虑到 test-time compute 的规模。它们只是问:“好吧,这个模型的 capability(能力)是什么?”问题在于,我们现在的世界里,模型的能力是你投入多少钱的函数。基本上,如果你给它 1 万美元的预算,它能做的比 10 美元预算下能做的多得多。如果给它 1000 万美元的预算,你能做的甚至更多。那么,你应该在多大的预算下评估这些模型呢?当今现有的政策并没有真正解决这个问题。
Sarah: 听众朋友们,大家好,我是 Sarah Guo,欢迎回到 No Priors。今天我的嘉宾是 Noam Brown,他是 AI reasoning(推理)领域的教父级人物之一。我们探讨了目前由于评估方式失效带来的问题、极大规模的 test-time compute、他如何看待 recursive self-improvement(递归自我改进),以及前沿竞争的下一步会是什么。欢迎你,Noam,很高兴能再次邀请你来。
Noam: 很高兴能再次回来。是的。
Sarah: 你也是我们播客的第一位嘉宾。我对自己为这档播客挑选朋友和研究人员的眼光感到非常自豪。考虑到 inference time scaling(推理期扩展)现在对整个行业变得如此重要,作为这一领域的先驱,你也应该感到自豪。
Noam: 我只是发挥了一部分作用,是的,和许多其他人一起。
为什么传统 Benchmark 已经失效
Sarah: 你最近写了一篇文章,引起了很大的共鸣。文章讨论了大规模的 test-time compute,以及为什么整个行业并没有像应该做的那样,稳健地去评估这些模型。你写这篇文章的动机是什么?
Noam: 是的,动机是我们发布了 5.5 模型,而最初的反应是有些怀疑,大家怀疑它是否真的是一个实质上更好的模型。公平地说,这种怀疑只持续了几个小时,随后人们有时间自己去上手体验并试用,他们发现这确实是一个实质上更好的模型。但我认为,很多怀疑源于公布的 benchmark(基准测试)对比图表。基本上,每当发布一个新模型时,都会有这样的 benchmark 图表,他们在 x 轴上展示所有这些不同的 benchmark,然后在 y 轴上展示不同模型的表现,你就可以借此比较不同的模型。就像是针对某个模型在单一 benchmark 上的一个单一分数。如果你在纸面上看 5.5 和 5.4 或其他模型之间的差异,它确实有提升,但并不是一个巨大的提升。在一些 benchmark 中,只有几个百分点的差距。所以,人们看到这个就会怀疑它是否真的是一个更好的模型。
Noam: 而一旦他们亲自体验过,情况就变了。我认为它在 benchmark 上没有显得那么好,原因在于这些 benchmark 的结果是被以一种错误的方式呈现的。他们没有控制在该 benchmark 问题上所使用的 test-time compute 数量。事实证明,5.5 在“思考”时效率要高得多。如果你以最大设置运行,5.4 会思考更长时间。与 5.5 相比,它需要更长时间才能返回回答。当你控制了思考时间后,你实际上会发现 5.5 相较于 5.4 是一个巨大的飞跃。我认为,这也是人们在日常使用中的真实体验。
Noam: 然后当我向人们提到这一点时,典型的反应和问题是:“好吧,那为什么不让 5.5 思考和 5.4 一样长的时间呢?”而随之而来的问题是:“它们应该思考多久?”通常我得到的回答是:“好吧,直到表现进入平台期为止。”对,在某个点上,模型在 benchmark 上的表现会进入平台期,你就评估到那个点。问题是,如今它进入平台期的那个点实际上非常遥远。我的意思是,在 2022 年的 GPT-3 时代,这也许是对的,那些模型确实无法有效地思考那么长时间。所以,你可以运行它们直到进入平台期,那个点并不遥远。但我们今天在现代模型上看到的是,如果给 5.5 和其他模型提供合理的 scaffolding(支架/脚手架),它们甚至可以思考数周,然后才在某些 benchmark 上触及表现的平台期。因此,它们进入平台期的那个点实在太远了,以至于无法进行合理的测试。
Sarah: 所以我们现在都需要切实地强制设定一个“耐心限制”或者从 token 角度设定的预算限制,而这在几年前是不存在的。
Noam: 完全正确。因此我认为现在评估模型的正确方式——也是我的主张——是:你要么为 benchmark 设定某种预算,无论是 token 数量、成本还是时间;要么将模型的表现绘制成输入模型的 test-time compute 数量的函数,这样一来,如何比较这些不同模型的表现就会变得清晰得多。
模型该思考多久 · 算力预算的设定
Sarah: 考虑到模型的评估周期,以及对于许多任务来说,其表现会在相当长的一段时间内都没有达到渐近线(asymptote)。你如何处理这个问题?也就是说,考虑到当前模型的发布周期,你想要运行的一些 eval(评估)实际上超出了合理的预算或时间范围。
Noam: 我的意思是,我认为对于像网络安全(cyber)这样的领域,我们已经看到——实际上 AISI 在他们的评估中也展示了——模型在 1 亿个 token 的规模下仍在继续改进。你知道,如果你让它们运行 1 亿个 token,它们在那之后甚至还在改进。这可能需要非常长的时间来运行。但你同时也会看到,这种表现提升并不像是一个不连续的跳跃,你实际上可以看到在那 1 亿个 token 期间表现提升的斜率。因此,你或许可以在一定的预算内进行某种评估,然后直接说:“好吧,这就是我们预测它未来的表现。”我认为目前在这方面还没有太多的研究。我其实觉得这会是一篇非常棒的论文,如果外面有学者正在寻找研究课题的话:你能不能仅使用最高 10 美元或 100 美元的 inference(推理)预算,来预测模型在例如 1 万美元 inference 预算下的表现?
Sarah: 那么问你一个可能比较正交(换个角度)的问题。你认为用户在使用模型解决问题时,是不是系统性地“思考得不够久”?
Noam: 你说的“思考得不够久”是什么意思?
Sarah: 嗯,如果你能构建一个 agent(智能体)或者控制正在使用的 test-time compute 的数量——比如,有一部分是模型本身完成的,也有一部分是用户可以操作的。你认为整个行业现在使用的 test-time compute 处于最佳水平,还是远远不够?或者,这其实是模型本身的问题,它们只是需要能够更快地进行这种思考?
Noam: 我认为这取决于具体的问题。我觉得这种“你只需让模型思考一个星期什么的,然后让它们给出回答”的想法,听起来很不错,是的,benchmark 看起来也会很棒,但在实际工作时这并不太实用。因为,好吧,你问了模型一个问题,然后你就坐在那里等一个星期,等它回复你。
Noam: 我认为人们发现最有效的方式是与模型进行快速的迭代,因此我认为思考的时间需要是灵活的。当需要快速回复用户时,它就应该快速回复;而当需要长时间思考且用户也希望它长时间思考时,那么长时间思考就是合理的。考虑到大家目前手头要处理的任务,我认为人们已经找到了适当的平衡。
Benchmark 刷榜与作弊问题
Sarah: 你会如何描述——你知道,现在有很多关于“benchmark 刷榜”(benchmark maxing)以及针对不同 benchmark 作弊能力的讨论。你会如何描述今天 benchmark 的整体格局?另外,你有没有自己偏爱的、认为比其他 benchmark 更能代表模型 capability(能力)的 benchmark?
Noam: 所以 benchmark 刷榜的现象,也是我写这篇文章的动机之一。我认为很容易就能展示出,在 benchmark 上你的表现比以前的 benchmark 或者是以前的模型好得多,比如只需把一堆模型通过 scaffolding 组合在一起。如果你说:“好吧,我们不只运行这个模型一次,我们要运行它五次,然后取五次回答中最好的一个,或者让一个裁判模型来决定哪个最好。”那样你就能得到比单一模型高得多的分数。因此,很容易制造出一种在纸面上看起来好得多,但在你控制了 test-time compute 数量后,实际上并没有变得更好的东西。这就是在 benchmark 刷榜问题上让我感到担忧的一点。我的意思是,这有点误导人,这是我唯一的担忧。
Noam: 至于 benchmark 本身,我认为总是存在“纯粹为 benchmark 而优化”的风险。我确实一直鼓励我的团队,而且我认为在 OpenAI,我们在尽量不为特定 benchmark 盲目优化这方面做得还不错。但是,一旦你发布了一个 benchmark,它总是面临着被针对性优化的风险。我认为解决这个问题的方法之一,就是保留一个不公开的、私有的 held-out(保留)测试集。
用扑克机器人作为 Eval
Sarah: 要弄清楚一个模型是否真的有显著提升,最常见、最底线的建议就是“自己上手玩一会儿”。除了 OpenAI 的私有保留测试集之外,你有没有建议人们去做的、比这更复杂的评估方法?比如,你们每次都会创建一套自己的新评估集吗?
Noam: 我认为每个人在每次有新模型发布时,都有一套自己喜欢问模型的问题。
Noam: 对我来说,最近我一直在用它们来编写扑克机器人(poker bots),看看它们能把扑克机器人写得多好。我觉得这是一个很好的 eval,因为制作扑克机器人的开源代码非常少,虽然有大量发表的论文,但你真的必须把所有东西都 reasoning(推理)一遍。它需要大量的推理和迭代,而且有很多小陷阱(gotchas),这些坑我自己之前都已经踩过并解决了,所以我能看出来模型在哪个环节会失败。它们现在在这方面已经变得非常厉害了。
Sarah: 你能否以你制作扑克机器人为例,描述一下在你们发布的这几代模型中,推理能力是如何演进的?
Noam: 好的,早期的模型在这方面真的非常糟糕,它们基本上什么也做不了。后来到了 5.2,我能够和它一起合作编写一个河牌圈求解器(river solver)。
Noam: 那是扑克的最后一个阶段。我当时觉得那本身就已经非常令人印象深刻了。我是说,我必须稍微配合它一下,但我真的很震撼,因为我能够比自己单独写快大概五倍地做出这个河牌圈求解器。有几件事我被绊住了,“阻挡牌(blockers)”一直是一个很大的问题。但总的来说,你知道,只要加上一点温和的 steering(引导),它感觉就像是一个研究生。他们会遇到问题,但至少我知道这些问题是什么,也知道怎么修复,我只需要提出建议,它就会去执行,而且很快就能带着非常棒的成果回来。
Sarah: 嗯。
Noam: 特别是在代码优化方面,我觉得它非常令人惊叹。它能把代码运行速度提升到我自己写的 10 倍左右,因为它实在是太擅长优化代码了。不过,5.2 的缺点是,我觉得它经常在“PUA(gaslighting)”我,我总是必须非常小心地检查它,确认说:“好吧,它真的做了它声称做的事情吗?有没有什么它没有意识到、或者假装不存在的明显问题?”
Noam: 我记得有一次,我不是在玩 5.2,而是另一个模型,作为一种单元测试,我告诉它:“好吧,假设底池里有 100 美元,我弃牌(fold)了。我输了多少钱?”模型回答说是 92 美元。我就想:“这也太扯了。底池里有 100 美元,我弃牌了,我怎么会不是输了 100 美元?”然后它说:“哦,你知道的,92 嘛。很接近 100 了。这没关系,不是什么大问题。”我就觉得,这显然是个问题,对吧?所以那些模型确实有经常 PUA 你的毛病。
Noam: 但是一旦我们到了 5.5,我实际上觉得它好多了。它基本上能够 zero-shot(零样本)完成任务。事实上,我一直在做一个完整的全尺度扑克求解器。它基本上能够在我的温和引导下完成整个工作。如果在六个月或一年后,模型能够 zero-shot 搞定整个扑克求解器,也就是一次性把我整个博士论文的工作全做了,我也不会感到惊讶。
当能力随预算缩放时的安全评估
Sarah: 让我们来谈谈更宏观的影响。我们需要评估这些模型,也许是相对于它们的推理速度或效率,或者是相对于 token 数量、美元预算,或者无论你的衡量标尺是什么。你能描述一下你在文章中提到的一些更宏观的影响吗?包括像安全性评估(safety evaluations)这方面的?
Noam: 是的,关于安全性评估。嗯,这有点像是一个“令人不愿面对的真相(inconvenient truth)”。我想先给大家介绍一下背景:很多——或者说所有的 AI 实验室,都有所谓的负责任的扩展政策(responsible scaling policies)或是 preparedness frameworks(防范框架)。它们名称各异,但核心理念是,每当发布一个模型时,都要经过一系列评估,来测量是否存在危险的 capabilities(能力)?这些模型能否做到我们不希望恶意行为者做的事情?如果模型的能力不强,那没什么大不了的。但如果它非常有能力,比如它可以被用来制造生物武器,那么你就需要采取缓解措施来防范。
Noam: 但问题是,好吧,你如何评估模型是否具备这种能力呢?他们有各种协议来规定如何进行这些评估。但很多这些框架都是在 ChatGPT 时代前后制定的,当时 test-time compute 的扩展还不是什么主流事物。在那个时候,这是说得通的,就像 GPT-3 一样,你无法扩展 test-time compute;如果你给它 1000 万美元的预算,说“好吧,让我们看看 GPT-3 能做什么”,它真的不会比你在 10 美元或 1 美元预算下做的好多少。这些 preparedness frameworks 和负责任的扩展政策,其实并没有考虑到 test-time compute 的规模。它们只是问:“好吧,这个模型的能力是什么?”
Noam: 问题在于,我们现在的世界里,模型的能力是你投入多少钱的函数。基本上,如果你给它 1 万美元的预算,它能做的比 10 美元预算下能做的多得多。如果你给它 1000 万美元的预算,它能做的甚至更多。那么,你应该在多大的预算下评估这些模型呢?当今现有的政策并没有真正解决这个问题。
Sarah: 嗯。
Noam: 有些机构在这方面做得比其他机构好,但在大多数情况下,这并没有成为被重点考虑的因素。至于它究竟应不应该被发布,我不想介入这个问题的讨论。我认为双方都有各自的道理,但我觉得重要的是要认识到,这是一个未被解答的问题,我们就好像在假装这个问题不存在一样。我认为重要的是,无论通过哪种方式,我们都得把这个因素考虑进去。
Sarah: 是的,这是 capability(能力)问题的镜像。如果模型在极大的预算下,能够在某些任务上持续做得越来越多而不触及渐近线(asymptoting),那么它们同样也应该能够在我们作为一个社会不希望它们做的任务上持续提升,对吧?因此,为这种情况进行测试,以及分配多大的预算,这似乎也与模型发布周期本身脱节了,对不对?现在存在着一种加速现象,在这个阶段你每隔几个月,甚至每隔几天或几周就会得到一个新模型,而不是以前的 6 个月。你在文章中有一句话说:“要在一个非常长期的任务上真正评估一个 agent(智能体),唯一的方法可能就是让它运行一年。”对于那些有用的任务和负面的任务来说,情况都是如此,对吧?那么你是如何看待这个问题与模型发布周期之间的矛盾的呢?
Noam: 是的,这本身也是一个有趣的动态。基本上,随着模型变得越来越强大,它们也越来越有能力在更长的时间跨度(horizons)内运行。
Noam: 还是那句话,对于 GPT-3 来说,如果你想让它运行一个星期,你真的做不了太多的 scaffolding(脚手架支持)来把它变成一个有用的、实际能跑上一个星期的东西。但是现在我们在最新的模型上看到,你实际上可以为 5.5 模型搭建支架,让它执行一系列可以持续运行数周甚至数月的实验。
Sarah: 你有没有给你的扑克求解器任务分配过“无限”的预算?
Noam: 我还没有真正搭建起一个框架,然后只对它说:“好吧,就让这个跑上几个星期。”我想我可以做到,我可以直接给它一个 /goal(目标指令),然后说:“去吧,尽情跑吧(go nuts)。”
Noam: 但是在现阶段,我认为它能 100% 搞定河牌圈求解器;如果我只给它一个 /goal 指令,并让它去跑一个月,我不认为它现在已经达到了能够直接做出完整扑克求解器的水平。但我们很快就会达到那个阶段,到那时我可能只需要告诉它:“好,你去为这个项目工作一个月,然后带着一个 state-of-the-art(最先进的)的完整扑克求解器回来见我。”
Noam: 问题在于,如果你想评估一个模型在运行一个月后能做到什么,唯一能完全确定的方法就是真正让它运行一个月。如果你想知道它运行 6 个月后能做什么,唯一能完全知道的方法就是让它运行 6 个月。等一下我可能会谈谈我们可以做些什么来部分解决这个问题。但认识到模型的发布周期很重要:听着,在这个阶段我们大概每两三个月就会发布新模型。所以一个模型出来,花两三个月的时间把它推向极限,然后马上你又有了一个新模型。因此,实际上没有人知道这些模型的 capability(能力)天花板在哪里,因为根本没有人让它们运行足够长的时间来真正弄清楚。比如说,当 /goal 发布时,大家开始运行一些需要花一个多星期才能完成的任务。所以大家实际上是在它发布了一个星期之后,才意识到这是一件非常了不起的事情。
Sarah: 嗯。
Noam: 我认为这种情况会越来越普遍。你知道,它的影响我觉得非常有趣,因为实验室要在模型发布前如何全面评估它们呢?这实际上非常困难,因为,是的,你必须去推迟模型的发布周期才能真正完成这些评估。而且你知道,现在的竞争压力很大,大家都不能去推迟发布。
尚未被发掘的潜在能力
Sarah: 你认为在已经发布的模型中,是不是还有令人兴奋的、尚未被发掘的潜在能力(latent capability),仅仅因为时间限制,人们还没有充分探索出来?
Noam: 绝对有。我认为一个非常好的例子就是 Erdos(埃尔德什)单位距离问题。如果观众朋友们不知道的话,几周前我们在 OpenAI 内部使用了一个模型来证伪了 Erdos 单位距离猜想(Erdos unit distance conjecture)。我不是数学家,但这在数学界似乎是一件相当轰动的事情。这就像是许多数学家真的花了大量时间研究的第一个此类问题,而模型能够做到他们做不到的事情,而且它使用的方法对数学家来说实际上既有趣又有用。
Noam: 老实说,它是在非常低廉的预算下做到这一点的。我的意思是,我们并没有在这个问题上投入太多精力。我们只是训练了一个新模型,然后很好奇它能做什么。我们让它跑了一些问题,而在这个问题上,它在相当低的预算下就说:“哦,是的。我想我找到了一个反证。”然后我们就验证了,是的,这个反证是正确的。在我们宣布结果之后,许多人发现,你同样也能从 5.5 模型中得到这个答案。当然,这并不是简单地问 5.5 一句:“嘿,这是单位距离猜想,反证是什么?”你必须稍微给它搭建一些 scaffolding(支架),你必须稍微引导它一下。有人发现,你可以先要求 5.5 罗列出一堆可以解决这个问题的方法,然后它会列出其中一条非常有希望通向反证的路径,接着你告诉它:“好吧,再顺着这个方向探索一下。”如果你重复这个过程足够多次,它实际上最终也会得出那个反证。
Noam: 这意味着,原则上你可以要求 5.5 使用一个通用目标的 scaffolding(支架结构)来列出一堆不同的策略,然后针对每一种策略,让它深入调查,那样它很可能就能通过一个通用的支架结构得出反证。当然,那种 scaffolding 方案会非常昂贵。我的意思是,我粗略估计可能要花费 1000 到 10 万美元。但这是可能的,有人本来完全有可能在我们之前,使用一个通用模型去证伪 Erdos 单位距离猜想。然而在这之前,并没有人去充分探索“如果我给 5.5 投入价值 10 万美元的算力,它到底能做什么?”答案就是,是的,你很可能会从中得到那样的结果。所以,人们应该在现阶段的这代模型上进行更多的探索实验。
Noam: 我觉得这是一个有趣的问题,即是否值得去尝试这类实验,因为模型的发布周期每隔几个月就有一次,我们会推出更强大的新模型。所以在每个模型发布周期里,推翻埃尔德什距离猜想(Erdős distance conjecture)的成本可能就会下降 10 倍或 100 倍,有些情况下可能下降更多。
发布周期 vs Agent 运行时
Sarah: 你可能见过那个梗,说“哦,既然我只要等下一个模型发布,度个假回来两个月后成本就便宜了一千倍,那我干嘛还要费劲去做任何工程工作呢”。
所以,你同意这种说法吗?
Noam: 我……
Sarah: 这难道就是你现在在 OpenAI 正在做的事吗,就干等着下一个模型发布?
Noam: 我是说,我们现在处于一个进展非常快的时期,是的,模型正变得越来越强大。我可以说在 OpenAI,我们有一件正在主动避免去做的事——你看,我们有很多数学家和物理学家,大家对这些模型现在的能力非常兴奋,特别是我们内部的模型——我们在努力鼓励大家不要把所有的时间都花在浏览所有未解决的数学和物理问题上,不要只是为了看模型能证明或证伪什么就把它们推向极限。
因为我们真的认为,焦点应该放在我们如何打造出能力更强的模型上?我们如何能尽可能快且安全地把它们推向世界,让世界上所有的科学家都能使用这些模型来自己解决这些问题。所以在某种意义上,我们的想法是,是的,现在把我们所有的精力都放在扩展这些模型上、看看它们在极限下能做什么,这确实非常诱人;但实际上,我们的焦点应该放在如何利用这些模型来制造更强大、能力更强的模型,使其能以更具成本效益的方式完成所有工作。
递归自我改进的限制
Sarah: 考虑到你对超大规模 test-time compute 影响力的信念,你觉得研究资源的配置或方向发生了什么变化?这跟 recursive self-improvement(递归自我改进)的概念有什么相互作用?比如,大家都知道这是任何实验室实现最强能力模型的主流思路。
Noam: 有一点我需要澄清,我不认为我们已经到了那个地步:就是你随便给它一个极高的推理预算(inference budget),它就能在所有方面都表现出超级智能。
Sarah: 直接实现 AGI 目标,
Noam: 对,
Sarah: 做出 GPT-7 或之类的,然后直接起飞。
Sarah: 那我们和这个目标之间还有什么阻碍?
Noam: 我觉得,通过我对模型的使用经验来看……好吧,首先,在某些 benchmark(基准测试)上,即便你给模型更多的推理预算,它就是不会改进。我认为很多事实检索类的问题就属于这一类:就像如果你问一个人“亚伯拉罕·林肯是什么时候出生的”,而他们不知道这个日期,哪怕他们坐在那儿想一个星期,如果没有维基百科之类的工具,他们想一个星期也不会比想 5 秒钟回答得更好。
模型也是一样。有趣的是,如果你确实给了模型这类事实检索的问题,并给它们一点点时间去思考,它们实际上表现得确实会好一点;但如果你给它们一个星期,它们在记住日期方面也不会突然变得更好。所以确实存在一些 benchmark,它们显然会随着 test-time compute 的增加而改进,而有些则不会。
我认为在另一个极端,存在一些 benchmark,显然只要 test-time compute 增加,它们就会无止境地持续改进。我喜欢举的例子就是数独(Sudoku)。数独有一个非常简单的求解策略,就是尝试一组随机数字,然后看看是否符合条件。如果满足所有约束条件就成了,如果不满足就尝试另一组随机组合。显然,只要有足够的时间,你用这个策略就能解出任何谜题。你可以很轻易地看出,只要给予更多的 test-time compute,任何模型都能做得越来越好。
所以,所有的 benchmark 基本上都存在于这两个极端之间的某个位置。模型还没有达到这种程度:只要你给它们足够的 test-time compute,它们就能做我们所有的工作,因为确实在有些 benchmark 上它们不会改进,在有些事情上它们不会提高。我在研究领域特别观察到的一点是,它们现在并没有很好的研究品味(research taste),所以我认为它们实际上是研究人员非常好的补充。我发现我通过使用这些模型能变得高效得多,但它们还不能完全替代整个研究周期。
现在,这会随着时间改变吗?可能会。我认为模型在各个方面都在变得更好,有些方面的进步速度比其他方面快。但它们还没有达到单靠足够的 test-time compute 就能完全替代研究人员的地步。
Sarah: 你能举一两个例子吗?比如让模型去做一个研究任务,然后它做出的东西让人觉得“这简直是个糟糕的主意”?
Noam: 我觉得回到我扑克求解器(poker solver)的例子,我对模型优化我在博士期间开发的算法的能力印象非常深刻。说实话,回顾过去,看到我当时有多么低效真的让人震惊,它们能让算法的速度提升 10 倍、100 倍。
然后我就想,“好吧,你能不能想出一个比我想出的或者其他任何人想出的都要好的算法,去看看所有发表的论文并进行总结,然后尝试提出一些新颖的东西”,结果它做不到。即使我给它很多时间,它仍然做不到。
现在,如果我用 scaffolding(脚手架)搭建一些东西,给它更多的约束,也许它最终能想出更好的东西。但这需要做大量的工作,这不像说一句“好吧,请想出一个更好的算法”那么简单。
Sarah: 那你觉得这个能力如何才能得到改进?
Noam: 我看到的是,随着每一个模型发布周期,它在这种事情上确实变得更好了。在我看来它目前还是很差,但已经不像以前那么差了。如果在某个时间点——就像写代码、做数学题一样,突然出现一个拐点,让它实际上变得足够好以至于非常有用,我不会感到惊讶。如果我们发现模型的“研究品味”也迎来了那样的拐点,我也不会意外。
Sarah: 考虑到这一点,你今天是如何看待 recursive self-improvement 的?我们应该如何理解它?
Noam: 模型肯定正在加速研究人员在实验室里能做的事情。但我认为它们是在加速某些事情,而不是所有事情。目前我们处于这样一个阶段:如果某些事情的速度提升了 100 倍,你就会被那些没有提升 100 倍的事情所掣肘。
随着时间的推移,让我们陷入瓶颈的事情会越来越少,我认为在这方面会有一个渐进的起飞(gradual takeoff),但现在更多的是关于转变研究人员的工作方式,而不是完全取代研究人员。
Sarah: 这实际上意味着,你认为我们现在还没有接近一个非常快速的起飞(fast takeoff)。
Noam: 我觉得快速起飞是相对的,现在的进展已经非常快了。但有一种假设认为,基本上会有一夜之间的智能爆炸,模型发现了一些突破使它们自己变得更聪明,然后这带来了更多的突破使它们瞬间变得更加聪明,你会看到模型在转瞬之间就在各个领域达到了极高的超级人类水平。
我不认为我们正在走向那个世界,很大程度上是因为为了达到最大的智能,模型非常依赖大规模的 test-time compute。如果解锁模型的全部能力需要这么多的 test-time compute,这就意味着你会受到时间的限制——事情只能进展得这么快,因为模型需要运行足够长的时间才能做出真正非常强大的事情。时间本身成了我们能做什么的瓶颈,我认为现在很多实验室的情况就是如此,归根结底,我认为我们所有人最大的瓶颈就是时间。
这也是为什么现在所有的研究人员都在如此拼命地工作。大家每周投入这么多时间,因为我们都看到了现存的悬空红利(overhang)。我们看到了这些能力是什么,只是被我们执行的速度所掣肘。
大规模多智能体协作
Sarah: 那你觉得在探索较少的前沿领域有什么?我们之前讨论过 multi-agent(多智能体)。
Noam: 我觉得 multi-agent 已经被探索得相当多了。我认为……
Sarah: 在足够大的规模下呢?
Noam: 我觉得确实还有很多可以做的。但这属于那种在小规模下很难进行的研究。我认为特别是 multi-agent,为了完全解锁它的能力,真的需要前沿模型。我们已经看到了一些非常有趣的 multi-agent scaffolds(多智能体脚手架框架)。我认为它们能做很多事情,但这真的只是触及了未来它能做的事情的皮毛。
我的一个思考角度是,如果你看看人类文明,并不是人类在过去 5 万年里进化得更聪明了。人类今天能做的事情比穴居人时代多得多,是因为有数十亿人类在长时间里进行思考,并在彼此积累的知识基础上不断构建。
Sarah: 和 5 万年前相比,我们有非常好的检索(retrieval)和 scaffolding。
Noam: 甚至我都不会称之为 scaffolding。这只是一种非常有机、涌现的特性,就是人类能够积累知识、分享知识,并在此基础上继续构建。
我们在今天的 AI 模型身上还没看到这一点。它们出生在一个世界里,只存在于一个非常短的上下文窗口中,然后它们就消失了。
Noam: 是的,确实你可以做一些事情让它们“延续”,但非常有限。我确实认为最终我们会达到那一步,而且我们开始看到一些迹象,表明我们正在进入一个它们可以大规模协作的世界。我认为当像 AutoGPT 和 BabyAGI 刚出来的时候,显然有些被过度炒作了,但它们预示了未来事情可能的发展方向,我确实认为最终我们会进入那样的世界。
Sarah: 进入某种协调合作、不断复利的增强状态。
Noam: 对。即模型在更全局的层面上分享知识,并能够富有成效地在这些知识上进行构建的能力。
前沿的“三国”竞争
Sarah: 考虑到这一系列的信念和你的工作,如果没有一夜之间的起飞,你如何描述这“三国”(the three kingdoms,指三大前沿实验室)之间在前沿的竞争?这就只是研究人员在埋头苦干,试图在发展方向上做出有良好品味的、算法和投资的决策,然后是算力分配,接着是政策和 eval(评估)决策。
Noam: 嗯……
Sarah: 这感觉比“所有人都在冲向某种别人无法追赶的瞬间硬起飞”要稍微接地气一点。
Noam: 我认为现在的竞争非常激烈。我确实认为现有的模型正在加速前沿实验室研究人员的工作。显然就像我说的,目前是有局限性的,但使用模型来改进模型研究的能力是真实存在的,它是一种放大力量。我认为这会继续成立。我认为随着时间推移,这会变得更加真实。
有一件事让我感到欣慰,我认为所有的前沿实验室,大家都认识到这其中攸关的利益,以及这些模型的风险是什么,这让我感到欣慰。我觉得每个人都真的明白,“好吧,这是一件非常严肃的事情,它可以导致非常伟大的结果,也可能导致非常糟糕的结果。是的,实验室之间存在竞争动态,但我们也可以试图找出如何让我们都走向积极的结果,而不是非常负面的结果。”
Sarah: 我想,如果不问这个问题就是我的失职了,因为你在很长一段时间里都非常早就准确预见了 test-time compute 的重要性,以及作为一种框架的 reasoning(推理)。关于我们使用模型的方式,有没有什么是你建议其他人也去做的?是不是直接设定好目标把一切都抛给它(goal everything)?
Noam: 我觉得对很多人来说……我的意思是,这对你的听众来说可能不一定适用,但有很多人在 2022、2023 年尝试过 AI,觉得无法信任它的输出,然后就不会在真正高风险的决策中使用它。而实际上,我认为模型已经进步到了对这类事情非常擅长的地步。
我的意思是,我向它们咨询税务建议,或者我最近买了一套公寓,我问它建议,“好吧,我需要填写哪些所有的文件?以及我该怎么做?这些都是什么意思?” 对于这类问题,它实际上非常在行。嗯。
Noam: 所以,我每天都在使用它来处理这类事情。而且我认为它们现在处于一个……实际上很长一段时间以来,我都觉得我可以信任它们的输出,甚至可以说比我信任人类专家的输出还要多。
Sarah: 人类专家。是的。
打破 Benchmark 均衡 · 用成本来衡量模型
Sarah: 好了。我有最后两个问题要问你。第一个是,你认为有什么事情是其他研究社区还不认同你的,或者目前还不完全明白其重要性的?
Noam: 哦,这些问题太好了。我真希望我有时间提前思考一下。
Sarah: 你可以直接在节目里跟我一起想。
Sarah: 现在你的观点成为共识了,这种感觉是不是很奇怪?三年前你还有点不爽,你说“为什么大家不明白这有多重要?”
Noam: 我还是……我还是觉得这没有成为共识,因为大家仍然不以这种方式来发布 benchmarks(基准测试)。
Sarah: 哦,那倒是真的。是的。
Noam: 所以这实际上就是为什么……
Sarah: 我觉得那是一种惯性。
Noam: 有点像……是的,但那在某种程度上就是我写那篇文章的原因。我就是觉得,听着,我们私底下都可以谈论这个,但部分动机是,当我跟研究人员谈论这些时,大家都说“我们在展示 benchmarks 时加上一个 X 轴是有道理的,无论是 tokens、成本还是时间,应该有一个 X 轴”,每个人都会说“是的,那有道理,我们应该那样做”,但是每个人……
Sarah: 他们没有采取行动,没有意识到古德哈特定律(Goodhart's law)的重要性,即我们必须去衡量正确的东西。
Noam: 实际上他们的回答是,人们期望我们发布一张常规表格(the grid)。
Noam: 然后,好吧,为什么人们期望发布那张表格?因为每个人都在发布表格。所以你最终陷入了这种糟糕的均衡(bad equilibrium)中,每个人都有点明白这是一个糟糕的均衡,但没有人想打破它。
我觉得,“好吧,如果我能站出来说,伙计们,让我们都认识到我们正处于一个糟糕的均衡中,让我们转移到一个不同的均衡,在那里我们用 X 轴来绘制图表”,希望能做到这点。这样的话,下次有模型发布时,公司就能放心地不去发布那种表格,至少不在最顶部发布,这样我们就能对这些模型进行更有成效的 evaluation(评估)。
为什么路由层也逃不开预算问题
Sarah: 那么最后一个问题。那些遍布于所有这些垂直专业领域的公司,它们认为自己的核心价值本质上就是作为一个路由层(routing layer)、一个选择层。因为,“我的目标是由一堆离散的任务组成的。有些需要更高的智能,有些则不需要。我作为一个供应商,工作就是解决那个问题,或者在考虑预算限制的情况下达到最优结果。所以我将管理这种并行化,以及从哪个模型上花费多少推理资源”。因为我认为前沿实验室的观点是,这种路由既发生在 API 背后、应用背后,也有一部分发生在模型内部本身。而这些逻辑显然正在被外部化到所有这些应用层里,你是怎么看的?
Noam: 是的,我确实认为这跟 benchmarks 应该使用 tokens 或成本的 X 轴来评估这一点是相关的。我最近看到一些 evals 显示,“好吧,有了一个路由层,你可以通过基本在模型之间达成共识来实现好得多的性能”。
Sarah: 是的。
Noam: 而且,我绝对相信如果你在模型之间做共识,你将会取得比任何单一模型都要好的表现,但是……
Noam: 要问的问题很重要:“你的表现会比让那个单一模型思考更长时间更好吗?” 一旦你控制了 test-time compute 的量,它实际上还表现得更好吗?这才是你想弄清楚的问题。
Sarah: 好吧,这是一个非常有原则性的观点,那就是:是的,路由是可以的,但它都要受制于同一个预算问题。
Noam: 对的。如果你把它放在同一个衡量尺度(scale)上,你就可以做出最优的决策,我觉得最后可能还是我赢。
Noam: 嗯。我甚至不确定我一定会相信路由做得更好,而且随之还有一个问题,即它会做得好很多吗?它非常脆弱吗?与 benchmarks 相比,它反映了真实世界的使用案例吗?
因为你可能会遇到的一个问题是,你可以用这种路由方法针对某些 benchmarks 进行优化,然后展示说,“哦,你看,我们在这些 benchmarks 上看到了很大的提升”。但在现实世界的用例中,它实际上并没有带来显著的改善。所以我至少会说,你应该控制 test-time compute 的变量,然后你还应该对 benchmarks 保持通常会有的那种怀疑态度。
Sarah: 太棒了。Noam,非常感谢,也感谢你肩负着打破这种虚假均衡的使命。
Noam: 是的,很高兴能再次来这里。
Sarah: 在 Twitter 上搜索 No Priors 找到我们。如果你想看我们的访谈视频,请订阅我们的 YouTube 频道。在 Apple Podcasts、Spotify 或任何你听播客的地方关注我们的节目。这样,你每周都能收到新一期的节目。注册获取邮件通知,或者在 no-priors.com 找到每期节目的文字稿。