nv-gtc-aicon-2024-merge-0

Nvidia GTC 人工智能大会 2024 笔记(一)

001:变革AI - NVIDIA GTC 2024 黄仁勋主持的专题讨论会

在本节课中,我们将一起回顾NVIDIA GTC 2024大会上一个由CEO黄仁勋主持的重要专题讨论会。我们将了解现代计算的发展历程、加速计算的兴起,以及Transformer架构如何成为当前人工智能革命的核心驱动力。本次讨论汇集了Transformer论文《Attention Is All You Need》的多位作者,共同探讨了这项技术的起源、影响与未来。

现代计算的演进与加速计算的兴起

欢迎来到舞台,NVIDIA创始人兼CEO黄仁勋。

会场外排着长队。人们正有序地进入这个房间。但一旦进入房间,场面就变得有些混乱。这是因为房间即将坐满,另外两个分会场也将如此。人们入场速度较慢,但一旦进入大约10英尺的范围,混乱就开始了。很高兴见到大家。

计算机在过去的60年里基本保持不变。在我出生后的那一年,IBM System 360描述了现代计算机的架构。中央处理器、输入/输出子系统、多任务处理、硬件与软件的分离、跨系列的软件兼容性、保护软件工程师投资的后向兼容性。这些在1964年描述的计算模式至今未变。

在80年代末和90年代初,个人计算机革命将计算推向了高速发展。它民主化了计算,每年都在降低性能的边际成本。每10年,计算成本大约降低10倍。每5年降低10倍,每10年降低100倍,15年降低1000倍,20年降低10000倍。在PC革命的20年里,计算成本降低了10000倍,这是历史上任何其他有价值的商品都无法比拟的。想象一下,生活中所有重要的、有价值的东西,在20年内成本都降低了10000倍。但有一天,这种变化速率停止了。虽然每年仍有小幅改进,但速率放缓了。

于是我们致力于另一种计算形式:加速计算。使用加速计算并不容易,因为你需要将问题从原本的、逐年加速的串行步骤式“菜谱”,重新表述为并行算法。并行算法本身就是一个科学领域,实现起来极其困难。但我们相信,如果能加速那占运行时99%的1%的代码,我们就能在某些应用中带来巨大的效益。我们可以让不可能变为可能,让成本高昂的事情变得经济高效,或让能耗巨大的事情变得节能。因此我们称之为加速计算。在公司整个历史中,我们都在研究它,并成功加速了一个又一个应用领域。

第一个领域是计算机图形学和电子游戏。我们在这方面做得非常好,以至于人们以为我们是一家游戏公司。但我们继续推进,认识到计算机图形学和游戏的价值,因为它同时是一个巨大的市场,并能驱动技术创新,这种情况很少见。大型市场与永不满足的需求相结合,有能力推动不可思议的技术革命。我们最初在计算机图形学和游戏中发现了这一点。

长话短说,在2012年,我们有了第一次“目击”。那就是AlexNet,人工智能与NVIDIA GPU的首次接触。这引起了我们对这个领域的关注。几年后,一些惊人的事情发生了,并导致了今天。那件事催生了生成式人工智能。

生成式AI与新的工业革命

现在,你们听我说过生成式AI当然非常不可思议。软件不仅能识别一张猫的图片并说出“猫”,它还能根据“猫”这个词生成一张猫的图片。它可以根据“猫”这个词,加上更多条件提示,比如“在冲浪板上”、“在阳光明媚的日子”、“在毛伊岛海岸”、“喝着一杯迈泰鸡尾酒”、“戴着一顶滑雪帽”,然后生成相应的图片。我们现在已经教会了一个软件程序如何理解这些像素的含义,识别像素,理解像素的含义,并且实际上能够从某种含义生成像素。这种从几乎任何数据中学习含义的能力具有巨大的变革性,并导致了今天。

你们听我说过,这是一场新革命、一场新工业革命的开始。这是有原因的。在这场新的工业革命中,我们正在生产以前从未存在过的东西。就像之前的工业革命一样,上一次工业革命中,水进入设施,能量被施加,一种叫做发电机的设备开始工作,创造出这种具有巨大价值的无形之物,我们今天都依赖它。水进入建筑,你基本上点燃它,煮沸它,从另一端出来的是电力。水进,电出。魔法。电力被用于各处,创造了我们所知的工业革命。

一个新的设施,创造一种有价值的新产品。对于生成式AI,它是一种全新类型的软件。软件当然需要被创造,出色的计算机科学家需要去创造它。但之后,它被生产出来,被批量生产。一座建筑,里面有我们称为GPU的机器,本质上就是一台发电机。一座拥有机器的大型建筑。你给它原材料,这种原材料是数据、数字。你给它能量。然后这种神奇的东西出来了,也是数字。数字进,数字出。出来的数字能做惊人的、难以置信的事情。它们当然可以用于你们所知的所有应用,也可以用于医疗保健和药物设计,用于交通和自动驾驶汽车,用于制造业和工业。我们所知的每一个行业都将受益于这种正在被生产的新产品、新事物。

所以,一种行业从未见过的新事物将被生产出来,并且将在世界从未见过的设施和工厂中生产:AI工厂。生产AI,而AI被每个行业使用。那么你称之为什么?一场新的工业革命。这一切以前都不存在。我们正亲眼目睹它展开。接下来的10年,你们不想错过。难以置信的新能力将被发明出来。而这一切始于某个时间点,由一些研究人员开始。

Transformer的诞生与影响

因此今天,我想邀请Transformer的发明者、创造者。我们设置的方式有点像我们的客厅,几乎没有主持。我们在后台,希望你们也在那里。有很多深度学习领域的笑话和争论。我想做的就是开启这些玩笑和争论,然后看看会把我们带向何方。现在让我欢迎Transformer的发明者,他们是那篇名为《Attention Is All You Need》的论文的作者。

以下是各位嘉宾:

  • Ashish Vaswani,现为一家名为Essential AI的全新初创公司CEO。

  • Noam Shazeer,也是一家名为Character AI的新初创公司CEO。

  • Jakob Uszkoreit。

  • Aidan Gomez,Cohere的创始人兼CEO。

  • Lukasz Kaiser。

  • Illia Polosukhin,Near Protocol的联合创始人。

  • 还有一位同事兼朋友因家庭紧急情况未能到场,我们的心与他同在。

首先,他们实际上从未同时出现在同一个房间里。远程工作已经失控,但这似乎并没有阻止创新发明。很高兴你们能来这里。我们将讨论Transformer工作的重要性、意义及其难以置信的变革能力,以及它对行业所做的贡献。显然,正如我之前所说,我们今天享受的一切都可以追溯到那个时刻。我们能够以序列方式以及空间方式从海量数据中学习,发现关系和模式,并创建这些巨大的模型,这确实是变革性的。

我的第一个问题是,回到最初,是什么问题激励了你们?工程师需要问题来激发灵感。是什么你们正在努力解决或面临的挑战导致了这一切?我认为每个人可能有不同的问题。

对于我和我的团队,我们当时在研究问答系统。很简单,去谷歌,问一个问题,它应该给你一个答案。谷歌有非常低的延迟要求。所以,如果你想部署实际能阅读海量文档的模型,你需要能快速处理的东西。而当时的模型,循环神经网络,无法做到这一点。因为RNN一次只能处理一个词。我们生成训练数据的速度比我们能用当时最先进的架构(LSTMs)训练的速度快得多。因此,实际上更简单的架构,如前馈网络配合N-gram输入特征,因为训练速度快得多,在谷歌规模的海量训练数据下,在某些问题上总是能超过更先进、更强大的RNN。所以这似乎是一个值得解决的问题。

我们早在2015年就看到了这些扩展定律。你可以看到模型变大,它就变得更聪明。这是世界上最好的问题,如此简单。你只是预测下一个标记,它就会变得非常聪明,能做一百万件不同的事情。你只想扩大规模并让它变得更好。一个大挫折是RNN处理起来很麻烦。所以我听到这些人在讨论,嘿,让我们用卷积或注意力来取代它。我当时想,太好了,我们来做吧。我喜欢把它比作RNN是蒸汽机,Transformer是内燃机。我们可以用蒸汽机完成工业革命,但那会很麻烦。有了内燃机,事情变得好得多。现在我们只是在等待核聚变,对吧?

我不断被提醒两个教训,尤其是在Transformer时期。第一个是我在研究生院研究机器翻译时开始体会到“苦涩的教训”,当时我觉得梯度下降比我是更好的老师,所以我不去学习那些语言规则,而是让梯度下降为我做一切。第二点是,引用“苦涩的教训”,从长远来看,最终能赢的是那些可以扩展的通用架构。今天是标记,明天是我们在计算机上采取的行动,它们将开始模仿我们的活动,并能够自动化我们做的很多工作。

所以,Transformer的自注意力机制特别具有这种极其通用的品质。它也使得梯度下降很高兴。第二件让它高兴的事是物理,因为我从Noam那里学到,矩阵乘法是个好主意。所以让我们也让加速器高兴。这两件事结合在一起,这个主题一直在重复。每次我们有一堆梯度下降时,它们都比规则更好。整个深度学习的历史就是,我们正在构建一个AI模型,其形状就是GPU的形状,就是超级计算机的形状。是的,我们正在构建形状像模型的超级计算机。

你们当时在解决什么问题?机器翻译。是的,绝对是。五年前,你必须收集数据。它可能会翻译,可能有点错误。那是最基本的水平。现在,这些模型根本不需要任何数据。它们只是学会了翻译。你有这种语言,那种语言,模型能够翻译的能力就涌现出来了。是什么直觉导致了“注意力就是一切”?

我想出了这个标题。当时的情况是,在我们寻找标题的时候,我们正在进行消融实验。我们最近开始扔掉模型的一些部分,只是为了看看它会变得多差。令我们惊讶的是,它开始变得更好,包括扔掉所有的卷积层。这个效果更好。这就是我当时脑海中的想法,标题就是这么来的。有趣的是,我们实际上是从那个基本的东西开始的,然后我们添加了东西。我们添加了卷积。后来我们又去掉了它们。很多其他东西,比如多头注意力,也是非常重要的一部分。

但我当时在看一部电影,不知道你们看过没有,《利昂》?在那个宇宙里,他们没有贝多芬,贝多芬不存在了。我在想,在那个宇宙里标题会是什么?我不知道你们看过没有。我忘了叫什么,好像是《昨天》之类的。他没时间,他正试图建立一家公司。

那么,Transformer这个名字是怎么来的?还有其他选择吗?谁想出了Transformer?为什么叫Transformer?顺便说一句,这是个好名字。我想是Transformer,对吧?不,我喜欢Yaakov为它起的名字。那很酷,我们就用它。它符合模型所做的事情,整个信号操作,而不是必须经过逻辑。几乎所有的机器学习都是转换。我想所有的机器学习都在变成…… 我认为它太简单了。我当时想,那正是我对它的看法。我否决了,但大家都认为是个好名字,他们是对的。你想出了很多名字,比如Cargo…… 我写了一个,比如卷积…… Google,Go。但那太糟糕了。我很高兴你被否决了,明智的人们。

我认为它成为如此通用名称的原因是,在论文中,我们专注于翻译。但我们肯定意识到,我们实际上是在尝试创造一种非常通用的东西,可以将任何东西转换成任何其他东西。我们没有预料到它实际上会工作得这么好。当Transformer被用于图像时,那有点令人惊讶。但对你们来说很合乎逻辑。事实上,你可以将图像分块并将每个块标记化,我认为这在架构上很早就存在了。

当我们构建Tensor2Tensor库时,我们真的专注于扩展自动回归训练,不仅限于语言。里面有用于图像、音频、文本的组件,在输入和输出端都是。Lukasz说他当时在研究翻译,我认为他谦虚了。我们现在开始看到的这些多模态融合、联合建模的想法,在Transformer代码库的第-10天就存在了,因为那就是Lukasz追求的目标。当时没成功,五年后成功了。但论文里的东西,“一个模型统治一切”,但他没用自注意力。它最终开始工作了。但所有这些想法很早就存在了,并在传播。这需要一些时间。Lukasz的目标是,我们有所有这些学术数据集,它们从图像到文本、文本到图像、音频到文本、文本到文本。我们应该在所有东西上训练。这个想法真正推动了为网络建模的扩展努力,OpenAI已经成功了。现在我们很多人都在做类似的事情。所以我认为,那个北极星,在第0天就在那里了。所以看到它开花结果,真的很令人兴奋和满足。我们现在实际上正在看到它发生。

Transformer的通用性与未来方向

这很有趣,因为很多知识都关乎翻译:图像到文本、文本到图像、文本到文本,到张量到张量。这个Transformer思想,这个转换思想,是相当普遍的。事实上,你们将它用于生物学,对吧?或者我们喜欢称之为生物软件,可能类似于计算机软件,它开始于一个程序,然后你将其编译成可以在GPU上运行的东西。在我们的案例中,一段生物软件的生命始于你想要的一些行为规范,比如在细胞中打印某种特定蛋白质。然后你学习如何使用深度学习将其翻译成RNA分子,这些分子一旦进入你的细胞,就会表现出那些行为。所以这个想法真的贯穿始终,不仅是从英语翻译成计算机代码,还包括药物规范,希望是变革性的药物,翻译成我们随后使用的实际分子。

你们建立了一个大型湿实验室来生产所有这些吗?你们必须针对自然进行实验来验证。数据尚不存在。有大量非常有价值的基因组数据可以下载,很大程度上仍然是公开的,因为它通常仍主要由公共资助。但你们仍然需要明确针对你们手头试图建模的现象的数据。对于某些产品,比如mRNA疫苗中的蛋白质表达,我们确实在帕洛阿尔托有一堆机器人和穿着实验服的人,既有学习型研究人员,也有以前是生物学家、现在我们认为自己是新事物先驱的人,他们实际上在创造这些数据,并验证那些设计分子的模型。

早期的翻译思想,相当普遍的翻译,通用学习器,通用翻译,从一开始就在那里。你们认为在基础Transformer设计之上,有哪些主要的架构修复、增强或突破是真正伟大的额外贡献?

在推理方面,有大量工作来加速这些模型,使它们更高效。我仍然觉得,我们与原始形式的相似程度让我有点不安。我认为世界需要比Transformer更好的东西。我想在座的各位都希望它能被某种能带我们到新性能平台的东西所取代。我想问在座各位一个问题,你们认为接下来是什么?因为我认为它和六七年前的东西太相似了。是的,我想人们会对它的相似程度感到惊讶。人们喜欢问我接下来是什么,好像因为我在论文上我就会神奇地知道。但我回答这个问题的方式是指出一个关于这些事情如何进展的重要事实:你不仅要更好,你必须明显更好。因为如果你只是稍微好一点,那不足以让整个AI行业转向新事物。所以我们困在原始模型上,尽管从技术上讲,它可能不是我们现在拥有的最强大的东西。

你们想改进什么?上下文长度?想改进标记生成能力?想让速度更快?我不确定你是否喜欢这个答案,但它们现在使用了太多计算。我认为它们做了很多浪费的计算。我们正试图让那更高效。这不仅仅是关于总计算量,而是关于花费正确的量和能量。你不想在简单问题上花费太多,也不想在困难问题上花费太少而导致无法提供适当的解决方案。举个例子,2+2。如果你把它输入这个模型,它使用了一万亿个参数。计算机完全有能力用少得多的计算做到这一点。所以我认为自适应计算是接下来必须出现的事情之一,这样我们才知道在特定问题上花费多少计算。是的,那几乎是紧接着的论文,我知道在座的部分作者做了通用Transformer,目标正是那个。所以这些想法当时就在那里。

混合专家模型呢?那是在Transformer之前。但现在每个人都在用,它已经融入Transformer了。我实际上不知道在座的各位是否知道。但我们最初的目标失败了。我们开始这个是因为我们想要建模标记的演化,而不仅仅是线性生成,文本或代码会演化,我们迭代、编辑,这让我们有可能模仿人类如何演化文本,也让它们成为过程的一部分,因为如果我们自然生成,就像人类生成一样,他们实际上可以得到反馈。我的意思是,我们所有人都读过香农的论文。所以我们当时想,不,不,这是语言建模和复杂性。那还没有发生,我认为这也与智能组织计算有关。对于图像也是如此。我的意思是,扩散模型有一个有趣的特性,即精炼和改进。我们甚至还没有那个。

还有这个基本问题:什么知识应该存在于模型内部,什么知识应该存在于外部?检索模型、RAG,我想RAG是其中一个例子。这也适用于推理:什么推理应该在外部用符号系统完成,什么推理应该在内部完成?很大程度上是效率的论点。我确实相信大型模型最终会学会做2+2的电路。但如果你要把2000个数字相加,那效率低下。所以作为一个例子,如果是2+2,AI应该直接拿起计算器,使用我们知道的最少能量,也就是计算器,来做2+2。然而,如果被问到,你是怎么决定2+2的?或者2+2是正确答案吗?那么它可以进入数学理论并从公理解释。是的,我知道你举了这个例子,但我很确定你们创造的所有AI都足够聪明,会去拿计算器。GPT现在就能做到,对吧?是的。

我认为模型现在太便宜了,太小了。是的,它太小了,太便宜了,因为计算成本,感谢你们生产了这么多。每项操作的成本大约是10的负18次方美元。但如果你看一个拥有约五千亿参数的模型,每个标记进行约一万亿次计算,那仍然是每美元一百万个标记。这比出去买一本平装书阅读便宜大约100倍。我们有比在巨型神经网络上进行高效计算有价值一百万倍或更多的应用。当然,治愈癌症之类的事情是,但即使是与任何人交谈,与医生、律师、程序员交谈,你每标记支付一美元或更多。我们有一百万倍的余地可以利用。如果我们能用那让这东西变得聪明得多,那将非常惊人,因为有时正确的词就能改变世界。

初创公司的愿景与AI的未来

我也认为,我们经常不多谈,但要让它更聪明,正确的界面至关重要。我们如何获得正确的反馈?我们如何以人类可以在正确时间干预的方式分解我们正在做的任务?如果你最终想构建可以通过观察我们来学习和模仿解决任务的模型,界面将是绝对关键的。这可能是实现这一点的好方法。

你们创办了公司。在发明了Transformer之后,你们离开了谷歌,创办了公司。你们能都简单说说公司的情况以及为什么决定创办它吗?因为你们描述的很多事情,你们的公司正在研究。

对于Essential AI,我们真的对构建最终能像人类一样高效学习解决新任务的模型感到兴奋。它们观察我们的行为,能够理解我们的意图和目标,并开始模仿我们的行为。这最终将改变我们与计算机的交互方式以及我们的工作方式。

在2021年,我离开的主要原因之一是让这些模型变得更聪明的唯一方法,你不能在实验室的真空中让它们变得更聪明。实际上必须走出去,把它们交到人们手中,因为需要世界来“标注”,不完全是,但你希望世界与这些模型互动,从它们那里获得反馈,让这些模型变得更聪明。所以这样做的方法是走出去,构建一些东西。学习确实需要一个体验式的飞轮,在实验室的真空中很难做到,当时在外面推出东西更容易。

是的,我在2021年创立了Character AI。当时最大的挫折是,有这么不可思议的技术,却没有普及到每个人。它用途如此之多,如此易用。我迫不及待。价值在于让十亿人使用它,让他们用它做十亿件事。这就是禅宗的样子。深度平静。与……相比,禅宗看起来像……感谢上帝给了我们如此不可思议的技术,最终目标是帮助世界上的每个人都能使用它。我是认真的。让我们尽快开始做这件事,让数十亿人能够使用它。很多人用它来娱乐,比如情感支持、陪伴,这真的很有效。使用人数非常多,真的很有效。恭喜。谢谢。

我已经稍微谈了一下生物软件,但也许更多是关于我个人在2021年共同创立Inceptive的原因。真的,这种技术对改善人们生活的影响可以比我们以前拥有的更直接、更深远。我的第一个孩子出生了,在疫情期间,但也让我对生命的脆弱有了新的认识。几周后,AlphaFold2的蛋白质结构预测结果出来了,赢得了CASP 14。2和1之间的一个重大区别是他们开始使用Transformer,并用它替换了他们模型架构的其余部分。所以很明显,这些东西在分子生物学领域已经准备好进入黄金时期。又过了几周,mRNA新冠疫苗的有效性结果出来了。很明显,mRNA和RNA基本上是完整的生命。RNA世界假说认为,你可以用RNA做生命中的任何事情。但没有数据。在某种意义上,长期以来它一直是分子生物学中被忽视的继子。所以这几乎像是一种道德义务,必须有人去做这件事。

我一直认为它是药物设计。是的,但我喜欢你把它看作是编程蛋白质,编程生物学。这实际上更有意义。我喜欢这个概念。当然,这个编译器必须是学习出来的。你显然不会写这个编译器。所以我们必须去学习这个编译器。如果你要去学习这个编译器,显然你需要一个实验室,你需要测试它,生成数据。是的,这个飞轮必须运转。很令人兴奋。我能看到它发生。

Helium。是的,我是最后一个,现在还是非常早期,但我可以告诉你们进展如何。我共同创立了一家名为Sakana AI的公司。Sakana代表什么?有点奇怪,它的意思是“鱼”。在英语里听起来很奇怪。开局不错。幸运的是,日本人似乎喜欢。我们命名为“鱼”的原因是,它应该让人联想到鱼群。我们想做受自然启发的人工智能。所以,类比是,一条小鱼可能很简单,但当你把很多简单的东西聚集在一起时,它们就变得相当复杂。但当我们说受自然启发时,人们不太确定我们到底是什么意思。

我想深入探讨一下这个核心理念。我试图推动加入的研究人员的核心理念是:学习总是赢家。任何时候,当你从人类试图手工做某事、自己设计它,转向实际使用计算机在空间中搜索,你总是赢家。甚至最初的深度学习革命就是这样一个例子,我们从手工设计特征转向学习它们,效果就好得多。所以,我想提醒在座的各位,NVIDIA提供给我们的海量计算资源,除了梯度下降,我们还可以用它做其他事情。我们可以用它来搜索我们目前手工设计的空间。实际上我想告诉你们,我认为今天或明天,由于时差问题,我们实际上要宣布一些事情。我有点惊讶我们……有事情要宣布?这么早?但我们有一些研究将要开源。

这非常符合我们的品牌,因为现在流行的是模型合并。但这是手工完成的。我们手工设计如何合并这些模型的算法。我们所做的是,我们获取了Hugging Face上所有可用的模型,然后使用了大量的计算资源,通过进化计算来搜索如何合并和堆叠这些层。只能说,效果非常好。所以,请注意。好的,这太棒了。很有道理。我也要严格按照顺序说,我们正在招聘。太棒了,干得好。

