专栏名称: 极市平台
极市平台是由深圳极视角推出的专业的视觉算法开发与分发平台,为视觉开发者提供多领域实景训练数据库等开发工具和规模化销售渠道。本公众号将会分享视觉相关的技术资讯,行业动态,在线分享信息,线下活动等。 网站: http://cvmart.net/
目录
相关文章推荐
OSC开源社区  ·  【直播预告】AiEditor:面向AI的下一 ... ·  2 天前  
程序员的那些事  ·  3·15 ... ·  3 天前  
程序猿  ·  刚刚,雷军宣布!瞬间爆了 ·  2 天前  
程序员小灰  ·  小灰的DeepSeek星球,马上涨价! ·  3 天前  
51好读  ›  专栏  ›  极市平台

李沐重返母校上海交大,从LLM聊到个人生涯,这里是演讲全文

极市平台  · 公众号  ·  · 2024-08-24 22:00

正文

↑ 点击 蓝字 关注极市平台
作者丨
来源丨
编辑丨极市平台

极市导读

昨天,李沐回到了母校上海交大,做了一场关于 LLM 和个人生涯的分享。本文是机器之心梳理的李沐演讲内容(根据 B 站用户@考拉klkl上传的视频整理,感谢这位同学的录制,视频链接见文后。) >> 加入极市CV技术交流群,走在计算机视觉的最前沿

正文

图源:上海交通大学特聘教授俞勇朋友圈。

Hi!大家好,说我是计算机杰出校友有点不敢当。很多年没有回来,这次回国想见一见本科导师。我的 AI 启蒙导师李老师说,来都来了,要不做个报告吧。

本来我想讲一些关于语言模型的知识,但听讲座的各位不一定都是这个方向,所以我加了一些这些年转了很多地方、做出的不同选择的感想。

第一部分我会讲得稍微技术一点,是有关整个语言模型的现在,以及未来情况的预测。

语言模型可以分为三块:算力、数据和算法。所以语言模型也好,整个机器学习模型也好,本质上就是把数据通过算力和算法压进中间那个模型里面,使得模型有一定的能力,在面对一个新的数据时,它能够在原数据里面找到相似的东西,然后做一定的修改,输出你要的东西。


打个比方,很多年前深度学习刚出来的时候,我说机器学习像是老中医,深度学习可能跟玄幻小说的炼丹有点像。所以你看现在的语言模型就很像炼丹,你要把一些材料放进一个丹炉里面,然后有个丹方去把它炼出来。

那么数据就是你要找的材料。你看那些小说里面,主角大部分时间都在找材料,包括去深山里面找、去拍卖会上买,所以搞数据是很难的事情,是个体力活。但是你必须得有这些数据,而且要多弄一些,因为你不知道到时候会不会毁掉一些。

算力也很重要,就是说火要大一点,设备要先进一点,因为越好的设备炼出来的东西越好。

算法就是你的丹方了。丹方这个东西可能跟小说不一样。它每年都在进步,而且对于细节的把控非常重要。就算别人告诉过你这个东西怎么弄,但在真实的场景里面,你会发现还是挺不一样的。这就有点像你去徒手发射火箭,发之前你要动手调一调,没调好的话就炸掉了。

这一次(浪潮里)的语言模型和上一次深度学习(浪潮里)的模型有一个比较大的区别 —— 上一次是,我炼一个什么丹就治一个什么病,这次我希望这个东西炼出来会有灵魂在里面,它能解决你很多问题,这其实是技术一代代往前进。

接下来要讲的就是,硬件、数据和算法,未来几年会发生什么。这里面其实是有规律可循的,它不是一个跳跃性的东西。

算力层面:大模型不是特别有性价比的东西

带宽:让芯片靠得更近一些

硬件这块,我放第一位的是带宽。实际上带宽是最难也是最重要的。因为就现在的模型训练而言,很难让一个机器搞定所有事情,所以要做分布式训练,通常瓶颈就在带宽上。

我们现在的带宽是一根光纤承载 400Gigabits,下一代就是 double,变成 800Gigabits。


半年前,英伟达发布了一个名叫 GB200 的系统(现在已经推迟出货)。不知道大家有没有见过 GPU 长什么样子?这些机器其实是很高的。以前你去数据中心,会看到一个机架柜可以放很多很多刀片服务器。现在换成新的 GPU 之后,一个机架位只能放两台机器。这是因为供电、散热等等一系列的问题。英伟达可以把 72 块卡压缩一个机架位里面。

