Transcription
我是查晟,现在是在Amazon AGI。我的title是Senior Manager。我之前是在Alex Smola的组,做深度学习的框架。做了一段时间框架之后,参与了基本上Amazon的第一批的大模型的开发。从那个时候开始,就基本上一直在做大模型,始终是偏pre-training这边的。
你跟李沐共事过?对我原来就是在沐哥组下面。你当时是第一线参与的,包括亚马逊训练第一代大模型及失败的经历,并且你在这里边秉持着在我看起来正确的一个技术路线。现在呢,你也是在深度参与亚马逊现有的这些,它的Frontier的模型训练。邀请你来讲一下技术吧。训练模型到底是怎么回事儿?为什么它这么难?看起来DeepSeek,大家说你看中国一个公司用了1%的成本,也都可以训练出来一个很好的东西。然后中国有很多,包括KIMI, MiniMax都有很多好的模型。但亚马逊, Microsoft, Meta都很难去搞出来自己的模型,虽然有海量的资源和人才。那到底是咋回事儿?起码模型训练到底是个怎么回事,和为什么看起来又难又不难的样子?
嗯,好的。现在大模型的训练,基本上用next-token prediction,预测下一个字符的这个方式,去给模型一个压缩很多信息的机会。这些压缩进去的信息,会通过一些额外的步骤,中间训练和后训练,去把信息变得对于那些task更有用。我要做好这些事情,其实,因为这里天然的就有很多环节嘛。要训练好一个像DeepSeek那样的模型,每一个环节基本上都是要搞对。基本上搞对了之后,就可以有正向的一个迭代的循环。
那这里有哪些方面要搞对呢?一个是实验的方法论上。其实它是一个经验科学嘛。这个东西大家要怎么做好?其实machine learning基本的那些东西,都得做好做对。包括我们训练的数据,不应该有leak一些,比如说benchmark上的信息,对吧?这个我们不说什么厂家了,可能也已经有过这样的情况。包括预训练过程当中,因为每个模型它的训练成本都会很大,现在模型规模都很大嘛。所以研究迭代的过程,本身就是是有成本的一个挑战的。大家基本上现在做法,都是利用好scaling laws。通过scaling laws,去看我在小的规模上面去做的实验,它在大规模上会有什么样的能力,会有什么样的效果。这一步做好了之后,就会大大的节省模型迭代的成本。
scaling laws就数据量和表现的这么一个xy轴,然后随着数据量上升,它的表现就会越来越好。所谓的理解这个scaling laws,是对这个曲线有个比较好的拟合,所以它能从更小的数据量判断出来,当它数据量变大的时候的效果。是这样吗?
基本上就是这个意思。scaling laws它是一个经验率,至少目前为止,并不是一个有理论基础的规律。
那这个经验是大家通用的,还是每家都有各自的secret sauce,就是有秘方?
一开始大家应该是都是会用通用的那一些。当然,因为这个design space特别大,所以大家在具体怎么去切分这个space,怎么去理解他们的各种factor的interaction的时候,可能各家的做法就会diverge,就会不一样。
他这里其实是你用一定的规律,投入更多的compute模型。这个compute可以反映成是,你用更多的训练数据,或者是你用更大的模型去训练。投入compute的方法做对的情况下,这个模型会给diminishing returns的一个回报。这个回报就是这个模型的,可以说是accuracy吧。所以scaling laws基本上就是这个样子。
可以用在实验设计上的一个方法,其实就是说,我们可以用小规模的实验,去预测大规模的模型的效果会是怎么样。那这样子的话,我的实验迭代就可以在小规模去做嘛。但是这个大家现在也其实知道,大模型有emergent properties,就是有一些本来小规模做不了的,大规模上看起来可以做了,突然piu~对突然就可以做了。当然大家看到的是positive,也有一些negative的情况,是来自于我的模型在某个规模下面,突然就不scale了,它fall off scaling laws。这是一个非常常见的一个坑嘛。所以很多lab都必须踩过一遍这个坑,知道碰到这个问题的话,我应该怎么样去克服它。我在小规模上面,我应该去看,除了loss之外的其他什么变量的趋势,我才能够避免这样的坑。所以就是说,虽然概念上用scaling laws做实验设计,是一个听起来很简单的事情,但是依然会有在scale up过程当中踩坑的这么一个情况。这里还是需要很多discipline吧。
另外就是作为一个经验科学,其实很多research,至少过去的research有很多一个不好的趋势是说,大家会不由自主的有一点over-generalize一些结论。我想到的这个方法在这个case上work,我就说这个方法是work的。但其实empirical science不是这么work的。但大家发论文的时候就必须要这样,不然的话,大家就觉得这个发现没有意义。这个反过来也会碰到一些问题,就是说有些人在一个setting下,试了一个idea,他说这个东西不work,然后他就说这个idea不work。其实很多时候也不是的。
想在这方面提高的话,是需要提高researcher对research的taste吗?就是你看到一个论文,你大概知道哦,他说的其实不是真实的情况,他只是一个case而已。
主要首先是要意识到这个问题。其次在意识到这个问题之后,去消化论文的时候,重要的也就不是去看,他给的结论是什么,而是说他的实验是什么。每一个实验的setting要看得很仔细,就是它到底对于我现在关心的,这个场景,是不是applicable的。这个我觉得是很重要的一点。毕竟实验造假还是少数,cherry pick可能会有一些,但总的来说,实验数据还是更可信的那一部分。
刚刚说了3个点,一个是你的实验的方法论,research integrity。第二个是scaling law,对吧?对这个方法的掌握怎么样,用更小的成本得到更有效的信息。第三个是你在看别人的research,在学习的时候,其实现在有很多坑,所以说要避开这些坑,并能更有效地在research里边学到信息。
对,是的。这个似乎只是方法上的点。咱们上次其实聊你讲说,一个team要optimize for information gain,所以说你要去做那些高失败率,但是能最有效得到信息的东西。但你如果说像某些团队,是把时间压上来,只能做90%成功率的东西,那其实反而更容易失败。请你帮我解释一下这个吧。
这个可能对很多人来说,是一个很反直觉的做法。为什么做失败率高(口误)的东西,反而更容易走向成功?
因为不管是成功率太高,还是成功率太低的这些,你其实已经有一个很强的prior,你知道它大概会work或者它大概不work。对于在做科学研究的时候,这个东西就相当于是比较incremental的吧。更多的是说,你已经大概率能预测这个结果会是什么样。可能更多的是去confirm你已经有的一些经验直觉或者bias。但如果是成功率正好是一半一半的时候,那这就是一半可能成功,一半失败。不管是什么情况,这个都说明你对这个方向其实了解的比较少。那也就是说,不管是在这个方向上是成功了还是失败了,你都会获取非常有用的信息。试错迭代的速度会快的多。相当于你在不断的去,在你熟悉的方向上面。当然,你选这个方向肯定是因为它有价值嘛。你在不熟悉的方向上面去挖掘,那么你也就很快的能够cover一个更大的空间。
嗯,这个是,这里maximize information gain的一个主要的motivation。嗯,这也是一个实验的方法论。
然后你上次也提到过,就是有好多个团队需要合作,然后这些团队可能都需要work才行。比如他需要哪些团队的配合?
首先这个东西要大规模的训练的话,肯定infra团队得靠谱。cluster首先这么多机器得能跑起来。这个事情本身,其实已经会有一些它的challenge嘛。规模大了之后,可能会有一些意想不到的bug。有一个简单例子是,因为我们现在optimization都是synchronous optimization。在backward的时候,会有大量的compute同时发生。在同一刻,所有的GPU都会开始算backward的gradients。那个synchronization以及这个compute的surge,会导致所有的GPU在同时draw很多的power。那么这个cluster的power,它的buffer够不够大?就是在他data center design上面,做的是不是够好,就会受到考验嘛。
得多大是不是一下得十倍那种感觉?
可以大很多,比idle的时候肯定会大很多。甚至有时候GPU可能会在peak compute的时候,他draw的power比他卡上面标定的power是要高的。那data center设计的人,甚至都不一定知道这个事情。经常会有一些诡异的,比如说backward突然node就crash了,因为一个node它的电量不足,然后它就挂了。
首先这个data center clustered management这边,这个就是一大块。包括这些GPU,它也会坏嘛。规模一上去之后,有很多GPU它可能会出错,它memory bank可能会坏,可能会有一些silent data corruption。虽然没有报错,但是给了错的数字。这种事情都会有。这里面其实就是有一个在规模化之后,怎么样保证compute的质量的,一个很高的要求。
大家从一个abstract的理解,就是搞数据center是亚马逊的强项,毕竟他们有AWS那么多年的积累。实际上不知道是不是这样?
我觉得对于哪一家云厂商,都是有学习的一个过程的嘛。毕竟这个东西本来没有,并且它性质上可能更接近超算。云服务的,他的做法其实更多的是规模化,然后再零售少量的计算。这个方式他的各种设计的思路啊,各种运作的方式之类的,更倾向于那个,而不太会像超算那样。所以超算呢,是一个比较独特的workload的一个场景吧。
然后data center这一层搞稳了,然后fault tolerance做好了之后,分布式训练它的性能和效率,怎么样做好?其实有很多东西要做。包括你这个模型怎么样去并行的去做这个计算,哪些东西分块分到哪里。你这么分块之后,它这个通信是在什么速度的network上面发生的?是在GPU上NVLink发生的?还是在机器与机器之间的connection去发生的?它的latency带宽什么就都很不一样嘛。
然后包括很多系统细节上的优化。比如你GPU你要让它一直能够保持busy,能够尽量算更多的东西。那你就尽量减少这个访存。那减少访存一个很常用的方式,就是把算子去融合起来。所谓算子融合,就是,比如说我算完了一个Matrix multiplication,然后我接下来要算一个activation function啊,一个Tanh或者Sigmoid的之类的。我如果这个中间需要把这个结果写回去,再读回来,再做那个内部计算,那我就会多一次访存嘛。我如果把这两步同时做,Matrix multiplication之后,我的epilogue,就是结尾加一步Sigmoid这个function,那么我就省去了一次访存,所以我的计算性能就会变高。但是做这件事的人,就需要既懂模型,又能改模型的那些计算,又要懂硬件,且他要懂network。那这个人一般是什么样的人呢?
这样的人就其实非常非常少。比如像Google这样的大厂,他们其实更多的,是把这个角色单独分开的。他可能非常懂分布式训练,然后他在帮助优化的时候,去理解一下这个模型怎么做,然后再去优化它。当然,这个也是依赖于他们强大的infra和compiler的,这个基础设施嘛。这个其实是长期投资,体现出来的回报。
我听一个rumor啊,就是其实像在DeepSeek这样的公司,反而模型data做数据的人,互相之间的工作很了解。所以说,他们可能合作上是可以很紧密的。但听起来就在一个传统大厂,尤其他之前没有做超算,不去解决这些问题,他没有对应的业务的时候,他很难凑齐这样的人。
对,是的。其实最重要的点,还是这个大模型要做出来,必须所有的这些方面都做对。前面说数据中心,分布式训练,包括后面预训练的时候怎么做实验设计,怎么做模型框架设计什么的这些,包括后训练的那些方法,inference的那些框架什么的。除了这个之外,science上面还有evaluation要怎么做对。这个其实是最重要的嘛。只有这些全部搞对了,才有可能做出一个好模型。
做出来的几率有多大?
就全都搞对了,全都搞对就一定能做出来。这个事情并不难。能做这个事情的人其实很多,就是需要知道怎么样把它组成一个团队,然后把它能够结合起来,让大家一起deliver这个东西。
大厂可能会存在一个问题是说,这些东西就可能分给不同的director去做。每一个director他自己都有自己的团队,一个小culture,他的人才密度可能不一定够,把那个东西做对。
小而精的团队,大家虽然没有办法很快的把某些东西都铺开,马上把所有task都做了,但是他至少做的东西都是对的。而且这个做对的速度也会更快。对吧?小的团队没有很多交流的overhead。
不光有交流的overhead,还有大家自己的scope politics,互相拖后腿拆台。确实会有。就哪怕大家都是well intended,然后大家都努力在做这个事情,依然不能避免的是talent density不够的情况下,就没有办法把一个重要方向完全做对。
那小团队的优势就是我可以快速迭代,我发现错了我就赶紧做对。更可怕的还是Google那种模式,就是他的团队大,但是大家的culture都是非常technical,非常science driven。不同团队的人才密度确实也够,把每个方向都做对。那你会看到,他不但能快速的catch up,而且他会有非常快的迭代速度。确实。
所以说是data center,分布式计算,然后pre-training的人,应该还有data的人对吧?就pre-training和post-training,其实都需要data的人。
data这一块需要的就是好的常识,好的taste。一般数据如果有问题的话,足够聪明的人,知道要把控质量的人,只要愿意花时间去努力,都可以迭代出一版比较好的数据来。
数据有问题怎么看出来?然后怎么叫从不好的数据,迭代成一个好的数据?
就比如说,之前AI2他们讲过一个比较有意思的例子,就Reddit上面有一个subreddit叫做microwave gang。那个subreddit里面的人不干别的,就他的所有comment都是用text去模拟那个microwave的声音。然后你就会发现有很多MMM......然后突然可能会来一个ding~。这个文本就哈~跟其他的文本,完全不是一个domain的嘛。这个会导致很多这种loss爆炸之类的。这种情况出现。之前AI2他们就是碰到这个问题,也讲出来了。像这种就显然是低质量,没有用的一些数据嘛。包括网上,其实很多网站都是为了search engine optimization存在的,它的这个里面有很多垃圾文本。那些都得过滤掉。
这样子这种低质量文本,就只要去看了,一定能找到,也一定知道怎么样去掉它嘛。
去看了这件事说起来容易,做起来很难吧?因为它的文本太海量了,trillion级别的文本是吧?怎么可能看(的)过来呢?
这个的话,这么说吧,你不管什么文本,那Google它能够index多少文本对吧?嗯,这个search的那一套technology,其实现存的已经是能够做这个事情,做得很好了。所以就是说,scalable的工具想要有都是现成的。那大家就是得问这个问题,然后知道要用这个工具,要把它做好,就可以做这个事情。
你说的所谓的愿意去做这件事,不是说他愿意自己去看了以后,人为的决定,而是说他知道有这个问题,他想解决这个问题,然后用工程的方式去解决它。
对,对,对,对。甚至很多人洗数据,用language model去洗嘛。用language model看,这套文本里面有没有什么质量问题。
这 ন্যায্য有一个巨大的debate了,就是用language model去evaluate language model,用language model去清洗language model的数据,包括合成数据,synthetic data。我觉得从信息增量的角度来说,这个不是特别make sense。你都是endogenous的信息,没有exogenous的信息。所以说你没有什么新的信息。就按道理,你就是改变一下你的方程,就可以去得到那样的(结果)。这样做你觉得他本质上是有意义的吗?然后我猜,他肯定是有一些现实的意义的。那这些现实意义在哪,和他的边界在哪?
用language model洗language model的数据,你说的这个点,就是说它并没有增加信息。我觉得从overall来看,确实是这个样子的。但前面我们讲language model数据库抽象的时候,也讲了不同的granularity,以及它组合的这么一个东西嘛。这里还有一个技术点,其实是说生成文本本身,是比理解这个文本好不好,要更难的一件事情。所以如果说已经生成出来了之后,很多时候可能生成的时候,这个模型生成的并不好。但是这个模型知道这个生成的不好,那他就可以过滤掉。所以就是说somehow,他还是能够让数据质量变得更好的。
还有一个思考这个的角度,就之前有那个猴子打字机,随机的打打出莎士比亚那个,就是他的point是在你虽然只有26个字母,你的combination其实是cover了所有的信息嘛。也就是说这个space下面你要的信息,它其实是已经存在了嘛,就是你得知道去怎么样找出它。
然后找比生成更简单。
对,就是找比生成更简单。对。
有这个asymmetry。那合成数据这件事呢,就是用合成数据训练模型,这种左脚踩右脚可行吗?
这个也会有用。最近有一些distillation类的工作,其实都是往这个方向去推的嘛。不过确实可能更多的不是说,他能够无限的左脚踩右脚,然后模型还不崩,而是说你可以做那么一两步。但边界怎么样,现在大家还要再去探索一下。
我对合成数据的理解啊,一直是它是其实是在改变权重。我原来这部分的数据比较稀疏,然后我generate很多数据了以后,它其实没有带来增量信息,但是它可能这部分的数据它的权重就提升了。
对,确实可以是这个样子。这也是前面说的,用不同的granularity把数据提出来,然后重新组合一下,看看有没有用,再放回去的另一种表现形式嘛。
我还看到这两天还有一些paper,是说self-distillation。它其实相当于是希望模型自己左脚踩右脚,但是它的reward那一头,这个模型其实会拥有比生成这一头更多的信息。
通过这个方式。
哦~让你猜。
对。通过这个方式自己去调和自己吧。有点像啊。
人好坏啊。hhh。
但是是有道理的。就感觉女生跟男生谈恋爱的时候,设置一些奇怪的test那种。哈哈哈对吧?回答对了,那说明你小子有潜力。
对,对,对,看看是不是能开悟。啊,有意思。
嗯,希望他们能找到这种有灵性的模型吧。选出来有灵性的模型。
那做data的人是什么样的人?听起来不是data scientist们。
嗯,可能他的专业训练本身不是那么重要。因为我前面讲到,这个数据看着好还是不好,会有什么问题之类的,其实很多是常识性的。更多的是说你要能够知道问什么问题,用好工具去把这个答案找出来,然后要enjoy这个过程。我觉得主要要的是这样的人。是不是data scientist我也不好说,因为我其实data science这个role那边interaction其实没有那么多。
那你跟那些打交道的data,他们的background是什么样子一般?
其实有挺多是NLP或者machine learning的PhD这个样子。
我们又讲了一个data, pre-training, post-training或者mid-training。还有吗?
evaluation其实也是跟data有关。但evaluation其实是所有的东西里面最重要的。因为假如之前某些友商,他evaluation搞对的话,他是不会把那样的模型放出来的。对吧?至少决策不会做错。一旦出现这样的决策错误呢,很明显就是evaluation这一步就是错的。那么evaluation通常又是大家不同团队,迭代的目标嘛。所以这一步搞错了就很容易出问题。
这里面跟认知也有关系。有很多一开始做language model的人,他觉得evaluation这个东西,在language model里面,你overfit什么的其实没有关系,你有leakage可能不太要紧。这完全不是这么回事。
为什么大家有那样的直觉?然后那个直觉为什么不对?
因为很多人可能就觉得,模型的知识本来就是预训练里来的,然后预训练就是什么文本都放进去。对于知识类这些东西,你就是要他记住,要他记住最直接的方式就是这个,看答案。训练的时候就看到就overfit。但这样子的话,会发生的问题是,其他跟数据不相关的那些design上面,它的迭代方向就会错。哦,比如说我做预训练方法,我如果数据里面有leakage,那我优化出来的模型,其实是更偏向于memorize的。benchmark被overfit了之后,这个benchmark本身就不能用来指示说,我这个模型在这个事情上,做的好不好了。我也并不知道,这个知识跟其他的知识的,它的compression发生了没有,做的怎么样。那这个就很难去衡量预训练的效果。所以这个evaluation其实是非常难,非常重要的一点。
你说的evaluations呢,和现在市面上大家教的那些AI Evals是不一样的。AI Evals那些是拿一个AI产品做一些work flow,然后就衡量一下整个东西的质量。你说的是LM本身在训练的过程中。
在这种情况下,本身这方面的人就已经是很少的啊。就不要说市面上做AI Evals的,和这个没有半毛钱关系。那这些人主要也是NLP machine learning scientists们是吧?researcher?
对,也主要是这样的角色。而且evaluation一般来说,一个团队要把evaluation做成功,public的那些benchmark,其实大家模型都见过,然后也很难去衡量嘛。如果只依赖public benchmark去做,自己的模型evaluation,其实是一件很危险的事情。比如我举一个简单的场景,有一个数据厂商,他跑过来说,我这边有一份非常强大的数据,它可以让你模型能力大幅提升。但是他可能实际做的事情是说,在他猜测你会测的那些benchmark上面,他去paraphrase一些数据进去。它相当于是没有exact match,但是有leakage嘛。那在这个情况下,这个模型如果只测那些benchmark,我当然会大幅提升了。所以解决这样的问题,其实最重要的还是,每个公司自己得有一份自己的secret的,一个evaluation的benchmark。然后这个东西是永远不能disclose出来的。
嗯~都很有意思哦。听起来应该也都是很多这个厂商受过骗的真实教训。
对,肯定是有的。
还有问题就是大家是诚实的啊,然后大家都是想把这个模型给做的更好。可是我们现在发现,就是衡量模型到底好还是不好,我们看benchmark已经不适用了。而且我们还不断的发明新的,更好用的benchmark的情况下,这个感觉是对的吗?还是其实现在有一些benchmark,已经非常好的告诉大家模型的效果了?普通人吧,想要去了解模型效果,我们不去看那种这个文章发,今天这个爆了,明天那个爆了,我们应该怎么样子去衡量一个模型好还是不好呢?
可能还是实际使用体感为准吧。我想要实际使用也是需要投入时间的嘛。我想有一个大概的,就是它不是一个垃圾这种感觉,它值得我投入时间。我怎么判断?
我见过的一些power user,基本上自己有那么几个example,是相当于是自己的小benchmark。然后不管什么新模型来了,都会把这几个试一下,看一看这些能力对不对,效果好不好。其实跟前面说的比较像,可能就是规模小一点。一个是看模型效果,一个是看跟自己是不是relevant我的实际工作,然后他能完成的好那OK。
那,你完全没有提任何一个benchmark,难道任何一个benchmark都不值得看?
benchmark现在更多的会成为各个lab做marketing的一个工具。当然这里面要把它作为marketing工具也要小心一点。比如我知道这个Humanity's Last Exam那个benchmark,它数据本身错误率就很高,可能40%多。所以你要是给我刷出个70%的分来,那肯定是有问题嘛。
说明他见过错误答案。
嘿嘿,嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿(≖‿≖)。给了你一套这个小抄,小抄竟然是错的。对啊,老师一改卷子,发现怎么错的都一样嘛。
呃哇塞。再说一个得罪人的。当时腾讯小马哥说我们3D模型已经是SOTA了。然后我还问了一些内部人员,这个是怎么来的?他说是在一个很靠谱的benchmark上,确实得分最高。然后那个benchmark,我记得是说大家在真实使用场景下去进行投票。你可能不了解背后的每个机制,但是你的直觉,你觉得这件事可信吗?
有针对性的优化过的话,很多时候可能这个地方犯错,并不是说scientist真的故意要去直接刷这个分。因为直接刷这个分的话,应该可以刷的很高嘛。很多时候更多的是,我就是急着要赶deadline,上面指标下来了,我要把它做上去。然后我可能在选我的数据的时候,就没有像我应该那么小心的去做这个事情。那么可能更多的会有一些间接的,这种contamination啊之类的。问题就是反而你想不得高分,有的时候是一个更难的做法。得高分反而是一个简单的做法。
如果有做模型的商家在看这个的话,我会觉得就是,你至少在内部开发的时候不要去overfit benchmark,之后marketing的时候你再overfit再说吧。不要影响内部团队的开发进度嘛。
非常的反人性。实际啊,在我看来就是一个KPI衡量versus science精神的这么一个PK。就是你试图用偷懒的方式,去管理这种科研团队,你试图去把它用各种quantifiable的东西去衡量,然后不管是deadline还是你的这个score,甚至包括你的什么研发进度也好啊,薪酬也好啊,所有这些东西,其实都反而会导致你这个科研精神的损害,最后导致整个事情是不好的。
对,是的。长期来看,这个市场一定会纠错嘛。因为毕竟你分刷的再高,你放到customer手里他不好用,那还是不行。
好,那关于这个模型训练,你觉得我还有什么地方没有问到的?你觉得一些,你在过去的工作中的一些实际的感受,见闻,或者说你的领悟?
我可以讲一下我这边,因为我自己带的,相当于是预训练的research的团队嘛。我是怎么设计我们的这个incentive的?
来来来,please。
当然,首先,我们整个team还是比较秉承大家要做好science这个事情。倒是convince大家说不要overfit,要尽量用干净的data什么,这些还比较容易。然后我们在有了干净的data之后,其实相当于是要在pre-training这么一个很大的space里面去make各种bets,然后去看怎么样能够快速的迭代出更好的模型来。那当然我们会用skinny layer什么的这些方法去降低成本。但就是说,我们能scale off的机会,本来就还是比较少。那么我们现在怎么样去衡量我们自己team的research的progress呢?我们相当于平时是所有的researcher,在自己专长的那个领域里面,会自己去迭代,去探索最新的那些方法。用前面说的information gain那个方式,尽量去学更多的东西,然后看哪些方法是promising的。然后每一个quarter,会去要一批更大量的计算,来让我们实际的去试着scale up一次。
多大?
不能说我们这边的多少,但是一般来说,比如10-23次方FLOPs之后,各种benchmark,包括一些reasoning benchmark,也都可以看到非0的数字了嘛。这个大家其实基本都用的那个规模。然后每一次这个scale up,都是给我们测试一次我们自己的各个方向上的design,做得好不好的一个机会。相当于是一个实战的一个演练吧。这样子的话,我们其实每一个quarter都可以知道,我们相比上一个quarter,我这个模型训练出来到同样的accuracy,我可以节约多少compute。然后我们这个,其实相当于就是用cost-to-accuracy bar,这么一个方式去衡量我们训练的这个研究进度的。
这其实让我意外的点在于,你们是没有算力支持的?作为一个这样的研究团队?OpenAI也是这样吗?
其实在不同的企业,可能都会有这样的情况。production会需要大量的计算,hosting需要大量的计算。所以怎样能够保持compute的allocation,这个其实是一个难点吧。我们也不说没有计算,我们其实平时计算还是挺多的,就至少每个人跑一些中小规模的实验什么(的)都是没有问题。但等到比如说真的要跑大规模训练的时候,那可能需要的机器会更多一些。那我们就会去对应的要一些,然后去做这样的事情。
我发现包括我大多数观众,对于大模型训练到底需要多大的数据,缺乏概念。甚至包括很多machine learning scientist,也有这种感觉,就是他没有内化这个区别。帮大家visualize一下。
你说训练的文本量会需要多少是吧?或者需要的算力的差别?
平时是可能每个人几台机器,做一些小规模实验,这个其实迭代就已经很快了,就可以做很多东西。真的要到scale up的时候,可能一整个data center都得用到一起,去跑一个job这样子。
总之就是,你们会得到一个data center的这种piu~给你们一下。
嗯,对。然后训练的过程中用的文本,可能几十个trillion的token吧。那就是可能几百个terabytes的,就光文本。
嗯,哼哼哼哼~还是能想象出来的。
刚刚有说你平时有一套的evaluation方式,然后你会去拉到这个实战上。你的具体的这个标准,比如说对老板汇报的时候的标准,这个算力to accuracy的这样的一个ratio。
对,这样子做有一个好处是,相当于我整个team每隔一段时间,都可以去出这样可量化的,一个跟直接business相关的结果。对自己team内部的incentive有一个好处,是因为不同的方向research都需要发生,但是不同的方向上可以得到的gain,它的周期又都不一样。那我还会有一个需要去权衡不同的人,他可能做的方向expected gain不一样的这么一个问题。但如果大家都是打包一起去做,就不需要说变成我去justify,每一个人save了多少这样的问题。
oh yeah。因为刚刚的这个本质就是,你需要每一步都做对,他才有可能整体有效果。但确实你如果拆开的话,你就会说这个点他有贡献了80%,那个点贡献20%。但其实20%也是必要的。
对,包括有一些可能,比如深度学习理论做的比较多,它告诉我们某一些初始化,某一些scaling应该怎么做。但是这个本身,可能它并不能直接反映出gain,但是它enable了everything else。这样的情况下,我依然需要去encourage这样的research。那么最好的方式,就是一个team整体打包,去做出一个新的recipe来,然后大家就衡量那个recipe。
那你自己衡量individual researcher的时候,你怎么衡量呢?
更多的是说看,比如他做的这个工作,跟跟他现在所在的那个方向去比吧。比如现在外面大家在用的optimizer怎么样,然后我们自己做的optimizer怎么样。这个其实就可以看到,他在自己的方向上推的有多远。
这件事很难,因为要求你对每一个方向都了解,且你能从这个工作本身去判断,而不是从一个结果数据去判断。
对,是的。我更多的是把这个看成对于我来说,是个学习机会吧。因为我就需要确保每一个方向上,他做到什么程度,我都要有能力去深入了解。所以你看现在大模型相关的,大多数这些方向,你都能对这个人的水平有一个了解,大致应该至少有一个认识吧?
可能不同的人,技术路线。那你以你看起来,评论一下市面上的著名人物的水平?
呃,这个就我觉得不说了吧。哈哈哈。
还有没有什么没有touch到的点你觉得?
技术上的话,我会希望比如说现在还在学校的PhD,尽量多去接受一些工程训练嘛。做一些不scale的事情,把比如说那种高性能计算里面常见的一些technique啊,communication pattern啊什么的。这些即便可能跟自己的machine learning研究方向不一定相关,但现在这个东西搞懂其实挺重要。之后的所有的research,基本上也都需要好的implementation skill去drive。所以在一个实现的throughput赶不上idea生成的速度的情况下,bottleneck其实在实现上大家应该更重视这个skill。
你有没有什么具体的field,你觉得他很重要但是人才不够多的?
包括做kernel的优化,包括做分布式的,模型的训练的设计啊,还有就是networking communication的一层,怎么去实现好的高性能的pattern。现在到处都还是挺缺的吧。
利好NVIDIA sounds like还是算力不够,或者是算力利用的不够好。
对,算力的利用率可能是一个大问题。
你觉得NVIDIA可以解决这个问题吗?就是他一直其实也都在搞自己的超算。
显卡是越造越大了,我觉得他肯定是试图解决,并且通过这个去抢占更多市场吧。而且他也正在做很多那应用性上面的改进,包括他们那个tile language,那个就是用更高层的语言去写kernel这个东西。这个是相当于填补了Triton compiler,在可能最近两代的这个GPU上,效果不够好的一些feature gap啊之类的,相当于填了那个坑。NVIDIA其实很努力,一直是在继续推进和保护它的这个护城河的。
你觉得它有明显的competitor吗?
明显的competitor,大家都想做competitor吧。我觉得这个的难点是这样子的,不同的硬件厂家,他有了硬件之后,其实才完成了一小部分。从深度学习框架一直到下面的compiler,再到那些硬件什么的,这个中间其实还有很厚的一层。中间针对自己硬件的那个compiler那一层,大家的software的sharing其实是不够的。那一层并没有太多的什么标准,然后导致说不同的硬件厂家,即便大家利益是一致的,大家都想去抢占市场,compete这个NVIDIA对。但是因为底下硬件这里,他会有一些比如proprietary的东西或者怎么样,就导致可能到instruction这里,并不一定都是放开的嘛。这个就导致说,中间这一层很难有有效的,比如说open source啊,或者其他类似的software sharing的这种strategy。当然这个问题,我觉得现在可能会变得好一点,因为现在software便宜了。所以还是希望现在已经有的硬件厂家,抓住这个机会,把自己compiler做做好。
但听起来不太容易构成竞争威胁。
对,这个东西是挺难的。本来就是挺难的。而且另一方面,就前面说的NVIDIA很勤奋嘛。他们也会用agent去写自己的kernel,他们的CUDA Library improvement的速度也变快了很多。对,就不要说他们本身就是最卷,然后人才最集中,资金最集中,leadership vision最好的公司,可能没有之一。就抛弃这些,他的那个护城河,其实远远比大家想象的大。不是在于这个硬件本身,而是在于他的生态。且这个生态,似乎听起来就是一个马太效应很强,因为他这个生态其实是个标准,所有的其他的上面的东西,只能跟着这个标准来。你compete一个标准,对于第2名到100名加起来,也很难搞定这件事。
我们接下来就聊第二个话题,你对一些未来trend的看法。
我觉得可以先讲一个技术上,我们接下来可能能看到什么样的disruption。这件事情我觉得可以先讲吧,因为前面正好都在讲技术。我们前面用了database这个抽象,然后Frontier Labs都在通过劳动密集型的方式,去给这些表去做完善,然后去填表,用大量的人手去找各个方向的数据,然后放到模型里面去,希望大家能用起来。还有就是已经有很多用户的那些厂家,他会从用户那边得到很多新鲜的,有趣的一些intent。这个也就给了他们信号,说这个填表应该填什么。不是给他们具体的填表所用的数据,而是给他们信号,填表用来填什么。也可以是用数据,肯定他们有团队,去从用户的prompt里面去挖,哪些是有意思的,应该去填的,应该去收集数据的。
那这里面其实模型的改进,它的bottleneck还是在人。因为你要cover一个新的domain,你依然需要人去找这些intent,然后在post-training找到对应的environment和对应的reward,把它program出来,然后再通过模型训练放回到表里去。但是,如果模型它会自己去找新的environment,去找新的reward,知道做什么样的事情是对的,做什么样的事情会是错的。那么他的学习就会不再依赖于人。这个bottleneck。
你说模型找reward是找新的reward function?
嗯,对。可以是找reward function,可以是找其他reward信号。
reward function是把人类都干掉怎么办?
呃...这个可以作为下一个话题说。就是自己如果能生成reward的话,那他可能形式上就会更接近像Alpha Zero这样的情况。对,只不过这个environment不再是一个简单的close的environment,而是说开放式的一个environment。包括前面讲,有些lab在做singularity在做self improvement什么的,我觉得很有可能,他也会需要依赖把continue learning,把自己去找signal,自主的去学习这个能力先去解决了。那么他才可能会在这个新的domain上,能够快速的去改进它。
你看我理解对不对?就是模型现在非常善于答题,但是他不善于出题。然后你刚刚说的就是模型能自动化的出题。
对,而且出的题,可能并不是说是跟前面形式很像的,可以通过排列组合这个已经见过的东西去解决的。而是说比如,有灵性的题目,有一些新的环境。比如说我在火星上面,我要这个模型帮我去做一些planning啊,怎么样的。就可能gravity不一样了,很多东西不一样。这个新环境它能不能做对?包括如果是做self improvement,那就是AI改进AI的这一部分里面相关的问题,他能不能自主的快速的去学习?
所以从这个角度来看,其实从技术上来说,如果我们想说他是下一个突破点的话,可能就是他能够自己去做这个学习。那么对于用户的体感来说,更多的是要不然就是他是非常personalized,只要给了他context之后,他马上知道我需要什么,他能够很快的去做那些只有我知道的,或者是只跟我相关的一些task,然后他能做的很好。或者说是像self improvement啊,或者其他的什么他目前不太擅长的domain,他可能能够快速的学会那些domain。就不会像现在这样,再觉得是好像最近碰到了一个瓶颈,模型进步速度没有那么快了。可能再也不会有那种感觉,因为他一旦能self improve的话呢,就再也没有人这个bottleneck。
而且听起来这完全是可以做的到的。对。这个一旦解决了,那其实还是回到填表的抽象的话,那就是填表的成本会降10倍100倍,或者是就降到基本没有。假设这步解决了,它到底这个模型它是什么样子?可能我们不管是什么,现在必须要靠人做的任务,他都是可能一两天之内他就学会了,再也不需要人去做了。而且他自己会提问。
对,yaeh~。我现在跟他说,你如果给我出一个视频脚本,他确实bottleneck是在提问这一步。只要我能问正确的问题,他都基本上能给好的答案。但是他不知道提什么正确问题的话,yeah~。
你觉得这个东西的实现可能性有多大?
个人觉得三五年应该能解决。
100%?99%?
我还是比较conservative,我会比如说70%在五年之内解决。
70%非常的不conservative吧。哈哈哈。
主要体感的区别是在于,我不会像现在这样子,每一个session跑完了,相关的task我还得重新prompt一遍。如果这个模型deploy到机器人上,我真的可以教会他马上做一些东西,教会了之后他以后就一直会了。包括新的一些场景,新的任务,他可能解决的会比我更好。都不要说什么模型天网统治了,就简单的,我说我特别讨厌一个人,你去帮我搞他,或者说你去帮我对他做点无伤大雅的恶作剧,但是让他难受一下。那机器人就会去做各种恶作剧。这听起来就有点可怕。
反正肯定是会进一步加强这个power的concentration嘛。
哎,我昨天看窦文涛的一个节目嘛,他请的是那个冯时,他讲我们中国的道德或者文明里边,其实一直aware of你什么样的智慧是不应该有的。就不是所有的物质都对人有好处,然后知识是应该是有局限的。一个无限的知识其实很可能带来的是一个bane。但是没办法,我的观点一直就是说,当这件事情要发生的话,人是阻止不了的。就没有什么机制可以阻止。
嗯,对。从人的角度来讲,就即便我说的这个技术变革没有发生,那接下来对于人来讲,这个趋势是什么样子的?
可能24年25年开始,很多比如LinkedIn上有些刚毕业的学生来,会问我一些职业上的问题,我也会尽量想办法就能回答就回答。他们那个时候开始给的问题就是,我发现现在entry level job非常难找了。当然,这两天可能情况会更加剧嘛。不只是entry level,你会发现因为AI能替代的这个技术水平越来越高,先是entry level开始从入口卡死,接下来是越往上的job level也是越来越少。这个情况,其实就相当于是基本就否定了以前说的,这种传统的career的这一条路线了。
前几天一个嘉宾,他发现career这个词呢,其实是工业革命造出来,然后为了让大家可以有一个这样目标。然后他想了以后觉得哇,是不是自己疯掉了,自己怎么可以做这么叛经离道的。后来去看乔布斯写的一模一样的东西,就是career这件事其实是个假的东西。对。
那现在career这件事情是假的,这个体验大家体感就会非常的真实嘛,因为他就是不存在。那既然是career这个东西不存在了,那么大家现在面临的主要的一大问题,其实是怎么样去继续参与经济活动嘛。所以我个人觉得啊,课代表你现在做的这个事情,是大家应该效仿的。
谢谢。
我在2023年的时候出了一期视频,我就说给大学生的三个建议。因为我怕大家说我爹味,然后我说给那个工作的人听,他们觉得不好听。说你要去寻找一个公司之外的价值,你要在公司之外能创造价值,然后你要去,看看人生的意义。我说的是说给大学生听的,但是我是说给所有人听的。从那个时候就意识到了,就是打工这件事不会再持续特别久。那个时候为什么我要去说给大学生听?因为我说出来就被人骂,然后到24年的时候我说,然后又被人骂,说贩卖焦虑bulabulabula,你怎么怎么样。很多时候人面对一个新的变化的时候,就是不愿意去动作。
嗯,这个也确实没办法,人有人的局限性嘛。不过另一方面来讲,这个现实,它其实并不care我们的feeling到底是怎么样的。这里的matter point更多的是说,我觉得接下来会有一段可能比较困难的,重新figure out组织形式的这么一个过程。
拿美联储举个例子,他调利率的时候他看什么?他看通胀,他看就业率对吧?但如果我把利率降低了之后,我资金都是流向比如说AI的这些产业,我都是投到这个,尽量发展AI,从而保持美国在国际上的竞争力。那这个过程当中,它又不是劳动密集的。那么也就是说,大部分这个资金的流向,并不会反映到就业率上去。那么也就是说,本来调利率的这个工具,其实在这个情况下就失灵了嘛。同样的,你如果因为就业率没上去,大家income没有上去,那你inflation也不会上去对吧?
呃...那不一定。income不上去,inflation有也可能上去啊。
那确实是对。这里可能主要会有的一个变化是在于,生产力发展如果脱离于这个劳动力了,那么很多原来有的机制会失灵嘛。
我稍微说一下啊,这个在经济里边倒不是一个新问题。十几年前吧,我记得当时Krugman在New York Times就写了他的OPS。经济学也有很多讨论,就是我们似乎所有的东西都是favor capital,但是在经济学的宏观经济模型里边,就是labor和capital本身是一个trade off。越资本密集的企业就越不labor intensive。如果说,我们的目标是要create more jobs的话,你去把所有的policy去favor capital,这个好像不合理。所以这确实是一个长期以来的趋势。但问题是什么呢?就是capital的influence,对这些policy的influence是非常强的。所以说他们就会去把更多的资源放到自己身上。现在AI可能就是加剧了。
还有另外一个我觉得也很重要,就是说本来啊,在AI之前,你是所有的capital想要达成一个东西,你是需要人的。就比如说SpaceX,那为什么Blue Origin花了那么多钱,他没有办法像Elon Musk那样学?因为Elon Musk懂得怎么管人,懂得怎么把这些科学家们work。但是未来AI无所谓的,人的智能commoditize了。所以说,你capital就可以直接作用到结果上。这对有钱人来说是好事,但是对于labor,就是打工人来说是个非常不好的事情。
对,是的。而且即便民众,比如说更希望其他的policy,去至少确保人的welfare。但这个事情,在有国际竞争的这个情况下,也很难实现。因为不管是国与国之间竞争,还是企业之间的竞争,其实大家都是希望生产力进步嘛。这个压力始终是存在的,这个动力是确保他怎么样持续下去,持续存在的这么一个根本动力嘛。那这样的情况下,就会导致说,大家不得不把资源投到更容易提高生产力的方向上去。那么反映在现在这个阶段就是,我投了很多资源,可能最终发了很多电,那这些电得给AI用,不能给人用。即便每个人能源消耗增加,可以增加他的生活标准。
所以这个是已经开始发生的事情。我对宏观还是相对乐观的。我对尤其科技公司打工人,which is我频道前面观众的个体的命运,非常不乐观。但是我觉得宏观来说,还是相对乐观的。因为你看就是我们这些knowledge worker啊,被AI取代工作的这些人,其实不是主流。我觉得大多数人,他们的工作没有被AI那样子的去消灭掉。举个例子啊,就比如说我的娃去daycare,然后他的老师绝大多数时间是在照顾他。但是老师要干一件事,就是每天要log他吃了什么。然后我就看他老师log肯定很不仔细了,因为他要log好几个娃。这件事他是在照顾娃过程中去做的。那AI可以帮助他更快的做这件事,让他能更好的照顾娃。这个过程中,似乎也没有导致任何人损失工作。除了那个不称职的那个软件公司。也都还好。
对。那如果带娃这个事情,变成了仿生机器人去做的呢?这就是我不知道的。
我自己没有那么看好机器人,它可以那么快的应用。然后原因是什么呢?原因不是说它的算法不ready,我相信算法这件事是可以解决的。但是sensor和控制,其实并不是一个(容易)解决的问题。就是我们手上的这个sensor啊,就是我们手上的神经元,sensor这些东西是非常非常敏感。就是把火箭发射到月球上是一个简单问题,它不是一个complex问题。你算好了以后你可以发射了。但是你拿铁拉花,甚至你拿一个杯子,它是一个complex问题。就是它的系统的复杂度非常非常高。比如我们化学可以合成钻石,但是我们合成不了翡翠,合成不了蓝宝石,是因为化学物稍稍复杂一点就不行。所以说我们能produce可乐,不能produce红酒,因为红酒上有几千种chemical compound。就是我们人类科技水平在这。我们想让这个仿生机器人,做到任何一个科技水平,其实都在这。从这到这,我觉得好像没有大家想象那么快。解决了算法以外,就像你说的硬件啊,sensor啊,控制器啊,这些东西好像还差得远。我们大多数的控制器,现在还是六轴电机啊,就没有那么容易的控制。
对,现在是。就主要是解决了持续学习之后会怎么样这些问题。本质上没有比其他的问题更复杂。可能space稍微大一点。
我觉得理论上,你在地球上盖一个1,000层的楼,没有更复杂吧?但是盖不出来。但是你在digital world盖一个1,000亿层的楼,都是盖得出来的。就是digital world是非常scalable。我们现在去解决的这些数字的问题,是我们有很强的复杂性,因为在数字过程中它太精确了,所以说我们可以非常好的deal with这些复杂性。但是在物理世界中,我们对这个原子的control,其实不是那么精确。所以说我们想要去做一个复杂的东西,在我看来啊,就是人类科技现在还有一个很大的一个天花板。
对我也可以理解这个perspective。是的,这是我的perspective了。我还是希望人类的科技可以piu⇗。
我觉得是有这么一个天花板的。甚至我觉得人类智能相比machine的智能其实很小。原来在机器出来之前,我以为我很聪明,现在我就觉得我的智能其实非常的薄。我能很明显的感觉到机器想要超过我。就比如说解锁了你说的那个东西,在他面前,我的智能就非常渺小的存在。就是我们人类这么多年的历史所积累下来的那些智能,都是很薄的一层存在。即便现在的这一代的机器人,他的包括对知识的,不说理解吧,至少了解上已经超过所有人了。
好,这是未来的趋势。你还有没有什么你觉得很想跟大家分享的,关于未来的趋势的一些想法判断?
这段我说的有点多啊,不好意思。
哈哈哈,没关系没关系。
我是觉得反正现在是不确定的时代,大家还是要可能这个还是反脆弱那一套嘛。现在是take risk的时候,大家应该要积极勇敢的去take risk。
嗯,好的,好的,好的。非常感谢今天来访谈。今天聊得很高兴。非常谢谢。
谢谢课代表提供这个平台。大家回头有什么问题的话,也欢迎来问。我们可以有机会再请你,不管是来节目还是来社区里边,再跟大家互动一下。
为什么做失败率高(口误)的东西,反而更容易走向成功?成功率太高,还是成功率太低的这些,你其实已经有一个很强的prior,你知道它大概会work或者它大概不work。更多的是去confirm你已经有的一些经验直觉或者bias。但如果是成功率正好是一半一半的时候,说明你对这个方向其实了解的比较少。不管在这个方向上是成功了还是失败了,你都会获取非常有用的信息。试错迭代的速度会快的多,你也就很快的能够cover一个更大的空间。
NVIDIA其实很努力,一直是在继续推进和保护它的这个护城河的。你觉得它有明显的competitor吗?这个的难点是这样子的,不同的硬件厂家,有了硬件之后,其实才完成了一小部分。从深度学习框架一直到下面的compiler,再到那些硬件什么的,这个中间其实还有很厚的一层,针对自己硬件的那个compiler那一层,大家的software的sharing其实是不够的。
有一个数据厂商,他跑过来说,我这边有一份非常强大的数据,它可以让你模型能力大幅提升。但是他可能实际做的事情是说,在他猜测你会测的那些benchmark上面,paraphrase一些数据进去。相当于是没有exact match,但是有leakage嘛。模型如果只测那些benchmark,我当然会大幅提升了。解决这样的问题,其实最重要的还是,公司得有一份自己的secret的evaluation的benchmark。这个东西是永远不能disclose出来的。