我认为我创立Cohere的原因与Noam非常相似。我看到一项我认为可以改变世界的技术,计算机开始与我们对话,它们获得了一种新的模态。所以我认为这应该改变一切,每一个产品,我们工作的方式,我们与建立在计算机之上的一切的交互方式。但它没有改变。存在停滞,存在我们这些知情者所面对的技术与它在世界上所做的事情之间的脱节。所以我想弥合这个差距。我认为我的做法与Noam有点不同,因为Cohere为企业构建。所以我们为每个企业创建一个平台,让他们采用并将其集成到他们的产品中,而不是直接面向消费者。但这是我们想要推广这项技术、使其更易获取、更便宜并帮助公司采用它的方式。

我真的很喜欢的是,这就是Aidan超级兴奋时的样子。而这就是Noam超级平静时的样子。我只是非常喜欢那个。Cohere,好的。Lukasz。但我没有创立……我知道,但你继续改变了世界。你继续改变了世界。说吧。

我最终在一段时间后加入了OpenAI。你知道阿尔·卡彭被问及为什么抢劫银行时,他说“因为钱在那里”。我想当时我加入时,最好的Transformer在OpenAI那里。在公司里很有趣。我们知道,你可以用大量数据和大量计算做出好东西。我仍然希望我能去掉大量数据那部分。我们只需要更多的计算。是的,抱歉。

所以,说说你的,然后我想问这些家伙下一个问题。是的,我实际上是第一个离开的,在2017年年中。因为和Ashish类似,我坚信我们取得进展的方式,基本上就是软件吞噬世界,机器学习吞噬软件。所以最直接的方式是教机器编码,这样你就能实际生成软件,改变每个人的访问方式。但那是2017年,有点太早了。我们还没有那么好的计算资源。所以我们当时试图做的,是协调人们来实际生成更多数据。作为初创公司,你确实有能力将东西呈现在用户面前,然后激励他们。我们最终意识到我们需要新的基本原语,即可编程货币,因为可编程货币允许大规模协调人们。所以我们最终构建了Near Protocol,这是一个区块链,自2020年开始运行。它是区块链领域全球用户最多的,每天有数百万用户,他们甚至不知道自己在使用区块链,但实际上他们正在与可编程货币、可编程价值交互。现在我们开始用它来实际带回一些工具以生成更多数据。

我认为从根本上说,在这个群体中可能没有争议,但在其他地方可能有:版权作为一种18世纪的技术,需要改变。我们面前有一个新的生成时代。我们现在的创作者方式已经破碎。唯一的方法是利用可编程货币、可编程价值和区块链。所以我们正在做的一件事就是,实际上为人们贡献数据给超酷模型创造一种高尚的方式。是的,这太酷了。然后你将在其上建立一个新的……正反馈系统,完全符合我们正在做的一切。并且在其上有一个伟大的新经济。我们有了可编程人类,可编程蛋白质,可编程货币。我喜欢这个。

数据、推理与模型的未来

那么,人们的一个问题是,当前一代的GPT模型拥有大约10万亿标记的训练数据集,大致代表了互联网的规模,所有可以从互联网上免费抓取的东西。那么,接下来是什么?必须探索什么样的新模型技术,比如推理等等?我会让你们谈谈这个。数据从哪里来?

来自与用户的互动。它需要来自与用户的互动。你需要大规模的平台来实际获得牵引力。你需要人们从中获得经济价值。然后在后端,你可以将其输送给所有这些模型,让它们变得更聪明。你可以用它让一个模型变得更好。但你如何达到那个每个人都想与之互动的、令人难以置信的预训练模型起点?你能让模型通过强化学习相互互动吗?你能使用合成数据生成技术吗?我想在我们所有人之间,我们正在研究所有这些技术。

我认为即将到来的下一个大事是推理。我想很多人都意识到了这一点,很多人正在研究它。但是,再次,现在很多是手工设计的。我们手工编写提示,然后试图让它们以我们认为应该的方式交互。当然,我认为我们实际上应该搜索那个空间,并学习如何实际连接这些东西,以获得我们想要的真正强大的推理。

另一种思考方式是,旨在生成我们人类想要消费的东西的模型,我们想要消费的媒体,应该在我们想要消费或可以消费的所有刺激上进行训练。所以基本上任何类型的视频、音频、任何观察世界的方式、3D信息、空间信息、时空信息,都应该全部输入进去。

我也不确定是否每个人都明白,推理和从少量数据中学习是密切相关的。因为如果你有一个可以进行推理的模型,那么你有一点数据,它会进行所有这些处理。为什么这个东西会遵循它?但它可以投入大量计算。然后,哦,是的,结果就出来了。它从少得多的数据中泛化,因为它投入了所有这些计算进行推理。就像人类意义上的思考系统。然后从中,你可以让它继续,然后尝试将其构建为它会做的事情,你想让它设计自己的实验。所以,对其推理能力继续搜索最有影响的数据。

我确实认为,当我们弄清楚推理时,它将 dramatically 减少你所需的数据量。但那时你所需的数据质量将重要得多,这就是与现实世界和人们的互动发挥作用的地方。所以我认为将会有一个新时代,你仍然会在一些万亿标记上进行预训练,但重要的东西可能是高质量的东西,这可能使回馈人们变得更容易。是的,奖励他们贡献数据,基本上就是教机器变得越来越好。

是的,一个人只见过大约十亿个标记。所以人学得很好。这里有一个存在的证明。是的,那…… 我也认为,该领域的许多进展也是因为基准测试和评估。所以,比如,数学的伟大流派类似于自动化的什么?因此,将现实世界的大规模任务分解成更简单的任务,并建立梯度,这也很重要,因为我们的模型可能能够完成其中一些,并且可以部署,获得更多数据。一旦这个循环闭合,它们就有权利承担更复杂的任务,一个是因为它们也可能在观察。所以观察它们在做什么,给它们更多数据,然后做更复杂的任务,给它们更高的自动化原语,比如做更抽象的任务。所以我确实觉得,构建、衡量进展和取得进展也需要像我们通过一些评估所做的那样,在许多方面分解或创建这种科学,但自动化科学、交互科学或代码生成科学,没有测量系统就无法做好工程。是的,这真的很重要。

问答环节与未来展望

那么,我有个问题问你们。你们想问彼此哪三个问题?好吧,有人先提出第一个问题。状态空间模型。你们怎么看?太复杂了?还不够优雅?哦,好吧。关于这些有趣的是,我们记得前Transformer时代,但很多年轻研究人员不记得。所以当我第一次看那篇论文时,对我来说很明显它是一个穷人的LSTM。所以我们当时试图让这些东西工作时遇到的所有问题,肯定也存在于这些模型中。但似乎因为人们已经忘记了前Transformer的东西,他们不得不重新发现所有问题。所以我猜这些东西会很重要。我们最终可能会得到一个混合模型。是的,Transformer有循环步骤。

有趣的是,我发现实际上没有人真正尝试过你可以用可变步数运行Transformer,并以不同方式训练它。像这样的事情,实际上是探索我们可以用循环做什么,因为这个模型所做的,是每一步都为每个标记增加更多信息,解决一些问题,进行推理。所以显然,如果你只有六步,你只能做,实际上五步推理,因为第一步实际上只是获取更多上下文。所以有时你不需要六步,有时你需要更多。那么,你可以在那上面做哪些不同的循环?另一个是,如何摆脱标记?我的意思是,对于循环,我个人认为我们从未真正学会如何用梯度下降训练循环模型。也许就是不可能。我的意思是,LSTM效果很差,它工作了一点点。状态空间模型效果更好,它们是结构化的。但也许从根本上说,你需要用不同的方式训练它,而不是梯度下降。我们人类在某种意义上是循环的。我们生活在时间中。我们的大脑随时间更新,但不太清楚我们是用反向传播训练的,可能不是。所以,也许有一种方式,只是不是梯度下降,这就是为什么它如此难以弄清楚。

总结

好了,各位,和你们在一起真是太棒了。我真的希望你们能时不时聚一聚,下次你们的互动能产生什么惊人的魔力。我们整个行业都感激你们所做的工作。谢谢。我感激不尽。谢谢。谢谢。谢谢。谢谢。

我只做一件事。你们能给我一个……我来做一个,然后给其他人。这是第一个。这是DGX 1。我写了Ashish,我给了你。这个给你,我会在你们离开时把其他的给你们。这是给Ashish Vaswani的。你改变了世界。好的,谢谢。这是DGX 1。给你。太美了。非常感谢。谢谢你做这个。谢谢你,Noam,谢谢。非常感谢。干得好。谢谢。非常感谢。干得好。干得好。谢谢你,Lukasz。谢谢,是的,谢谢。好了,各位,谢谢。谢谢你们来。


在本节课中,我们一起回顾了NVIDIA GTC 2024上关于AI变革的专题讨论。我们学习了从传统计算到加速计算的演进,深入探讨了Transformer架构的诞生背景、核心思想及其作为生成式AI和新时代工业革命基石的巨大影响。我们还聆听了Transformer原作者们分享的创业愿景以及对AI未来发展方向,特别是推理能力、数据来源和模型效率的深刻见解。这节课为我们理解当前AI浪潮的起源与未来趋势提供了宝贵的视角。

002:开放世界中的通用智能体

在本节课中,我们将跟随英伟达GEAR实验室负责人Jim Fan的演讲,探索如何构建能够在开放世界中执行多种任务的通用人工智能代理。我们将从AlphaGo的局限性出发,逐步了解实现通用智能体所需的关键要素、研究框架以及具体项目。

从AlphaGo到通用智能体

2016年,AlphaGo在围棋比赛中击败人类冠军,标志着AI历史上的一个辉煌时刻。然而,AlphaGo虽然强大,却只能完成下围棋这一项特定任务。我们真正期望的,是像电影《机器人总动员》中的瓦力那样多功能、像《星球大战》中那样形态多样、并且能在《头号玩家》那样的无限虚拟或物理世界中工作的通用AI代理。

那么,我们如何才能在不久的将来实现这一目标呢?

通用AI代理的“银河系”挑战

当前大多数研究工作可以沿着三个坐标轴展开:

  1. 技能数量:代理能够执行的任务数量。

  2. 控制形态:代理能够控制的不同身体或载体。

  3. 掌握的现实:代理能够适应的虚拟或物理世界。

AlphaGo位于这个坐标系的左下角(技能单一、形态单一、世界单一),而我们的目标是右上角——一个技能无限、形态多样、能适应任何世界的通用代理。

通用代理的核心要素

要实现通用代理,需要具备三个核心特征:

  1. 在开放世界中生存、导航和探索:环境不能像围棋那样有单一目标,而必须是开放式的。

  2. 拥有大量预训练知识:代理不能只了解环境中的少数概念,而应具备广泛的知识。

  3. 能够执行无限多任务:代理应能理解任何合理的语言指令,并完成相应任务。

实现通用代理的三大支柱

相应地,我们需要三大支柱来支撑通用代理的开发:

  1. 一个足够开放的环境:代理的复杂性受限于环境的复杂性。地球本身就是一个完美的开放环境,孕育了生命的多样性。我们需要一个能在实验室计算机上运行的“数字地球”模拟器。

  2. 海量的预训练数据:在如此开放的世界中从零开始探索是难以实现的。数据将成为代理的“参考手册”,指导它如何做事以及哪些事值得做。

  3. 一个可扩展的基础模型:需要一个强大的基础模型,能够将大规模数据转化为可执行的洞察。

支柱一:开放环境——Minecraft

这一思路将我们引向了Minecraft——有史以来最畅销的电子游戏。Minecraft是一个程序生成的3D体素世界,游戏本身没有设定特定的得分目标或必须遵循的剧情,这使其成为一个真正开放的环境。它拥有1.4亿活跃玩家,产生了海量的游戏视频和教程数据。

为了利用这些数据,我们推出了 MindDojo,这是一个帮助社区使用Minecraft作为“原始汤”来开发通用代理的开放框架。

MindDojo包含三个部分:

  • 模拟器API:解锁了Minecraft的全部潜力,支持RGB图像、体素、GPS等多种观察空间,以及不同层级的动作空间。它可以自定义地形、天气、怪物生成,并支持自由形式的创造性任务。

  • 互联网技能知识库:为了帮助代理快速起步,我们收集了三个部分的数据:

    1. 视频:超过30万小时的游戏视频,包含超过20亿字的解说文本。

    2. Minecraft Wiki:包含7000个多模态页面(图像、表格、图表)。

    3. Minecraft Subreddit:玩家用来寻求帮助的社区,类似于技术问答网站。

  • 基础模型:用于处理和理解这些数据。

支柱二与三:数据与模型——MineCLIP

有了数据,下一步就是训练基础模型。我们的方法很简单:利用YouTube数据库中时间对齐的视频片段和文字解说(这些是真实的教程视频),训练一对编码器,将视频和文本映射到向量嵌入中。

这个过程通过对比学习实现,即将匹配的视频和文本拉近,将不匹配的推远。这对编码器被称为 MineCLIP 模型。

MineCLIP直观地学习了视频与描述视频中动作的文本之间的关联。它输出一个0到1之间的分数,1表示完美描述,0表示文本与视频无关。这实际上成为了一个语言条件化的基础奖励模型,能够理解Minecraft中森林、动物行为、建筑等所有抽象概念。

MineCLIP的应用

在MindDojo模拟器中,代理根据英文任务(例如“获取羊毛”)进行交互。代理探索时会产生视频片段,输入MineCLIP后,它会计算该片段与任务文本的关联度。关联度越高,代理行为与任务越一致,这个分数就成为强化学习算法的奖励函数。

这看起来非常熟悉,因为它本质上是基于人类反馈的强化学习,正是驱动ChatGPT的核心技术。我们相信它在具身智能代理领域也将扮演关键角色。

然而,MineCLIP仍有局限:需要手动决定任务提示并为每个技能单独训练,代理无法自主发现新事物。

迈向更多技能:Voyager

2023年,GPT-4的出现改变了局面。这是一个在编码和规划方面非常强大的语言模型。我们据此构建了 Voyager,一个在技能数量上实现大规模扩展的代理。

当Voyager在Minecraft中自由运行时,它能够连续游戏数小时而无需任何人工干预。它会探索地形、挖掘各种材料、与怪物战斗、制作数百种配方,并解锁不断扩展的技能树。

Voyager的魔法:编码即行动

其关键洞察在于将编码作为行动。我们借助一个名为Mineflayer的开源模组,将游戏世界转化为文本表示。Voyager调用GPT-4生成JavaScript代码片段,每个片段都成为游戏中可执行的技能。

就像人类工程师一样,Voyager编写的程序不一定第一次就正确。因此,我们引入了自我反思机制来帮助它改进。反思依赖于三个信息来源:JavaScript执行错误、代理的当前状态(如饥饿值、生命值)以及世界状态(如附近的地形或怪物)。

代理执行一个动作,观察该动作对世界和自身的影响,反思如何能做得更好,尝试更多动作,如此循环。一旦某个技能成熟,Voyager就会将该程序存储到一个技能库中。你可以将其视为一个完全由GPT-4通过试错编写的代码库。未来当代理遇到类似情况时,可以从库中检索并复用这些技能。通过这种方式,Voyager在Minecraft的探索和实验中递归地提升自身能力。

Voyager的持续探索

那么,Voyager如何保持无限探索呢?我们给了它一个高级指令:获取尽可能多的新物品。Voyager会制定一个课程,寻找 progressively harder and novel challenges to solve。综合这些机制,Voyager能够掌握并沿途发现新技能,所有这些都没有预先编程。这被称为终身学习——代理永远保持好奇,永远追求新的冒险。

迈向更多形态:MetaMorph

Voyager能够掌握更多技能,但它仍然只知道如何控制Minecraft中的一种身体形态。那么,我们能有一个适用于不同身体形态的单一模型吗?

这就引入了 MetaMorph。这是我们与斯坦福大学研究人员共同开发的项目,旨在创建一个不仅能控制一种,而是能控制数千种具有不同手臂和腿部配置的机器人的基础模型。

MetaMorph的直觉是:我们开发了一种描述机器人部件的词汇表,然后每个身体基本上就是用这种词汇语言写成的一个句子。具体来说,每个机器人可以表示为一个关节图或运动树。通过深度优先搜索遍历这棵树,可以将身体转换为一连串的标记(token)。每个标记代表关节的某些物理属性,整个序列描述了机器人的形态。

不同的机器人可能有不同数量的关节和配置,但标记生成器并不关心——它只是将所有形态转换为不同长度的序列,就像文本字符串一样。作为AI研究人员,我们的本能反应是应用Transformer,我们正是这样做的。MetaMorph不是写出文本,而是为每个关节写出电机控制指令。

因为我们想学习一个跨形态的通用策略,所以我们将所有“机器人句子”批量处理,并训练一个大型多任务神经网络,就像训练GPT一样。在MetaMorph眼中,无论机器人看起来如何,它们都只是句子。

通过强化学习并行训练所有形态,我们可以扩大规模。实验表明,MetaMorph能够控制数千个运动特性各异的机器人行走、上楼梯、穿越不规则地形或避开障碍物。我们还发现了一个有趣的现象:MetaMorph甚至能够零样本泛化到从未见过的形态。这意味着只要使用正确的“语言”,Transformer就能够跨形态迁移知识。

展望未来,如果我们进一步扩展机器人身体词汇表,我设想有一天MetaMorph 2.0能够泛化到机械臂、机器狗、不同类型的人形机器人甚至更远的形态。

迈向更多现实:Isaac Sim 与 Eureka

现在是时候将事情提升到新的水平了——跨现实迁移技能和身体。这就引入了英伟达的 Isaac Sim 仿真计划。

Isaac Sim 的最大优势是能够以比实时快1000倍的速度运行物理仿真。例如,一个角色通过在GPU上进行3天的仿真时间(相当于10年的虚拟训练),学会了令人印象深刻的武术技能。这非常像电影《黑客帝国》中的虚拟训练场。

借助光线追踪加速,我们可以渲染具有惊人细节水平的非常复杂的场景。这种照片级的真实感可以帮助我们训练计算机视觉模型,这些模型将成为具身智能代理的“眼睛”。更重要的是,在Isaac Sim中,我们可以程序化生成无限的世界,没有两个世界是相同的。

这里有一个有趣的想法:如果代理在10000个不同的仿真中接受训练,那么它也可能泛化到我们的物理世界——我们的现实,这不过是第10001个现实。

那么,Isaac Sim能解锁什么新能力呢?这就是 Eureka——一个在机器人灵巧性上达到超人类水平的代理。

其核心思想是:Isaac Sim有一个Python API来构建训练环境(例如创建一个五指手来与仿真中的笔交互)。我们假设人类编写的代码指定了成功标准(例如,笔持续达到某些3D朝向)。这个成功标准只告诉你要做什么,而不是如何用指关节去做。

Eureka的第一步是将环境代码和任务描述作为上下文传递给GPT-4。然后,Eureka采样一个奖励函数。这是一个非常精细的信号,用于塑造神经网络控制器的行为,使其找到好的解决方案。通常,专家工程师会手动调整这个奖励函数,这是一个非常繁琐和困难的过程。

Eureka将其自动化。一旦有了奖励函数,我们就可以运行强化学习,通过大量试错来最大化它。由于Isaac Sim的大规模并行仿真,Eureka训练一个完整的奖励函数只需约20分钟,而不是几天。

当训练循环结束时,它会返回一份自动化反馈报告,告诉Eureka它的表现如何,并分解奖励函数的不同组成部分(如速度奖励、姿态奖励)。综合起来,GPT-4生成一批奖励函数候选,每个都执行一次完整的强化学习训练。Eureka会传递自动化反馈,并要求语言模型对结果进行自我反思。然后,语言模型会推理如何改进,并提出下一代的奖励函数候选,如此循环重复。

这有点像一种上下文中的进化搜索。与人类专家相比,Eureka能够为每项任务(例如沿不同轴旋转笔)找到更好的奖励函数。如果让机器人专家手动逐一调整,那将是一场噩梦。

值得注意的是,Eureka是一种通用方法,它弥合了高级推理和低级运动控制之间的差距。Eureka使用了一种我称之为混合梯度架构的新范式,其中一个黑盒的、仅推理的大型语言模型指导一个白盒的、可学习的神经网络。

但问题是,为什么只停留在奖励函数上?如果你仔细观察,机器人技术栈中的一切看起来都像是代码。任务规范、机器人硬件规格、仿真环境本身都可以用代码实现。例如,与其使用MetaMorph的特殊语言来描述身体,不如直接使用像URDF(一种用于描述机器人形态的XML格式)这样的现成方案。

在未来,我设想 Eureka++ 可以成为一个完全自动化的机器人开发人员,编写基础设施来训练更好的代理,并迭代地进行。从这个意义上说,Eureka不仅仅是地图上的一个点,而是一个可以沿任何轴推动前沿的推动因子。

终极目标:基础代理

随着我们在地图上的进展,最终将达到一个能泛化所有三个轴的单一模型。那个右上角的目标就是基础代理。

我相信训练基础代理将非常类似于训练ChatGPT。所有语言任务都可以表示为文本输入和文本输出,无论是写诗、翻译还是做数学题,都是如此。训练ChatGPT就是在大规模文本数据上进行扩展。

非常相似地,基础代理将接收一个形态提示和一个指令提示作为输入,并输出动作。我们只需在大量现实中进行大规模扩展。基础代理是GEAR实验室的下一章。

昨天,黄仁勋先生在主题演讲中宣布了 Project GR00T,这是我们路线图上的一个基石计划。其使命是创建一个人形机器人的基础模型。为什么是人形?因为这是最通用的形态因素,因为我们生活的世界是为人类和人类习惯定制的。原则上,我们在日常生活中能做的一切,都可以在足够先进的人形硬件上实现。

GR00T接收多模态指令(如语言、视频、演示),并在仿真和现实世界中开发技能。它建立在 OSMO(一个新的计算编排系统,用于在DGX上扩展模型,在OVX上进行仿真)之上。我们使用Isaac Lab为人形机器人运行大量不同的环境,希望模型能够泛化到各种技能和形态,并实现仿真到现实的零样本迁移,从而利用GPU驱动的快速仿真大规模扩展训练。

总结与展望