这里面用到了水冷工艺。之前我们其实不太用水冷,因为水冷有很多问题,比如那个阀门没做好就会漏水,整个机架位一漏水就完了。而且水冷对整个基建是有要求的,水要进来要出去。水的好处是可以带走很多热量。现在我们大部分是靠空气吹,但水的密度更高,所以它带走热量的能力更强。

所以一旦用到水冷之后,你的算力就可以更密,就可以放更多机器。芯片就可以压得比较扁。压得比较扁的好处就是,每个芯片之间更近了。芯片之间直接用光纤,以光速互通。光速你看上去很快,但实际上在我们眼里已经很慢了。一台机器传输到隔壁一米之外的机器所带来的几纳秒延迟,几乎是不能忍。我们自己去设计机房的时候会考虑光纤的长度,因为一米的差距就会给分布式训练带来一个可见的性能影响。

英伟达的 GB200 这个卡就可以把 GPU 都放一起,那么它们之间的通讯会变得更好一些。你可以理解成:之前我们做多核,把单核封装到一个芯片里面,现在是说多核不够,我要做多卡,多卡以前是分布在一个房间里面,现在是多卡也要尽量放在一起,这是一个趋势。就是一块芯片那么大,早就做不上去了,这是台积电等面临的工艺难题,现在是尽量把这些东西弄得近一些。

还有一个通讯是 GPU 和 CPU 之间的 PCIe,它每几年也在翻倍,但是确实会慢一些。

内存:制约模型尺寸的一大瓶颈

接下来讲内存。内存比算力也重要一点。因为现在的语言模型,核心是把整个世界的数据压进模型里面,那模型就被搞得很大,几百 GB 的样子。在运行的时候,它的中间变量也很大,所以它就需要很多的内存。现在我们可以做到一个芯片里面封装近 192 GB 的内存。下一代带宽会更高一点。

但这个东西目前已经被认为是一个瓶颈了。这是因为内存占面积 —— 一个芯片就那么大,划一块给算力,划一块给内存之后就放不下什么东西了。所以很有可能在未来几年之内,一个芯片就 200GB 内存,可能就走不动了。这个要看工艺有没有突破。这意味着我们的模型大小在一定程度上会被限制在一个尺寸,因为更大的话你的效率会变得特别低。所以内存大小会是模型上限的一个制约,而不是算力。我们是内存不够,模型就做不大。

在这一块,虽然英伟达是领先者,但其实英伟达是不如 AMD 的,甚至不如 Google 的 TPU。

算力:长期来看会越来越便宜

当你搞定了带宽和内存的时候,再去看算力。

机器学习好的一点是,你可以用 4 位浮点数,硬件会变小,它对带宽的利用率也会变低,因为每次计算它只有那么多浮点数在里面。所以我们最近几代优化都来自浮点数的精度的降低。这是它给硬件带来的好处。

但是当你把模型做得更大的时候,你会发现资源是问题,就是供电。我们自己在做数据中心的时候,曾经真的想过我们自己造一个电厂。当我们发现自己去造一个电厂的成本比我们付的那个电费成本还低的时候,我们花了几个月时间去看那个电厂文件。最大的一个芯片要耗一千瓦,一千块芯片就是一兆瓦,整个校园都未必能用上一兆瓦的电。

关于算力价格。从理论上来说,在公平的市场里面,每次算力翻倍,价格会保持不变,充分竞争的市场会有这个好处,在过去很多年都是这样。但是最近几年英伟达的垄断导致这个价格下不来。短期来看,算力翻倍,价格可能会有 1.4 倍的提升。但是长期来看,当竞争变得越来越激烈,摩尔定律会发挥作用,就是说算力翻倍,价格不一定变。所以长期来看算力会变得越来越便宜。

算力这块,你可以用别的芯片,但是这些芯片用来做推理还 OK,做训练的话还要等几年的样子,英伟达还是处在一个垄断的地位。


所以在算力这块,你可以认为摩尔定律还是会发挥作用,就是训练会两倍两倍地变便宜。所以你今天训练一个模型,一年之后它的价值会减半。很多时候,大家不要去想我现在能搞多大的模型,一年之后,这个模型会贬值。我想说,大模型不是特别有性价比的东西。你要想清楚,从长期来看,你的模型能带来什么价值,让你能够保值。

