导语:所以,“惨痛教训”是对是错?可能既不是这边,也不是那边。
译者:AI研习社(Key)
双语原文链接:Compute Goes Brrr: Revisiting Sutton’s Bitter Lesson for Artificial Intelligence
回顾理查德·萨顿关于AI的惨痛教训
就在不久前的过去,在一个与我们今天相差无几的世界上,在达特茅斯学院,有这样一个雄心勃勃的项目,志在弥合人类与机器智能之间的鸿沟。那是1956年。虽然达特茅斯夏季人工智能研究项目并不是第一个对思考机器的潜力提出设想的研究项目,但它的确为这个领域取了一个公认的名字(“人工智能”),并建立了由具有影响力的研究者们所组成的一座“万神殿”。在约翰·麦卡锡、马文·闵斯基、克劳德·香农与纳撒尼尔·罗切斯特共同撰写的提案中,作者们的目标虽然仍不成熟,但他们的雄心壮志,即使今天看来也足够奇妙有趣。
(我们)将致力于探索如何让机器使用语言,形成归纳和概念,解决现在只有人类可以涉足的各种问题,并进行自我改良。我们认为,如果一个经过精心挑选的科学家团队在一起工作一个夏天,就可以在其中的一个或多个问题上取得重大进展。——《达特茅斯夏季人工智能研究项目提案》,1955年
最初的人工智能
从那时起到现在,关于人工智能的研究,经历过车水马龙的盛况,也不乏门可罗雀的冷落。在1956年,盛行的方法包括元胞自动机、控制论(cybernetics)、信息论。随着时间的流逝,专家系统、形式推理、连接主义等方法也轮番亮相,各领风骚。
今日,AI的复兴源于连接主义一脉相承的最新成果——深度学习。尽管一些新思想的确也在这个领域造成了相当大的冲击(仅举几例:注意力机制、残差连接、批量归一化),大部分关于建立和训练深度神经网络的思想,早在上世纪八九十年代就已经被提出。然而今天,AI与AI相关的技术所扮演的角色,却并不是任何在之前的“AI之春”中活跃的研究者所想象的那个样子。例如,几乎没有人能预见到,广告科技(adtech)和算法驱动的新闻供稿的盛行与社会反响。我也很确信,他们中的很多人会为今天的社会如此缺少仿真机器人而感到失望。
约翰·麦卡锡,达特茅斯提案的共同作者,以及“人工智能”一词的发明者。图源
约翰·麦卡锡曾经抱怨过,落实到现实世界的AI技术,总是会变得不那么吸引人,并会逐渐失去“AI”的名字。不过,这并非我们今天所见的现象——也许我们要归咎于风险投资和*基金,因为是它们鼓励大家去做了截然相反的事情。伦敦风险投资公司MMC的一份调查显示,在2019年的欧洲,高达40%自称的AI创业公司实际上并不将AI作为它们业务的核心构成部分。
深度学习与AI研究之间的区别
深度学习时代与之前那些AI研究的那些暖春期之间的区别,似乎可以被归结为摩尔定律的S形曲线。许多人将“ImageNet时刻”视为今天AI/ML复兴的起点——一个名叫AlexNet的模型,以压倒性优势赢得了2012年ImageNet大规模视觉识别挑战赛(ILSVRC)。AlexNet的结构,与在它20多年前就被提出的LeNet-5并没有很大的差别。
拥有5个卷积层的AlexNet,比拥有3个的LeNet要稍大一些。它总共有8层,而LeNet有7层(其中2层是池化层)。而其中的重大突破,则在于图形处理单元(GPU)以并行处理的方式实现最基础的神经网络运算(卷积与矩阵乘法),以及由李飞飞和她在斯坦福大学的实验室所整理的、兼具规模和质量的ImageNet数据集。
硬件加速的惨痛教训
硬件加速的存在,在今天的深度学习从业者看来已经是理所当然。它是诸如Pytorch、TensorFlow、JAX等热门深度学习库不可缺少的部分。深度学习研究者队伍的壮大,和面向AI/ML的商业需求的日益增长,构建了一个协同反馈的循环,从而推动了良好的硬件支持的形成。而当基于FPGA、ASIC甚至是光子或量子芯片的新型硬件加速器逐渐为人们所用,各类热门学习库的软件支持也自然紧随其后。
ML硬件加速器与其赋予AI研究的更多算力所带来的冲击,被理查德·萨顿简洁地概括在了一篇相(臭)当(名)出(昭)名(著)的短文《惨痛的教训》中。文中,萨顿——这位曾(共同)撰写过强化学习的教科书的人物——却声称AI研究者们所付出的所有勤奋努力和聪明才华,对于整个大框架几乎没有起到任何推动作用。根据萨顿的说法,当前AI进步的主要驱动者,是日益提升的算力被用于实现我们既有的简单的学习和搜索算法的结果,而其中包含的硬编码的人类知识只是所需的最低水平。而萨顿认为,基于AI的方法应该是尽可能普适的方法,诸如无约束搜索和学习。
不出所料地,许多研究者都对萨顿所说的这个教训有着截然不同的观点。毕竟,他们中的许多人都将毕生心血投入到关于AI的各种技巧和理论基础的研究上,以期推动AI发展的进程。许多AI研究者并不局限于探索如何达到最先进的指标,而是希望学习所谓智能的本质,或更抽象地说,人类在整个宇宙中所扮演的角色。萨顿的表述似乎在支持这样一个令人失望的结论,即:对理论神经科学、数学、认知心理学等学科的探索,对于推动AI的发展是毫无帮助的。
来自gwern.net的一张梗图。以及另一张。
关于“惨痛教训”的多方质疑
对萨顿的这篇短文,值得关注的一些批评包括了机器人学家罗德尼·布鲁克斯的《更好的一课》(译注:原文标题为“A Better Lesson”,与萨顿的标题“A Bitter Lesson”仅一字之差),牛津大学计算机科学教授西蒙·怀特森的一串推文,以及Shopify的数据科学家凯瑟琳·贝利的一篇博客。贝利反驳道,虽然萨顿对现代AI领域中那些仅局限于追求指标的课题的论断也许是对的,但这样的短视却完全没有抓住关键。AI研究的终极目标,应该是从可利用的角度去理解智能,而不是对每个特定的指标优化问题都从头训练出一个新模型——这需要付出极大的金钱和精力。贝利认为,现代的机器学习从业者,常常会误将指标当作目标;研究者们之所以要造出超越人类的下棋机器或围棋机器人,不是为了他们自己,而是因为这些工作对于人类智能的某些方面,可能是至关重要的例证。
布鲁克斯和怀特森则反驳道,萨顿所提及的所有“不涉及人类先验”的例子,实际上都是大量人类智慧的结晶。例如,如果没有卷积层的平移不变性,那么很难想象,深度神经网络可以表现得像今天的残差网络(ResNet)一样好。我们也可以发现当前网络仍具有的很多不足,例如不满足旋转不变性或颜色不变性。此外,网络结构和训练细节也十分依赖人类的直觉和智慧。虽然比起人类工程师手动设计的模型,自动化的神经结构搜索(NAS)有时可以找到更好的网络结构,但NAS算法最初的搜索范围,也是从所有的可能性里大大缩减后得到的——而缩小搜索范围,一直是人类设计者所管辖的领域。
怀特森反驳道,搭建机器学习系统的人类智慧对解决复杂问题而言是必需,而不是阻碍。
对“惨痛教训”发声的批评人士中,也包括不少对深度学习整体都存有怀疑的研究者。深度学习依旧维持着令人印象深刻的庞大规模,投入算力的开支不断膨胀,关于其能源消耗影响环境的担忧也日益加重。而且,没人能够保证,在未来的某个时刻,深度学习不会撞到一堵难以逾越的南墙——也许很快了。
距离边际收益无法再承受额外的支出,还有多久?深度学习的进步让人吃惊的原因之一,在于模型本身是很难被人们理解的;一个模型的表现,是从具有数以万亿计的参数所构成的复杂系统中突然出现的产物。要预测或分析它们到底能做到什么地步,相当困难。
也许我们所有人都应该认真记住符号人工智能(GOFAI)的经典,由斯图尔格·罗素和彼得·诺维格合著的《人工智能:一种现代方法》里的一课。在书中临近最后一章的结尾,我们发现了以下的警告:在关于AI的研究中,我们偏爱的方法——对我们来说是深度学习——也许就像:
“…爬一棵树就想登上月亮。人们可以一直稳步攀升,直到树顶。”——《人工智能:一种现代方法》,斯图尔格·罗素,彼得·诺维格
作者们在这里换了一种方式表述了休伯特·德雷福斯在1992年所著的《计算机不能做什么》中的一个比喻,而这常常会回到那个月球旅行的树栖策略的比喻。尽管许多原始的智人曾经尝试过这个方法,但实际上,要登上月亮,首先要从树上下来,然后开始为太空计划扎扎实实地做准备。
结果不言自明
尽管这些批评听起来颇有说服力,但它们留给别人的印象,也只比酸葡萄稍微好一点。当学术界还在被知识分子们无法满足的“更多算力”的呼声拖后腿的时候,大型私人研究机构的研究者们马不停蹄地在各种项目里登上头条。而他们在工程上花费的心血,基本上都直接投入到了规模化当中。
而在这方面最臭名昭著的,莫过于OpenAI。
OpenAI在去年从非盈利组织转变为有限合伙企业,而它的核心人员从未掩饰过他们对于海量算力的偏爱。其创始人格雷格·布罗克曼与伊尔亚‧苏茨克维,与许多蓬勃成长的公司里的科技人士一样,正是理查德·萨顿的“惨痛教训”所形容的那样的人。OpenAI为冲刺里程碑所需的大量训练任务,促使相应的基础工程建设成为一大亮点。
OpenAI Five打败了(人类)Dota2世界冠军队伍OG,而它“仅仅”只用了45,000年——即每天进行大约250年的游戏——来进行学习。在10个实时月内,它始终维持着800pefaflop/s-days(pfs-day)的算力。(译注:1pfs-day指一天内可进行约10的20次方次加法或乘法运算)如果以世界最先进的性能功耗比,每瓦特进行170亿次运算来计算,其能量消耗甚至超过1.1吉瓦时,即一个正常美国家庭92年的总用电量。
OpenAI的另一个高规格、高消耗的项目,则是他们的Dactyl,Shadow机器灵巧手项目。该项目的高光时刻,是机器手可以灵巧地解出魔方(虽然选择解法的步骤是由一个确定的求解器完成的)。这一解魔方的项目,是建立在大约13,000年的模拟器经验之上的。此外,DeepMind与之相当的AlphaStar(44天,384块TPU训练12个智能体,模拟进行了数千年的游戏)或AlphaGo系列(AlphaGo Zero:约1800pfs-day)等项目,也需要在计算资源上投入大量开支。
但结果也会对不上
但在“惨痛教训”所描述的潮流以外,也存在着这样一个鲜明的反例:训练游戏智能体的AlphaGo系列,在取得更好的表现的同时,实际上所需的算力反而更少。AlphaGo系列的确是个很有趣的例子,因为它无法融入“惨痛教训”所提出的框架之内。没错,这个项目一开始确实调用了压倒性的高性能计算资源用于训练:AlphaGo使用了176块GPU,并会在测试阶段消耗4万瓦特的能量。但从AlphaGo到MuZero之间的每一次更新换代,无论在训练阶段还是实际演示阶段,都消耗了更少的能量以及算力。
实际上,在AlphaGo Zero对阵“鳕鱼”——前深度学习时代最先进的下棋引擎——的时候,它的搜索次数比起StockFish要少得多,也要有针对性得多。虽然AlphGo Zero使用了蒙特卡罗树搜索,但为其“引路”的价值函数却是由一个深度神经网络所确定的。而“鳕鱼”所用的Alpha-beta剪枝搜索法,则有着更广的搜索范围:在每个回合中,“鳕鱼”所考虑的棋盘走位大概是AlphaGo Zero的400倍。
“惨痛教训”应该比针对性方法表现更佳吗?
你应该还记得,无约束搜索是萨顿曾列举的一个普适方法的例子。而如果我们全盘接受“惨痛教训”,那么它的表现应该比一个搜索范围更窄的针对性方法要来得更好。然而在AlphaGo系列的例子里,我们却发现:在每次更新换代(AlphaGo, AlphaGo Zero, AlphaZero, MuZero)之后,新方法比旧方法大体上都表现得更优秀,然而它们的学习和搜索都是更有针对性的。在Muzero中,原先用于搜索的基准真实游戏模拟器,被换成了名字以Alpha开头的所有前辈们。它们都有着一个学习好的深度模型,用于表示游戏状态、游戏的动态数据,并进行预测。
设计一个学习好的游戏模型,所需的人力远超最初的AlphaGo。然而,Muzero却拓展出了更通用的学习能力,在57个Atari游戏上都达到了当前最先进的表现,而之前的那些Alpha模型只学习了象棋、将棋和围棋。Muzero在每个搜索节点上所用的运算量比AlphaZero小了20%,并且也归功于硬件设施的改进,在训练过程中节省了4到5倍的TPU。
(被AlphaGo Zero打败后)被腌制晾干的鳕鱼─.─||。图源为公共领域。
由Deepmind研发的AlphaGo系列游戏机器人,是深度强化学习发展进程中的一个格外精妙的案例。而如果说,AlphaGo的研究队伍能成功地在降低计算需求的同时,还持续实现性能和通用学习能力的提升,这不就直接反驳了“惨痛教训”吗?
若是如此,它又为人们对通用智能的探索展示了什么呢?根据许多人的说法,强化学习是实现通用人工智能(AGI)的一个出色的候选方案,因为它与人和动物面向奖励的学习模式相近。不过,也有其他形式的智能,同样被一部分人认为是通用人工智能的先驱的候选者。
语言模型:大规模模型的王者
萨顿的文章受到新一轮的重视(最近KDNuggets甚至将它列为一篇*文章)的一大原因,是OpenAI万众瞩目的GPT-3语言模型和应用程序接口(API)的发布。GPT-3是一个参数多达1750亿的Transformer,以略超10倍的数量,打破了之前由微软的Turing-NLG保持的语言模型规模的记录。GPT-3也比那个“危险得不能发布”的GPT-2大了100倍以上。
GPT-3的发布,是OpenAI的测试版API公告中的一个核心部分。这个API基本允许实验人员使用GPT-3模型(但不能对参数进行微调),并调节一些可以操纵推理过程的超参数。可以理解,那些足够幸运地用上了这个API的测试版用户,抱着极大的激情打开了GPT-3——而结果也是令人印象深刻的。实验人员开发了基于文本的游戏、用户界面的生成器、假博客,以及其他许多对这个大型模型的创新性应用。GPT-3的表现比GPT-2有显著性的提高,而其间唯一的主要区别,就是规模。
语言模型规模逐渐扩大的趋势,早在这些巨大的GPT出现之前就存在,并且也不局限于OpenAI的研究。但直到《你只需要注意力》一文引入了第一个Transformer,这一趋势才真正开始快速发展。在不知不觉间,Transformer的参数量已经平稳增长到数以百亿计。假如在一年多之后,就有人提出一个上万亿参数的Transformer,那我也不会感到惊讶。Transformer看起来十分适合拓展到更大的规模,而它的结构也并不局限于面向文本的自然语言处理。Transformer已经被应用于强化学习、化学反应预测、生成音乐和图片等领域。关于Transformer模型所用的注意力机制的可视化解释,参见此处。
按当前的模型增长速度计算,不出数年,就会有人训练出一个参数量堪比一个人类大脑中的所有神经元突触数量(约100万亿)的模型。科幻作品充斥着这样的例子:只要具有足够大的规模和复杂度,机器就能获得自我意识和通用智能。这会是Transformer不断增长的终点吗?
关于AI未来的答案,介于两个极端之间
(图片文字:只有杰出的研究科学家才会以极端的方式行事!)
巨大的Transformer自然有着令人印象深刻的表现,而这一随着规模而递进的发展趋势,也符合“惨痛教训”所述。然而,将所有关于AI的工作都归为关于规模化的工作,是既不得体也不能令人满意的。此外,随之而来的能源需求也引起了人们的担忧。云端训练,将许多大实验室的研究者与低效的训练过程相隔离。但在一间小办公室或小公寓里运行深度学习实验的人们,则会身陷热浪之中。这热浪从他们的工作台背后不断冒出,一直提醒着他们(这训练是多么消耗能量)。
Steve Jurvetson修改的理查德·萨顿的肖像
(图片文字:结束了,学者们,我有算力!)
以超参数搜索和架构搜索训练一个庞大的NLP Transformer的碳排放量,可以轻易超过一个小型研究队伍的所有成员进行所有其他活动所产生的总排放量。
我们知道,智能体是可以在持续以20瓦特(以及额外用于机体运转的80瓦特)运行的“硬件”上运行的。如果你对此抱有怀疑,那么你应该在自己的双耳之间找到这一存在的证据。而与之相反的是,用于训练OpenAI Five的能量消耗,却比一个人类玩家活一辈子所需的热量还要多,足以支撑他90年的寿命。
一个细心的观察者会指出,一个人类大脑所需的20瓦特的能量消耗,并不代表整个学习算法的总消耗。然而,它的架构和运行规则,也是一个运行长达40亿年的漫长的黑箱优化过程——其名为“进化”——所得到的结果。如果将所有人类祖先的全部能量消耗一并加总,也许人类和机器游戏玩家之间的对比可以显得更有意义些。即便如此,在模型架构和训练算法上的一切进步,与纯粹的通用随机搜索仍然相差甚远。但在机器智能上由人类驱动的进步,当然比动物界之中智能的进化要快得多。
所以,“惨痛教训”是对是错?
一个显然的,但也许对绝对主义者不够友好的答案是:既不是这边,也不是那边。注意力机制、卷积层、乘法循环连接以及其他许多大模型中常见的机制,都是人类智慧的结晶。换句话说,它们是令人类思想推动学习任务运行得更好的前提,也对我们目前所见的一系列规模化的进步至关重要。故意忽略这些发明,一味地维护摩尔定律和“惨痛教训”的话,便与纯粹依靠手动编码的专家知识一样短视。
一个设计错误的优化过程,即使运行到宇宙的终结,也解不出一个问题。在享受规模化所带来的红利时,一定要将这一课铭记于心。
(图片文字:你低估了我的算法!)
AI研习社是AI学术青年和AI开发者技术交流的在线社区。我们与高校、学术机构和产业界合作,通过提供学习、实战和求职服务,为AI学术青年和开发者的交流互助和职业发展打造一站式平台,致力成为中国最大的科技创新人才聚集地。
如果,你也是位热爱分享的AI爱好者。欢迎与译站一起,学习新知,分享成长。