在本节课中,我们一起探索了构建通用人工智能代理的旅程。我们从AlphaGo的单一技能出发,认识了实现通用代理所需的三大支柱:开放环境、海量数据和基础模型。我们深入了解了以Minecraft为环境的MindDojo框架、从视频数据中学习奖励的MineCLIP模型、通过编码实现终身学习和技能扩展的Voyager代理、能够控制数千种不同机器人形态的MetaMorph模型,以及利用超实时仿真和GPT-4自动化设计奖励函数、实现超人类灵巧操作的Eureka系统。

最后,我们看到了英伟达将这些技术整合,通过Project GR00T迈向通用人形机器人基础模型的宏伟蓝图。我相信,在未来,所有移动的物体最终都将是自主的。Project GR00T和人形机器人只是第一章。终有一天,我们会意识到,无论是《机器人总动员》还是《星球大战》中的代理,无论它们存在于虚拟还是物理世界,都只是向同一个基础代理发出的不同提示。而这,朋友们,就是我们追求通用人工智能的北极星。


注:本教程根据英伟达GTC 2024大会中Jim Fan的演讲内容整理翻译而成,旨在以清晰直白的方式呈现其核心思想与研究项目。

003:CUDA - New Features and Beyond

概述

在本节课中,我们将跟随英伟达杰出软件架构师Steven Jones的视角,探讨CUDA并行计算平台的最新进展与未来方向。课程将围绕一个核心主题展开:在当今能源受限的计算世界中,如何通过硬件与软件的协同创新,在提升性能的同时,实现更高的能效。我们将从计算与数据移动这两个主要的能耗来源入手,深入分析低精度计算、张量核心、即时编译、Python生态集成、大规模系统编程以及Grace Hopper统一内存架构等关键技术如何共同塑造高效能计算的未来。


能源:计算的终极约束 🚀

现在,让我们开始今天上午的课程。我很荣幸地向大家介绍Steven Jones。

Steven是英伟达的杰出软件架构师,他将为我们展示CUDA并行计算平台最新、最伟大的成果。

他在英伟达工作超过14年,最初是一名软件工程师。

2008年,他成为CUDA团队的高级软件工程师。期间,他曾在SpaceX短暂工作,并见过埃隆·马斯克,他可能会分享一些相关经历。

但那段时间对他而言是一次很好的“分心”和“转向”。今天,他将结合他在剑桥大学获得的航空与航天工程硕士学位经验进行分享。

接下来,我将把时间交给Steven,请他谈谈CUDA。

非常感谢各位的到来。这真是太棒了。我确信每个人都这么说。

但我还没参加过一场演讲。能真正与人交谈,而不是对着屏幕上的摄像头录制演讲,这种感觉真的很棒。

所以,非常感谢大家来到这里。我是CUDA的架构师之一。

因此,我的时间都花在思考CUDA平台、语言以及与之相关的所有系统和组件上。同时,我也与硬件团队紧密合作。

尽管我是软件工程师,但我大约一半的时间都在与硬件团队一起工作,研究我们下一代以及下下代GPU将会是什么样子。

因为我们有幸能够将硬件和软件结合起来,从而构建我们想要的编程模型,并为我们构建的硬件进行编程。

现在,我将从我在与硬件团队合作中学到的一些东西开始今天的分享。

我认为这确实驱动了我今天要谈论的许多事情的思考方式,也影响了我对硬件如何受物理定律以及我们在设计硬件和编写软件时所面临约束的理解。

在英伟达的加速计算大会上说这个可能有些争议,但加速计算并非只关乎性能。

如果你参加了昨天的主题演讲,或者观看了Jensen的演讲,他真正谈论的是能效。

没错,这不仅仅是性能。它关乎每瓦性能。因为最终,你必须为这些设备供电。

你必须为机器提供能量。因此,效率才是你必须关注的关键指标。是的,你希望提升性能,但你也必须在提升效率的同时进行扩展。

为了准备这次演讲的开场,我做了一些研究,并找到了一个明显的例子。我查看了数据中心的情况。

全球正在以惊人的速度建设数据中心。他们每天大约要建成并启用6到7个数据中心。

但我试图查找他们建设的数据中心数量时,发现没有人按数量列出数据中心。他们按兆瓦列出数据中心。

因为功率是数据中心中真正重要的东西。目前北美有总计5吉瓦的数据中心。

明年还将有另外3吉瓦的数据中心投入使用。当你去租用数据中心时,你是按每月千瓦来付费的。

没有人关心你租用了多少台服务器。没有人关心你租用了多少数据中心,你是按每月租用功率来付费的,因为功率才是计算中真正重要的指标。

一个中等规模的数据中心通常运行在20兆瓦左右。这是因为我有一个大型建筑,接入了一个巨大的电力连接器,这个连接器提供20兆瓦的电力。

所以,如果我制造出一款速度翻倍的新芯片,但它的功耗也翻倍,我无法神奇地向这个房间注入更多电力。

我最终只能安装一半数量的芯片。我有20兆瓦。问题是,我能用这20兆瓦做什么?

同样,如果你观看了Jensen关于Blackwell的主题演讲,他谈了很多关于能效和功率效率的问题。这是一个非常重要的焦点。

在硬件方面,这是他们都在思考的问题。每一个晶体管都至关重要。

但这不仅仅是在数据中心。在我自己家里也是如此。我的台式机从墙上获取电力。

我不能给它接入10吉瓦的电力。如果我在美国,我的最大系统功率是1.5千瓦;如果我在英国,则是3千瓦。

我的笔记本电脑功率甚至更小。因此,每个人都受到功率的限制,这比其他任何因素都更重要。

所以,这确实完全关乎能源。

我们面临的挑战是,能源平衡方程正在恶化。

左边的图表是众所周知的摩尔定律图表。它展示了一系列数字,追溯了自摩尔在1970年左右提出其定律以来的晶体管密度。

它几乎一直呈指数增长。左边是对数坐标图。

在右边,我去了台积电的网站,提取了他们不同芯片及其晶体管密度的所有信息。

那条橙色的线当然也在呈指数增长。但当你仔细查看这些数据时,你会发现另一个现象。

那就是功率效率的缩放比例。当我缩小晶体管时,开启它们所需的电子更少,因此功耗更低。

但功率的下降速度跟不上晶体管数量的增长。

在一个能源受限的世界里,这是一个问题,因为当我不断增加晶体管时,我必须解决功率问题。

显然,我们非常关注硬件的效率。这至关重要。当然,我这么说是因为我是软件工程师。

但从软件效率的角度来看待这个问题也同样至关重要。

因此,我将讨论几个关键的能耗来源。一个是数据移动,另一个是计算。

这两者是这些机器中电力和能量的明显消耗者。


计算效率:精度与张量核心的博弈 ⚖️

上一节我们讨论了能源是计算的终极约束。本节中,我们来看看计算本身如何影响能效。

从计算开始,让我们先谈谈浮点运算,因为这是正在进行的计算的核心。

事实上,大多数运行GPU的数据中心,其绝大部分浮点运算和功耗可能都花在了矩阵乘法这类操作上。

因此,我查阅并整理了一个小表格。

左边列出了英伟达提供的各种不同精度。这有很多原因,但现在我将特别关注其中一个与功率相关的方面。

在右边,我可以将其分解为执行不同精度乘法所需的能量。

FMA是融合乘加运算,它是计算机中算术运算的基本单位。

如果你看顶部,标准的单精度32位浮点运算,我已将所有数据归一化到大约1倍。

双精度大约是2.5倍的功耗,半精度大约是0.5倍的功耗。

这里的关键在于,更高精度的功耗并非线性增长。浮点乘法运算的功耗与尾数长度的平方成正比。

这就是左边图表中的蓝色部分。所以,我的数字越长,计算它所需的功耗就越大,因为我有更多的小数位,有更多的比特需要移动。

然后你看看张量核心。张量核心完全不同。它将单个操作组合在一起。

通过规模经济,你可以看到每浮点运算能耗的显著变化和改进。

因此,你在这些张量核心、这些密集处理单元上看到这些投资的原因之一就是:我的数据中心有20兆瓦,我想尽可能多地塞入浮点运算能力。

这正是这种改进的来源所在。

因此,你可以看到这些有趣的平衡。双精度FP64张量核心,这里看的是Hopper H100的数据,比单独的乘加运算更高效。这就是我所说的规模经济。

但如果你看看16位精度的差异,它的效率不是高1.5倍,而是高4倍,因为同样是尾数比特数的平方效应为我赢得了功耗优势。

但我要看一个我认为更有趣的东西,那就是这些64位运算与这些低精度张量核心之间的差异。

64位运算是单精度功耗的2.5倍,而低精度张量核心的能效则高出约20倍。

当然,64位精度数和16位精度数之间存在巨大差异。

事实证明,差异并没有你想象的那么大。这并非新研究,但最近有很多相关工作。

我真的很想告诉你们这个,因为我认为这对我来说,是我们应对功耗挑战的一种非常令人兴奋的方式。

几年前,我介绍过我同事Asm Haar的一些工作,下面有论文引用。他们使用张量核心进行LU分解矩阵求解,其中繁重的计算在16位精度下完成。

然后通过一个迭代过程,即VMS过程,将你的16位结果逐步提升回64位精度值。

在论文中,他们研究了这一点。这张图底部显示了迭代次数。

我使用16位张量核心,它们实际上输出32位结果。然后我迭代大约34次。

中间那条线是FP64的精度水平。我可以越来越接近最终结果。最终,我超过了原生64位数的完美精度。

因此,这在结果上没有任何妥协。这与你会得到的结果在比特级别上完全一致,只是我使用了能效高得多的张量核心来完成繁重的计算。

这真是一件大事。这里有一张图表,是我这周末请人帮忙运行的。

运行的是一个LU分解求解,就是前面流程图中的那个。绿线是GH200的顶部,两者都是200,绿线是16位加64位迭代。

图表中间的蓝线是纯原生的双精度值。

所以你可以看到,你不仅获得了底部巨大的功耗优势,每瓦浮点运算性能提升了近6倍,这令人难以置信。

现在,使用这种技术,我可以在功率受限的数据中心中,比使用原生双精度数获得完全相同结果时,多做6倍的浮点运算。

同时,我的速度也快了近4倍。所以,我更快,也更高效。这太棒了,意义重大。

这个算法实际上已经在Cusolver库中实现。但我看到,这种技术正在扩展到所有领域。

如果我能更快、更高效地完成工作,这就是我们应对即将到来的功耗墙的一种方法。

不仅仅是Asm的工作,其他人也在研究。我的老朋友,东京大学的Rio Yocottta,他和一些同事写了一篇论文,研究了一种完全不同的方法。

但同样使用了低精度,在他的案例中是整数张量核心来进行矩阵乘法。

我们英伟达的一些天才工程师实现了它。他们所做的不是使用像GH200这样的高功耗芯片,而是使用了L40或L40S。

这是功耗较低的数据中心部件,它本身就没有原生的双精度张量核心。

利用L40S中的16位张量核心,他们能够运行矩阵乘法,性能提升了6到7倍。

甚至在没有适当的高性能双精度单元的情况下,他们将其与A100进行了比较,我没有放在图表上,但性能达到了A100的一半。

这绝对令人难以置信。这为功耗低得多的部件打开了大门,使其能够实现A100 50%的性能,这太不可思议了。

不仅如此,功耗节省也同样显著。在性能提升6到7倍的同时,每瓦性能也提升了7到8倍。

所以这意义重大。这让我着迷。我很幸运能做这个演讲,我可以找到公司里正在发生的所有这些很酷的事情并告诉你们,因为我觉得它们很有趣。

我认为这真的很吸引人,因为我们可以用这类技术做很多事情。


编程张量核心:从库到内核融合 🔧

上一节我们探讨了低精度计算和张量核心带来的能效革命。本节中,我们来看看如何实际编程和使用这些强大的张量核心。

现在,张量核心本身。很多人来问我,如何编程张量核心?

张量核心是一个复杂的系统,它们有所有这些不同的精度和不同的使用方式。

但你访问张量核心的三种主要方式是:首先通过cuBLAS数学库。

这是自CUDA诞生以来就存在的基本工具,它是线性代数库。你调用一个矩阵乘法,它会自动通过张量核心执行。

cuBLAS实际上调用的是中间那个叫做cuBLASLt的库。cuBLASLt你也可以自己访问,它是一个公共库。

它提供了这些高级API,让你可以真正控制张量核心的更多方面。张量核心有很多不同的配置和模式,你可以真正访问它们。

在右边,我们有叫做CUTLASS的东西,如果你以前听过我的演讲,我可能每年都会谈到它,因为它确实是程序员使用张量核心的方式。

它让你在自己的内核中编写张量核心代码,并访问所有不同的旋钮和配置。

因此,我以另一种方式画出了这个图,因为实际上有几个不同的维度。

左边是cuBLAS的生产力维度,我调用一个API,就能获得峰值加速。

右边是控制维度,如果我真正想开始调整它,并将其与我的数据合并和融合。

数学库团队所做的工作之一就是开发了设备扩展库,叫做cuBLAS设备扩展库。

这将左边cuBLAS的生产力路径带入了你的设备内核。

因此,虽然CUTLASS是一系列层次化的C++类,提供了极其精细的控制,但cuBLAS DX侧则采用了完全不同的方法。

其理念是,你可以通过一个简单的gemm调用在你的内核中激活张量核心,就像你在CPU上使用cuBLAS一样。

那么,你为什么要这样做呢?因为有时你不仅仅想要一个矩阵乘法。

你还想对结果进行一些操作。这就是我们所说的融合。你获取一些数据,以某种方式处理它,进行一些大型矩阵操作,然后以某种方式使用结果。

通过将所有这些东西融合在一起,在这个图表中,通过将预处理步骤、两个矩阵乘法融合在一起以及后处理步骤全部放在一个内核中,与使用thrust和cuBLAS进行一系列调用的方式相比,性能提升了三倍。

因此,能够将相同的简化API放入你的内核中,并按你想要的方式定制它,也能带来性能提升。

同样,在这些案例中我没有展示每瓦性能,但所有这些案例都达到了峰值性能,而且通常能耗更低。

对于FFT也是如此。我去年实际上展示过这个,因为FFT的设备扩展库已经开发了一段时间。

FFT同样,将FFT与你其余的操作融合。在这个案例中,我将三个内核融合为一个。

同样,你看到了这些速度提升。这很大程度上来自于融合,我以能够将大量工作串联在一起的方式真正定制了我的内核。

我只加载一次数据。如果你还记得,我说过功耗成本有两个原因:一个是数据移动,另一个是计算。

这解决了数据移动问题,使得我的计算能够密集地应用其上,而无需在中间进行数据移动。

那么这是如何工作的呢?通过基本的内核融合。可能现在在座的许多人都知道这个。

如果我通常有一系列操作,也许我会进行一些精度转换,进行矩阵乘法,然后在其上运行一个激活函数,比如ReLU或其他类似的东西。

这是一些非常标准的操作序列。这就是刚才那些图表所展示的。

通过将它们融合在一起,你只加载一次数据,对其进行多次操作,然后在另一端存储数据。最终得到这些单一的融合内核。

这是一个好主意,如果可能的话,每个人都应该这样做。挑战在于,我不只做一件事,我可能要做100种不同类型的事情。

所以我在这张幻灯片上只画了四个,因为这是我所能容纳的。但即使只有四个,我也有64种可能的组合。

我不可能提前构建每一个。如果每一行有100个,我就有100万种不同的组合。这根本不可行。

所以我看到的是,当人们构建这些融合代码时,他们也越来越多地转向即时编译、运行时编译。

你说我的程序需要这个和那个,然后精确地为我所需配置它们,当场编译并运行。

因此,我看到即时编译在CUDA内部的工作流程中变得越来越重要。

我们的编译器团队付出了努力。这张图表涵盖了大约18个月的时间,从CUDA 11.8开始。

他们持续降低了即时编译的性能开销,因为正如我在左下角所示,你经常有这种迭代循环。

你构建一个融合内核,运行它,获取一些数据,查看下一步要做什么,构建下一个内核,如此循环。

编译时间成为你主程序循环的一部分。因此他们非常努力地工作,将编译时间降低了。

这只是显示了“Hello World”的编译时间,所以基本上只是开销。“Hello World”是你能写的最简单的程序。

因此,即时编译的开销在过去18个月里下降了6倍。所以,重点确实在于我能以多快的速度操作,能以多快的速度编译,因为即时编译无处不在。

现在,即时编译。这些编译工具。我经常谈论,如果你看过我的演讲,当我思考CUDA时,我总是考虑整个平台。

我作为CUDA架构师之一的工作就是思考所有这些事情如何协同工作。但没有什么是孤立存在的。

这里有一个倒金字塔。编写编译器的人非常少。有一些你们这样的人,我们爱你们,我们绝对支持你们,我们有LLVM和所有其他你们可以瞄准的目标。

但基本上,真正坐下来开始编写编译器的人数可能两只手就能数过来。在这之上,有内核库、主机端库。

然后是最顶层的框架和SDK的庞大宇宙。


Python生态:拓宽CUDA的疆界 🐍

上一节我们讨论了即时编译和CUDA平台的层次结构。本节中,我们来看看Python如何成为连接底层硬件与庞大开发者群体的关键桥梁。

现在,这些天我思考很多并密切关注的事情之一就是Python。

因为当我观察Python开发者的世界时,我认为我的金字塔突然变得宽得多。

在顶层,我不是有100万用户,而是有1000万用户。

因此,你在底层构建的东西与它在顶层产生的影响之间的差距甚至更大了。

所以,对编译器进行更改,比如即时编译,在Python中极其重要,因为Python是一种非常运行时解释的语言。

你不断地动态生成数据。因此,编译在循环中是完全正常的。事实上,Python解释器基本上就是其中之一。

所以我们在最底层所做的这些改变影响了极其广泛的人群。

因此,审视Python技术栈,你必须在所有层面进行投资。我在这里列出了一些我们真正关注的领域。

但我们的目标,我把它作为这张幻灯片的副标题,但确实是我们对Python发展方向的愿景,也是我们所有CUDA人的愿景。

正如我所说,为Python开发者提供完整的英伟达体验,整个CUDA生态系统对Python编程可用且可访问。

其中一个方面是,你看到我们的库和工具开始越来越多地支持Python。

数学库团队投入了大量工作来生成符合Python习惯的接口,它原生且自然地连接Python应用程序到这些加速库。

我认为从根本上说,库是人们访问GPU加速的最常见方式。

顺便说一下,通过许多这些幻灯片,我附上了其他人演讲的链接。这是我朋友Artie和Harin的演讲链接,他们谈论了很多关于库的一切,这是一个重要的部分。

所以,如果你想了解更多,最后有一个索引列表,你可以去查看并了解我在本演讲中引用的所有不同演讲。

但Python库是一个完整的栈,它从你的应用程序开始,通过即时编译,经过不同的API,包括CPU端和GPU端,一直到底层库、GPU加速库、英伟达性能库,它们针对ARM处理器、MKL等。

所以,这是一个用于加速库的通用前端。

我之前谈到的张量核心的另一个方面是CUTLASS,它为你提供了对张量核心的详细配置控制。

CUTLASS也有一个Python接口。在左边这里,我只有几个框,一个显示C++接口的样子,下面显示等效的Python接口。

你可以去安装它,可以找到文档等等。在右边,他们将其与Python的PyTorch扩展集成。

因此,你可以从CUTLASS生成PyTorch。你可以自动将CUTLASS扩展的张量核心自定义内核带入PyTorch。

上一张幻灯片有CUTLASS的链接。去看看CUTLASS,它会告诉你更多关于这类事情如何工作的信息。

正如我所说,我们不仅在库上投资,也在工具上投资。

因此,CUDA平台的开发者工具团队,Insight团队,一直在努力将CPU代码和Python代码的输出组合在同一时间线中。

所以在右边,我有一个这样做的例子。同样,代码注释,我们称之为NVTx,它允许你通过注释来标识代码区域。

因此,你可以有一个绿色区域、蓝色区域,这样在复杂的性能分析和跟踪中更容易找到你想要的区域。

所有这些都可以通过JSON文件配置,并且都能很好地与Python程序配合工作。

所有这些不同的部分,我展示的金字塔,你必须开始在所有不同的地方放置构建模块,这样最终你才能得到一个上下贯通、全面工作的生态系统。

正如我所说,我四处寻找,发现了这些人们正在做的令人惊叹的事情。其中一件真正吸引我眼球的事情是Warp。

我的朋友Miles Macklin,他通常在新西兰,但他这周来这里做一个关于Warp的演讲。

他领导一个团队,构建了这个叫做Warp的东西。它是一个非常特别的东西。它让你用Python编写GPU内核,但这些内核是可微分的。

它原生且自动地获取你编写的内核,并通过即时编译,自动生成你的流程的反向模式微分版本。

因此,你可以有一个前向传递。它记录下来,你可以将其作为后向传递回放。

所以你可以构建模拟代码、物理代码、计算代码。在内核中,GPU加速,直接编译到GPU上运行,获得完整的编译后GPU性能。

但同时,这个可微分的反向管道也可用。你可以用它做的事情令人难以置信。

这里有一个完整的编译器链,接收Python代码,将其转换为PTX,并在GPU上运行。

但它让你能做这些事情,这些令人惊叹的模拟事情。他的演讲链接在下面,去看看吧。

首先,这是令人难以置信的技术。其次,他在计算机图形学领域做这个,所以他有漂亮的视频和视觉效果。

但这是一个例子,模拟像撕开面包这样的塑料系统这样极其复杂的东西。

大的那个是模拟,地面实况看起来几乎一模一样。能够做到这一点,并教会一个神经网络模型遵循像这样的塑性变形函数并正确工作。

通过自动微分,你可以直接运行模拟。反向微分传递用于训练模型。

然后模型可以非常快速地开始产生像这样令人惊叹的计算机图形和像这样的模拟结果。去看看他的演讲吧。


大规模系统:从单机到千卡集群 🌐

上一节我们聚焦于Python生态和单设备编程。本节中,我们将视野扩展到大规模分布式系统,看看CUDA如何助力跨越数千个GPU的超级计算。

去年,我很少重复使用幻灯片,但这一张很好地总结了我告诉过你们的一个叫做Legate的东西。

我想再告诉你们一些,因为它再次契合了我一直在谈论的许多内容。

Legate是一个框架,它获取你的基本单线程代码,并将其非常广泛地分布到大量机器上。

这些机器变得越来越大,处理越来越多的数据,编程这些东西变得越来越困难,这就是像Legate这样的东西的用途。

它是一个栈,顶层有库,中间有运行时,它运行在加速库之上,跨越你的整个机器。

最后,我展示了一个使用NumPy的基本模板基准测试,它可以与这个我们称为cunumeric的东西通信,cunumeric是一个基于Legate的NumPy实现。