模型:从语言到多模态

语言模型:100B 到 500B 参数会是主流


接下来讲模型,比如说语言模型。每次预训练,无论是 OpenAI 还是别的模型,基本都是用 10T 到 50T token 做预训练。开源的话基本也在 10T token 以上。这个数据量我觉得差不多了,不会再往一个更大的尺寸去发展。原因是,人类历史上的数据比这个多是多,但是看多样性、质量的话,我觉得 10T 到 50T 这个规模就差不多了。你说我还是能弄到很多的数据进来,但这个数据质量不一定能给你带来一个更好的提升。也许你可以弄到更多的数据,但是清洗之后可能会回到一个这样子的值。

你的模型大小就是 100B 到 500B 这个样子。我觉得比较好的一线的模型就是 500B,超过 500B 不是训练不动,而是做 serving 很难。在谷歌历史上,他们就没有让 500B 以上的模型上过线。OpenAI 没有对外说,但我觉得 OpenAI 历史上没有上线过有效大小超过 500B 的模型。当然 MoE 不算,我是说换算成稠密模型的话。所以,很有可能在未来一阵子,因为受限于内存大小和数据的尺寸,我觉得 100B 到 500B 会是未来主流的一个大势。你可以做更大,但是它很多时候是用 MoE 做的,它的有效大小(每次激活的大小)可能也就是 500B 的样子。

语音模型:延迟更低、信息更丰富

GPT-4o 出来之后,大家对于语音模型产生了浓厚的兴趣。以前的模型是我先做 ASR(自动语音识别),把语音信号转成文本,然后放进语言模型,让它出一个文本的回复,再通过 TTS 变成一个语音的信号。现在大家做的是直接让你的原始的语音信号进去,然后原始的语音信号再出来。

后者的好处有两点:一是我们说话的时候,其实里面包含了很多东西,包括情绪、语调以及你是哪一类的人。大家能够通过声音去分辨你的方言,通过你说话的音调能大概知道你是一个什么样的人。所以人的语音信号里面包含很多东西,还有你的背景音乐、场景音乐,甚至你唱歌的节奏感都有很多信息在里面。目前我们那一套传统的技术是做不了的。这套新的语音技术可以让语音直接进去,然后利用文本语言模型强大的能力去发掘里面的信息。在做输出的时候也是一样的,我的输出可以根据你的输入的个性化场景来变换语调、情绪。这是一点。

另一点是延迟更短。之前我要先输出一句话,再进到一个模型去把语音输出来,这个延迟可能是 1 秒。现在我们大概可以做到 300 毫秒。300 毫秒最大的好处是可以打断。人与人之间交互,就我跟你在说话的时候,你说一句,我可能会回应一下,或者中间会打断,所以这个体验就会做得更好,更像真人一些。

我觉得这是这个技术目前能看到的最好的两点。

还有一点就是说,它能够通过语言模型对整个输出做很多控制。可以让你用文本定制化一个什么样的声音出来。

音乐模型:不是技术问题,而是商业问题

另外一个国内在商业上做得挺好的东西就是音乐的生成,最近出了挺多做音乐的一些工具。我觉得这一块的进展从来不是一个技术问题。它的技术其实比语音麻烦一点,因为音乐比人说话更复杂一点。但是实际上它还是一个版权的问题。现在大家开始慢慢解决版权的问题 —— 大公司去买版权,小公司想反正我光脚不怕穿鞋的,我就上。

市面上我觉得已经很好了,就是说抖音快歌,虽然爆款很难,但是如果你不是音乐专业的人,你听下来觉得没什么问题。我之前看一个同事写首歌,歌词大意是:我在公司就一个朋友,这个人去吃饭了,一个半小时还没回来,我觉得他是不是出什么事了?我是不是要打电话给他女朋友问一下呢?但我又是一个很社恐的人,我又不敢跟人打电话。

就是说,音乐是一种表达,是一个人的交互,任何一个什么感觉你都可以通过音乐表达。以前你很难用音乐把它很富有情感地表达出来。大家可以写诗,写诗可能比音乐容易一点,现在你掌握了这个表达工具之后,我们未来很多人会用音乐这个形式来表达想法和情感。我觉得这个可能是影响力会特别大的,那它不是个技术问题,它可能还是一个商业问题。

