Ilya Sutskever 是OpenAI的首席科学家,是原董事会成员,是这次OpenAI的宫斗剧表面上的发起者,以至于他从一个学者,突然就成为了被互联网上千夫所指口诛笔伐的那个人(左边那个,这个时候他还有头发,右边是深度学习之父)
如果你看过Ilya的采访和以前他写过的东西,包括他做过的事情,(包括我的上一篇文章)其实应该很容易推断出来,他是被当枪使了
Ilya的背景十分的赞,Geoffrey Hinton的弟子,吴恩达是他的博士生导师,AlexNet的作者之一,当年马斯克从Google Brain把他挖到OpenAI据说还因此和Larry Page绝交(Musk和Page本来是好友)
他作为一个纯粹的研究派,其实并没有对权力欲那么的渴望,看过很多硅谷记者对他的采访和评价,都是正面的反馈,这次他的做法,也让很多人大呼看不懂。抛去被Adam和Helen当枪使,这些事不提,其实在8月份他的采访也能看出来,他对OpenAI现在的一些市场化动作的担忧。在10月的TED演讲上,这种态度更加鲜明(OpenAI首席科学家伊利亚10月17日TED演讲视频观点:人们将开始出于自身利益,以前所未有的协作方式采取行动 原视频:https://www.youtube.com/watch?v=SEkGLj0bwAU )
他是硅谷里的站在与e /acc 对立面的一类人,e /acc 是像Sam那样的投资人(毕竟在YC干过),在OpenAI的发展之路上,他推出GPTs, GPT store其实就是在向世界宣称要做AI的底座了,要做AI的iphone生态了,Sam也迫不及待的宣传他们的团队的研究成果,期中有一句是非常引人注意的,颠覆性的,然后这就是他第一段OpenAI职业生涯的倒数第一次演讲...
Ilya是所谓的super alignment的人,他也恰巧是把security alignment发展成一门技术学科的始祖。在他之前,几乎没有人研究这项东西,他甚至不惜要把OpenAI整个算力的百分之20要拿来研究这些,(OpenAI断网跟他有关系)归根结底就是他希望AI要绝对的可控。由于人家成天和数据,训练方法,推理,算力打交道,所以可以笃定,他一定是看到了我们局外人,甚至大多数OpenAI员工都没看到的甚至有点恐怖的东西...
因为一切都源于推测,所以我也就臆测一下,Ilya看到的让他恐惧的东西就是Gobi,也就是GPT-5
Ilya曾经说过希望带领团队在4年内要彻底搞定alignment的研究,那也就是说GPT5要2026年才可以问世,这对Sam肯定是不可接受的,所以这个矛盾应该是在很久之前就埋下了种子...
不同于GPT4-V,Gobi在第一天就是以多模态的身份诞生的,而且网传它的参数基本也完成了对GPT-4的10倍碾压,我们知道大模型一个最重要的能力涌现和最大的缺点幻觉都是和参数能力成正相关的,所以我估计Ilya是在和Gobi的对话中发现了什么潘多拉的盒子...
其实市面上大家能得到的公开的信息也只有GPT3的175B的整体参数,如果我们用一个简单的公式来测算:
我们假设训练时间是1月左右的话,反推大概用1000来张A100就可以搞定了,但是实际的训练过程要远比这个负责的多,什么RLHF,rewarding,PPO,DPO的我会在后面的文章里来讲。
抛去以上的东西不谈,如果只是单纯要做一次GPT4的预训练要多少卡呢?如果以网传的1.8T的参数,120层Transformer,即使在对等的token情况下,不增加新的训练内容,那么你需要1万张A100来在一个月内训练出GPT4,要是Gobi就得10万张了...
如果大家做过基本的分布式集群,任何都是,不一定是深度学习,我们都知道一个道理,集群的扩展性与算力的增长不是线性的,甚至在某个锚点会发现增加更多的算力节点,反而会使集群的整体水平下降。这是一个常见的问题,究其根源,主要是通信代偿导致的,没有任何集群能够无限的扩展。
有人说你换H100不行吗,事实上GPT4后面的训练都是用了H100的集群来做,但是因为H100和A100的HBM容量是一样的,都是80G,所以整体模型规模导致它依然也得用这么多卡,单位TFLOPs的提升是没毛病的,但是装载模型进显存,依然绕不过去容量的问题,也绕不过去通信的问题。
我们不去考证从1000张卡到10万张卡,这中间过了多少张卡会导致算力利用率的断崖式下跌,我们只想问OpenAI的这群全世界最聪明的人真的这么无聊,就知道堆卡吗?
当然不是,其实这个逻辑就是从Dense training向Sparse training的转变,业界一般称为MOE技术或者叫架构
参见论文:《Outrageously large neural networks: The sparsely-gated mixture-of-experts layer》 1701.06538.pdf (arxiv.org)
简单理解,就是线性扩容上不去了,那我们就分多个模型来干吧(天下大势,分久必合,合久必分)
我们平时理解的模型结构都是这样的,一个输入,一个输出,中间夹着一个隐层,这个隐层可以是CNN,RNN,目前我们讨论的比较多的是transformer
由于中间的参数不断地扩展(导致机器越来越多),已经脱离了目前电信号承载和传导的压力上限,所以索性就给它拆成若干个个体,然后就变成了这个样子
MOE(Mixture of Experts) 顾名思义 ,我一个专家搞不定了,我让多个专家来support你的业务,每个专家都是一个独立的小模型(根本一点也不小...)
那多个专家之间怎么调度呢,与密集模型不同,MoE 将模型的某一层扩展为多个具有相同结构的专家网络( expert ),并由门( gate )网络决定激活哪些 expert 用于计算,从而实现超大规模稀疏模型的训练
然后被选出来的专家(模型)他们的输出结果,再统一走一遍加权平均,就求出了这个step的损失函数,然后进行记录,是不是听起来也是很简单!
但是在分模型的时候就挺复杂了...
所有专家都分配给模型并行组中的GPU,每一个GPU只拥有一部分专家,原始数据并行组在反向传递的梯度处理期间不再适用于专家参数。
基于此,传统的并行策略,就不是都实用了 ,最起码目前看大多数的框架是没法很好支持TP的(因为要劈开同一层) ,另外在公开的这些框架里面,目前看门调度做的不是特别好,在大batchsize,大sequence number的情况下,训练效果一般,效率低下,当然OpenAI人家的应该把这些坑早都填平了,问题人家又不开源出来
目前可以尝试的推荐大家可以用Colossal的MOE训练和清华开源的SmarftMOE,包括Deepspeed的MOE,都可以实现测试一把的需求,但是实际体验目前看还是Deepspeed要好一些和成熟一些。
今天就讲到这,下期见
标签:...,训练,AGI,10,模型,害怕,Ilya,OpenAI From: https://blog.51cto.com/u_16432251/9163557