它自动将你的NumPy程序扩展到1000个GPU上。这是一个相当简单的计算,但它是一个非常强大的工具。

因此,他们所做的是将Legate应用到JAX框架上。JAX是另一个用于可微分计算的框架,你们很多人可能听说过。

JAX框架当然在机器学习、AI中大量使用,但它实际上是一个可以运行几乎任意模拟的框架,是另一个可微分计算的东西,类似于我刚才展示的Python中的Warp。

JAX基于XLA编译器,XLA接收JAX的所有不同层,并将其编译到特定目标。

因此,团队所做的是在编译器级别,在XLA级别将Legate集成到JAX中。

所以你的JAX程序结构不变。你的JAX程序结构相同。你标记一些东西,用装饰器和配置来指示程序的流水线阶段,我认为他们将来能够将其放入编译器中。

然后这个插件进入XLA,JAX的编译器。然后处理你的代码,将其匹配到整个Legate运行时,并允许其扩展。

因此,他们用这个做了什么,我的朋友Wan Chan有一个关于这个的演讲,他会深入更多细节,因为我只能在每个话题上给你两三张幻灯片。

运行它,与PJIT和Al等JAX内部常见的分布式框架进行比较,扩展性和易用性令人印象深刻。

所以,如果你是JAX程序员,去看看他的演讲,因为扩展能力确实是一件非常强大的事情。

同时,跨越这些大型系统的扩展。再次,奇怪地重复使用去年的另一张幻灯片,只因为它是一个很好的描述。

Insight系统团队投入了巨大的努力来开发他们的分布式系统分析工具。

在GPU上设置断点已经够难了,因为有25万个线程。弄清楚如何制作一个工具来中断25万个线程并告诉我有用的信息是极其困难的。

现在我将这个扩展到数千台机器。这根本不可能。所以你需要新工具,他们真的在这些新工具上进行了投资。

我之前给你们展示过一些。我会再展示一张快速图片。但他们所做的一个关键部分是,他们不仅将这些大型分布式工具、多节点工具嵌入到Insight系统的主视图中,还可以嵌入到你的Jupyter笔记本中。

因此,你的工具在你编写代码的地方就可用了。同样,这都是关于在技术栈上下各处放置构建模块。

这太棒了。他们处理海量数据,并能将其提炼成一张图片。在这个案例中,我有一张热图,显示计算利用率和通信是否重叠,这样我就能找到只有计算的机会区域,可以进行异步通信。

再次,都是关于能源。我的通信和计算协同工作。一切都比我一前一后做它们移动得更快。

然后我以高功率运行了两倍长的时间。

所以,在规模的一端是Legate,但另一端仍然是一个非常大规模的系统,叫做NCCL。

这个东西我们已经有一段时间了。NCCL已经存在好几年了,它不断演进,一直有很多新东西加入。

我朋友Jerry有一个完整的演讲,他谈论所有与多GPU编程相关的事情。他是我认识的最好的演讲者之一,他的演讲绝对值得一看。

但NCCL所做的是,它为你提供低延迟、细粒度的控制,以重叠计算和通信。

这是很多你使用的东西的基础,而你甚至没有真正意识到你在使用它。

但我要告诉你们的是实际上位于其下的东西。因为它真的很有趣。你知道,这些NCCL之类的东西在我的金字塔中位于底层。

这是可能只有100人使用的东西,但通过不同的层影响了一百万人。其中一项技术,深深嵌入其中的,叫做GPU Direct。

我以前告诉过你们关于GPU Direct的事情。我会快速解释一下它是什么,因为当我有GPU产生的数据需要发送到网络,而网络历史上是连接到CPU的外设时。

在过去,在我有GPU Direct之前,我的GPU生成数据,我必须经过四个不同的步骤才能将这些数据发送到我的网络上。

我必须同步,复制几次,触发一些东西。所以要通过这四个跳转才能将数据从GPU发送到网络。

因此GPU Direct出现了,并说,这太荒谬了,尤其对于我要移动的数据量。让我们直接把数据移动到网络设备。

所以我消除了第四个跳转。现在,直接的单一路径复制,GPU Direct允许我生成数据,然后直接从GPU发送到网卡。

这非常强大。但它仍然让CPU参与循环。所以他们想出了一个叫做GPU Direct Async的东西。

这是多年来随着他们改进这些技术而发生的演进。所以现在我有了一个大约两步半的过程。

GPU Direct Async所做的是,CPU可以进行设置,但让GPU触发它。

因此数据自动直接移动。有一些CPU代理处理触发。但现在完全由GPU控制。

所以GPU程序不必停止以便发送数据。它可以继续运行,只是发出信号:现在发送,现在发送,现在发送下一个。

最后,他们有了这个叫做GPU Direct Kernel Initiated的东西。这是你将CPU完全排除在画面之外的地方。

这是一个真正的两跳过程。你不可能少于两跳。你必须首先准备网络,告诉它数据要来了。

第二件事是将所有数据流式传输到网络上。两跳是这里能达到的最低数字。

所以我们从4跳到了3跳,到了2.5跳,到了2跳。这将所有东西完全嵌入到内核中。

结果令人难以置信。这是一个图神经网络训练的运行结果,我稍后会详细解释。

中间那条线是那个两步半的过程。所以两步半的过程仍然比普通的非GPU Direct过程快20%。

但一旦你将所有东西都放在GPU上,并将CPU排除在画面之外,我不再有CPU线程等待、轮询和尝试协调一切,所有东西都直接从产生数据和发送数据的GPU出来。

在这个特定的训练运行中,端到端速度提升了两倍。就传输、特征传输、你关心的数据移动而言,你看到的速度提升大约是一个数量级。

因此,使通信更流畅、更自主的能力,其潜力是巨大的。

这些东西静静地、默默地插入像NCCL这样的东西。它们插入像NCCL这样的东西。NCCL建立在这个之上。

对于NCCL,在左边,小消息是最难的。一字节的消息极其困难,因为你为少量数据发送了大量开销。

在这里,这大大降低了你的延迟。在右边,你获得了更大的带宽和潜力,因为同样,你削减了开销,可以更高效地进行通信。

再次,工具集成无处不在。能够看到正在发生的事情非常重要。我们已将NCCL跟踪集成到工具中。


Grace Hopper:统一内存架构的威力 🧠

上一节我们探讨了大规模分布式通信的优化。本节中,我们来看看另一种革命性的架构——Grace Hopper,它通过统一内存从根本上改变了CPU与GPU的协作方式。

所以,我想谈谈我认为过去一年我被问得最多的事情,那就是Grace Hopper及其编程模型,以及你如何为这些机器编程。

CUDA的哲学一直是,我们有一个单一的程序,由本质上用__global__标注的GPU函数和一个CPU函数构成。

它都在一个程序中。它是一个异构程序,不是两个独立的东西。它是一个程序,函数在两个不同的地方运行。

这关联到Jensen几周前对我说的一些话。他说,你不是用并行工作取代串行工作,而是扩展它。你需要两者,并且你想同时做两者。

所以理念是CPU代码在CPU上运行,GPU代码在GPU上运行。在它们之间,历史上我们有这个PCI总线。

所以即使你有这些非常高速的内存,PCI总线历史上一直是一个瓶颈。

因此,我们与Grace Hopper芯片一起做的显而易见的事情,我们去年讨论过,就是你可以用这个叫做NVLink C2C的连接将它们组合在一起,它比PCI快很多很多倍。

所以我的数据传输变得好得多。这被称为Grace Hopper。这就是这台机器。

但它不仅仅是一个具有非常快速互连的设备。事实上,它可以是这样,但我认为这真的错过了重点。

我喜欢这个东西的原因是,你真正拥有的是一个具有两种特性的处理器,原生地做两种不同的事情。

我有两个内存系统,各自为其处理器优化。但一个针对延迟系统优化,我的CPU是一个延迟处理器。它有深度缓存。它关心线性操作,非常快。

我的GPU是一个吞吐机器。它有这些非常高带宽的内存和非常高带宽的缓存。

你对待这些东西的方式不同,因为这些东西运行代码的方式不同。因此,在一台Grace Hopper机器上,它是一个单一的统一内存系统,有两种不同的执行方式。

如果我有一个链表,在CPU上运行它更好。如果我有一个并行归约,在GPU上运行它。这就是它的用途。

我可以选择,就像我的程序是两种东西的混合体,我可以字面上在任何我想要的地方运行任何我想要的东西,因为这两个系统通过一个地址空间统一起来。

所以它不仅仅是快速链接。更重要的是GPU可以看到、修改和接触CPU内存,这样做我们可以检测到,并可以将其移动到GPU。

因此GPU可以获得其非常高带宽缓存的好处,性能提升可能高达10倍,如果你一直在接触那些数据。

因此,结合单一地址空间,同时智能地在处理时移动东西的能力,其力量难以置信。

这让我能够将计算和数据放在需要的地方。同时,当然,迁移不影响CPU。它仍然可以访问、接触和看到那些数据。

当然,有一点额外的延迟,因为它要经过总线。但真的,它是一台机器。这就是我想要表达的观点。

这是一些来自Thomas Schultter演讲的结果,我很慷慨地能够展示。他是CCS的主任,负责在瑞士新启动的Alps机器(一台Grace Hopper机器)上运行ICON代码。

这正是一个绝佳的例子,说明了我刚才谈论的内容。这里有一个模拟,你在CPU代码上纯粹运行海洋模拟,在GPU上运行大气模拟(绿色部分),耦合极其紧密。

所以你移动大量数据。因此历史上,你或多或少受限于CPU代码的性能。

但当你迁移到像GPU这样的东西时,你真的能够同时运行这两样东西。CPU代码在CPU上,GPU代码在GPU上,数据交换紧密且自动。

结果是,你知道,速度提升了三倍。这令人难以置信。这是在64个GPU的规模上。

你知道,这是那种将影响我能预测天气预报的天数以及诸如此类真正重要事情的事情,这些事影响着每个人。

同时,其他很好的例子,我的同事Matt有一个关于这个的演讲,只是看语言模型的微调。

一个语言模型是一系列Transformer层。当你处理这些并进行前向传递训练时,你生成这些中间张量。

可能有很多层,因此有大量数据。通常我们做的是丢弃数据。然后在反向过程中,我们重新计算它。

所以我们加倍了计算量,以节省一些内存。但有了Grace Hopper设备,我实际上可以缓存一些。

我不会丢弃一些,我会保留一些在GPU上,小的东西不值得丢弃,蓝色的东西。

相反,我会缓存它们并保存在Grace内存中,因为记住,内存只是一个巨大的内存系统。

然后在我的反向过程中,我可以从GPU内存中召回它。所以我不必做那个重新计算。

结果是在这个特定例子中速度提升了20%。这是一个100亿参数的混合专家模型。

你可以看到左边,浅绿色是卸载,深绿色是重新计算。重新计算时间当然两者相同。

但如果我在Grace Hopper上做,如果我做数据卸载而不是重新计算,我在时间上获得了收益,因为我有了这个非常紧密耦合的内存系统让我这样做。

另一个例子,这些天我看到很多,是图神经网络。

图神经网络是那种金融机构用来分析你的信用卡是否被欺诈使用的东西,诸如此类,信息的大规模、大规模、大规模互连。

GraphSAGE模型是使用神经网络解决图问题的主要模型。所以这是一个简单的工作原理概述。

我的朋友Joe Eaton有一个关于这个的完整演讲。所以再次,他是专家,我只是信使。

但基本上,采样你的邻居。你有这些在所有不同类型节点上运行的批量卷积网络。

图网络的挑战在于,它不仅仅是我正在操作的单一数据集合。我的整个宇宙可能被图中任意两个节点之间的边所触及。

所以我有一大堆数据,完全是随机访问的。我可能在任何一次迭代中只访问其中的10%,我不知道是哪10%,而且每次迭代都会不同。

所以我需要的是一大池非常快的内存,这样我就可以在遍历GraphSAGE模型流程时随机访问和接触它。

将其放在Grace Hopper上带来了令人难以置信的性能提升,以前我花了很多时间获取数据,将东西移入移出GPU。

现在有了这个统一的内存池,你看到速度再次提升了两倍。这些是巨大的提升,两倍的速度提升在大多数代码中就像一代人的速度提升。

你会花很长时间,整个博士学位,才能在某事上获得20%的速度提升。这是两倍,因为现在你有了可以做事的新架构。


CUDA图:动态工作流的未来 🎯

上一节我们领略了Grace Hopper统一内存架构带来的性能飞跃。本节中,我们来看看CUDA图的演进,它如何将动态控制流引入GPU,进一步减少CPU干预。

最后,从一种图到另一种图。我必须承认,这有点像是,作为一个工程师,你知道,你计划某事,设计它。

CUDA图是我几年前开始设计的东西。你有很多想法,而到达你想去的地方花费的时间比你想象的要长得多。

因此,CUDA图的想法,我已经谈过几次,希望你们知道,其理念是你预先定义你的工作流。

然后我可以发出一个单一的启动操作来启动任意数量的工作。所以它可以是一种将工作放到GPU上的快速方式。

我可以看到启动速度的显著提升。但它远不止是一种快速启动工作的方式。

所以我实际上回去找到了我2018年的幻灯片。这是为GTC与开发者的对话准备的,只是问,这对你有用吗?

我只是想抓取一些当时的幻灯片,因为看到我当时的想法和它最终的发展方向是如此有趣。

所以,你知道,对任务图的快速描述,你有这些节点,它们可以是不同的东西。这基本上是我们构建的。

我有一个序列,你说,你知道,任务图的属性。它们是可重用的。我可以一遍又一遍地启动它们。

我只需要定义一次,然后运行多次。但是循环,我想要一个图不仅仅是直接的依赖流。

为什么不能跳回开头?为什么不能有一个动态图,一个节点B可以基于它产生的某些数据决定是去C还是D?

数据依赖的动态控制流。最后是层次结构,这是任何图系统的关键部分。

但这些字面上是我关于图的最早的幻灯片,说,这就是我想要的。最终,六七年之后,我们构建了它,已经过了多久。

所以让我告诉你们我们构建的这个东西,因为它真的,它是我脑海中关于这些东西如何被使用的一切。

我认为它打开了很多潜力的大门。所以左边这里是我称之为共轭梯度的东西的极其简化的版本。

它就像一种梯度下降类型的东西。它是求解线性方程组的一种非常、非常标准的方式。

左边只是伪代码。但关键部分在于有一个迭代循环。有一个主循环,我在其中做一些事情。

我一遍又一遍地运行那个主循环,直到得到解。循环体,传统上,对于CUDA图,我的循环体的想法是,我将把那个体变成一个图。

然后我将多次运行那个图。所以我的程序看起来非常简单。我不必做所有这些不同的事情,我只有一个启动调用。

这很棒。这就是人们今天使用图的方式。它非常高效地加速了事情。但挑战在于,数据依赖的执行非常常见。

迭代直到收敛,这几乎是普遍模式。迭代需要读回结果并决定是否要再次执行while循环。

所以我必须不断停止我的程序,复制数据回来,以便评估我的残差是否大于epsilon。

然后我可以回去做另一个启动。现在,我们将数据依赖的执行移动到GPU上。

所以我获取主循环,现在我用这些新节点创建一个图。我们创建了两种新节点类型。

我稍后会告诉你们它们。一个if节点和一个while节点。现在我可以将while放在GPU上。

所以收敛检查、while检查是在不需要回到CPU的情况下完成的。我的程序完全不再有主循环。

主循环现在完全动态地移动到了GPU上。我可以只启动一个条件图,如果你想这么叫它的话。

我的程序简单多了。所以现在CPU不在画面中了。我可以同时独立运行10个这样的程序,因为我不再需要CPU线程来管理它们。

它的工作方式是我们采用了这些条件节点之一。它只是另一种图节点,但它是一个要么是if要么是while的图节点。

在图的条件节点内部,我可以评估条件。它要么运行一个子图,要么不运行。记住图是层次化的。

这是我最早幻灯片上的事情之一。所以我有这些条件节点,它们封装了条件为真时要做什么。

因为图是层次化的,你可以嵌套这些。我可以有一个条件节点在另一个条件节点内部。所以我想要任何深度都可以。

所以我可以有一个while节点。我可以有一个if节点,如果某事发生,就去运行这个,而这个包含一个while,它持续迭代。

所有这些都可以100%地在我的任务图中描述。很多人问我,为什么你用控制依赖而不是数据依赖来构建图?

这就是原因。这就是为什么我们用控制流依赖来构建它。因为你想能够说像while和if这样的东西,这是数据流不允许你做的。

还有其他结构。你可以在右边做像switch这样的事情。就像多个if。如果X,如果Y,如果LED,那就像一个带有case的switch。

所有这些类型的东西。if和while是关键的基本构建块。也许我们以后会自己优化switch,使其更高效。

但你知道,基本上,你现在可以在GPU上描述一个完全

004:与Google DeepMind的Vincent Vanhoucke一起探索 🤖

在本节课中,我们将跟随Google DeepMind机器人学高级总监Vincent Vanhoucke的演讲,探索生成式AI(特别是大语言模型)如何深刻改变机器人学的研究范式。我们将看到,从规划、感知到控制,机器人学的各个核心模块正在被重新定义。

大家好,欢迎来到本次会议。我是Peter Fox,本次会议的主持人。我非常荣幸地向大家介绍Vincent Vanhoucke。Vincent是Google DeepMind的杰出科学家和机器人学高级总监。他早在多年前就发起了Google Brain的机器人研究,他的团队一直处于机器人深度学习的最前沿。Vincent在2017年发起了机器人学习会议CoRL,该会议现已成为机器人学习领域的关键会议。Vincent的团队是第一个展示大规模训练机器人可能性的团队,例如你可能听说过的Google机器人农场。他们也是第一个真正展示如何将大语言模型、生成式模型用于机器人推理甚至规划的团队。最近,一些人可能听说过RT-X或RT-2模型,这是第一个真正展示可以训练从视觉和语言直接到机器人控制层的非常大型的模型。当然,这是结合了多种模态概念并直接输出机器人控制的大型预训练模型的圣杯。今天,Vincent将与我们探讨生成式AI时代的机器人学。


感谢介绍。大家能听清楚吗?好的,太好了。感谢欢迎。对我来说,能来到GTC是一种特别的荣幸。在我开始从事机器人研究之前,我是Google最早一批获得大量GPU的研究员之一。当时我们组装了一台GPU机器,开始训练神经网络。这在当时是非常秘密的,并不流行。我们不得不把机器藏在复印机后面,以免晚上被人关掉。最终,我们推出了我认为是第一个在生产环境中大规模在GPU上训练的深度神经网络,用于Google语音搜索。我们还努力游说Google在数据中心部署大量GPU。所以,Jensen,如果你听到这个,我接受现金、信用卡、Wemo、Paypal。无论如何,让我们谈谈机器人。

大约两到三年前,如果你没有与世隔绝,你可能看到AI世界发生了一场大革命,即大语言模型的出现。我们突然拥有了像常识推理或对世界的理解这样的能力,这在过去是无法获得的。对于我们这些从事机器人和具身AI研究的人来说,这是一场灾难。我们本应是下一代AGI,我们本应是将AI带入现实世界的人。因此,机器人学界产生了一种潜在的错失恐惧症,人们有点嫉妒语言建模社区突然占据了所有聚光灯。当然,打不过就加入。我们开始探索大语言模型与机器人学、具身AI之间可能存在的联系。

这原本可能只是一种非常肤浅的探索。表面上,语言和机器人学之间的联系充其量是非常薄弱的。你可以想象与你的机器人对话,或者让机器人讲故事、作诗。但发生的事情可能是我整个职业生涯中最大的惊喜。这些联系被证明是极其深刻的。事实上,它们深刻到迫使我们重新思考机器人学和AI的所有基础。我今天想讲述这个故事,因为我认为这是一个关于颠覆或对构建了整个领域的基本概念进行非常不同思考的迷人故事。我并不是说这将是机器人学未来发展的最终故事,但它是一条不同的道路,一条与我们三年前所走的道路几乎无法辨认的道路,它开辟了许多进行新研究的全新领域。

我们做的第一件事,是在ChatGPT出现时流行的做法,即试图“欺骗”聊天机器人扮演它本不是的角色。我们假装它是一个机器人,用非常粗略的术语描述它应该是哪种机器人,然后问诸如“我该如何煮咖啡?”这样的问题。有趣的是,这既奇妙又不完美。聊天机器人确实能理解煮咖啡意味着什么,它具备关于煮咖啡所需常识的良好理解,对机器人或智能体如何煮咖啡有一些概念,知道要问正确的问题。缺点是它对环境一无所知,对机器人的任何能力一无所知,因此它与现实脱节。

因此,我们尝试的第一件事是弥合这个鸿沟,建立这种联系。这项工作叫做SayCan。其背后的理念是,我们让一个大语言模型为复杂的规划问题提出解决方案。然后,因为我们使用强化学习训练机器人,机器人内部有一个模型,能够根据其当前观察到的环境,对向机器人提出的任何查询进行评分,评估其在当前上下文中的可操作性。这被称为价值函数。价值函数可以对LLM提供的所有不同假设进行排序。我们会决定如何重新排序,然后将其转化为计划。当你递归地这样做时,你可以得到一个关于如何从非常高级的问题到关于如何操作机器人以完成任务的具体语义的逐步计划。

这里有趣的一点是,这真正将规划问题提升到了语义世界。规划不再仅仅是几何上的避障,而是突然发生在语义空间中,发生在一个我们人类真正能够理解的地方。

最终看起来是这样的:你有一个机器人,你问它一个问题。它具备感知能力,使其能够对周围看到的东西进行评分。它可以拾取物体,知道可以找到物体,可以放置物体。这些都是机器人具备的可操作性。机器人会决定哪个是下一步要执行的正确动作。

让我稍微退一步,因为这将成为接下来内容的框架。我的机器人学朋友们可能会翻白眼,因为我要给你们一个关于机器人如何工作的非常粗略的介绍。实际情况要复杂得多,但这个模型足以满足我们这里的目的。粗略地说,机器人有一个循环:你感知世界,提取世界的状态。你将这个状态传递给一个规划器,规划器根据你要实现的目标决定下一步做什么。一旦你有了机器人应该做什么的计划,你就把它传递给一个控制器,控制器驱动机器人并实际执行动作。所有这些都在一个循环中,因为显然世界状态会变化。所以你重新感知、重新规划、重新驱动,并以相对较高的频率持续进行,以适应世界的变化。