图像模型:生成的图越来越有神韵

接下来是图像。可能大家最近几天都看过那个做得很真的 TED 演讲的图片。

目前来看,图片应该是整个 AIGC 领域做得最早的,也是效果最好的。现在大家可以做到 100 万以上像素的图片的生成。大家说得最多的是图片要有灵魂。之前你去看那些文生图的工具,它的风格还是很假,但现在你会看到跟真的很接近,当然它还缺那么一点点灵魂,不过这一块说不定很快就有了。


视频模型:尚属早期

Sora 出来之后,大家非常关注视频模型。这个实际上还算比较早期,通用的 video 生成还是非常贵,因为 video 数据特别难弄。视频模型的训练成本很有可能低于数据处理的成本,所以你没有看到市面上有特别好的开源模型出来。问题在于生成一张图片容易,但生成一连串连贯的图片,并保持一致性是很难的。

多模态模型:整合不同模态信息

目前存在一种趋势,即多模态。现如今,多模态技术的发展趋势在于整合不同类型的模态信息,尤其是文本信息,因为文本含有丰富的信息并且易于获取。通过利用在文本上学到的技能,可以将这些能力泛化到其他模态,如图片、视频和声音。

这样做有两大好处:一是可以借助强大的文本模型进行泛化。另一个优点是可以通过文本来定制和控制其他模态的输出,比如用简单的文本指令控制图片、视频和声音的生成,而不再需要专业的编程技能或工具。比如写代码,以前可能需要专业的写代码工具,现在交给 ChatGPT,你通过文本下达要求就行了。逐渐的,你想要生成某个模块的话,也是通过文本去控制的,这应该是未来可能的一个常态,大家用自然语言去做交互。


总结下来,我觉得语言模型已经达到了较高的水平,大约在 80 到 85 分之间。音频模型在可接受的水平,处于能用阶段,大约在 70-80 分之间。但在视频生成方面,尤其是生成具有特定功能的视频尚显不足,整体水平大约在 50 分左右。

还有一个推论是我觉得人机交互会有一点改变,比如在点菜时,在 ChatGPT 出来之前我们与手机的交互方式是刷刷刷和点点点,这是最简单的方式,对人类来说也不耗费精力,能不说就不说。但在 ChatGPT 出来之后,大家打破了这种观念,他们愿意去输入一段很长的文字去做事情,这是因为设计好的东西不一定满足我们的所有需求,可能满足了 80%,但没有满足对细节的需求,这时可以通过长文本,即输入很长的文字来解决。但输入长文字还是不如说话方便,所以在微信上很多人会说我语音留言会方便点。

现在语音技术正在进步,未来大家可能会越来越能接受对方用一个很长的语音跟你描述一些事情,让你去完成。虽然早期的语音控制系统通常只用于执行简单的指令(例如「开窗」),这种简单的功能并没有形成强烈的用户黏性,因为用户可以通过其他简单的操作来完成相同的任务。但是,随着技术的发展,未来的语音控制系统将能够处理更加复杂和具体的任务,这种技术的自然和便捷性将显著提高。

所以这是用户习惯问题。大家可能都在说我们这一次的技术革命还没有出现 killer APP(杀手级应用)。所谓的 killer APP 就是说一个技术的出现,可能会涌现出一个非常受欢迎的应用形态。

大家知道手机的 killer APP 是什么吗?短视频。回想一下五年前,你可能很难想象大家会刷那么几秒钟的视频。

所以这一次的 killer APP 是什么?

上一波的顶级 AI 公司基本上快死得差不多了,包括 Character.AI、Inflection 被卖了,Adept 也被卖了,还剩一个 Perplexity 搜索还在支撑着。但是下一代 killer APP 是什么大家不知道。可能等技术变成熟,大家的不习惯慢慢地过去了,这个东西会涌现出来。

应用:AI 离变革世界还有很多年



在应用层面,AI 本质上是去辅助人类完成任务,给人类提供无限的人力资源。我将应用分成三类:

第一类就是文科白领。白领是用自然语言去跟人、跟世界打交道,包括写文章或者其他。我认为在这方面做的比较好的领域包括个人助理、Call centers、文本处理、游戏和舆论以及教育。一个文科白领可能一小时完成的事情,我们的模型还是能够完成百分之八九十的。



