「人生所有重大的选择,无论买房、选择工作,去做任何事情,都像一个文字游戏。从哲学的角度来看,人生就是一个无限流游戏,每天你都有很多选择,从某种程度上说是非常high level、 open-ended的。」
谈及过往研究当中的灵感,思维树作者、OpenAI研究员姚顺雨在最近的智源专访中如是说。他认为,语言游戏之所以和其他游戏区别很大,正是因为语言的开放性。
在他普林斯顿读博的第一年,正逢GPT-2刚刚兴起,业界对于语言模型的威力还尚未知晓,姚顺雨就已经早早开始研究如何将语言模型转化为Agent。正是语言的开放性(open-endedness)激发了他的研究兴趣,ReAct、思维树等先进工作在此基础上应运而生。利用24点这样一个十分简单的游戏任务,姚顺雨验证了模型模拟人类决策过程进行思考的能力。在此过程中,他深刻认识到,一个简单适中的游戏任务,也可以返璞归真,验证复杂问题。
ReAct、思维树等工作是姚顺雨早期在Agent之路上的成功探索。而正和许多加入OpenAI的年轻研究者一样,姚顺雨有着属于自己的终极理想,即打造世界上最强的Agent。「OpenAI一直有这样的文化,任何人都可以去发现一个非常重要的breakthrough,并改变历史。」
加入工业界意味着崭新的开始,姚顺雨坦言,「OpenAI的优势在于,它有着世界上最好的模型和底层infra,一些既有的方向和很多很强的研究者,这都可以帮助我去探索接下来的fundamental breakthrough。」
回望来时路,清华姚班的良师益友影响深远,姚期智先生设计的基础理论课程,让他窥见了计算科学的真谛;在MIT吴佳俊学长的指导下,他掌握了科研的流程脉络。如今,在年轻人不断走向台前幕后的OpenAI,层出不穷的新发现不断激励他将灵感转化为现实。本期智源访谈带来姚顺雨的技术故事。(为方便流畅阅读,笔者进行了不改变原意的编辑)。
智源专访栏目意在展现行业顶尖技术研究者和创业者的研究经历和故事,记录技术世界的嬗变,激发当代AI从业者的创新思维,启迪认知、关注突破性进展,为行业注入灵感光芒。本次专访为总第20期。
简介
姚顺雨,普林斯顿大学博士,此前毕业于清华大学姚班。他的研究方向是在语言智能体与世界之间建立互动,例如玩文字游戏(CALM),网上购物(WebShop),浏览维基百科进行推理(ReAct),或者基于同样的想法,用任何工具来完成任何任务。于今年加入OpenAI。
采访:李梦佳
整理:李梦佳、赵明华
在清华姚班,姚先生的精神指引与计算内核的演变
你确实是不折不扣的学霸了,安徽理科高考第三名,也取得了NOI奖牌。理科学习方法是什么样的?早期学生时代的理科学习,对后来的科研有什么帮助?
我个人的发现是,高考其实是会有帮助的。在我们本科姚班的时候,大多数人是没有经历过高考的(当时30个人,非保送的可能有五六个人),可能更像DFS(深度优先搜索),知识是比较深的,专心于一个方向。比如说,我是做信息学竞赛的,对于这个方面了解特别多,但是对其他文化课的了解就没有那么多。
从我个人来说,我对各个学科都比较感兴趣,但在高中时没有学得那么精细。高中的知识比较基础,如果非要说,可能学习物理会有些帮助。我喜欢把各种学科综合起来,这对我最后的科研风格是有帮助的。这种性格导致我对钻研竞赛没有那么精细,也导致我后来做研究比较跨学科。
攻克基础理论,和最聪明优秀的人在一起树立信心
清华姚班对你人生影响最大的人和事是什么?
对我影响最大的当然是我的同学们。当时,我身边都是最聪明、最优秀的人,能在这个群体里在专业课或课程学习方面做出一些成绩的时候,这是一个极强的塑造信心的过程。身边太多聪明的人,但你发现自己并不比他们差。做研究非常重要的因素就是信心,如果你不相信能做出非常好的研究,那你是不可能做出来好的研究的。
我认为很难举出一个对我影响最深的人,很多老师和同学都对我影响很深。当然最主要的还是要感谢姚先生创办了这个项目。
具体来说,姚先生的哪些精神对你有指导作用?
他对我们影响最深的还是他关于课程设计的品味。这让我印象很深刻。姚班很注重理论基础课程的学习,像操作系统或电路设计相关的课,看上去和科研好像没有任何关系,但是现在看来还是有些帮助的。它能使你对计算机科学的全貌有基本了解。
“姚班”在清华学堂合影 (图源:清华招生 公众号)
计算的思维,从解方程到next token prediction
你在19年毕业talk的时候,有提到最大的收获是学会了计算的思维,经历过多年的科研训练后,你对计算的思维有没有新的认知?
我记得在当时的talk里我举了一些例子,一方面,理论如何指导实践,即怎么去提出重要的问题,怎么去证明哪些东西是不可能的,哪些东西是可能的,以及这些可能的东西,上限是什么。另一方面就是实践,强调计算机科学的实践对于这个世界的塑造。
关于计算的思维,这也是在姚班的收获,理论基础会对整体的思维有帮助。我前几天和陈立杰聊到,计算的内核在发生变化。最开始19世纪20、30年代,计算的含义就是针对某个特定电路,去解方程或者去做积分。到了50年代、60年代的时候,我们有了通用计算机和各种算法。计算更多指的是对于这些算法的使用。到现在,我们看到的Nvidia、OpenAI等等,将大量的计算用在智能上,无论是训练还是testing inference time。在这种情况下,当大量计算被用于gradient descent(梯度下降法)这样的特定算法,或者Transformer这样的特定架构时,计算的内核是否发生了变化,传统的计算是否也需要改变?我们是否需要一些新的计算?这些问题都很有意思。
如何理解传统计算和现在对计算的新的定义的区别?
我个人认为,传统的计算理论研究的是各种各样的算法,以及它的复杂性。但我们会发现从算法层面变得更通用了,比如我们可以使用 transformer 去训练一个更大的网络。实际上算法的内涵也发生了变化。现在来看大量的计算实际上是在各种各样的端通过GPT API,在这个过程中发生的大量计算。这种计算本质上就是去计算下一个token,next token prediction开始成为一个新的计算。那么针对计算复杂性,传统的语言如何在新框架下适用,还有很多问题需要去解决。
你的描述很有编年史的感觉,有没有一些计算相关的书籍可以推荐给大家?
我可能答案比较无聊,如果你对于计算理论感兴趣的话,有些很有名的教科书可以看。如果你对更硬核的计算理论感兴趣的话,可以看看更偏娱乐性质的书,比如 《GEB》,中文名叫《集异璧之大成》。(我推荐的《哥德尔、艾舍尔、巴赫:集异璧之大成》(Gödel, Escher, Bach: An Eternal Golden Braid,简称为GEB))就是这样一本书,是计算机科学领域里杰出的科普名著。
《哥德尔、艾舍尔、巴赫:集异璧之大成》,作者侯世达
在普林斯顿入门科研:研究如何将LLM变成Agent
你是什么时候正式入门科研的?和吴佳俊的合作对你有什么样的影响?
是的,实际上我前三年半没有做过科研,也没有接触AI。大三下才开始入门,有一个学期专门去交换学校如何做科研。我当时去了MIT,跟着吴佳俊学长开始做一些计算机、视觉以及认知科学的研究,从这时才开始做研究。
当时在MIT,吴佳俊的导师是比尔·弗里曼 (Bill Freeman) 和乔什·特南鲍姆 (Josh Tenenbaum),Josh的思想对我有很深的影响。跟随吴佳俊,Jun-Yan Zhu(学长)学习时,他们教给了我很多研究入门的基本功。我学会了如何去做实验,如何汇报,以及如何思考下一步怎么做。他们对我思想的影响是很深的,我了解到了心理学和人工智能的交叉,对于各种事情都能有更高维度的思考了,也学会从整体框架上去思考。
姚顺雨在MIT学习交流 (图源:清华招生公众号)
博士期间你最有影响力的工作是什么?
我读博期间相当于换了个方向。本科做的是偏计算机视觉,读博期间阴差阳错跟随了一位新导师KarthikR. Narasimhan,他是NLP,以及RL领域的。
事后来看,这正是我的幸运之处。记得那时正好是GPT-2刚刚兴起,也就是我读博的第一年,我就已经开始研究如何将language model变成Agent。事实上,这个方向从我的第一个工作到博士毕业最后一个工作贯彻始终,这其实很罕见,因为大部分人其实都在探索各种不同的方向。
我的代表作,大家可能比较熟悉的是ReAct以及Tree of Thoughts,还包括后来的swebench和sweagent等比较有名的工作,以及Webshop这类不那么出名的工作。我的第一个工作叫CALM,是研究如何用语言模型来作为 Agent 来玩语言游戏。这项工作是我在博士生涯的第一个作品,对我来说有着特殊的意义。
CALM和Webshop可能相对没有那么有名,但是对我个人意义重大。另外还有一项很有意义的纯理论工作,叫做Coala,Cognitive architectures for language agents。这项工作更像一个综述加理论框架,相当于对我这一系列工作的总结和升华。
有一个小插曲是,在我博士第三年开始时,我的导师告诉我说,现在语言模型越来越强了,我们应该去做Agent。但是要做Agent,目前最大的问题是没有好的task以及environment。于是我重启了Agent之旅。
在整个科研圈还没有意识到LLM这么重要之前,或者说GPT-3爆火之前,你们已经在做相关的工作了?
在ChatGPT诞生之前,整个NLP领域以BERT为主。因为GPT-2在各种NLP Benchmark上效果其实不如BERT。所以很少有人去做Auto-regressive language model,更少有人用它来做Agent任务。
而有趣的是,我从一开始就一直在用GPT-2,很少用BERT。因为我意识到,语言有一个非常重要的特征就是,它是一个open-ended(开放式)的东西。比如传统的NLP task去做multiple choice,其实是一个非常闭合的世界,就好比从ABCD选项中选一个。我的第一个工作CALM中就涉及到文字游戏,比如你现在看到一个城堡,有很多门,有一些人,你需要选择去做什么。在这个过程中,你会发现如何选择,是非常open ended的。你可以选择进入第三个门,或者去找第四个人交谈,你也可以选择把剑从地上拾起来。
比如下围棋,玩家最多只有361个动作,打电子游戏也只有上下左右一些固定的动作。而语言游戏之所以和其他游戏区别很大,就是因为语言的开放性,即open-endedness。既然这样,那么它本质上应该有一个generative solution,而不是一个discriminative solution。所以从我第一个工作开始,我就一直在做autoregressive language model。
开放性研究:从哲学角度,人生是一个无限流游戏
你所提到的这种开放性(open-ended)研究在实际场景下可以真实应用在电子游戏中吗?
确实有些 startup 在做类似的通关游戏,比如利用这些技术去做一些新的NPC,或者一些新的游戏体验,这样可以使玩家摆脱固定的剧本,有open-ended的体验。
所以从技术上讲,指的是Agent在这个环境当中,无限流地去进行一些任务。
其实早在2019年,就有人用GPT-2做了一个叫AI Dungeon的游戏。思路很简单,你和GPT说,你现在是一个游戏引擎,要去描述一个事情。比如说,我打开了城堡门,它就会编写一段文字,讲述城堡门打开后的场景。这件事确实可以做到无限流,但问题就是它并不稳定。
我认为,游戏有趣的点在于,从哲学的角度来看,人生就是一个无限流游戏,某种程度上来说,更像一个文字游戏,而不是电子游戏。每天你都有很多选择,从程度上说是非常high level、 open ended的。
比如说,今天我可以买张机票去费城,还可以打开电脑,输入Google.com,搜索任何文字。可以想象,其实每一刻可以做的选择是无穷多的,主要是文字空间的选择。人生所有重大的选择,无论是买房,选择工作,去做任何事情,其实都更像一个文字游戏,而不是电子游戏。我觉得这是很有意思的。
AI Dungeon游戏画面(图源:https://play.aidungeon.com/)
代表作思维树:所有的工作都是先前工作的延伸
你的代表工作是思维树。此前社区采访过Jason Wei,不知道 Tree of Thoughts和COT 有没有一脉相承的地方?
Tree of Thoughts是我做完ReAct工作之后一个很自然的想法。我想先从ReAct开始说,这两个工作是一脉相承的,也比较特殊。
ReAct主要的思路是,在玩文字游戏的时候,为什么机器很笨,而人很聪明,是因为人类有思考的能力。当时我在做ReAct的时候,最初的想法是,如果我能够让机器模仿人,不仅仅是模仿人的活动,也模仿人怎么思考,是不是就可以泛化得更好。
具体比如人看到了一个城堡,人的选择是走向第三个门,如果你只去模仿这样的Mapping,很多时候是很难去泛化的。但是如果能够让它同时去模仿人的思考过程,那可能就是一个非常自然的、可以泛化的一个理由。比如人可能会想,现在周围很黑暗而且有奇怪的叫声,可能有危险需要灯。灯在第一个房间,但是第一个房间的钥匙在第三个房间,所以我得先去第三个房间。如果不去模仿这样的思考,很难想象Agent如何从单纯模仿“去第三个房间”的行为中学会泛化的技能。
但我有这个想法的时候是在21年的年末。当时还没有Chain of Thoughts,我们在test game上做了很多尝试,但是现在发现test game这个领域太难了。当你有一个想法的时候,不需要找一个很难的任务去验证你的想法,你只需要找到一个合适的任务去验证。
我认为Chain of Thoughts这个paper 之所以能够很成功,其中一个原因就是它的任务难度比较适中,比如去做一些小学数学题,恰好能够去验证这个论文的观点。所以从现在来看,test game对于ReAct来说太难了。所以我们后来找了各种各样简单的任务,在hotpotQA、alfworld这些简单task上去验证这个想法。
ReAct这篇论文的本质是Agent不仅仅有environment action,也有thinking action。那么很自然地就会有一个想法,就是Agent能不能去做搜索。你可以想象一个web agent,打开一个网页后去思考打开下一个网页,就像人一样,是一个非常循序渐进的过程。我们能不能把它变成一个像Alphago一样的过程,比如去搜索乳腺癌的新解法,一个web agent可以打开100个网页,这些网页同时去搜索,剪枝。
Tree of Thoughts和 CoT(Chain-of-Thought),这两项工作是有联系的吗?
Chain-of-Thought是非常重要的基础工作。我们的工作是基于Chain-of-Thought的局限性,在此基础上加以改进的。从某种程度上来说,ReAct和Tree of Thoughts其实相当于是CoT的两个方向的扩展。一个方向是要和外部世界发生联系,另一个方向是内部的思考,如何从一个线性过程变成一个非线性,也就是更加通往 system 2的一个过程。
我和CoT的尾作Denny Zhou关系很好,我曾经也是他实习生。作为CoT 的尾作,他也认为从 CoT 出发,最重要的两个工作就是ReAct和Tree of Thoughts。
你认为在做研究的时候,在别人的基础之上做一些延伸,其实也是能产生很好的工作的?
我认为从某种程度上来说,所有的工作都是之前工作的延伸,没有一个东西是完全新的。因为想法其实从来都是有的,关键是如何在一个合适的时间将合适的东西结合起来,采用合适的任务或者合适的问题去验证想法。其实很多研究都是需要天时地利人和的。从这方面来说,所有的 idea 都是旧的。
所以说大家做研究,一般也很难去追溯谁的想法是最初始的?
是的,对于所有的事情,如果真要追溯它的想法,甚至可以追溯到 2000 多年前亚里士多德的时代。所以我认为更重要的是如何在一个新的语境下把一些想法用合适的实验,或者用合适的empirical result去结合起来。
神来之笔:24点游戏,从最简单的任务出发返璞归真
怎么想到思维树用到24点游戏?这有什么灵感吗?
找到合适的问题去验证其实非常难,为什么大家都能够记住24点这个例子,那是因为足够简单,也能很好地说明这个idea最核心的观点。
在24点游戏中的思维树(图源:Tree of Thoughts: Deliberate Problem Solving with Large Language Models)
我们当时设置各种更加传统的任务,真的需要花时间,这并不是一个灵光一现的事情。即使有灵感,也是发生在很多失败的尝试之后。这个想法我们在22 年 11 月就有了,但是最后的论文是在23年6月才出现的,中间走了很多弯路,试了很多的idea,尝试了包括coding在内的各种任务。
还有一个很有意思的事情,论文的第二个task,叫 creative writing,这个 idea 衍生出了一个新的paper,叫collie。因为凭当时语言模型的评估能力是没办法做到的。如果你要做coding,就需要去思考,比如说你写了一个函数,这个函数到底好不好?这很难去衡量。最后反而有一种返璞归真的感觉,反而是简单的task,文章的观点更容易被传播。
是你自己想到的吗?要用24点游戏,还是随机试的?
24点和creative writing 是我想到的,puzzle的任务是我导师提出的。
在OpenAI,每一项研究都有机会改变世界
企业文化:公司的重大项目都是年轻人在推动
加入OpenAI 之后,你说过是时候把愿景变成现实了。你加入OpenAI的原因是什么?背后的推动力是什么?
我觉得第一,它的研究确实很强,人很强,处在最前沿的位置。当时跟我沟通的组也和我的 方向很匹配。其实我也考虑过一些其他机会,比如说去一些更早期的公司,但我觉得这取决于你想要的是什么。
对于我来说,我想要的就是去了解现在最前沿的科研是怎样的,以及我能不能在现有的好的基础下做出一些新范式的东西。对我来说,OpenAI的优势在于,它有着世界上最好的模型和底层infra,一些既有的方向和很多很强的研究者,这都可以帮助我去探索接下来的fundamental breakthrough。
如果我去加入更早的公司,在这个公司内部可能会有更大的话语权。但我需要在既有的工作上去catch up,将预训练和后训练做出来。这取决于你想要什么,在一个更早期的公司获得更大的影响力,还是想要去探索下一个breakthrough。
姚顺雨官宣加入OpenAI(图源:X)
如果说你去到一个比较早期的公司,可能话语权更大一点。但是如果在一个如此成熟的公司,它的模型都已经很成熟了,或许可发挥的空间没那么大?
我觉得这是一个trade-off,大公司总会有这样一个 trade-off。对于我来说,OpenAI的一个特殊之处就是,Jason Wei之前也说过,公司很多非常重要的项目,都是非常年轻的人在推动。
OpenAI一直有这样的文化,任何人都可以去发现一个非常重要的 breakthrough,然后去改变历史。比如说Alec Radford,他是本科毕业的,也没有经过系统的AI训练,或者说他并不是一个很著名的研究者,但他就是做出了改变世界的研究。在OpenAI,每一项研究都是真的有机会改变世界的。
关于Agent终极理想:想改变世界,先和世界交互
加入OpenAI 之后,你自己的计划是什么?
Agent是大势所趋,你现在会发现,每一个大的公司实际上都在做Agent。我的方向还是做Agent,但是要更面向实际。我们想去造出来世界上最强的Agent。
从我的角度来说,不和外界交互就很难去改变世界。想要改变世界,你就需要先和世界进行交互。当你和世界产生交互,你就必然是一个Agent。从某种程度上来说,chatbot也可以算作是一种conversational agent,它其实是在和人交互。正是因为有GPT到ChatGPT这一步,才改变了世界。
因为GPT不是一个Agent,它是一个模型,一个文本生成器。但是当这个文本生成器和人进行交互时,在我看来他已就经迈出了向Agent的第一步。当然下一步他可能会和物理世界交互,或者和互联网交互、代码等交互。这些步骤很明显是有影响力的。
你想实现的关于 Agent 的终极理想是什么?
首先它的未来激动人心。其次,大家都在说AGI(Artificial General Intelligence),当我们在讨论AGI时,实际上对标的是人。但是我认为,最终我们获得的东西会和人有很大区别。
很明显,现在的机器和人擅长和不擅长的东西差别很大。你会发现,对于人难的事情和对于机器难的事情,它往往是相反的。可能对于人来说,去当一个数学家或者当一个程序员这种最需要逻辑的事情是最难的。但是也许对于机器来说,这件事甚至是更容易的。因为这些东西更客观,也更容易被验证。
反而对于人来说,一些很主观的事情,比如说去察言观色,去感受别人的情绪,是很天生很自然的。甚至从发展心理学角度来说,我们人在五六个月大的时候,就已经有一些这样的能力了,我们把它叫做 theory of mind。这对机器来说反而是难的,它可能很难去读出细微的东西,文字背后的言外之意。
传统上讲,技术就是一个工具,我们是很容易适应它的。就像手机,我拿来直接用,它和我之间的关系是非常明确的。但是当你能技术对话的时候,你的感觉实际上就已经不一样了。你有时往往就会觉得它是一个人,或者你会潜意识的、下意识的或者不自觉的把他当做一个人来对待。实际上我觉得我们还是需要一些时间去适应的。既然他并不是一个人,那我们怎么去履行和他的关系,这是需要去思考的。
好研究产生于科学的边界
如何pick「那个问题」
如果要向同辈研究者去介绍科研经验的话,如何做好研究,以及如何去 pick 「那个问题」?
我导师的一句话其实让我印象挺深的,比如你想到了一个事情,别人也想到了,那么你就可以让别人去做,因为速度竞赛没有意义,你应该去想想,有什么事情是你独一无二的发现。
另外,好的研究往往都是在学科的边界产生的。我最近在读克里克的书,叫做《What Mad Pursuit: A Personal View of Scientific Discovery》,中文名《狂热的追求》,里面有一句话就是,当一个学科太纯的时候,它往往就会没有生命力了。最近也在看沃森写的《双螺旋》,双螺旋的发现其实也涉及学科的交叉,它用到了 x 射线衍射学、有机化学、数学,甚至噬菌体的遗传学。
《狂热的追求》作者弗朗西斯·克里克
《双螺旋》作者詹姆斯·沃森
这个伟大的发现其实是在各种各样的学科的边界处产生的,它促进了分子生物学这个学科的诞生。之前可能有分子化学,但是并没有分子生物学。从我的角度来说,Language Agent是处在 NLP reinforcement learning以及cognitive science这些学科交界处的。
当我只有NLP这个背景的时候,我的想法就是如何去提升这些典型的NLP任务。那么自然而然,我思考的问题就是学科内部的问题,即如何去提升bert,如何去做更好的Fine-tuning。但当你跳出这个学科的范畴去思考语言模型时,就会想到学科的融合。目前有太多人是在既有范式内去接着做研究,比如将已有的proning或者可解释性的范式做得更好。实际上这个年代有大量的机会去和新学科结合产生新范式,在我看来,这才是 fundamental research。
关于说唱:只有 GPT 能够去写说唱, BERT写不了说唱
据我所知,你还喜欢说唱?
我本科时是清华说唱社的联合创始人。我有网易音乐人的账号,叫YSY,分享过一些作品。我有很多喜欢的rapper。最早的启蒙是初中时候听Eminem,高中时是蛋堡,还有热狗,后来有了更多喜欢的说唱歌手。
之前采访的很多研究员都喜欢音乐,这很有意思,这有什么内在的原因吗?
说唱会使你感受到语言的魅力。说唱最大的魅力就是,它非常open-ended。你可以用很多不同的方法去谈论同一个东西。如何操纵语言,这其实是很有乐趣的事情。
从某种程度来说,说唱其实是有很强的限制的,因为它需要押韵。但你会发现,语言的魅力之处就在于,即使存在很多限制,你还是可以去表达很多你想表达的事。这和我之后从事语言相关的研究,包括从语言的 open-endedness 出发去做研究是有关系的。因为创作说唱其实就是一个生成语言的过程。从这个角度来说,只有 GPT 能够去写说唱,BERT是写不了说唱的(笑)。
- 推荐阅读 -
Pi创始人斯坦福Chelsea Finn专访:工程师家庭出发,和10年战友Sergey走过机器人训练漫漫长夜丨独家
14万引用Sergey教授专访:好研究没有妙计,不好的研究却千篇一律丨独家