我们在SayCan中所做的,只是用LLM替换了规划部分。这带来了有趣的后果,因为突然之间,这个规划器使用自然语言。你的规划器与感知和执行器之间不再有代码API。其后果是,将自然语言作为机器人内部的API,我们可以进一步利用和使用。

当时开始发展的另一件事是使用视觉语言模型进行感知,这些模型变得非常出色。这些模型相对于专门的视觉模型的性能变得非常好。因此问题是,我们能否使用这些已经直接说自然语言的视觉语言模型来控制我们的机器人,并获取有趣的感知信息?

这是我们开始研究的东西,后来发展成了苏格拉底模型的概念。这个想法是,你可以有多个模型,一些具有专门功能,如视觉模型或音频模型,然后是一个负责规划的大语言模型,你可以让它们基本上相互对话,从而就世界状态、下一步行动、要问什么问题达成共识。规划器实际上可以向视觉语言模型提问,以获取其对环境中特定部分更精细的感知信息。这种对话被证明非常强大。因此,我们有很多后续工作真正利用了在机器人内部建立一个所有模型可以相互交流的“聊天室”这一概念。

下一个工作是SayCan的一种演进。在SayCan中,我们只有一个语言模型,然后它与机器人的价值函数(内部独白)交互。在这个聊天室中,人类为机器人提供一个目标。语言模型会质疑执行该计划需要什么。视觉组件会描述场景并判断任务是否成功。这看起来就像是机器人上的一个日志,记录了查询、机器人尝试采取的动作、对干扰世界状态的反应。机器人失败了,它可以观察到失败,可以对失败做出反应,可以改变计划。你要求拿苏打水,突然苏打水不见了。那么房间里还有其他苏打水吗?我可以去找吗?完全重新规划,完全改变。这样做的好处是它完全可读,非常以人为本,因为你可以跟随机器人内部的对话,真正理解机器人正在思考什么、它的计划是什么,以及其感知或能力可能存在什么问题。

我们更进一步,研究了当机器人面对一个非常模糊的场景时会发生什么。在这种情况下,我们要求机器人把一个球放进微波炉。有两个球,机器人没有好的方法决定该怎么做。你可以使用共形预测来确定计划中存在高度模糊性,然后返回给用户(人类)请求澄清,以便机器人可以交互式地消除歧义。

我们开始做的另一件事是,当没有精确目标时,我们不是精确地告诉机器人做什么,而是让语言模型决定目标。这是在数据收集工作的背景下进行的,我们试图真正扩展机器人获得的体验多样性。我们基本上告诉运行在这些机器人上的语言模型:去探索,尝试做事情,做有趣的事情,做你不知道是否能做的事情,尝试并失败,甚至做你可能做不到的事情,然后你需要呼叫远程操作员来实际完成任务或帮助你完成任务。这真正有趣的是,突然之间你有了一个自己定义目标的机器人。因此你必须真正考虑安全性。这些机器人最初很喜欢拾取和操作笔记本电脑,因为它们能很好地感知笔记本电脑。这很令人兴奋,“我要去拿你的笔记本电脑”。所以我们不得不在提示中告诉它们:不要拾取电器,不要拾取尖锐物体。那是一个厨房,所以可能有刀,我们把刀移走了。但有趣的是,我们突然有了一种方法,可以从非常高级的安全概念(例如,不要打扰人类)这些非常宽泛、可以用自然语言解释的参数,一直延伸到实际让机器人行为与之匹配。这有点像用于引导聊天机器人走向安全行为的宪法AI概念。我们可以将其一直应用到实际遵循一般安全原则的机器人上,并增加另一层安全性。这些机器人内部有很多安全层,你可以在语义层面再增加一层,以增强机器人的整体安全性。

好的,我们已经用LLM“化”了规划器,用LLM“化”了视觉。现在,显然,接下来我们要尝试对驱动部分进行同样的处理。控制器实际上是控制机器人的一段代码。而编写代码是大语言模型非常擅长的事情。因此,我们尝试使用代码生成作为描述控制器的方式。

朝这个方向迈出的第一步是我们称之为代码即策略的工作。这个想法是,你向一个大语言模型提供提示,其中包含感知API和控制API,让它根据你提出的自然语言查询决定如何使用它们。这可以非常强大。例如,这是一个语言模型,它编写了一小段代码,对应于“将积木堆叠到空碗里”。你会注意到它使用了几个感知API(绿色部分),在这个例子中主要是玩具示例。但它也产生了一些我们没有API的函数(红色部分),它完全幻觉出了这些函数。它认为有一个“堆叠物体”函数会很有趣。然后你可以递归地进入语言模型,问它“堆叠物体是什么?”。然后语言模型可以递归地产生越来越详细的代码,一直下降到你可以实际使用的API级别。在这个例子中,我们有一个拾取放置API可以立即使用。

这种递归应用代码生成的方法在桥接不同抽象层次、一直到“底层”方面非常强大。这也开启了这样一种可能性:既然你有一个可以一直延伸到驱动的自然语言查询,你就可以以非专家的方式教机器人做事。这是一个例子:简单地“把苹果移到立方体旁边”。生成了代码,然后机器人直接撞上了东西。用户可以说:“嗯,那不好。请不要撞到罐子。”于是突然生成了对应于你心中目标的代码。这是你添加到整个奖励系统中的奖励函数,机器人学会了更好的行为。我们以多种方式做到了这一点。这是我们的小型四足机器人,我们想教它击掌。它做得不太好。你要求它把爪子举高一点。嗯,这样好。现在让它坐着做。嗯,那不算真的坐着。换个方向试试。这段代码并不明显,除非你真的知道自己在做什么,你必须是个专家才能做到。但现在,非专家可以直接在机器人上编码所有这些行为。我认为这是一个非常重要的部分,从高级语义一直到代码,确实带来了新的东西。

我喜欢这项工作的另一点是,你可以将你与机器人进行的对话(包括点赞和点踩)用于微调你的模型,显然,可以直接获得期望的行为,而无需再次教机器人。你可以将其融入模型。当你这样做时,你会得到一个更好的模型,这很明显。你还会得到一个学习能力更强的模型,因为你不仅输入对话的输出,还输入了整个对话,包括你的反应是错误还是正确的时候。结果,模型变得更好,基本上成为了一个更好的学习者。我们甚至在训练中未见过的各种任务上也看到了这一点,模型最终成为了更好的学习者,可以用更少的轮次教机器人做新行为。

顺便说一下,这一切都得益于拥有一个非常快速的模拟器。我们有一个名为MuJoCo的开源模拟器。我们最近发布了第三个版本。特别相关的是,我们有一个在GPU上并行运行、可以非常快速地执行各种行为广泛扫描的JAX实现。我们还在模拟器中集成了MPC实现,使你能够基于奖励非常快速地合成行为,并实时实验奖励塑形和观察结果。这是一个非常强大的范式,可以在开发技能和行为时拥有一个模拟器在循环中。

好的,那么,用LLM“化”一切。我们完成了吗?这个模型有一些弱点。拥有一个可解释的组件作为机器人的核心,你可以在其中进行对话并真正看到机器人的状态,这很好。但也有一些限制。有时你可能希望在规划器和感知之间建立更高带宽的连接。你并不总是确切地知道用语言总结视觉上下文可能非常复杂,并不适合精确工作。所以我们接下来尝试的是:嘿,都是语言模型,都是大型神经网络。让我们试着看看能否融合它们。

第一个融合实验是融合感知和规划。这项工作我们称之为PaLM-E。现在多模态语言模型很常见,但这是早期进行此类实验的工作之一。我们以PaLM作为语言模型,在其中添加了一个视觉编码器,以便可以一起训练它们,从而可以在输入序列中无缝地包含图像标记或嵌入,并在各种数据(如视觉问答和机器人控制任务)上一起训练。具体来说,我们曾为类似于SayCan的机器人控制计划训练这样做。这效果很好。我们看到可以直接从视觉到计划执行非常多的任务。同样,这个模型的输出都是自然语言,因此非常可解释。但现在语言模型有了“眼睛”,可以真正看到它所操作视觉场景的细节。

PaLM-E有趣的一点是,这是我们第一次看到一个真正为机器人训练,但在所有你能想象的多模态模型任务上仍然表现极好的模型。它可以做视觉问答、图像描述,在推理方面没有损失任何性能。事实上,这个模型后来被另一个团队在医学数据上微调,成为了当时最先进的Med-PaLM M多模态医学模型。我不知道现在是否还是,但你可以将一个机器人模型转变为最先进的医学识别模型,这种能力我认为非常有趣。这种大型模型能够被重新定向的能力确实很有趣。

PaLM-E带来的另一个新事物是,我们第一次看到了跨机器人的正向迁移。这值得稍作解释。通常,你有不同的机器人、不同的动作空间、不同的视角,你会认为当你训练一个模型时,你希望在你最终要部署模型的具身上进行微调,而这种微调会给你最好的结果。我们在PaLM-E上看到的是,实际上在我们拥有的所有机器人数据上训练,即使是非常不同的数据,即使是像视觉问答这样几乎不像机器人的数据,当你把它们放在一起时,你最终会得到一个工作得更好的模型。这在过去我们在机器人学中并不多见。确实存在一个通用模型比专门模型更好的情况,这一点很重要,我们稍后会看到更多相关内容,这非常值得追求。

一旦你有了一个视觉语言模型,你可以做很多有趣的事情。这是一个我想强调的例子,因为我认为这在未来会很重要。这是一个使用也能生成视频的视觉语言模型的早期实验。你可以想象使用视频生成作为一种梦想可能未来的方式。在这个例子中,我们有一个规划器,当它面对多个可以采取的行动时,不是当场评估它们,而是实际生成一个小视频片段,展示如果我采取那个行动,环境会发生什么。然后我们对输出进行评分,并问自己:那个小视频片段的输出是否更接近目标?我们就这样选择要采取的行动。我认为这种基于世界模型的方法进行规划和驱动,随着视频模型在物理和几何等方面保真度变得更好,很可能会发展起来。所以我对这项工作的总体方向感到非常兴奋。

好的,我们已经连接了视觉和语言。我们能直接做像素到动作吗?这是另一条工作线,我们基本上想要拥有使用Transformer等现代工具包的像素到动作模型。我们在这个方向上的第一个工作是RT-1。

RT-1基本上是一个序列到序列模型,它接收指令、将其标记化,接收图像、将其标记化,将所有内容输入一个大型Transformer进行序列到序列训练,并输出机器人可以直接执行的动作控制。这是一个大模型,但我们可以以大约3Hz的频率运行它,所以对于我们关心的拾取放置等任务来说,实际上是可以管理的。

RT-1效果很好。这对我们来说是一个重要的顿悟时刻。因为过去,即使是简单的通用拾取放置任务,我们也无法真正在训练任务上达到饱和——我们可以投入尽可能多的数据到使用行为克隆训练的模型上,但永远无法达到100%的性能。第一次,通过RT-1,我们真正在训练任务上饱和了性能。这很重要,因为如果你处于数据丰富的理想状态,你应该能够完全掌握你所关注的训练设置。此外,我们获得了更好的泛化能力,对未见过的任务、干扰物和背景的泛化能力更好。所以这是构建的良好基础。

我们从RT-1实验中学到的另一件事是,并非所有数据都是平等的。我们做的一个简单消融实验是,从训练集中取出少量数据,总量大致相同,但我们取出了最多样化的数据,即与其他所有数据最不同的数据,结果性能急剧下降。重要的是,如果数据多样性确实是这类动作模型的关键,那么我们就做错了——如果你想想机器人实验室的研究生是如何工作的,他们通常专注于解决一个问题,收集该任务的数据,并为该任务训练更好的架构。我们在这里说的是,也许只考虑单一任务已经是在自缚手脚,你应该真正在拥有一个非常大的多任务模型的背景下思考,在这种背景下思考架构真的会改变游戏规则,影响这些模型的性能。所以我认为这对整个社区来说是一些有趣的教训:多任务不仅仅是一个子问题,它就是问题本身,而且可能是我们总体上解决更好模型的一种方式。

好的,现在你可以想象接下来会怎样了。我们已经融合了两个部分,使用了另外两个部分。我们要试试看,只用一个巨型模型能做什么。这项工作就是RT-2。

RT-2基本上是一个非常大的视觉语言模型,具备所有大型LLM的能力。所以它可以进行推理,也可以做视觉问答等。我们处理这个问题的方式是真正将机器人动作视为另一种语言。VLM是多语言的,它们可以说所有训练过的语言。我们只是要再添加一种语言,而这种语言恰好对应于机器人动作,并如此对待它。

架构与RT-1非常相似,只是它是一个大得多的模型。你输入标记化的语言标记,输入图像标记,然后输出对应于机器人动作的标记(可以说是“机器人语”)。当你这样做时,有趣的事情发生了。你突然有了一个端到端的模型,从语义和视觉识别一直延伸到动作。所以你可以表达非常丰富的命令。你可以说:“捡起那个快要掉下来的袋子。”你可以说:“捡起不同的物体。”所有这些关于“不同”意味着什么、“快要掉下来”意味着什么的微妙高级理解都融入了VLM,并传递到实际驱动中。

我想给你两个我真的很喜欢的这类行为的例子。我们要求机器人“把可乐移到泰勒·斯威夫特那里”。我们的机器人见过很多可乐,可乐是我们喜欢操纵的常用物体。但我们的机器人从未见过泰勒·斯威夫特,不知道泰勒·斯威夫特长什么样。我们没有任何对应于泰勒·斯威夫特的机器人数据。但VLM知道。因此,机器人能够理解泰勒·斯威夫特的概念,并将可乐移到泰勒·斯威夫特的图片旁。

我也可以用推理来做这个。“把香蕉移到2加3的和那里。”这意味着机器人需要理解3在视觉上是什么样子,需要进行基本计算,2加3。这是LLM希望知道如何做的事情。但我们从未真正教过机器人如何做加法。这都是整个模型的一部分。所以你看到了语义、视觉和动作之间的迁移,它们共同协作产生了一些东西。我知道“涌现”这个词有点被过度使用,但这感觉是涌现的,因为所有这些事物以一种统一的方式融合在一起。

我们在RT-2上看到的另一件事是,我们才刚刚开始让事情运转起来。如果你想想语言模型的缩放定律,机器人基础模型也有类似的缩放定律。随着我们获得更大更好的模型,事情会变得好得多。我认为我们离基于当前规模饱和性能还很远。这在某些方面是有问题的,这些大模型真的很慢。所以以这种速度运行控制器并使用大模型推理并不容易,但至少有一条路径可以让我们扩大规模并变得更好。

另一种形式的缩放是跨机器人缩放。记得我谈到PaLM-E时,我说我们看到了机器人之间的正向迁移。我们做了其他实验,比如这个RoboCat,我们训练了联合模型。这是一个RT-1风格的模型,但在上面加了一些强化学习,我们在不同机器人、不同动作空间、不同自由度、非常不同的设置上训练了一个联合模型。再次,我们看到即使是动作模型,我们也可以通过训练联合模型获得好得多的性能。这有点像说不同的机器人只是说着不同方言的“机器人语”,本质上它们没有根本性的不同,只是通过具身表达了非常共同的概念,通过将数据加在一起,我们实际上可以更好地理解控制机器人的物理意义。

我们试图将这一点推向极致。我们与34个不同的研究实验室合作,要求每个人汇集他们的数据。显然,世界各地的机器人学习研究存在巨大的多样性。你有大量不同的具身、不同的任务、不同的数据集。我们只是把所有东西汇集在一起,甚至没有尝试规范化任何数据。举个例子,这是一些数据的样子。它看起来完全随机。你会想,我们怎么能从这种多样化的数据中学到东西?结果证明我们可以。这也是一个有趣的学习。

我们基本上汇集了所有数据,训练了一个大型RT-1模型,将其分发给我们在大学的所有合作伙伴,他们能够使用这个模型零样本改进他们的基线。这是一个尽可能公平的实验,因为我们只是把权重发给他们,让他们自己运行实验。所以我们没有插手实验。

这非常令人兴奋。我认为跨具身确实有效,并且有效到极端程度,这开启了真正为每个人构建模型的可能性,也使模型不会被锁定在特定的形态和具身中,这对人们如何看待在机器人学中共享数据、利用社区并集体构建更大、更有影响力的东西具有深远影响。

我们还训练了一个RT-2版本的模型,也看到我们之前讨论的那些涌现技能在添加更多这种多样化数据时变得更好。所以确实有一个强烈的信号表明,这种用于机器人学的大型基础模型可以显著提高技术水平。

所以我想退一步,反思一下我们目前处于什么位置。我们有了这种统一的模型,它以视觉为输入,使用语言模型进行推理,产生对应于动作的代码。归根结底,它只是一个大型多模态模型。在这方面,它并没有真正特定于机器人学。我们在一些机器人数据上训练它,数据量不大,不是互联网规模的数据量。很多繁重的工作是由来自网络的文本数据和图像数据完成的。我们采取的动作是一种语言形式,它们只是“机器人语”的方言。

这张图对我们机器人学界来说真的非常奇怪。如果你在三年前问我,机器人学会变成这样,或者机器人学可能的未来会是这样,我会说你疯了。回到三年前,我们真的专注于强化学习,专注于针对特定机器人的学习方法,使用大量数据。所以事情的形式真的发生了实质性的改变。

这仍然是研究。所以我们还没有在现实世界中完全验证这一点,但这是机器人学一个全新的、潜在的新道路。令人兴奋的是,它确实使机器人学能够乘上我们正在经历的AI浪潮。任何对大语言模型的改进,对多模态模型、视频生成的改进,都将能够在机器人学中使用和利用。所以我们不再是孤立的AI小岛,我们真正成为了整个AI社区的一部分,我们可以真正受益于世界上发生的所有进步的总和。


好的,说到这里,我要感谢所有为这项研究做出贡献的人。这是一个由非常多才华横溢的人组成的庞大团队的努力。我很感激能成为其中的一小部分。感谢在座的各位。


非常感谢这场引人入胜的演讲。我们有一些时间提问,如果人们想走到过道上的麦克风那里。请开始。

(提问环节略)


本节课中,我们一起学习了生成式AI,特别是大语言模型,如何为机器人学带来范式转变。我们从最初的简单结合(如SayCan将LLM用于规划),探索了多模型对话(苏格拉底模型)、代码生成控制(代码即策略),到最终融合视觉、语言和动作为一体的端到端模型(RT-1, RT-2)。我们看到,将机器人动作视为另一种“语言”,利用大规模多模态预训练模型的强大能力,可以实现语义理解、常识推理与物理控制的直接连接。这种新范式不仅提高了性能,还带来了更好的泛化能力、跨机器人正向迁移以及更自然的人机交互方式。它使机器人学能够融入更广阔的AI发展浪潮,为未来机器人的通用性和易用性开辟了全新的可能性。

005:在现实世界中部署人工智能

在本节课中,我们将跟随波士顿动力公司首席技术官Aaron Saunders的分享,了解他们如何将人工智能,特别是强化学习,应用于现实世界的机器人产品中。我们将探讨其技术演进、核心方法以及最新发布的研究工具包。

概述:波士顿动力的三十年征程

波士顿动力是一家拥有30年历史的“初创公司”,其发展历程大致可分为三个十年阶段。

第一个十年与机器人无关,公司创始人Marc Raibert最初专注于基于物理的仿真技术,为早期CGI行业做出了贡献。随后,他将仿真领域的专业知识应用到了机器人技术中。

在第二个十年,公司开始致力于证明机器人技术的可行性,并让世界相信机器人是真实存在的。如今,机器人已广泛应用于各个领域,这与20年前的情况截然不同。

目前,公司正处于第三个十年,专注于将机器人技术商业化并大规模部署。公司现有约800名员工,已向真实世界部署了约1500台机器人。虽然这个数字与汽车制造等行业的规模相比很小,但在现实世界中部署数千台机器人本身就是一个巨大的挑战和成就。

核心产品线与“秘密配方”

波士顿动力的努力主要围绕三条产品线展开。

Spot 是公司首款商用移动机器人产品。目前有数千台Spot机器人在世界各地行走,它们不仅仅用于演示,而是在实际工业场景中创造价值,例如在半导体工厂检查设备、进入核退役等危险区域进行勘察。

Stretch 是用于搬运纸箱的移动机器人。它部署约一年,已移动了约300万个箱子。这项技术旨在替代枯燥、繁重的人力劳动。

Atlas 长期以来一直是公司的研究平台。其使命不仅是研究,更是推动最终能应用于所有产品的尖端技术。

关于波士顿动力的“秘密配方”,并非单一因素,而是多个方面的结合:

  • 高度集成的硬件与软件:优秀的硬件能更成功地部署AI。仿真与现实的差距因此被大大缩小,控制算法能快速从仿真迁移到实体机器人。

  • 追求性能:高性能的机器允许探索其运动学和应用的极限,无论是在非结构化地形行走还是进行复杂操作。

  • 垂直整合:在现代汽车集团的支持下,公司实现了垂直整合,加快了开发周期,能够快速制造和修改机器人。

  • 视觉驱动的自主性:机器人通过视觉感知世界、理解环境和上下文,从而决定如何与之交互。

  • 强化学习:这是该领域新兴的产品化能力。

  • 商业化导向:商业使命提供了明确的焦点,确保所解决的问题具有实际价值并能持续发展。

技术加速:从算法控制到数据驱动

过去,为Atlas开发一个新动作(如跳跃)可能需要数月到数年的时间,从简单模型到部署调优的控制系统,过程非常艰难。

为了更快地构建机器人技能,公司开始探索利用更多数据源,而不仅仅是算法控制。这些数据源包括动画参考轨迹、遥操作、动作捕捉、合成数据和视频。最终目标是利用互联网规模的数据并将其应用于机器人。

其方法的核心是建立一个良性循环:利用数据生成参考轨迹,通过离线和在线计算,由模型预测控制器可靠地执行。然后,系统会不断泛化和扩展这些能力,从而生成更多数据,推动循环继续。

上一节我们介绍了技术加速的总体思路,本节我们来看看Atlas的具体应用。

Atlas的演进:从模型预测控制到多源数据融合

最初,Atlas的控制器采用级联两步优化:先针对一个简化质点模型进行轨迹优化,再将其映射到机器人的运动学上。这实现了从行走到跳跃、奔跑的跨越,但环境是结构化且已知的,感知智能有限。

为了引入新的能力,团队尝试了不同的数据源。例如,为了让Atlas跳舞,他们与动画师合作,将生成的动画作为参考轨迹输入给模型预测控制器,由控制器将其映射到机器人身上。

