王铁震
Maintainer当然要在这个上面花更多精力,而且很多时候,maintainer的精力花费是非常大的,它的影响力也非常大。
卫诗婕
是小组长检查、批改作业的。
王铁震
没错,就是这种感觉。只要他有这个爱好、有这个想法,都可以进来贡献自己的一份力量。
卫诗婕
哦,就像我应该做A技术,有人说我应该做B技术,效果可能更好。那你可能在公司里面就要做一个决定,但是在开源社区里面,因为大家是基于爱好来做,所以A和B两个方向都有可能得到发展,是资源更好利用的一种方式。
王铁震
没错,我觉得这可能是未来更高效的一种协作方式。
卫诗婕
哈喽,大家好,我是商业漫谈的主理人卫诗婕,打捞时代碎片,文字对抗时间,这是一档关注科技、商业、人文三岔口的访谈节目,也是我的一份时代侧写笔记。
今天要聊的话题是大模型的开源与闭源之争。这个话题最近引发了大佬们的隔空喊话。不久前,在百度Create大会上,李彦宏曾经发表观点,认为开源模型的能力会被闭源模型远远甩在身后。一时间,周鸿祎、傅盛等创业者纷纷表示反对。
紧接着,在大洋彼岸,Meta的开源大模型Llama 3发布,其性能远超预期,这标志着开源模型的能力也已经来到了新的高度。看起来李彦宏被打脸了,但事实真的如此吗?开源与闭源的选择,对大模型创业者来说究竟意味着什么?
本期节目我邀请了全球最大的开源AI社区Hugging Face的中国区负责人王铁震。如果你是非技术人士,也别着急撤离,听完这六十分钟,你自然也能理解什么是大模型的开源。王老师,先给大家打个招呼吧。
王铁震
大家好,我是王铁震。目前我在Hugging Face负责国内的开发者社群。我之前在谷歌待了快9年,最早是在谷歌做TensorFlow。上一波AI浪潮的时候,我做的是开源深度学习框架。
当时我们做开源做得特别好,特别爽。后来因为各种各样的原因,也和公司内部的组织结构有一些关系,就没办法继续做开源了。于是我就想找一个能够继续做开源的环境。我们也一直有关注Hugging Face,所以特别幸运,进了Hugging Face之后不久,ChatGPT就发布了,也赶上了整个生成式AI这一波浪潮。
卫诗婕
所以你是哪一年离开谷歌、进入Hugging Face的?
1. 开源激发社区贡献
王铁震
2022年。我们当时做TensorFlow的时候,我就有很强的感触。在谷歌里面,所有工程师都是经过非常严格的面试筛选出来的,按理来说,大家都是非常厉害的工程师。
但是你会发现,开源社区里面的这些人,可能一开始不是特别厉害,可是他们有激情,非常有活力,做事情也非常快。跟他们合作,会感觉非常融洽。
你知道,在大公司里面,其实还是有很多组织上的问题。比如我在A组,虽然对B组的工作非常感兴趣,但我没有办法直接跳去给B组干活,因为我的老板不会开心,B组也会觉得我抢了他们的工作,他们同样不会开心。
谷歌里面也经常会遇到各种reorg。有时候我不得不放弃自己非常喜爱的项目,转去投入另外一个项目。就好像我有一个宝贝,把它一点点打磨好,但因为公司里的一些组织原因,不得不把这个宝贝交给别人,最后这个项目可能就死掉了。
开源社区就不一样。你把项目发布出去,能够真切地感受到自己的项目是如何帮助别人的。大家会直接在GitHub上发一个issue,告诉你:“我遇到了这个bug,能不能帮忙解决一下?”然后他们会向你表示感谢,你就会感觉自己一直是被需要的。
卫诗婕
你觉得是机制塑造了人,还是人选择了不同的机制?你刚才举的例子里面,可能包含个人的ego,也包含团队的利益。那为什么在开源社区里面,这些ego和利益的争夺,这种人性微妙之处就不见了呢?
王铁震
我觉得并不是不见了,只是说,开源社区更容易让你参与到一件事情里面。因为所有事情都是公开透明的,全世界对这件事情感兴趣的人都会加入进来。
尤其是在早期,项目参与者可能很少,你会觉得每一个贡献者都非常珍贵。这种感觉,可能和大企业里面所有员工都是通过HR招聘进来、再进行资源配置的情况不一样。
卫诗婕
你可以简单介绍一下,在Hugging Face上,最早有人发布一个idea,到大家加入进来,再到后面项目发展,通常会经历怎样的轨迹吗?
2. 开源项目持续成长
王铁震
Hugging Face的几个项目,发展得都还不错。比如最早的Transformers,当时我们看到谷歌发表了一篇论文,当时我们的CSO就是Thomas Wolf,把论文里的代码做了一个PyTorch实现。原来的代码是用TensorFlow实现的,而PyTorch和TensorFlow是两个不同的深度学习框架。
这个实现得到了社区的广泛欢迎,慢慢地,它又集成了更多模型。有些人觉得某个模型不错,就会过来发一个issue。这个人可能是Hugging Face的员工,也可能是社区成员,然后有人把它变成写得更好、更完整的PR。
我们每天都会看这些代码,觉得代码写得不错,或者发现哪里有问题,就在issue上进行沟通。最后把代码完整地合并进去,等到下一个版本release的时候,大家就可以使用这部分代码了。
如果大家发现Transformers里面的代码有问题,也可以回到社区提交issue,比如说:“这里有一个bug,复现逻辑是这样的。”如果他有时间,甚至可以直接过来把代码改掉。
这和很多传统的闭源软件不太一样。闭源软件后面的代码是什么样,你是看不到的。你可能遇到了一个非常棘手的问题,阻碍了工作,但最多只能交一个工单,告诉开发团队:“我在这里遇到了一个问题。”你没有能力,也没有办法自己去解决一个可能并不困扰闭源软件开发团队的问题。
卫诗婕
我可以把这个issue理解成一个开源文档吗?你可以comment,可以对它做评论,指出问题在哪里,甚至给它提供解决方案。
王铁震
没错。
卫诗婕
那我们开头能不能先给大家简单科普一下,到底什么是开源?其实我们周边已经被开源包围了,只是大家平时可能没有意识到。
3. 开源其实无处不在
王铁震
比如大家使用的手机,安卓手机的系统就是基于开源的。我们平时上网使用的浏览器,不管是Chrome、Firefox,还是微软最新的Edge浏览器,它们的内核其实都是一堆开源代码,都是基于开源社区的一些项目。
还有更极端的场景。比如大家现在在做区块链相关的工作,Web3里面基本上所有工作都是开源的。
如果拿国内互联网历史来对比,国内也有很多非常独特的开源文化。比如字幕组,还有BBS,也就是各种国内十年前、二十年前比较火的论坛。当时有动网、Discuz!,它们都可以给你一些代码。你自己买一台服务器,甚至有些服务器是免费的,把这些东西部署上去。只要你对它感兴趣,有一个很好的想法,想用它解决某个问题,就可以直接加入进来。
卫诗婕
我想打断一下。你刚刚提到字幕组和BBS是非常早期的开源形式,这很有趣。
比如字幕组,你觉得它能够算得上开源,是因为它把视频资源公开了,然后如果你会翻译,就可以给它配字幕?你觉得这就是一种开源吗?
王铁震
没错。我们可以这样理解,但我们不讨论视频资源本身,因为这可能涉及版权问题。字幕本身就是一个SRT文件,它是一个文档,告诉你在什么时间线上展示什么文字,本质上就是文本。
它和现在开源的唯一区别,可以说是没有把它放到GitHub上。但你去想,这个文件是怎么产生的,是怎么更新的,如果文件遇到问题,应该去哪儿反映,整个流程其实和现在的开源没有本质区别。
卫诗婕
那它整个流程是什么样的?
王铁震
我参加过一些字幕组。当时我在法国读书,翻译过一些法国视频。我记得翻译过最出名的一部电影,叫《Intouchables》,中文是《触不可及》。
整个流程是这样:先在论坛里面发帖,告诉大家有一部什么电影,然后招募志愿者。志愿者报名之后会进行分工,有的人负责审核,他可能水平非常高,负责审校大家的翻译。
具体领任务的方式可能不同,但核心是大家根据自己的兴趣和时间领取任务,按照规定的时间把翻译好的字幕交上去。交上去之后,由审核人员把大家的意见合并起来,最后交给负责压片的同学,把字幕加到影片上,再通过各种分发渠道,让大家看到这部片子。
卫诗婕
总结一下,你刚才讲的其实就是任务分工和结果交付,大概是这样一个流程,对吧?
4. 社区分工决定项目运转
王铁震
对。开源项目也是一样的。它会有一个核心负责人,负责审核大家交过来的代码,再把代码合并到主干里面。在开源社区、GitHub这个场景里,我们把他叫作maintainer。
其他人过来提交代码,就相当于字幕组里提交字幕的人,可以算作contributor。当contributor拥有足够多的影响力之后,就会获得更多权利,当然也有更多义务去为大家服务。
最后,我们把所有东西打包在一起,让用户使用。可能还会有专门负责release的人,这就有点像字幕组里负责压片的角色。
卫诗婕
这听起来很像贴吧吧主。
王铁震
其实很像。这也是为什么我说,BBS其实就是非常早期的一种开源形态。
卫诗婕
所以maintainer和开源社区的关系会更紧密一些,contributor就是普通的贡献者,对吧?
王铁震
如果这样分,我们还能再分一层,就是普通使用者。比如他只是看这个片子,或者只是把开源软件下载下来使用一下。Contributor已经比普通使用者花更多时间在上面,有更多热情,还需要贡献代码。
Maintainer当然要在这个上面花更多精力,而且很多时候,maintainer的精力花费是非常大的,它的影响力也非常大。
卫诗婕
那Hugging Face里面有多少maintainer?
王铁震
Hugging Face本身像GitHub一样,更多的是一个Hub。我们上面有很多repo,每个repo都会有自己的maintainer,这个数量很难统计。
我们自己也有一些库,比如Transformers、Diffusers,里面会有很多maintainer。我觉得这几个库里贡献过代码的人可能有几百甚至几千人,但每天真正活跃的可能也就十几个人。
卫诗婕
它和社区之间是一种松散的合作关系,还是雇佣关系,或者是其他什么关系?
王铁震
如果从纯社区的角度看,你只能看到协作关系。GitHub其实已经隔了一层匿名性:如果你在GitHub上不暴露自己的名字,没有人知道你是谁,也没有人知道你属于哪家公司。
但是很多开源项目也需要一定的造血能力,自己驱动运转。所以会有企业的人过来捐助,甚至有些开源项目本身就是由企业在背后支持的。
比如Linux,里面很多contributor或者maintainer都是各大企业的员工,包括谷歌、微软、腾讯、阿里巴巴等公司的员工。
卫诗婕
Hugging Face的创始人Clem曾经说过,如果没有开放科学和开源,比如谷歌没有分享Attention Is All You Need这篇论文,没有分享BERT论文和原始扩散论文,我们可能要再过30年、40年、50年,才能达到今天的水平。是这样吗?
5. 开源加速技术进步
王铁震
我觉得是这样。我甚至有一个更夸张的比喻:如果有一天,我们能够开放所有和航空航天相关的知识,没有任何专利保护,所有信息都可以在网上公开获取,所有材料都有完整的产业链支持,那我们可能不需要10年,7、8年就有可能登上月球,殖民月球、开采月球资源,然后进一步登陆火星。
卫诗婕
这就是基于“一加一大于二”的信仰,也是基于“众人拾柴火焰高”的信仰做出的判断吗?
王铁震
我的信仰主要来自于我看到的整个AI领域。因为有了开源技术的发展,每个人不需要从头实现整个技术,只需要在别人已有的开源项目上做自己最擅长的事情,然后把项目变得更好。
就像你说的,众人拾柴火焰高。每个人都站在别人的肩膀上,就可以产生非常快的技术迭代速度。
我前几天看到有人做了一个分析:过去一年,大模型的推理成本实际上下降了100倍。其中有很多工作都是开源社群推动的。每个推动这项工作的人,不需要知道深度学习的所有数学原理,不需要自己拥有很多显卡,也不需要是某家公司的一名员工。
只要他有这个爱好、有这个想法,就可以进来贡献自己的一份力量,所以我们才看到了这么快的技术发展。
卫诗婕
我可不可以做这样一个比喻:开源有点像把一个积木,或者说一个模型公开给所有人看。每个人可以根据自己的能力和兴趣认领其中某一部分,自己去搭建,再回到maintainer或者项目管理者手上,由他选择性地使用大家的劳动成果,在原有基础上构建出一个不断进化、迭代的版本,使它越来越好,同时也开放给所有人继续贡献。
王铁震
对,我觉得大体上就是这样的逻辑。
另外一点是,比如我做了一个贡献,不仅可以把它交到现有项目里面,也可以考虑自己开一个新项目。我可以复制一个版本,自己重新拆解、重新去做。
卫诗婕
没错。但是这样的话,它会把尝试和贡献的门槛降到最低,而且允许不同方向的技术发展。
比如在公司里面,大家要押注技术发展的方向。有人认为应该做A技术,有人认为应该做B技术,效果可能更好。那公司里面可能必须做一个决定。
但在开源社区里,因为大家是基于爱好来做,所以A和B两个方向都有可能得到发展。
王铁震
没错。我觉得这可能是未来更高效的一种协作方式。
6. 开源正在追上闭源
卫诗婕
像你刚才也提到,因为开源,我们看到过去一年大模型的推理成本下降得非常快。我也留意到一种声音:像Linux、MySQL、云架构等开源技术,在过去的历史中一直滞后于当时最先进的技术方案。
但是大模型是第一次出现开源和闭源齐头并进的状态。事实上是这样吗?
王铁震
这个说法有一定道理,但还要考虑时间因素。开源技术需要对这项技术感兴趣的人聚在一起,有效地协作。它需要很多网络支持:每个人家里可能都要有高速网络,也需要开源平台的支持,比如GitHub。有了GitHub,大家才能更高效地协作。
在Linux刚开始发展的时代,这些条件其实都不健全。能够访问Linux代码的人比较少,当时也没有Git这样非常好的代码版本管理工具。所以那时候的开源,可能只属于技术极客。
卫诗婕
对,开源技术还是只属于少部分人。
王铁震
现在这些东西已经变得稀松平常。大家构建工具的时候,也会直接从已有的脚手架开始。所以如果开源技术和闭源技术在同一个时间点一起发展,两个方向其实都可以发展得很好。
卫诗婕
我可以理解为,Linux时代的开源技术还属于少部分技术极客,但我们现在谈的开源时代,已经有更多人可以参与进来了,是这样吗?
王铁震
是的。
卫诗婕
那它的门槛和范围能够拉到多大呢?
王铁震
我有一个非常夸张的比喻:我觉得未来每个人都可能是开发者。这句话李彦宏好像也说过,但我其实挺相信这一点。
你可能不是特别懂项目开发所使用的语言,但可以找ChatGPT帮你写一段代码,来满足自己的需求。甚至未来大家写的代码不需要有非常好的架构,因为所有东西都可以由ChatGPT高效地帮你写出来。整个项目可能一次性生成,然后你可以让它很快生成各种各样的代码。
所以未来的门槛会无限降低。
卫诗婕
也就是说,像我这样的文科生,其实也可以参与到项目当中。
王铁震
没错。过去一年我看到一个非常明显的趋势:其实2022年就有很多文生图技术出现了,2023年我们看到整个技术大爆发。
但画图画得最好的人,绝对不是程序员,而是最开始学习艺术、学习设计的人。大语言模型出来之后,谁会用大语言模型写出最好的小说?我相信一定是文科生,不一定是程序员。
卫诗婕
那你觉得这样的未来还有多远?
王铁震
我觉得其实还蛮近。过去一年,代码生成的质量逐渐提高,所以我相信这种未来应该不远了。
卫诗婕
我还有一个观察。过去8个月,开源大模型的能力直逼闭源模型。为什么会出现这样快速的发展?
王铁震
这是一个非常有意思的观点。它隐含了一个假定,就是之前开源和闭源之间的差距更远。其实并不是这样。
如果把时间拉回到GPT-3出现之前,OpenAI还是真正的OpenAI。那时候它发布的是最前沿的模型,最前沿的文本生成模型可能叫GPT-2,而且它发布的第一天就是开源的。
只是后来它出于不同的商业模式诉求,选择不再把这些东西做成开源,而是做成闭源。回到你的问题,我觉得这更多是企业的诉求和战略选择。
举个例子,在很多领域,大家可能会觉得第一名不需要开源,因为不管开不开源,大家都会用它。第二名可能也不会开源,因为它还有机会变成第一名。
但第三名可能会说,既然在正面战场打不过,那能不能迂回超车?它可能通过开源策略获得更多影响力,在不一样的战场上获得更大的声量。
越来越多企业也看明白了开源的巨大好处。比如开源可以让企业对模型有更强的可控性和可玩性,模型的所有东西也更加透明,可能有更好的安全性。
你可能不愿意把公司的信息发给ChatGPT,因为不知道它未来会把这些信息用作什么用途。相比之下,你可能更愿意在自己的私有环境里部署一个由自己掌握全部代码的开源模型。
我觉得这就是开源和闭源的根本不同,也导致很多企业在做开源还是闭源这种重大战略决策时,作出不一样的选择。
比如Meta认为应该支持开源。阿里巴巴也可能认为,需要通过开源获得更强的战略竞争力,于是把模型开源,最后就达到了你说的效果。
开源模型的能力确实在逐渐逼近闭源模型。包括最近发布的Llama 3,甚至大家期待中的Llama 3 400B,可能已经达到GPT-4的水平。
卫诗婕
因为你提到Llama 3的发布,我们现在就进入今天的正题。
Llama 3发布前后,中国大模型圈发生了一次挺有意思的叫板。起因是李彦宏在百度Create大会上发言,说开源模型的能力会被闭源模型远远甩在身后。
我记得当时我第一时间在微信上私信你,问你怎么看这个说法。后来傅盛录了一条短视频表达不赞同,主要讲述了他认为开源社区必将战胜闭源的3大理由。
紧接着,在大半夜,Llama 3发布了。我印象特别深,因为之前我还在和傅盛聊前面那些话题,后来他又马上把一条视频发给我,我估计应该是群发的。
当时他正在同学聚会上喝酒,凌晨2点多看到Llama 3发布之后,立刻激动地钻进车里,又录了一条视频。这个视频主要介绍了Llama 3的部分性能已经逼近、甚至超越了一些闭源模型,甚至是GPT-4。
看起来李彦宏立刻就被打脸了。所以我也想问一下王老师,你怎么看李彦宏和傅盛的观点之争?我相信这其实不只是他们两个人的观点,也代表了两派不同的看法。
7. 开源闭源并非二选一
王铁震
我同意你的说法。这更多是企业价值观和战略选择,并不是一定要说开源会赢,或者闭源会赢。
百度在ChatGPT出现之前,在开源领域的工作其实非常好。百度自己做了一个深度学习框架,叫PaddlePaddle;在自然语言处理领域,它还有一个库叫PaddleNLP,当时也获得了非常大的影响力。
后来ChatGPT出现之后,百度在开源上的投入逐渐变小。我感觉这应该是百度内部的战略决定:闭源可能给百度带来更多优势。它选择闭源,我觉得也是非常合理的决定。
至于百度基于闭源的商业模式和生态,最终与开源相比哪一个发展得更好,这个我没有办法预测。
但我觉得,我们并不是一定要在开源和闭源之间作出选择。开源和闭源是可以互相转化的。OpenAI最早也是做开源的,现在其实还发布了Whisper等开源模型,只是它的大语言模型没有开源。
Meta做了很多开源工作,但它内部其实也有一些闭源模型。所以我觉得两者之间是可以互相转化的。
一个企业使用开源模型,加上自己的语料进行训练和优化,再交付给用户。那你说这个模型到底是开源还是闭源?它最后还是闭源的,因为企业通过最后一公里帮用户解决了很多问题,仍然可以通过闭源模型收费。
这并不是非黑即白的关系,不是开源就是闭源,中间存在一个非常宽的光谱。
即使在开源领域,这个光谱也非常宽。最开放的,可能是Hugging Face做的一些开源模型,我们是全流程开源。
所谓全流程开源,就是从模型使用什么数据集,到数据集如何清洗,我们都会公开。最近我们开源了一个15T的数据集,是从Common Crawl里面清洗出来的15T英文语料。这个数据集如何构建、后续如何选择模型架构、如何训练模型,甚至部分训练日志,也都是公开的。
模型训练出来之后,放在Hugging Face上,它的推理代码和权重也都是公开的。
再往后,有些项目会发布权重,但如果要用于商业应用,就需要购买授权,或者有其他商务上的考量。
再往后,有些项目连权重也不是完全开放,只开放一个小版本的模型。如果想用更好的模型,就需要采购更大的模型。它实际上是拿开源做引流:先让你试用小模型,效果不错,再告诉你还有更好的模型。
所以整个光谱实际上非常宽。
卫诗婕
也就是说,有些开源项目在最后一公里转化成服务、进行收费时,还是会变成闭源,对不对?
王铁震
对。很多组织机构,比如大学,或者国内的一些研究院,包括智源研究院,本身的目的就是为人类福祉做前沿性的开放研究,可能不需要考虑太多商业模式。
但大部分公司愿意把模型权重开源,也是为了更好地复制它们的商业化。我们看很多硬件公司都很拥抱开源,为什么?比如阿里巴巴通过开源,大家可以更好地购买它的算力,也就是使用它云上的GPU。
Meta则可以通过开源,解决元宇宙、信息、游戏或者交互内容不足的问题,甚至对股价也有好处。
我觉得,最后能够转化并产生商业模式的开源项目,才能走得更远。
卫诗婕
我从前年开始,就陆陆续续听到一些判断,说开源没有未来,开源的商业化会有问题。但现在听下来,其实并没有那么多完全不追求商业化的开源项目。
如果一个项目想走得比较远,纳入更多开发者,能够持续发展,其实还是要有一定的商业化考量。它也并不是纯粹的开源,可能在某些流程里,仍然可以进行闭源商业化,对吗?
王铁震
没错。开源项目如何盈利,这个问题大家已经讨论很多年了。我记得至少5、6年前,就看到过有人分析开源是怎么盈利的。
当时他分了几类:一类是开源只是市场策略,通过开源导流,或者建立企业比较好的技术品牌形象。这样企业可以通过品牌形象招聘到最优秀的员工。
还有一种情况,开源只是附属品。企业可能是为了卖硬件,所以在软件层面做一些开源;也可能是为了卖服务。
卫诗婕
那你怎么看李彦宏所说的,开源在能力上一定追不上闭源,而且差距会越来越大?
王铁震
前一句我同意,后一句不同意。我个人觉得,闭源是开源的天花板,总会有更好的闭源模型,比最好的开源模型更好。
但是我不同意它们之间的差距会逐渐变大。
卫诗婕
从能力上,你也觉得闭源一定会优于开源?
王铁震
我可以举个例子。比如一个开源模型发布了,它的性能比某些闭源模型厂商做的模型还好。大家一看,既然不花钱用开源模型就能取得更好的效果,那闭源公司实际上也没有办法运转下去。
所以闭源公司一定要有一个比开源模型更好的模型,否则整个商业模式无法持续。
从公司自身来讲,它也不需要把自己最好的模型开源。我觉得这是很正常的行为:手上有一个闭源模型,再把次优模型开源。
对客户来说也是这样。客户来找我说:“你的开源模型不错,但我希望在这里再调高一点。”如果你告诉客户:“不好意思,这已经是我们最好的模型了,已经没有办法满足你的需求。”我觉得客户会很沮丧。
一般来说,你手上应该有一个闭源模型,或者正在训练下一代模型。
另外,现在大家比较的是开源模型和我们目前看到的最好模型,也就是GPT-4。但实际上GPT-4已经开发完成,接下来应该期待它的下一步动作了。
卫诗婕
OpenAI手上可能还有很多牌。它先出GPT-3,再出GPT-4,GPT-4被大家追上之后,后面可能还有GPT-5、GPT-6、GPT-7、GPT-8。
王铁震
对。因为它已经在这个领域积累了很久。之前有一种说法,GPT-4在两年前就已经训练好了,后面一直在做各种安全测试。现在又过去了1年多,它手上是不是已经有更好的模型,这些我们都不清楚。
另外,我们未来是不是一定要比较模型绝对的优劣?GPT-4级别的模型基本上已经可用了。一旦开源和闭源模型都达到“可用”这条线,后面的竞争是什么?
因为模型的边际成本在增加,但边际效益并没有增加得那么明显。既然大家都能用,无非就是好一点或差一点。构建应用时,还可以通过外部的多层、多次调用,或者RAG来解决知识问题。
到那个时候,大家可能需要在模型上做差异化。未来可能不会再有一个榜单,说A模型一定比B模型好,而是A模型更擅长做A、B、C,B模型更擅长做D、F。
可能有的模型擅长写代码,有的模型擅长写小说。这对人来说是完全不同方向的能力:写小说的模型可能想象力非常强,写代码的模型可能非常严格,连一个标点符号都不能错。
大模型会不会也往这个方向发展,走向差异化?我觉得这是一个值得考虑的问题。
回到最开始你提出的问题:差距会越来越大。但我觉得,很难衡量两个都可用的模型之间到底有多大差距,而且它们可能处在不同的生态位上,形成错位竞争。
卫诗婕
我还看到一种观点:上一个时代的开源,指的是开源代码。就像我刚才举的例子,把一个搭好的积木模型共享给大家,每个人都可以复制一份带回家,自己重新优化、组装。
但另一种观点认为,大模型并不是传统意义上的软件开源,因为模型存在黑盒效应,不可编码、不可解释,大家没有办法一起做贡献。听起来好像很有道理,真的是这样吗?
8. Open Source与Open Access
王铁震
现在中文语境里说“开源”,有时候确实存在歧义。英文社区已经逐渐形成了一个共识,把open source和open access区分开。
什么叫open source?就是说模型训练、推理这一整套代码都是开放的。比如我们提供的BLOOM,就可能叫open source。
至于只开放权重的模型,我们叫open access。它可以公开访问模型权重,但权重是怎么来的,数据集是什么,大家可能并不了解。
Llama就属于这一类。
卫诗婕
那这类模型就完全是黑盒,改不了吗?
王铁震
倒也不是。
卫诗婕
能不能给非技术人士再解释一下?你刚才多次提到是否公开权重,应该怎么理解这个权重?
王铁震
我们可以拿传统软件做类比。比如我们在网上下载一个.exe文件,可以在自己的电脑上使用它。
但如果想对软件做一些改变,比如增加一个按钮、修改文字、替换Logo,很多时候没有源代码是做不到的。
所以只有.exe文件的这种情况,我们叫open access。如果有源代码,可以自己编译、修改代码里的字符串和功能,这就叫open source。
回到大模型语境,如果它能够告诉我模型权重是怎么来的,把训练代码全部告诉我,我就可以修改它,这叫open source。
如果只给我一堆训练后的权重,我只能在这堆黑盒里面做一些简单微调,这叫open access。
卫诗婕
理解了。但我还是想追问一下,open source这一类,真的能够把模型是如何训练的、所谓的源代码都公布出来吗?
我们之前经常听说,大模型具有不可解释性,训练到后来,已经完全无法解释,也无法公开所有逻辑,无法拆分所有细节了。
王铁震
这样的模型是有的,但比较少。大家也没有非常强的动力去做open source。
为什么?哪怕训练一个非常简单的模型,在大模型语境下,比如训练一个10B以下的模型,仍然至少需要几十张到几百张显卡,还需要几个T的训练语料。
真正玩得起的参与者还是非常少。开源社区大部分都是基于兴趣的开发者,但他们没有能力把这些open source模型用起来。
这样的模型确实有,比如BLOOM,还有我们最近的E D Fix,都是这样的模型。但这种模型的受众会小很多,而且所有东西都公开的模型,往往不是榜单上最好的模型。
卫诗婕
这是出于竞争的考量吗?
王铁震
这是出于一个动态变化的考量。我要是把所有黑科技都告诉你,你却不告诉我,那我的黑科技就会被别人学到,别人可能做得更好。
卫诗婕
能不能具体解释一下,开发者如何在开源模型上修改一个模型,或者训练一个垂类模型?
9. 模型修改走向实际应用
王铁震
没问题。如果拿到一个open access模型,它通常会有几个巨大的权重文件。一般可以在Hugging Face Hub上找到这些模型。
模型页面一般会给你一段代码,告诉你先import Transformers,把模型载入进来,再喂一些数据,它就可以产生输出。这是最简单的推理。
推理跑通之后,下一步就可以考虑是不是要微调。我们提供了一些工具,Transformers本身也提供了训练方面的帮助。
只要有足够多的GPU、足够多的数据,把这些东西喂进去,运行几行代码,就可以按照自己的诉求调整模型。
可以举个例子。我们把open access模型想象成一个刚进大学的大学生。现在希望他变成某个领域的专家,怎么办?就找来一些这个领域的书本,这些知识是他高中以前没有学过的。
把这些领域知识交给他之后,再给他一套测试题。他学会这些知识并通过测试后,我们就认为他毕业了。毕业就代表这个模型已经训练好,可以上岗工作,解决现实中的问题。
卫诗婕
所以,被公布出来的open source,其实完成了这个小孩从入学到大学毕业的全过程,对吧?
王铁震
没错。
卫诗婕
那我们所说的修改模型和训练垂类模型,都类似于你刚才描述的这个过程吗?
王铁震
刚才更多是在说训练垂类模型。修改模型其实有很多不同方式。
我记得年初特别火的一种方式叫model merger。它可以把两个架构相同、但权重不同的模型混合起来。
好像大学里招了两个高中毕业生,一个特别擅长写代码,一个特别擅长写小说。那能不能把两个人合二为一?Model merger大概就是这个概念,把两个模型的权重合并在一起。这也算是一种修改模型的行为,但不需要像微调那样投入很多工作。
还有一些修改模型的方式,比如quantization。模型的权重一般是BF16,我能不能让它使用更低的精度,让模型变得更小?
比如把FP16降到INT4,就可以获得4倍的性能和存储提升。
修改模型还有很多方式,大家可以不断发挥想象力。比如把一个原本只支持8K context window的模型,改成支持32K context window。
卫诗婕
能不能讲讲你在Hugging Face社区观察到的开发者现状和趋势?大家现在怎么使用开源和闭源模型?做中间层的多,还是做应用层的多?应用爆发了吗?
王铁震
很多人就像我一开始讲的那样,并不是传统的AI从业者,但看到大模型的能力,希望把大模型和自己领域的应用结合起来。我见过这样的人很多。
我们通常给他们的建议是,先拿最好的闭源模型去试。比如现在最好的闭源模型可能是Claude 3 Opus,那就先拿它试,看看它能不能解决你的问题。
如果通过prompting,也就是写一些提示词,就能解决问题,那就不要尝试微调。提示词的能力其实比一般人想象的强大很多,而且成本低得多。
微调需要准备算力、数据,还要反复迭代。如果提示词就能解决,那是最好的。
这时候你有一个优势:早期发布时使用的是闭源模型,可以很快上线,可能一个星期就能上线。慢慢积累用户需求之后,就能知道用户实际发来的query、请求是什么样子。
这时候再有针对性地准备语料。准备好语料后,微调模型,然后在私有环境中部署,达到降低成本、保护隐私等目的。
卫诗婕
我是不是不太建议大家一上来就用开源模型做微调?
王铁震
对,因为风险可能比较大,成本和风险都比较高。
卫诗婕
因为一开始可能还不够了解用户需求,刚开始就自己微调了一个模型,结果发现用户的需求并不是这个样子。
那你观察现在做应用的人多吗?和去年相比怎么样?
王铁震
我觉得很多。过去一年,大家更多是对技术的狂热,很多人都会讨论Transformer架构是怎样的。
这就像我们现在使用手机,移动互联网已经爆发过几轮,很少有人还会研究安卓系统里的某个功能是干什么的。我们已经在移动互联网领域从技术狂热,跨越到了对产品的诉求,后来它变成了生活的一部分。
我感觉大模型还处在技术狂热阶段,下一步应该马上过渡到对产品的诉求。之后会看到更多人玩大模型,是因为有实际需求,而不是天天问它某个问题,觉得调戏大模型很好玩。
再过三两年,大家可能会觉得它就像搜索引擎一样。搜索引擎当年是领先科技,现在已经是生活必需品的一部分,是本来就应该存在的东西。
卫诗婕
你刚才讲到微调,其实是有一定成本门槛的。如果我是一个创业公司的创业者,需要具备什么条件,才能负担微调成本?
王铁震
SFT就是我们所说的微调,是一种相对低成本地改变模型表现的方式。
Continuous pre-training则更重、更贵,成本可能相差10倍甚至更多。如果SFT解决不了问题,就可能需要尝试continuous pre-training。
但continuous pre-training有一个比较棘手的地方:需要模型原厂的一些协助。你要知道原厂训练这个模型时的数据配比是什么样的,需要提供符合这种数据配比的数据,否则会产生一些后果。
卫诗婕
如果我要做SFT微调,需要具备哪些条件?比如算力、语料、数据。
王铁震
这些都需要。SFT对GPU的需求肯定比推理高得多。比如要调一个非常小的模型,至少需要1张A100或H100,甚至需要8张H100。
还需要准备数据。数据量多少其实是一个经验问题,要实际试过:先给少量数据,看有没有效果,再逐渐增加数据。
举个简单例子,很多模型上线时要解决“你是谁”这个问题。比如我用Llama上线了一个产品,用户问:“你是谁?”它回答:“我是Llama 3。”这其实不能满足企业需求。
企业希望,如果自己是一个客服机器人,用户问“你是谁”,模型要告诉用户自己是谁。要把这个问题解决好,就需要SFT。
你要准备一些问答语料:当用户问“你是谁”时,应该怎样回答;当用户问“你爸爸是谁”时,应该怎样回答;当用户问“你们公司的创始人是谁”时,应该怎样回答。这些都是用户潜在会问的问题,都要提前准备好,然后把这些数据喂给模型。
卫诗婕
用你刚才大学生的例子来说,它不能回答“我是卫诗婕”,不能回答自己的个体身份,而应该有一个社会身份。
比如如果我是受Meta雇佣的,我就应该说我是Meta的谁谁谁。
王铁震
没错,就是这个意思。
卫诗婕
如果微调还不能满足需求,那再进一步就是pre-training,对吧?
王铁震
对,需要continuous pre-training,但成本会高很多。
卫诗婕
坦率地讲,你觉得国内创业公司中,有百分之多少有条件做SFT?又有多少有条件做pre-training?
王铁震
SFT对算力有一定需求,但其实没有那么高。我觉得这些创业公司应该都负担得起SFT。当然,也要看它要调多大的模型。
如果要调一个7B模型,按照现在的发展速度,可能普通大学毕业生都有能力调一个7B或者2B模型。
SFT技术也在不断进步,有各种各样的变种。有些变种对资源的需求会小一些,但性能也可能差一些,这是一个权衡,要看你需要多好的性能,以及资源有多受限。
我甚至可以做一个拍脑袋的预测:SFT需要的东西,主要是人创造的东西,也就是刚才说的语料对——一个问题、一个答案,一个问题、一个答案,甚至是一个问题和答案之后,接着下一个问题和答案。可以是多轮语料对,也可以是单轮语料对。
算力和软件需求方面,调动这些资源的代码都有现成的。国内还有一个做得很好的库,叫LLaMA Factory,它把所有东西都做成了UI化。你只要点点鼠标,选择语料文件,再选择训练超参数,比如训练多长时间,然后点击确定就可以了。
这个事情的难度,和现在使用Office、Word、Excel的难度差不多。我甚至觉得,过1、2年,这可能会变成一种非常普及的能力。真正需要准备的,可能就是一套语料对。
但它需要你对用户场景有比较敏锐的观察。试用时,模型会给出一些输出,你要知道训练出来的模型到底好不好,必须具备一定的判断能力。这种判断能力往往只有领域专家才有。
卫诗婕
我们刚才说,微调模型其实是赋予它一个社会身份,告诉它在很多场景下应该怎样回答,大概就是这样一个过程。
那一个经历过pre-training的成熟模型,在赋予社会身份的基础之上,还能够有哪些能力上的进化?
王铁震
Continuous pre-training就难很多。好像有一个数学系的学生,我们拿到了一个基础模型,现在要让他解决化学问题。让他学习化学知识,比让他记住自己的社会身份要难得多。
Continuous pre-training需要的算力和数据,要求都很高。数学系学生要解决化学问题,在某种程度上就是要建立通用能力。
他首先有一个通用的认知能力,但认知能力可能对化学相对薄弱。所以我们要给他一些化学语料,再给他一些化学测试,让他通过测试,达到化学领域专家的水平。
卫诗婕
就像修一个双学位,甚至多学位,再继续往上修。
王铁震
没错。
卫诗婕
其实你刚才提到,对于很多创业公司来说,微调一个小模型,可能就可以达到它在具体场景下的应用需求。
这次我们观察到,Llama 3其实要发布3个不同参数规模的版本,最大的400B还没有发布,另外两个小参数版本是8B和70B,这两个已经可以被大家使用。
为什么要发布3个不同版本?是不是因为不同使用者有不同需求,并不是每个人都需要大模型,小模型如果用得好,也可以解决问题?
10. 小模型成为部署趋势
王铁震
是的。一般来说,在同一个系列、同样训练方式和模型架构下,大模型的智慧程度和知识丰富程度肯定比小模型更好。
但是大模型的成本也会高很多。不管是推理成本,还是未来潜在的微调成本,都高很多。
对于很多场景,一个小模型可能就足够了,不需要特别大的模型。比如400B模型,我看现在正在进行的评测已经快赶上GPT-4了。等它发布,肯定会是非常震撼的结果。
但很多企业其实用不起,因为推理成本太高。不仅需要更多GPU,而且速度更慢,需要更长时间才能吐出下一个token,对消费者体验也不是特别好。
如果企业能够用小版本解决问题,那当然最好。像你说的,8B和70B其实都已经是很大的模型。一般企业可能会考虑8B以下,或者10B左右的模型。
另外还要考虑开源社区的接受程度。一般的开源社区开发者,可能连70B都跑不起来。比如我自己有一台电脑,也只能跑10B以下的模型。
卫诗婕
70B的模型只能放在硬件条件更好的环境里运行,是吧?
王铁震
对。需要更多GPU,甚至需要多台机器组成GPU集群,才能把它跑起来。
卫诗婕
所以我可以理解为,8B,也就是80亿参数的模型,更多是面向个体开发者,但对企业开发者也有很大价值,因为它比较便宜,可控性也比较强。
王铁震
对。还有一个例子:训练模型时要面对很多超参数选择,需要做很多尝试,就像神农尝百草一样,要尝试不同参数的组合。
大家一般会先从小模型开始,在小模型上观察到一些现象,再推测模型规模变大之后是否也符合这些现象,然后再在大模型上尝试。
比如刚才说SFT要喂语料、调超参数。为了调大一点的模型,可能会先在小模型上做实验。
实际上,能把大模型跑起来的人还是太少。
卫诗婕
对。
王铁震
如果考虑更远的场景,比如在手机上部署一个纯离线模型,那么400B模型距离端上部署还很远。
未来在更便捷的场景中部署的模型,可能更多是8B,甚至更小,比如4B或者2B。
卫诗婕
所以短期内的未来,小模型可能是一个趋势。人们总是希望在保持能力的同时,让模型推理成本变低、响应速度变快。
只要能把同样性能的模型做小,大家肯定都会很开心。
那我还想问一下,Llama 3是在由24,000块GPU组成的定制集群上,使用15万亿个token训练的。国内有哪些公司能够拥有这个级别的算力和数据?
王铁震
这个我不好说,也不太确定。但我可以说,这个量级在国内大部分人都没有办法达到,真的太烧钱了。
如果从社区角度来看,应该没有什么开源社区有这么大的能量。我知道有一些开源社区拿到过grants,也就是算力捐赠,但最多可能也就在百卡级别,千卡级别的算力支持都很少。
Grants就是有人给你一些算力,让一个不是以公司形式存在的纯开源社区,也能有算力训练自己的模型。
到了千卡级别,对整个数据中心的基础设施要求就非常高。比如训练时显卡烧坏了怎么办?NVIDIA的卡可能有一定故障率,几千张卡没日没夜地跑,故障率其实非常可观,需要不断换卡。
软件上还要做到:当某张卡掉线时,能不能保存模型当前训练状态的checkpoint,等卡修好后重新启动,甚至自动规避故障。
在一两台机器、几台机器上跑时,这些都不会是巨大问题。但规模一旦上升到千卡级别,就会变成非常大的问题。等规模到了万卡、10万卡级别,就会变成非常难的问题。
卫诗婕
开源社区基本没有这样的力量,对吗?
王铁震
我不清楚开源社区有没有,但国内一些公司应该有能力做这些事情。
卫诗婕
所以纯捐赠的项目,基本上也只能到百张卡的级别?
王铁震
百张卡已经很贵了。海外也是一样。海外纯社区向、后面没有公司支持的开源项目,差不多也就是这个级别。
但像谷歌、微软、Meta这种由公司驱动的开源项目,能调动的显卡数量就非常惊人。
卫诗婕
我看英伟达高级科学家Jim Fan认为,即将推出的Llama 3 400B模型将成为一个分水岭,因为这意味着社区将获得相当于GPT-4的重量级模型。
他说,这将改变许多研究工作和草根创业公司的计算方式。是这样吗?
王铁震
对。假如GPT-4这个级别代表模型基本可用,那么这个级别的模型变成开源模型,对于很多公司来说是非常好的事情。
举个例子,现在很多企业虽然使用开源模型完成主要工作,但也有一些比较难的工作,比如任务分派,让模型进行任务拆解:第一步做什么,第二步做什么。这些事情还会交给GPT-4完成。
未来,这类工作也可以被开源模型取代。对企业来说,信息保护和隐私保护都会变得更好。
但我也觉得,一旦模型达到可用水平,就会引发很多变化。大家可能不再使用一个统一榜单来评测,而是在不同领域分别看模型的特点。
不过400B模型说实在的还是太大了。它可能是一个分水岭,但不会有很多公司马上把它用起来。这是我的判断。
卫诗婕
所以你对接下来的趋势有什么预判?
王铁震
我觉得模型一般都会先变大,把能力做上去,然后再变小。先解决从0到1的问题,不加那么多限制;再解决实用性和大规模生产的问题,降低成本。
卫诗婕
最后一个问题。我知道你现在生活在海南,开源社区的人才也遍布全球各地,看上去好像是去中心化的。
我比较好奇,在AI大模型这一波浪潮中,硅谷这样的地方还会成为中心地带吗?
比如我们会看到,Llama的13位作者中有10位在巴黎的Meta AI实验室。包括Hugging Face社区成员的分布,又是什么样的?
11. AI公司走向分布式
王铁震
Hugging Face实际上是一个非常典型的分布式公司。我们大部分同事都在家办公,包括3位创始人,大部分时间也都在家,而不是到公司办公。
同事一般通过Slack进行异步沟通,而不是定期把大家聚到一起,在线下沟通。
我感觉这一波AI公司很多会采取类似模式,主要有两个原因。一个是比较省钱,可以在全世界招人,不需要在硅谷租办公室,也能雇到非常优秀的员工,这对公司来说更容易。
早期公司往往就几个人,更需要的是一群信仰价值观、有凝聚力的人。对他们来说,选择人的池子更大,比大家聚在一起更好。
所以很多AI原生公司起步时都会选择分布式模式,在全球招人。
但对于大厂来说,想法可能不一样。比如Meta在疫情期间也支持远程办公,但疫情结束后发现,对于一个非常大的企业,比如拥有上万人甚至10万人的企业,纯远程管理的效率实际上比较低。
因为远程工作非常强调员工的自驱力。如果大企业里的员工是被分配任务,而不是自己选择任务,那么自驱力可能会有问题。
在这种情况下,Meta把核心员工放在一起,也是可以理解的。
比如你去看国内,这一波大模型公司的核心人才基本都在北京。所以人才密度还是非常重要的。
回答你的问题,开源人才确实遍布全球各地,很多新的AI公司也会考虑从去中心化开始。但北京和硅谷这样人才密度高的地方,仍然有非常强的优势。
除了北京和硅谷,最近我们也看到巴黎有很高密度的人才,那里也有很多非常成功的AI原生公司。
卫诗婕
所以人才高地依然会出现,一定会存在,对吧?
王铁震
是,一定会存在。
卫诗婕
本期节目就到这里啦。有关大模型,有任何想分享的听后感、观点,都欢迎在评论区留言,也可以留下你想听的话题,近期正在关注的行业趋势。非常感谢,我们下期见。