第二个是工科白领,目前 AI 想取代程序员还早得很。在过去,编程往往需要程序员自行查找代码示例,例如在网络上搜索,然后下载一个工作流程的代码片段,对其进行变量修改和调试,以适应特定的任务或项目。

但现在,先进的模型可以自动完成这些步骤。你不用去 copy 代码了,因为整个 workflow 已经给爬下来了,训练的时候已经在里面了。当你向模型提出请求时,它可以直接在其训练数据中检索相关的代码片段,根据上下文,再把变量名改一改,模型就做这种事。但它不是真的在写代码,我们人类一个小时还是能够写出很多复杂的代码的,所以我觉得模型还是没有取代工科白领一个小时干的事情,更不用说更复杂的任务了。

最后一个是蓝领阶级,这反而是最难的,这里面唯一做的好的是自动驾驶。自动驾驶为什么这么出色?是因为路况相对来说是一个封闭的世界,比较稳定,比如有些地方路况十年都不会改变,所以在封闭路况里面开车相对来说是比较简单。虽然现在无人驾驶还没有完全解决,但进步还是很大的。

路上的车多,每个车上都有传感器,从而采集大量的数据,基于大数据做技术开发,比如特斯拉,车上有大量摄像头,有很多车在路上跑,可以采集很多数据来优化算法,而且路况变化不大。

但是正常的蓝领需要做什么事情?端盘子、运货等,AI 跟这个世界打交道是一件很难的事情。比如机器人进入一个房间,它要理解这个房间有什么东西其实很难。除非有技术突破,不然的话需要大量的数据作为辅助。这是一个鸡生蛋蛋生鸡的问题,如果房间内没有足够的传感器,就采集不了足够的数据,另一方面,一个房间里不可能有很多机器人进来,同样也无法得到很多数据,因而泛化能力不是很好。但是在物理世界投放 AI 机器人是一件很难的事情,可能需要很多年。所以 AI 理解蓝领的世界,包括和这个世界互动可能需要至少 5 年时间。



所以简单总结一下:

对于文科白领的工作,AI 已经能完成简单任务,复杂任务需要继续努力。对于工科白领的工作,简单任务还需要努力,复杂任务存在困难。对于蓝领的工作,除了无人驾驶和特定场景(比如工厂,场景变化不大,也能采集大量数据),AI 连简单任务都做不了,完成复杂任务更难。

但是放眼整个世界,蓝领是最主要的成员,因此技术对这个世界做出巨大的变革还需要很多年。未来 10 年、 20 年,大家还是有机会参与进来的。



对应用来讲,只要你能采集到足够多的数据,就可以被自动化。现在 AI 面临的困难是需要很多数据。一个行业如果能够采集很多数据,那么就能进行自动化。反过来,如果你让模型完成一项任务,首先考虑的是怎么样采集很多数据。很多时候传统企业会先把数据采集起来,数据积累好了,几年之后才慢慢开始。所以这是一个发展规律,就这样子,很多时候急也急不来。

创业一年半,李沐感悟

从这一年半的创业经历中我们学到了一些东西,一些更细节的东西。

预训练是工程问题,后训练才是技术问题



首先第一点:之前大家会觉得预训练很重要,比如训练一个几百 B 参数的模型,现在在我看起来预训练是一个工程问题,后训练才是一个技术问题。但在两年前预训练还是一个技术问题,现在我觉得变成工程问题了。对于后训练,高质量的数据和改进的算法能够极大地提升模型效果。高质量的数据一定是结构化的,并且与应用场景高度相关,以保证数据的多样性和实用性。

在算法层面,OpenAI 提出了 RLHF,大家给予很高的评价。但当我看到这个算法时,我觉得这个算法有点牵强。这套技术在几年之内发生了非常大的变化。但到底哪个算法好,我也说不出来。原因在于每个人用的数据不一样,导致算法所适用的场景不一样。以至于你在读一篇论文的时候,可能在论文中效果很好,但自己实际用时,发现根本用不了,原因在于用的数据不一样,目标函数对这个结构化问题的假设不一定对应的上,导致算法不太行。这个问题没办法规避,就是一个技术问题,就得去做研发。

如 PPT 上的图所示,我们拿 llama 3 70B 微调了一个模型,进行角色扮演(如老师、销售等)。我们直接在 llama 3 base 的基础上做后训练,微调了两个版本 V1、V2,目前 V2 在角色扮演上优于其他模型。







请到「今天看啥」查看全文