同样,也可以使用动作捕捉数据或从视频中提取运动学轨迹作为参考。这些都是可以借鉴的丰富数据源。

随着技术的发展,团队将原先级联的两步优化问题整合为一个大型优化问题,能够同时求解全身动力学。这使得机器人能够自主利用身体(如收拢手臂)来调整惯性,完成更复杂的动作,例如在平地上完成后空翻。这种能力对于应对意外碰撞或失稳至关重要。

目前,团队正将相同的工具链应用于操作任务。早期的成果显示,Atlas能够自主操作重型汽车部件。机器人通过训练好的模型识别物体、分割场景、确定抓取点,并在操作过程中推理环境几何约束。这展示了模型预测控制工具在复杂操作任务上的潜力。

这些系统充满了AI技术,但并非端到端的AI模型。其优势在于,高性能的机器人能够生成大量有意义的真实数据,为未来更多数据驱动的解决方案奠定了基础。

强化学习在产品中的部署:以Spot为例

接下来,我们聚焦于如何将数据驱动的解决方案,特别是强化学习,部署到商用产品Spot上。

Spot机器狗群已累计行走25万公里,每三个月就能绕地球一周。尽管表现卓越,团队仍在不断寻找改进的方法,尤其是需要解决客户遇到的实际问题。

例如,有客户报告Spot在跨越一个小障碍后,在光滑地面上滑倒。原因是该环境需要机器人进出防溢围堰区域,即需要先后应对突起障碍和肥皂水覆盖的光滑地面。

Spot原有的控制器包含一个由启发式算法选择的模型预测控制器库。该算法根据感知数据、力数据等实时选择步态。但在跨越障碍后立即遇到光滑地面的复合场景下,步态选择模块难以高效切换到适合光滑地面的理想步态,且手动调整启发式规则可能引发其他问题。

这正是应用强化学习的良机。团队训练了一个RL策略,其职责是动态调整单个模型预测控制器的参数,而不是在不同预配置的控制器间切换。这使得策略能更精细地适应复杂环境。

成功的关键在于能够基于真实场景创建高质量的仿真环境。拥有数千台在外运行的机器人,为复现问题场景提供了基础。

开发出初步策略后,还需进行大量测试以确保其普遍改进。团队在仿真中测试了不同摩擦系数、不同高度落差的地形,确认了新策略在多种关键场景下都能降低摔倒概率。

最终成果是:机器人摔倒概率降低,同时该部分软件栈的计算负载减少了25%。这对于需要携带计算设备和电池的移动机器人意义重大,节省出的算力可用于更高级的感知任务。

从研发到发布:质量保证与持续改进

将新技术部署到客户手中需要严谨的流程。无论是RL策略还是传统算法控制器,都需经过相同的测试流程:近乎无限的仿真测试,加上大量的实体机器人测试。

波士顿动力通过庞大的测试车队进行7x24小时硬件在环测试,模拟各种客户环境和极端条件。这是将新兴技术转化为可靠产品的关键。

通过持续改进硬件和软件,Spot的故障率已从早期的每公里0.6次跌倒,显著降低到约每50公里1次跌倒。在部署了RL控制器后,软件质量保持稳定,所有Spot机器人都能通过软件更新获得性能提升,实现了“越用越好”的体验。

除了调整参数,RL还能用于从头学习全新的策略,例如让Spot跳上比自身还高的平台。这种特定技能的策略可以与参数调整策略一同纳入Spot的技能库中。

新工具发布:Spot研究工具包

为了让更广泛的研究社区能够利用这些能力,波士顿动力与英伟达合作,发布了新的Spot研究工具包。

该工具包主要包含三部分:

  1. 底层API:解锁了对Spot前所未有的控制能力。

  2. NVIDIA Jetson AGX Orin:提供强大且功耗优异的移动计算平台。

  3. 英伟达AI开发工具套件支持:帮助研究者更快地取得成果。

波士顿AI研究所作为首批测试用户,利用该工具包快速实现了从像素到动作的端到端行为生成,并将在发布后提供开源示例。

总结与展望

本节课我们一起学习了波士顿动力如何将AI部署于现实世界的机器人中。我们回顾了其技术演进路径,从高度集成的硬件软件、模型预测控制,到利用多源数据加速开发。我们重点探讨了强化学习在解决Spot实际客户问题中的具体应用,包括问题识别、仿真训练、测试验证到最终产品部署的全过程。最后,我们了解了新发布的Spot研究工具包,它将世界级的机器人平台与顶尖的AI开发工具相结合,旨在赋能更广泛的研究与创新。

未来,与英伟达在Omniverse数字孪生等领域的合作,将通过合成数据加速仿真与训练过程。尽管面临电池续航、网络安全等持续挑战,但机器人通过软件更新不断进化、创造价值的能力,正推动着整个行业向前发展。

006:David Luan与Bryan Catanzaro的对话

在本节课中,我们将一起学习英伟达GTC 2024大会上,Adept公司CEO David Luan与英伟达应用深度学习研究副总裁Bryan Catanzaro关于人工智能未来与通用人工智能发展路径的深度对话。我们将探讨AI的规模化发展、数据挑战、智能体应用以及未来的研究方向。

开场与嘉宾介绍

欢迎来到本次关于AI未来与通用人工智能的讨论。本次对话由两位我非常欣赏的人士——Bryan Catanzaro和David Luan带来。

首先介绍David Luan,他是Adept公司的联合创始人兼CEO。他的公司正在构建用于知识工作的AI智能体。此前,他曾是OpenAI的工程副总裁,负责语言、超级计算、强化学习、安全与政策方面的研究。更早之前,他在Google Brain领导团队,推出了GPT、CLIP和DALL-E等项目。欢迎David。

Bryan是英伟达应用深度学习研究团队的副总裁。他的团队致力于多模态语言建模、芯片设计、音频、语音、图形与视觉研究,并持续为英伟达的产品和工作流程寻找实用的AI新方法。在英伟达,Bryan帮助创建了PhysX、HD、DLSS、Megatron、cuDNN、Pascal、WaveGlow和Deep Speech等项目。欢迎Bryan。

很高兴看到大家。欢迎来到GTC。距离上次线下大会已经有一段时间了,能在这里见到大家感觉非常棒。感谢各位的到来。希望我们今天能进行一次有趣的讨论。David和我是朋友,我们将主要聊聊我们正在做的工作以及我们认为AI的发展方向。希望在最后能留出一些时间进行问答。

英伟达的AI目标

首先,我想问Bryan,你推动英伟达的AI工作已有相当长的时间。我很好奇,你如何描述你所监督的英伟达AI训练和研究项目的目标?

英伟达正在推进自己的AI计划,这让我非常兴奋,并希望它能持续发展。我认为英伟达构建自己的AI有两个重要的战略原因。

第一个原因与加速计算的本质有关。英伟达在销售AI系统时提供的价值在于速度。要将这种速度交付给全球正在创造AI的工程师和研究人员,需要我们非常深入地理解创造AI的过程。这涉及到网络结构、如何使用低精度算术、稀疏性、如何处理网络以及各种软件栈、编译器、库、框架、通信等诸多方面。在网络中,像Grace Hopper这样的系统以新的方式将CPU与GPU耦合。所有这些方面都有太多选择。作为一家加速计算公司,英伟达工作的核心就是做出这些选择,但这要求我们真正深入地理解正在被加速的对象。我常开玩笑说,加速计算实际上意味着对几乎所有事物进行“减速计算”。原因是,如果你只是说“我要造一台更快的电脑”,这并没有太多意义,因为所有电脑都试图更快。加速计算的不同之处在于它是专业化的,而“我们为哪些领域进行专业化”这个问题变得至关重要。我们构建未来系统的唯一途径就是自己构建AI,以便我们理解正在构建什么。这是第一个原因。

第二个原因与AI在全球发展所带来的机遇有关。我相信AI将影响世界经济的每个领域、每家公司。但它将如何做到这一点?因为构建AI需要发展许多专业技能,并且需要投入大量的计算能力、数据和资源。并非每家公司都能进行这样的投资。当我思考英伟达及其支持全球企业的业务时,英伟达能够与各行各业、无论规模大小的公司合作,无论是金融、消费品还是科技领域。我们能够帮助每家公司将技术融入其业务的核心,同时保持其独特性,并利用其独特的想法和市场地位来改变世界。我认为,在AI改变一切的时代,让AI成为英伟达平台的一部分是合理的。这就是我们开发AI的第二个原因。

规模化定律与AI发展

你基本上亲眼见证了近年来仅因模型规模扩大而带来的巨大收益。我很好奇,对于观众来说,很多人可能熟悉这个概念。你如何看待规模化定律?它们对AI意味着什么?你认为这种趋势会持续下去吗?

我在规模化AI上已经押注了20年,这是一个不错的赌注。我们是最早的GPU程序员之一。很久以前,当我在伯克利读研究生时,我就在GPU上进行机器学习,并在2008年的ICLR上发表了一篇关于使用GPU训练模型以实现规模化的论文。当时,ICLR机器学习会议上的一些人回应说:“你在这里做什么?我们在这里所做的一切都是机器学习的新数学公式,允许研究生在笔记本电脑上运行新的实验。”当时人们使用的数据集可能只有几百个数据点,维度也很小。那是一个小规模机器学习的时代,但仍然发生了许多有趣的事情。我相信,数据和计算能力的规模化将改变世界。现在回顾起来,我认为这一点已经很清楚了。但对于许多从事AI工作的人来说,这个想法——即你只需要数据和计算能力——也让人有些失望,因为我们更愿意相信我们需要的是更多概率论博士,因为这真的很有趣。但显然,我们需要两者。我热爱概率论博士,但我觉得过去几十年来推动AI向前发展的基础一直是规模化。我认为我们还没有看到它的尽头。

我完全同意。我经常做一个演讲,大致勾勒出深度学习的各个不同领域。2012年之前的一切,我大致将其归为“史前时期”。然后从2012年到2017年,基本上是你和你的三个最好的朋友写一篇改变世界的研究论文。但在2017年之后,在Transformer出现之后,在我们学会如何将这些架构高效地映射到硬件上之后,这个领域就真正变成了数据和规模的游戏。有时人们问我,是否应该离开去攻读博士学位,或者思考如何取得新的算法进步。我肯定认为有些人应该继续考虑这类事情。但总的来说,即使你回顾最初的AlexNet论文,人们认为那是一个真正的思想转变,但实际上更像是Alex Krizhevsky坐在角落里,研究如何将卷积神经网络高效地映射到两块GTX 580 GPU上。他非常具有开创性,他专门为他拥有的系统(有两块GPU)构建了一个神经网络,必须以一种非常奇怪的方式进行分区。系统底层的工作支撑了他得到的结果。我认为,许多重大成果都是如此。例如,当我在OpenAI时,我们做了GPT-2,当Alec Radford和我写那篇论文时,我们用了很长的篇幅来讨论所有的评估,用很短的篇幅讨论我们如何将所有任务统一为预测下一个token。但建模部分只有一段话,比如“我们使用了普通的仅解码器Transformer,配置了这些参数”,我们当时就在想,学术界会抨击我们,因为他们会说这没有新意。我一次又一次地看到这种情况发生,即人们为了在AI领域真正取得进步而需要玩的新游戏,往往会被当前的既得利益者所嘲笑。我认为我们在这个时代再次看到了这一点。

这与你们所做的一些更广泛的平台工作略有不同。但至少对我们Adept来说,我们真正相信的是,AI的下一个时代实际上将是关于把产品做对,以及进行产品与研究目标的正确协同设计,并让许多新的研究想法从客户那里行不通的地方涌现出来。我觉得这实际上是从我过去在OpenAI或Google Research团队思考问题的方式上的另一个转变。

Adept公司的使命与AI智能体

是的,我们能稍微回溯一下,解释一下Adept是什么,以及它在做什么吗?

Adept是一家有趣的公司,我们的配置与大家熟知的其他初创实验室(如OpenAI、Anthropic、Mistral等)略有不同。我们所做的是,我们有一个更广泛的北极星目标,它既是产品目标也是研究目标。这个目标是:我们能否训练一个AI智能体,让它能在计算机上完成人类能做的任何事情? 我们如何构建不仅能读写文本或理解图像,还能利用它们来接收自然语言指令,在你工作使用的现有软件上,通过任何必要的步骤在你的机器上实现该目标的模型?例如,像“把这封出现在我邮箱里的发票录入QuickBooks”,或者“为我的团队这次特定出行找出六种不同的规划方式”,并让模型像人类一样实际操控你的机器去完成这些事情。

我们看到很多情况是,当企业采用这些大语言模型时,人们总是将它们用于摘要和文本生成,这些功能似乎有效。一旦这些功能在公司中开始发挥作用,他们就会想:“太好了,我如何将整个工作流程从我的团队移交给模型,以便他们得到增强?”这基本上就是我们一直试图解决的问题。为了解决工作流程问题,你需要能够解决看起来更像智能体的问题,这让我非常兴奋。因为如果你开始研究智能体,你突然就可以利用更广泛的强化学习文献中的所有丰富成果,以及DeepMind在2010年代中期围绕在围棋等游戏中击败人类所做的所有工作。你可以将这些成果带入LLM时代,这真的很酷。

人类与智能体的共存

我觉得你所阐述的是一个人类被这些模型增强的未来,这些模型的目标是帮助人们完成任务。你如何看待人类和智能体将如何共存?

从使命的角度来看,这是我非常坚信的一个核心部分。你可以将这一领域的工作框架设定为“我如何超越人类并在任务中取代他们”,但我坚信,对我们来说,更有趣且更正确的关注路径正是Bryan所说的:如何构建真正旨在增强人类的AI系统? 我认为其中的界限在于,我们实现这一目标的方式是,我们有意地处理那些模型可以完成80%的任务,这样你就可以获得20%的人类监督,他们监督模型的行为。例如,我们的一家客户是一家物流公司,他们使用Adept来处理集装箱的整个生命周期。他们团队的人员登录到他们的平台,有几十个或几百个需要跟踪的集装箱,需要弄清楚它们如何清关等等,所有这些现在都是完全手工完成的。但现在他们使用Adept的方式是,Adept在后台访问所有需要了解这些集装箱位置的不同软件工具,然后为人类团队提供一个非常简单的方式来监督Adept是否在这批集装箱上做得很好。通过这样做,我们基本上改变了角色,使人类能够解决更困难的问题,比如“这个东西没有清关,我们需要去解决它”,同时也给我们的模型提供了反馈,告诉它下次如何做得更好。因此,我认为,通过将产品端与实际的人工智能研发端结合起来,构建这些数据飞轮和数据循环,可以帮助你的模型变得更好,因为仅仅在纯粹的替代世界中工作,根据定义,是一个“熄灯”的自动化过程。你得不到反馈,你的模型也永远不会变得更聪明。所以我认为这也是获得更强能力的更好方式。

数据挑战与私有数据的作用

当然。但我想,在这方面,一个巨大的挑战始终是,我认为每个人都渴望构建数据循环,因为随着时间的推移,随着人们继续扩展这些大型模型,他们将大量的计算能力投入到这些基础LLM中,模型变得更聪明。但仍然存在一个巨大的缺失部分,那就是什么对你、你的公司和你的客户是特定的。所以我们一直在讨论,如何在实际中处理隐私和私有数据等问题。我知道你对此思考了很多。我很好奇,你认为这在未来几年将如何发展?

我认为,我们现在正处在大语言模型一个时代的末期,即易于获取的token资源即将耗尽的时代。训练一个这样的大语言模型需要大约数万亿个文本token。事实证明,这大约是人类所写下的、至少是我们在互联网上可以获取到的所有语言(包括编程语言)的token数量。这是一个绝对惊人的数据量。我们基本上是在训练这些模型去阅读人类智力成果的全部记录输出。然后我们希望模型在阅读了所有这些之后,能记住其中一些,并能用它来推理和解决问题。这在某些方面确实有效,这有点令人惊讶,但也非常令人兴奋。你知道,有时候我早上醒来,会掐自己一下,心想:“哇,我不敢相信我们作为计算机科学家尝试做的这件疯狂的事情——找到人类写过的所有文本,然后训练一个模型——竟然真的能产生一个可以帮助人们解决问题的东西,前提是它以正确的方式进行微调和监督。”所以,过去几年,我们一直在推动这个方向,我想是从GPT-2真正开启了寻找越来越大的数据集和模型的进程。你知道,进展确实非常惊人。但就是没有更多的文本来阅读了,对吧?就是没有了。但我们知道我们的模型实际上还没有完成。现在我们的模型根本无法解决的许多问题。我很喜欢你提到的清关例子。让某物通过海关在智力上似乎并不非常困难。但实际上,你需要理解这些不同系统如何运作,这其中有很多复杂性。规则是以模糊的方式写成的,而且存在谈判,不同公司有不同的规则。所以,没有一个放之四海而皆准的程序来完成这件事。

因此,对我来说,这些模型的未来更多地与用于训练模型或监督、微调模型的数据类型有关。我们需要教模型非常具体的东西,而不是“阅读整个互联网”这种一般性的东西。然后,我们将通过人类反馈强化学习或监督微调,进行一些关于相当基本的问题解决类型的反馈,这需要转向更专业化、更深入的东西。我认为很明显,数据的质量和数据的目的在未来将比过去重要得多。今天,我认为世界上最有价值的数据也是世界上受保护最严密的数据。例如,想想我个人有价值的数据,我们都有想要保护的东西,比如我的短信,我不希望它们公开,或者我的医疗记录,或者我与家人朋友的电话。然而,如果一个模型能如此详细地了解我的生活,它可能会成为我的一个非常棒的助手。所以,对我来说最有价值的token,也是保护最严密的token。我认为对企业来说也是如此。所以,我个人的信念是,每家公司都建立在一个秘密之上。这通常是那种你可以像黄仁勋那样在屋顶上喊30年的秘密,比如“加速计算是个好东西”,但世界并不理解。一个好的秘密的特点在于,即使你解释了它,它仍然有独特之处,你对世界有独特的思考方式,你可以解释它,但它仍然是你的。而其他人通常认为你疯了,他们不理解这怎么会重要。但我相信每家公司,不仅仅是科技公司,都有其独特之处,某种秘密,这通常是公司的核心目的、使命、市场地位、解决问题的方式,或者可能是文化上的“公司如何凝聚在一起”。这些都是极其有价值的,但它们永远不可能公开。所以,将你最秘密的数据导出,基本上是将你业务的核心暴露给一个智能体,这实际上需要大量的数据溯源和安全保障,因为这些模型从这些非常有价值的数据中学习后,会变得非常强大。但问题是,我们将如何使用它们来增强我们正在做的工作?所以对我来说,这意味着我们将进入一个专业化程度提高的时代,在这个时代里,实体、公司、个人将能够使用他们自己非常有价值但受到严密保护的数据,并将这些数据与这些模型结合起来,制造出实际上超级有用的智能体。

行为克隆与数据质量

我认为这肯定是未来的发展方向。基于我对过去几年在这个特定领域如何发展的看法,我想补充一点。我记得大概在2018年左右,我在Noe Valley的一个酒吧里,和发明了变分自编码器的Diederik Kingma聊天。他是个很酷的家伙。我们当时正在聊研究现状。他刚刚离开OpenAI去了Google Research。他说:“David,我觉得这整个行为克隆的事情还有很长的路要走,而且可能最终效果会很好。”我说:“你是什么意思?”他说:“也许通往通用智能的关键路径并不是你需要去解决整个疯狂的强化学习问题,让模拟智能体在虚拟环境中从头开始学习每一种可能的行为,包括语言。也许正确的答案是,你只需要克隆人们在生活中所做的一切,然后把所有这些行为的权重都放到一个模型里。”这正是我们现在用LLM所做的,我们只是对文本这样做;用多模态模型,我们对图像和文本这样做;或者对音频和文本,或者YouTube和文本,我们训练这些模型,只是简单地预测给定上下文,人类在类似情况下最可能做什么。所以,这能行得通真的很酷。但我认为有几个推论:首先,这些模型只和其训练集中最聪明的数据一样聪明。它有一些泛化能力,但在我们当前的训练目标下,任何真正的新知识发现实际上都会受到模型的惩罚,因为它与你输入的训练分布中的任何东西都不匹配。其次,这些模型最终基本上是学习如何压缩你输入的所有文本或图像等。所以,如果你有一堆糟糕的数据,模型只是在浪费很多参数来学习那种东西。

我对此有个笑话。大概五年前,我们在训练一个模型,模型发散了,我们找不到原因。结果发现,我们下载了一些网页,上面有人用ASCII艺术和表情符号画画。我们把这些token像英语token一样输入到模型中。我们的模型当时不够大,无法理解这是一种不同的语言,一种ASCII艺术的语言。所以它就崩溃了。这只是一个例子,说明当时(五年前)的模型无法同时学习如何画ASCII艺术和学习英语语言。这很有趣。我想我们都积累了这样的“战斗伤疤”,比如把愚蠢的大量数据扔给这些模型。我记得有一个GPT版本,结果发现语料库的一部分是连续好多页的佳能打印机序列号,我们没有做好过滤工作。这真的没完没了。所以,这实际上就是为什么,回到私有数据的问题上,Adept的部分目标是,我们训练这些智能体在你的计算机上工作。我们需要从尽可能聪明的人类那里学习,学习他们执行最困难任务的过程,因为如果你没有那种数据(它不是公开数据,不在互联网上),那么真的很难推动你的基础模型的能力提升。所以我认为,在这个控制计算机的智能体领域,现在有很多有趣的工作可以应用,这有助于你稍微避开一些困难,因为在通常的文本LLM领域,你并没有一个模拟器,因为你没有模拟器,你就不能做那么多有趣的工作。例如,我们花了很多时间思考的一件事是自我对弈:如何训练一个既能使用你的计算机,又能审视自己决策的模型,让你花计算机的后训练时间来收集关于你如何在机器上做事的新经验,并选取成功的经验进行训练,构建这样的循环。除了用私有数据解决这些专业化模型的问题之外,我真正兴奋的另一组问题是,我认为在未来一两年内,我们将在后训练步骤中看到AI能力的巨大提升,而不仅仅是在人们今天熟知和喜爱的预训练步骤中。

通用智能与专业化

是的,我确实认为后训练步骤已经被证明极其重要。如果我们只拿一个原始的语言模型,不进行监督微调、人类反馈强化学习来使其与人类偏好对齐并赋予它一些解决问题的能力,结果发现这个语言模型实际上并没有那么有帮助。所以我认为,当我们弄清楚如何制造一个总体上很聪明的东西,然后我们将其专业化以尝试做一件有帮助的事情时,我们看到了很多进展。那么问题是,你认为这些问题的解决方式主要是通过通用智能,还是主要通过专业化?或者这是一个愚蠢的二分法,我们不应该问这个问题?

我认为这是个好问题。至少根据我的经验,原始预训练模型的质量基本上设定了你可能看到的行为和智能的上限,无论你在之后做什么。你基本上希望在预训练阶段确保你的训练分布支持你下游关心的大多数潜在行为。然后我认为之后发生的一切,实际上就像是教授专门的规则、专门的知识,比如“在时间步X,我可以做N件事中的一件,因为在训练步骤中,人们以不同的方式做了这件事”,到“在我的公司,我以这种特定方式做这件事,所以根据那种特定方式提高下一步的可能性”。我觉得这就是后训练阶段一切工作的真正作用。所以我认为未来几年,要获得最先进的能力(不一定是快速的本地能力),每个组织都需要结合以下几点:首先,能够访问少数几个真正的前沿模型之一,这些模型具有最高水平的智能;其次,拥有私有数据,用于教授该模型对你和你的任务来说特殊的东西。所以可能是一个组合。

我一般同意。我真正喜欢思考的一件事是智能的多维性。例如,我不知道你们中有多少人喜欢碧昂斯。显然,她是一位标志性的艺术家。我相信她有一种特殊的智能。这是一种非常罕见的智能,她能够理解他人和文化趋势,然后结合自己的生活经验,将其综合成一种吸引全球数亿人注意力并因此赚取大量金钱的东西。这种智能非常罕见,也很有用,至少我们人类能与之产生共鸣。我们的很多文化都是由这种超级独特形式的智能驱动的。我几乎想说,不是说我们中间有外星人,但肯定有一些人拥有特殊技能,他们是我们的偶像。我不知道碧昂斯的SAT分数是多少,我也不太感兴趣,这与她如此有趣、她的作品如此有价值的原因没有直接关系。现在,我确实认为,正如你所说,拥有更通用、更聪明的智能,确实在能力上设定了一个上限。如果你的模型不够通用,知道的不多,就很难让它在任何事情上都非常出色。所以我确实相信通用智能是有用的,我们将继续推动这个前沿。但我的信念是,因为智能是如此多维,我认为可能有80亿种不同的智能维度,因为地球上有80亿人。我相信,我几乎可以从所有人那里学到一些东西。我认为,当我们部署AI来解决世界各地的各种问题时,我们会发现,为了解决这些问题,我们将构建出如此多不同形式的智能。我认为这将非常令人兴奋。但这其中的一个含义,我认为与你在Adept所做的工作相符,那就是取代人类实际上并不那么有趣,因为如果你有这样一个多维且复杂的东西,制造一个突然能做所有事情的通用东西,我不认为那是我们要走的方向,因为我认为问题远比那复杂。

作为认知工具的AI

我认为要复杂得多。我的一个同事对此有一个很好的类比:构建真正擅长增强人类的AI的最佳方式,是将其更多地视为一种认知工具和认知技术,而不是一个机器人。就像我们的大脑在我们发明文字时进化了,在我们发明数学时进化了,在我们能够将大部分事实卸载到手机上、学会使用计算器时进化了一样。我认为同样的事情会发生,随着我们构建这些日益复杂的AI智能体,你将拥有另一组你实际上不需要做的事情。所以你可以用自己有限的表现能力去学习如何做别的事情,与这些变得越来越聪明的模型共同进化这种联合思考的方式。我认为这可能就是未来的发展方式。我认为大多数人还没有这样想,他们把所有时间都花在思考如何用我们今天拥有的类比来套用这个世界,就像早期触摸设备出现时那样。当你有越来越聪明的AI智能体时,你真正需要做的是重新审视那些交互原则。

我完全同意。这实际上是我继续对英伟达所说的Omniverse或广义上的虚拟世界感到兴奋的原因之一。我认为人们将用AI解决问题的许多最有趣的方式将发生在虚拟世界中,而不是发生在今天与手机交互或今天工作的那种拟物化方式中。所以,如何构建能够弥合这一差距的智能体,我认为非常有趣。

未来的研究挑战

换个方向。Bryan,我很好奇你的看法。如果你看看这个更广泛的北极星目标,无论是通用AI智能体,还是我们想称之为AGI的东西,你认为还有哪些重大的开放性研究问题?那些不仅仅是“更多地扩展这些东西,投入更多数据”的问题。你认为还有什么遗留问题吗?

我认为有。从根本上说,我们今天进行推理的方式并不允许我们进行所需的那种问题解决,因为它是相当线性的。大多数时候,当这些模型实际部署时,你问它们一个问题,它们提供一个答案。但也许我有点拟人化了。回想我上学考试的时候,有些问题的答案你直接写下来就行,但其他问题的答案可能需要多思考一千倍。目前,在推理时,我们的模型很难分配计算资源,即使是自适应计算。是的,似乎我们需要这些模型能够对其生成的输出进行更多的内省。这涉及到以不同的方式分配计算资源。如果你需要花费一千倍甚至一百万倍的计算量来生成一个token而不是其他token,那么我们应该弄清楚如何做到这一点。你觉得像思维链提示之类的技巧是近似实现这一点的方法吗?我认为这是一个开始。但你知道,这些方法目前还没有广泛部署。我认为一个原因是它们太昂贵了。所以,回到我们一开始谈到的“苦涩教训”,我认为我们还没有真正看到“苦涩教训”如何应用于推理,就像应用于训练一样。大多数时候,当我们谈论“苦涩教训”时,我们谈论的是如何构建前沿模型,并向它们投入疯狂数量的训练。但我认为实际上,在部署阶段也会有类似的情况。这方面的研究,我认为还处于起步阶段。

有趣。所以当你说部署阶段的“苦涩教训”时,意思是像在推理时摆脱手工技巧,让基础模型在推理时已经学会了做正确的事情,还是别的什么?

我的意思是,我认为在推理上我们能投入的计算量与我们产生的模型的智能程度之间会有某种联系。我认为这就是我所说的潜在含义。至于我们如何实际实现这一点,我认为这就是研究需要去探索的方向。现在有很多关于这类主题的论文,但我认为还没有人完全破解它。我认为我们将看到一些相当惊人的成果,来自更计算密集型的推理。

我完全同意。当我思考后训练时,你知道,一方面是如何让模型在推理时变得更聪明。但另一方面,在你完成预训练之后,如何利用你刚刚创建的成果在实际部署之前改进模型本身。我认为第二类工作将是巨大的。我觉得这不一定是强化学习,而是将这些在预训练阶段磨练出许多本能的基础模型,与你实际试图解决的任务的奖励信号理解结合起来,然后能够花费计算资源来提高该特定奖励信号的数值。我们在像人类反馈强化学习这样的事情上看到了早期迹象。但这就像我们只是触及了这条特定路径上可能的研究范围和成果的表面。我认为在未来一两年内,我们将看到——实际上已经在论文中看到——当你能将强化学习和/或搜索与这些基础模型在各种不同环境中结合时,会出现真正的不连续增益。即使在你的计算机上的智能体领域内思考,这是一个例子,还有围绕通用机器人基础模型的所有兴奋点,这是另一个很好的例子,说明我们现在正在为那个领域进行预训练阶段。但之后有一个非常明显的第二步,在你完成预训练之后,使这些模型成为各种机器人任务的出色控制器和规划器。我认为那会非常酷。

自我提升的循环

是的,我完全同意。我觉得这里有一种自举正在发生。你知道,这是我们正在经历的一个经典的技术发展周期。多年来,摩尔定律是由半导体驱动的。所以你需要有更好的半导体来制造机器,以构建下一代半导体。我认为我们在AI中看到了这一点,即用我们的基础模型来理解我们的数据、合成新的数据集、训练更聪明的下一代基础模型,这是我最兴奋的事情之一。因为我确实认为有一个循环正在发生。

当然。我想我们可能通过使用模型作为数据过滤器或增强器之类的东西,看到了早期的阶段。非常酷。

未被广泛关注的兴奋点

好的,我们时间不多了。我想也许再问一个问题。有什么让你兴奋但你认为其他人还没有兴奋起来的事情吗?

这是个好问题。让我想想。嗯,我想我提到了一点关于多模态基础建模的事情。我认为现在如此多的精力和努力都投入到了多模态基础建模中,这是应该的。因为很明显,多模态模型已经基本上成为默认的模型家族。我想过一段时间,人们会一直把所有东西都放进去。很快我们会加入音频,很快会加入视频,很快,就像所有其他东西一样,所有的token,所有的token都放进一个特定的模型里。我认为行为轨迹也会被加入进去。然后你就有了这个基础的东西,它可以自己决定如何分配其容量来学习建模所有这些事物。这一切都很棒。我对此感到非常非常兴奋。但我认为这实际上将是未来几年大部分新进展的来源。但也有一些我非常兴奋的特定领域的事情,尽管我不从事这些工作。我们刚刚谈到了机器人。我在Google资助的一个项目是由我的朋友No领导的,他们在阿姆斯特丹的欧洲团队。他们所做的是训练一个模型,基本上在天气预报方面超越了最好的科学模拟器。他们所做的只是将整个地球划分为这些小单元,每个单元由几个数字表示,比如当前的降水水平、湿度、温度等所有不同的东西。然后他们将其视为一个张量,只需要预测下一个时间步的张量。让我们忘记任何物理建模。事实证明,如果你这样做,你现在就有了一个这些变量的通用地球模型,它实际上在某种程度上超越了物理模拟器。这太酷了。还有许多其他领域,你可以直接说:“嘿,我有这个无限灵活的输入输出引擎。让我直接建模看看会发生什么。”但我很好奇你的想法。

太棒了。我想再次为虚拟世界和Omniverse打个广告。我认为我们将发现,一些最有趣的体验将来自人们与AI的互动。我最好奇的问题之一是:AI将如何改变我们的文化? 我认为它将创造一种新的媒体形式。就像电子游戏与电影不同一样,AI也将与电子游戏不同。它将更有用、更深刻、更有趣、更吸引人、更有帮助。我认为这将在虚拟世界中发生。我认为虚拟世界将使AI变得更聪明,使AI更能理解我们面临的问题。然后我们将在虚拟世界中与AI一起合作解决问题。对我来说,这是对过去20年来我一直在英伟达和其他地方观察到的许多研究的一种综合。我真的很兴奋它将走向何方。

文化影响与总结

我真的很喜欢“AI将如何影响文化”这个框架。因为对我来说,这也是迄今为止最重要的事情之一。我觉得你正在研究的东西,在它开始影响文化之前,还没有真正达到真正的效用。我们已经开始看到这方面的早期迹象。但这是我喜欢Bryan的一点,你是一个非常全面的人。我们在台上谈论AI,但当我们不这样做时,我们会谈论各种各样不同的事情。这种博雅教育的方式真的很酷。

谢谢。我觉得做人挺好的。

问答环节

我们还有几分钟时间提问。我想过道两边都有麦克风。

提问者1: 关于英伟达的最佳AI软件合作伙伴,你认为会是谁?

我认为英伟达与全球每一个软件实体合作。我们与所有公司合作。所以答案是,他们都会成功,我们都会支持他们。我也有私心。英伟达工作的巨大乐趣之一就是我们支持许多拥有不同观点的公司。这样,随着AI的繁荣,我们也能随之发展。所以我认为英伟达不想选择任何一家作为我们最重要的软件合作伙伴。但我们确实喜欢与他们合作。

提问者2: 关于规模化定律,你提到过去几十年你一直成功押注于此。人脑估计有数百亿个突触。根据你过去20年的信念,你如何看待未来十年的规模化定律?数百亿个突触是否是这些模型最终可能达到的上限?模型过拟合的风险是什么?

我觉得整个参数数量的事情有点像相机的“像素大战”。我有1500万像素,但我有个烂镜头,我仍然是个烂相机。我认为最终一个更好的代理指标实际上是你通过模型推动的浮点运算次数。我认为在短期内,这是一个更好的衡量标准。但就像你知道的,每一个规模化定律最终都是S曲线。问题是我们处于S曲线的哪个位置。但我认为,不仅预训练的S曲线还有很长的路要走,我们甚至还没有真正开始我们之前粗略谈到的后训练S曲线。它正在等待权重接管,在未来一段时间内带来另一波巨大的进步。所以我个人相当乐观,我们将在未来10年继续看到由于计算和新想法带来的可预测的进步。

是的,我还想说,我们仍然不了解人脑的许多工作原理。它非常复杂,将其简化为一个数字可能过于简化了。我认为人脑结构中内置了很多专业化,这意味着我们不必像我们的模型那样学习,我们的模型是从随机数开始的,而我们每个人开始时大脑结构中就内置了更多的知识。我认为这很难量化和理解。我们用AI构建的东西是相当不同的,所以我不喜欢比较这些数字,因为我认为最终它并不能告诉我们太多。

提问者3: 关于未来的大赌注。你之前的大赌注是速度和架构更新。你未来10年的下一个大赌注是什么?例如,我最近对神经符号架构、世界模型等感兴趣。有什么是我可以大量买入的?

我热爱世界模型。我认为我们正在看到惊人的进步。我之前谈到虚拟世界就是因为这个。我还想大力推广各种形式的稀疏性。我认为我们差不多已经玩透了低精度算术,我们已经把它压缩得相当厉害了,快没比特可用了。所以,拥有少于1比特的方法就是走向稀疏。所以我认为我们会发现我们确实想走向稀疏。我们想要更多的结构。就像我之前谈到人脑时说的,我认为有很多知识是内置于结构中的。它不是一个全连接网络。那么,我们如何学会将稀疏性构建到我们的网络中,使它们能显著提高计算效率,从而增加每浮点运算的智能?我认为这将是我们的一大前沿。

我也支持世界模型。我认为如果你正确地构建预训练框架,世界模型基本上会免费出现。另一个是在架构方面,就是任何能更好地映射到硬件的东西。我认为这很大程度上是由硬件周期驱动的。你可以有一个非常聪明的架构,但如果它运行效率不高,你将永远无法像那些做更普通但能映射到硬件的事情的人那样扩展它。

又是“苦涩教训”。是的。

提问者4: 关于预训练数据集和质量。你谈到预训练数据集的质量对于知识非常重要,如果有大量噪声,可能会导致整个模型发散。但我们当前的方法已经非常嘈杂,比如“在下一个路口左转、右转或直行”。如果我们当前的下一个token预测预测了“左转”,但实际上是“右转”,它受到的惩罚和预测“香蕉”这样完全随机的东西一样大。你认为我们当前的下一个token预测能够实现AGI的下一阶段吗?还是你认为我们必须采用不同类型的优化?如果是,是什么类型?

首先,就像David刚才说的,胜利的东西是那些易于扩展、你可以投入大量计算的东西,下一个词预测具有这个特性,这就是为什么我认为它如此成功。所以任何出现在下一个词预测之后的东西,我认为都会共享这个特性。但我想说的第二点是,很难知道在下一个词预测之后我们应该做什么,因为这些更智能的、更符号化的方法,比如在特定情况下惩罚模型,往往会遇到过去70年来AI其他方法遇到的同样问题:案例数量太庞大了,我们无法枚举。当我们尝试时,我们最终会搞砸。所以模型实际上学不到正确的东西。这就是下一个词预测的一个优势:我们无法用我们的聪明才智搞砸它。但我想说的关于下一个词预测的第三点是,将人工智能简化为损失函数等是很诱人的。但我们也可以从生物学上这样做,然后说:“智能来自氨基酸和脂质,这合理吗?”你知道,元素可以很简单,而这些元素的阐述可以非常复杂。所以,我并不真的觉得下一个词预测的简单性比生物化学的简单性更不合格。

这是个很好的类比。我还想说,有时我听到人们思考架构如何工作,比如“架构X能做Y吗?”或者“训练决策X能做Y吗?”答案总是:只要你没搞砸,答案总是“是的”,只是需要多少计算量而已。所以,当我们评估一个想法是否好时,我们会看这个新想法是否改变了规模化定律的斜率或截距。通常答案从来不是“好吧,只有你尝试某个特定的架构想法时才会出现某种不连续性”。所以我认为,因此,我认为许多这些事情都有创新的空间。但我认为它们并不是严格必要的,实际上,即使是为了让我们达到下一个智能水平。

提问者5: 关于合成数据。随着文本资源耗尽,很多人跳上了合成数据这个热门词汇。我认为这既是机遇也是潜在的陷阱。从我在教育、心理测量学和神经科学背景的工作中,我知道你可能会陷入一种诡辩循环,创造出非常人工、无根基的系统,你得到了很好的结果,但就智能和问题解决而言,它们实际上没有任何意义。请谈谈这方面的机遇和危险。

我觉得合成数据作为增强手段超级有用,但它是个拐杖,因为归根结底,合成数据生成器的底层复杂性通常(至少根据我的经验,也许有我未知的东西)在某种程度上受限于模型容量。你最终基本上是在建模生成器,然后你就到头了。所以拐杖用完了。我很好奇你的想法。

哦,当然。这很有趣。在图形学中,我们一直在做自底向上的事情,比如建模每一片草叶、每一个光源和每一个光子,然后让它们反弹。我们在那里已经遇到了极限。我认为图形学的未来必须是世界模型,因为我们已经用尽了枚举其他一切的方法。我认为合成数据是类似的东西,就像你说的,建模生成器最终变成了同样的问题。所以,我非常相信合成数据,我们也使用它。它很重要。然而,我不认为它……就它是一个陷阱而言,我认为我们都意识到了,并努力确保不掉进去。


总结

在本节课中,我们一起学习了David Luan和Bryan Catanzaro关于AI未来与通往AGI之路的深刻见解。我们探讨了英伟达构建自身AI的战略原因、规模化定律的持续影响、Adept公司致力于构建增强人类的AI智能体的使命,以及数据(尤其是私有数据)在未来AI发展中的关键作用。我们还讨论了通用智能与专业化的关系、AI作为认知工具的角色、未来研究在推理计算和世界模型等方向的挑战,以及AI对文化可能产生的深远影响。最后,通过问答环节,我们触及了合作伙伴、脑类比、未来赌注、训练目标优化和合成数据等具体问题。整体而言,对话描绘了一个AI通过增强人类、与人类协同进化,并在专业化与通用性结合中持续发展的未来图景。

007:Kaggle大师与专家的见解

在本节课中,我们将学习来自Kaggle大师和专家们关于竞争性人工智能和大语言模型前沿的深刻见解。我们将探讨大语言模型的工作原理、应用场景,以及如何将最新的AI技术应用于解决实际问题。


大家好,我是主持人Fae。今天的会议主题是“来自Kaggle大师和专家关于竞争性AI和LLM前沿的见解”。请确保您参加的是正确的会议。会议最后将设有问答环节,欢迎您通过NVIDIA应用程序提交问题,或在现场麦克风处提问。

现在,让我们直接进入主题,有请演讲嘉宾。

感谢Fae。大家好,我是David Austin,一位Kaggle大师,目前在NVIDIA工作。我很幸运能在NVIDIA花一部分时间研究AI竞赛,并学习许多新技术和方法。今天,我们将与大家分享其中的很多内容。我们喜欢做的一件事是将所学知识应用到竞赛中,或者将研究成果应用到实际领域。今天我们将讨论围绕LLM、视觉、生成式AI和竞争性AI的许多不同主题,但今天的重点将是如何将当今世界上发生的这些酷炫技术应用到实际问题中。我们会在最后留出提问时间,如果您有我们未涉及的问题,请随时提问。下午两点还有一个“与专家会面”的环节,您可以与我们一对一交流。总之,今天您总有机会得到问题的解答。

首先,我想介绍一下我的同事们,让我们从Geway开始。

大家好,我是Du A Liu,来自大语言模型技术团队的数据科学家和软件开发人员。我主要研究代码生成和检索增强生成。我也是Kaggle大师。在接触所有LLM相关技术之前,我参与了很多竞赛。我现在也在研究RAPIDS,这是一个GPU加速的数据科学框架。很高兴认识大家。

接下来是Chris。

大家好,我是Chris Diat,NVIDIA的高级数据科学家。我拥有数学博士学位,专攻计算科学。我热爱数据科学竞赛,目前是Kaggle四重大师。

接下来是Laura。

大家好,我是Laura Eltehe,NVIDIA的研究经理。在此之前,我是德国慕尼黑工业大学的教授。我的研究小组对感知、动态和理解感兴趣。今天我将主要讨论LLM及其与视觉系统的交互。

最后是Kaazuki。

大家好,我是Kaazuki,也是一位Kaggle大师。我四年前加入这个团队。我的专长是推荐系统。

感谢Kaazuki,也感谢你从日本赶来参加这次演讲。

那么,让我们开始吧。本次大会上最热门的话题,也是我们在竞赛领域看到正在快速发展的,就是围绕LLM,特别是大型生成模型。Geway,也许你可以先为我们介绍一下这些生成模型,它们如何工作、如何训练以及我们如何使用它们。

当然。训练像GPT这样的大语言模型是一项计算密集型任务,它是一个多阶段的过程。第一阶段是预训练基础语言模型。基本上,我们从互联网收集海量文本数据,训练模型模仿人类语言,学习如何完成文档。

第二步是我们所说的监督微调。基本上,我们希望为特定用例(如聊天机器人、问答、创意或专业写作、编码)创建规模较小但高质量的数据,通常由人工标注。当我们有了这些较小的高质量数据后,我们应用相同的语言建模目标来持续训练模型。

第三步称为RLHF(基于人类反馈的强化学习)或DPO(直接偏好优化)。目标基本上与第二步相同,但它是基于更廉价、更容易的数据,例如用户反馈的偏好。这通常是一个二元信号,告诉我们聊天机器人生成的两个答案中,哪一个更有帮助、更有用或更好。这种偏好为我们提供了反馈,我们可以据此继续训练模型。

最后,我们可以为模型应用护栏,以防止其生成任何有毒或有害的信息。是的,这就是我们训练GPT的方式。

这其中涉及很多内容,我们能用它们做很多事情。我们看到如今在竞赛中它们被大量使用。但就在不久前,还有另一类模型可能是最普遍使用的,我不知道有谁比Chris在竞赛中更频繁地使用它们,那就是像BERT这样的编码器模型,我们需要额外的上下文。Chris,你能给我们讲讲BERT,以及它与我们今天使用的一些LLM相比如何吗?

当然。市面上有很多语言模型,甚至比聊天机器人模型还多,这确实让人困惑。它们基本上可以分为三类。有像GPT这样的模型,代表生成式预训练变换器。有像BERT这样的模型,代表双向编码表示变换器。还有像T5这样完整架构的变换器模型。

这些组之间的第一个主要区别在于它们如何预训练。在你针对特定任务微调模型之前,它已经在数十亿文本上进行了预训练,以获得对语言的通用理解。BERT的预训练方式是展示大量文本,然后随机隐藏一些单词,BERT需要使用隐藏单词前后的单词来尝试猜测隐藏的单词是什么。这是一个自动编码任务。因此,BERT非常擅长理解词汇、结构和语义。

而像GPT这样的模型,在预训练期间,它们看到大量文本,需要预测下一个单词。因此,它们非常擅长语言的流畅性和预测接下来会出现什么。

除了预训练的差异,架构上也有不同。一个完整的变换器有一个编码器和一个解码器,这是第三类模型,如T5。而BERT只是一个编码器。你输入文本,它经过一系列自注意力层,输出一个称为嵌入的数学向量。这个嵌入代表了文本。

GPT只是一个解码器。你输入一个嵌入,经过一系列层后,输出文本。

所以你可以看到有很多不同的LLM,有很多不同的差异。因此,它们各自擅长不同的任务。

确实,根据应用的不同,总是会有对编码器或解码器类型模型的不同需求。Kaazuki,你能谈谈在哪些应用中你会使用编码器模型,哪些会使用解码器模型吗?

说到BERT,有一些Kaggle竞赛使用了它。其中一个竞赛的目标是评估学生的摘要,另一个竞赛的目标是评估段落的复杂性。我认为这些都是BERT用例的好例子,因为BERT非常擅长分类任务。

与BERT不同,GPT用于生成句子,就像聊天机器人一样。对我来说,我用GPT来生成简单的代码。当我要求“给我展示一个PyTorch DDP的例子”时,GPT会返回示例。我经常听到人们说,没有GPT他们就不想写代码了。

所以我认为BERT和GPT非常不同。

是的,当然两者都有应用。很酷的一点是,这不仅仅局限于LLM和NLP领域。我的背景是视觉领域,我看到在视觉领域应用这些LLM时发生了一些非常酷的事情。Laura,你能谈谈你在视觉领域看到了什么吗?在使用语言模型方面,你看到了哪些趋势?

当然,LLM对视觉领域产生了巨大影响,特别是在我们与视觉系统交互的方式上。在LLM大放异彩之前,我们甚至没有考虑过使用自然语言与视觉系统交互。这首先是由CLIP实现的,它是最早提出将文本模态与图像模态对齐的算法之一。就像Chris之前解释的如何从文本获得嵌入,CLIP的想法是从图像获得嵌入,并将这两者放在同一个嵌入空间中。如果它们代表相同的对象,例如,你有文本“狗”和一张狗的图片,你希望将这两个嵌入放得更近。

那么,如何训练这样的系统呢?你需要一堆带有相应标题的图片,这些标题能解释图片的内容。然后你训练系统对齐这些嵌入。

现在很酷的是,你可以从一个模态转换到另一个模态,并可以做很多很棒的事情。你可以用自然语言与你的视觉系统对话,这确实让我们能够更广泛地思考如何将视觉系统应用到更多领域,例如,超越我们正在检测和分割的汽车和行人,真正从自然语言的角度进行大规模思考。所以我认为,随着LLM的出现,视角真的改变了。

将不同模态的嵌入带入一个共同的嵌入空间,这个想法开辟了许多可能性,非常强大。你看到了哪些由此开启的新能力?

对我们来说,如前所述,我们对感知感兴趣。LLM使我们能够进行我们现在所说的开放世界场景理解。以语义分割任务为例,以前我们做的是抓取一定数量的我们感兴趣的类别。如果你对自动驾驶汽车感兴趣,你想检测和分割行人、汽车、道路等,所以有一个固定的类别集合。我们训练系统对图像进行分割并分配标签,但标签是固定的。如今,随着LLM的出现,视角改变了。以前的问题是,如何将这样的系统扩展到世界上无限数量的物体?没有明确的路径。现在有了LLM,我们实际上看到了一条前进的道路。想法是,你实际上使用提示词,用你的自然语言来表达你想在图像中找到什么,视觉系统需要分割任何你提示的东西,比如消防栓、狗、牛等等,而不仅仅是一组预定义的类别。

所以我认为这是一种进行开放世界语义分割或场景理解的方式,与我们以前做的完全不同。

当然,LLM也改变了我们进行生成式AI的方式。现在我们有了像DALL-E或Midjourney这样的工具,它们利用了我之前提到的CLIP的对齐能力。例如,DALL-E获取这些文本嵌入,并使用扩散模型生成代表你文本描述的图像。你可能见过这些演示,你写下“一只在时代广场玩滑板的北极熊”,然后你得到一张完美生成的图像。所以我认为这为设计师、艺术家以及公众与视觉系统互动开辟了无限可能,因为现在一切都是通过自然语言进行的。我认为这开启了巨大的可能性。

对于我们这些从事竞赛工作的人来说,我们总是在寻找下一个新事物,以及我们能获得的下一个优势。你谈到的一些能力确实令人兴奋。你认为接下来会是什么?在视觉和LLM方面,我们正在谈论的下一个前沿是什么?

我们才刚刚开始探索文本和图像,但还有很多其他模态。在不走太远的情况下,我们有视频。我们现在看到了像Sora这样的东西,它可以从文本生成视频,但还有很多需要探索。例如,这些视频的时间连贯性问题,或者用于训练这些模型的标题问题,因为这与CLIP的想法相同,你想将视频与解释视频内容的标题对齐,但问题是这些标题是否只解释了视频中的物体,还是也描述了运动和动作。

所以我认为这是一个全新的研究领域,需要探索我们使用什么样的标题来训练这些系统,以及我们的视频将如何具有时间连贯性。我认为这个领域现在会出现很多工作。然后还有整个3D世界。我们有其他感官,例如激光雷达,我们也希望将几何特征与语言、图像对齐。所以我认为在不同的模态中确实有很多可以探索的。例如,我们一直在研究激光雷达,尝试使用几何特征、形状特征在激光雷达空间中提示物体。我认为这将非常令人兴奋,因为现在我们将能够使用文本提示生成完整的3D物体。我认为在未来几年里,将会有海量的新事物出现。

是的,确实令人兴奋。开始将其带入竞赛领域一点。不久前,让我们惊叹的东西还是像检索器这样的东西,你可以检索图像或检索文本并获得共性。但现在有了生成式AI,我们已经能够远远超越这一点,实际上我们可以将这两个概念结合起来。现在有一个叫做RAG的东西,每个人都在谈论RAG。Chris,你能稍微解释一下RAG吗?告诉我们什么是RAG以及如何使用它。

好的,RAG是一种非常酷的技术,它扩展了LLM的能力。它代表检索增强生成。

如果你问一个基本的聊天机器人一个问题,它会根据其记忆,即它已经知道的东西来回答。

当你使用RAG时,你有一个LLM和一组文档。然后你提出一个问题。第一步是,我们在所有文档中搜索与问题相关的文本块,然后我们将问题和所有这些有帮助的文本块一起提供给LLM。LLM查看所有内容,然后给出答案。这一切都在不知不觉中发生。因此,返回的答案要准确得多。

我有机会在最近一个名为“LLM科学考试”的Kaggle竞赛中体验了这一点。我们的挑战是构建一个能够回答多项选择科学考试问题的系统,但我们受到限制:语言模型的大小有限,还有时间和资源限制。因此,我们不能提交像ChatGPT那样大的模型,因为它可能已经在其记忆中拥有很多知识。我们必须提交较小的模型。

赢得这次比赛的解决方案就是RAG。具体来说,人们提交模型的同时,还提交了一组文档。具体来说,他们提交了所有六百万篇维基百科文章。然后,他们的代码在准备回答科学考试问题时,会首先扫描所有六百万篇文章,在眨眼之间找到任何与问题相关的文本,然后将这些有帮助的信息连同问题一起提供给LLM,LLM会返回答案。

我亲眼目睹了这一点,因为在我的电脑上,我会故意提出具有挑战性的问题。我会提出关于量子物理的特定细节或数字的问题,并认为它不可能找到。但果然,在眨眼之间,它就会带着答案回来。准确率大约是97%或98%。所以RAG系统能做的事情确实令人难以置信。

最令人印象深刻的是,这一切都发生在幕后。你只是问一个问题,答案就回来了。它进行检索和所有这类事情,都发生在眨眼之间。真的很神奇。

对于那些可能想了解更多或想看看实际操作的人,Chris发布了一些非常棒的笔记,在几个月前的Kaggle竞赛中是投票最高的笔记之一。你可以去查看那些笔记,看看他是如何训练RAG的,如何用RAG进行推理。确实是非常好的内容。

Kaazuki,Chris在那里谈到了几件事,他谈到了检索,谈到了LLM进行生成。你如何平衡这两者?哪一个更重要?你如何看待检索和LLM之间的权衡?

让我谈谈RAG和微调这个话题。有一些论文比较了RAG和微调,几乎所有论文都显示RAG比微调更好。因为微调是一种很难应用的方法,由于灾难性遗忘的问题。这意味着当你想训练新东西时,比如最新的新闻,当然你可以这样做。但模型经常会忘记所有东西。

除此之外,RAG与微调相比更具成本效益,因为微调需要大量的计算资源。

但是,我认为当你需要专门的理解时,值得尝试微调。我认为我们应该在节省成本和满足要求之间找到最佳平衡点。

所以,基本上RAG可以使LLM比LLM本身更好,根据你所说的,它可能更便宜,不需要微调模型和获取额外数据,而且效率更高。这显然非常强大,但我们当然也对其应用感兴趣。Geway,你现在看到了RAG有哪些不同的应用?

我认为使用RAG有两种有趣的应用。第一种是保护隐私。我们都有很多私人数据,无论是个人还是企业的,我们不想在线分享。我们能做的是将LLM带到本地控制的环境中,比如我们部署开源的LLM,并创建向量数据库,比如嵌入模型。具体来说,就像一个RAG系统,将我们的本地私有数据连接到这个本地部署的LLM。这就是“与你的数据对话”的体验。它利用了保护数据隐私的能力。

实际上,我们在二楼演示区有两个演示可以互动。我们有“与RTX聊天”的演示。基本上,它部署在Windows笔记本电脑上,所以你可以使用大语言模型与一些PDF文件或其他类型的文件对话。另一个演示是“使用Nemo Agent与你的数据对话”。每当你有一个问题时,会有一个代理将问题路由到非结构化文本代理或结构化SQL检索代理,然后获取答案并返回给你。我认为这些都是相当有趣的保护隐私类型的演示。

第二种应用,我认为是增强用例的时效性,例如新闻或金融代理,以及增强搜索和副驾驶。它可以处理实时流数据,帮助我们完成任务,如回复电子邮件、帮我写会议摘要或编写代码。

是的,应用几乎是无限的。我们一直在谈论LLM和RAG的应用,以及视觉和LLM之间的嵌入空间等热门领域。我知道我们都感兴趣的是,如何将这些技术实际应用到竞赛领域。随着这些新技术的出现,竞赛似乎开始发生一些变化。例如,我们看到一些竞赛不提供数据或只提供一个数据点,你必须自己生成数据。你在竞赛领域还看到了哪些其他变化?

就像你提到的,我认为Kaggle竞赛中一个非常有趣的趋势是,越来越多的竞赛根本不提供任何训练数据,或者只提供非常少的训练数据,不足以训练一个强大的预测模型。这里的挑战是要求所有参与者提出新颖的想法和解决方案来收集自己的数据,整理自己的训练数据。这实际上是任何机器学习任务中非常关键的一步,但之前在Kaggle上,训练数据是固定的,很难或不可能扩展训练数据。但现在我们看到越来越多的用例,参与者利用LLM生成训练数据,这实际上创造了巨大的竞争优势来赢得比赛。

是的,与人工标注相比,这也非常具有成本效益。所以我期待更多这样的竞赛。我认为这项技能对于竞赛之外的其他任务也相当有用。

完全同意。我们在竞赛中看到的另一个应用领域是推荐系统,这在以前并不常见。Chris,我知道你以前在推荐系统方面做了很多工作。你有机会将LLM用于推荐系统问题吗?

是的,我们有。随着LLM的发展,我们实际上看到它们正在改进AI的所有其他领域。Laura谈到了它如何帮助视觉,但另一个例子是推荐系统。推荐系统就是当你访问在线购物网站时,它会推荐你可能喜欢的东西,或者流媒体视频网站推荐电影。

推荐系统的工作方式是,有用户和物品。它试图推荐用户可能喜欢的物品。典型的解决方法是:你可以查看用户之前互动过的物品,然后找到与这些物品相似的物品;或者你可以查看一个用户,找到与该用户相似的其他用户,然后看看他们喜欢什么物品;最后,你可以找到用户与他们互动的物品之间的模式。

LLM的帮助方式在于,正如我们之前提到的,像BERT这样的模型可以编码一段文本。因此,物品可以通过其文本描述来表示,我们可以获取该描述,然后将其编码成嵌入。嵌入就像是空间中的一个点,一个小点。当你编码所有物品时,你就有了所有这些点。然后,我们可以通过找到哪些点最接近来找到相似的物品。

所以,它现在为我们提供了一种寻找相似物品的新方法。同样,我们可以将其应用于用户。最后,通过使用这些嵌入,这些点,我们实际上可以在这个嵌入空间中找到用户和物品之间的模式。

所以,使用LLM确实帮助我们构建了更准确的推荐系统。我想你实际上在最近的KDD杯竞赛中使用了这个,对吗?也许你可以告诉我们。

是的,我们做到了。最近,我和一群同事组队参加了2023年著名的年度KDD杯竞赛,该竞赛由亚马逊主办。任务是构建三个推荐系统。当你访问亚马逊在不同国家的网站时,这些网站使用不同的语言,任务是:我们必须为拥有大量数据的语言构建一个推荐系统;然后为数据不足的少数语言构建一个推荐系统;最后,构建一个推荐系统,用于推荐尚不存在的产品。

我们的解决方案使用了大型语言模型。具体来说,我们使用嵌入来寻找相似的物品。此外,嵌入还允许我们做其他事情:当我们通过迁移学习或翻译在拥有大量数据的语言中找到模式时,因为我们是在嵌入语言空间中工作,我们能够将这些模式迁移并应用到少数语言的推荐系统中。这给了我们巨大的优势。

在第三个任务中,我们使用了像BERT这样的模型作为编码器。对于第三个任务,即生成尚不存在的潜在物品,我们使用了像GPT这样的模型,基于用户喜欢的物品的嵌入开始,然后它会生成尚不存在的产品的文本描述。

因此,使用语言模型,并结合经典技术,使我们能够构建非常准确的模型。实际上,NVIDIA团队获得了第一名,而且是在三个不同的竞赛中都获得了第一名。我们对此感到非常兴奋,这很好地展示了LLM在帮助其他形式AI方面的力量。

这是一个很好的例子,说明这些新技术不仅可以应用到现实世界,也可以应用到竞赛中。所以很明显,这个领域正在发生变化。Kaazuki,你认为未来竞赛会走向何方?未来的竞赛会有什么不同?

我认为LLM将成为人类标注员更强大的工具。它们可以通过接管数据增强和提供建议来加速标注过程。换句话说,标注员可以更专注于更本质的任务。这正是竞赛组织者所期望的。

所以,我认为不仅如此,机器学习模型将使用这些高质量数据变得更加准确和鲁棒。此外,我认为它使CV和NLP更加可靠。

是的,这又回到了Geway谈到的关于数据的问题,现在我们可以使用LLM做更多与数据和标注以及生成相关的事情。所以,这肯定是我们应该关注的一个变化。

很好,今天我们涵盖了很多主题,一些最新的技术,我们如何使用它们,如何应用它们,以及它们如何在竞赛中使用。但我们很乐意听取您的意见,如果您有任何关于这些主题或更广泛领域的问题,我们很乐意回答。


问答环节

问题1: 首先,感谢这个精彩的讨论小组。我的问题是关于机器学习竞赛的未来。过去,如果你参加机器学习竞赛,你有可能为最先进的研究做出贡献,AlexNet就是一个完美的例子。要做到这一点,入门门槛相当低,你只需要一台带GPU的电脑,基本上还需要聪明才智。现在,最先进的研究需要你训练大型模型,这至少需要几百万美元和计算机集群,不是这个房间里的每个人都有机会获得这种资源。那么,您认为未来的机器学习竞赛是否仍将为发现尖端突破和最先进的发展提供场所?或者它会变得边缘化,主要成为招聘的场所和人们享受爱好的地方?

回答(David): 当然,我先开始回答,也许其他人想补充。这里涉及一个自我调节的因素,即用于推理的计算量。你可以去训练这些先进的模型,但如今竞赛的运作方式主要是代码竞赛,你必须将代码提交到具有有限计算资源的推理服务器上。因此,我们看到很多关于如何压缩这些模型、如何量化它们、如何让它们在有限资源下运行的巧妙创新。我认为这个因素在一定程度上平衡了竞争环境,使其不仅仅是关于谁拥有最多计算资源。如果只是关于提交一个静态的CSV文件作为解决方案,那么你问题的前提就完全正确,那就是谁拥有最多计算资源谁就赢。但情况并非如此,我们实际上看到了一些非常创新的东西,甚至超出了实际竞赛的范围或意图,因为每个人都在试图利用最新、最先进的技术,但如何将其压缩到每个人都能访问的有限计算资源中,这本身几乎就成了一个挑战。

回答(Geway): 我可以补充。我认为即使是现在,所有的机器学习竞赛仍然可以为最先进的研究做出贡献。我认为有两个例子:第一个是专家混合模型。如果你查看Hugging Face的Open LLM排行榜,许多顶级条目实际上是通过以创新方式混合几种语言模型创建的。所以它实际上并不像人们想象的那样计算密集。它可以在笔记本电脑甚至单个GPU上完成。这就像是LLM的集成。第二个例子是像QLoRA这样的方法,即量化低秩适配器。你只训练一个非常小的适配器。尽管LLM有数十亿参数,但适配器实际上只有几兆比特。在某些情况下,它可以以低成本极大地增强LLM的能力。

问题2: 很好的演讲。我有一个关于你们提到的赢得比赛的第三部分的问题。我觉得你们跳过了一步,你们谈到获取嵌入,然后使用嵌入进行推荐,但我不太理解从嵌入到推荐之间的跳跃。你能详细说明一下吗?

回答(Chris): 假设一个用户之前浏览了一堆黑色衬衫。那么,对他们未来可能喜欢什么的一个很好的假设是,可能更多他们显然感兴趣的衬衫,也许他们喜欢黑色。所以你基本上挑选与他们历史物品相似的物品。嵌入的过程是,我们可以获取文本描述,比如颜色、材质。你获取文本描述,嵌入本质上是一个数学向量,一个点。然后我们可以获取网站上的所有其他物品,将它们嵌入成点。在这个嵌入空间中,所有靠近黑色衬衫的点很可能都是其他衬衫以及颜色相似的东西。所以所有的点都会聚集。我们查看之前的物品,它们是一堆点。然后我们推荐附近的点。

追问: 抱歉,我没描述清楚。我的意思是,如何基于此提出新产品的想法?

回答(Chris): 哦,你是指第三个任务,生成式AI那个。好的,生成式AI的任务是,一旦你有了他们拥有的产品的嵌入,以一个例子来说,你可以取他们之前的五个产品,也许可以平均一下,得到一个平均嵌入,然后运行一个解码器。你输入那个嵌入,然后它基本上会尝试将该嵌入转换回它是什么产品,但由于你本质上生成了一个新的嵌入,所以它会写一个描述,但这个描述实际上并不存在。

追问: 当你平均嵌入后,下一步如何得到描述?我不太确定这一步。如何从嵌入到描述?

回答(Chris): 我明白了。基本上,模型需要被微调。你需要大量数据,其中有嵌入和文本描述。然后你基本上训练模型为你进行转换,将嵌入转换为文本。你在所有数据上进行训练。然后模型泛化的方式是,你可以给它一个从未见过的新嵌入,并要求它转换为文本,它会尝试转换。但这次,它会想出一些它没见过的文本。你需要为这个任务专门训练一个模型。是的,没有现成的亚马逊推荐模型。

问题3: 我的问题更多是关于表示和生成,特别是问Laura。你提到了CLIP,还有CLAP、ImageBind。你看到这些表示模型是单独学习并带有某种基础,然后这些嵌入被固定并用于任何生成模型来生成图像吗?或者你看到未来是表示和生成发生在同一个模型中,就像Gemini那样,你输入所有内容作为令牌,然后生成?

回答(Laura): 这实际上是一个很好的问题。目前对于研究来说,将问题分开处理要容易得多。我们通常使用预训练模型,甚至不碰它们。它们是冻结的,我们只是尝试从中提取知识。这也与第一个问题相关,这是你可以用少得多的资源完成的事情。所以我认为这是有道理的。但这样做还有另一个原因,那就是因为你用于训练CLIP的数据与你用于训练生成图像的稳定扩散模型的数据是不同的。我认为,如果每个系统都只针对其必须完成的任务进行优化,然后将它们连接在一起,会容易得多。所以我认为CLIP已经完美地达到了它的目的,然后你可以提取信息,你的生成任务、感知任务可以分开进行,你不需要一起重新训练两个模型。这将是一个巨大的负担。

在线问题1: 我们如何让社区更多地参与AI开源技术?最令人兴奋的部分是什么?我们如何能更多地向社区提供这些?

回答(Geway): 是的,我能想到的一件事是降低LLM的硬件要求。实际上,我们正在开发的一个开源项目,虽然目前还不可用,但很快就会发布。我们试图重现Chris刚才提到的用例,即使用RAG的Kaggle科学考试,我们希望在单个GPU上重现该解决方案,具体来说,占用大约20或30GB的GPU内存,以便可以在单个GPU上运行。在这个过程中,我们做了一些改进,比如对语言模型进行FP8量化,我们使用IVFPQ算法创建向量数据库。我们有6500万个文本文档,这大约相当于110GB。使用IVFPQ,我们的向量数据库只有6GB。是的,我们应用了这些优化,希望能创建一个演示,让用户可以用入门级GPU体验,并可以在Kaggle内核或Google Colab上重现完全相同的解决方案。我认为这将使人们更容易开始使用大语言模型。

在线问题2: 与LLM相关的最重要的、尚未解决的数据科学挑战是什么?您认为哪些挑战将能够解决?

posted @ 2026-10-17 13:17  绝不原创的飞龙  阅读(8)  评论(0)    收藏  举报