ChatGPT破圈火爆有,国内也掀起了一波AIGC的热潮,BAT也竞相入场。
但是不得不泼一盆冷水,目前ChatGPT的能力并不是紧靠堆钱就能达到的,这可能跟之前的互联网产品大不一样。
ChatGPT没有捷径
相对创业团队,中国的互联网大厂在大模型方向有积累,有先发优势,但这绝不意味着高枕无忧。
在语言模型方面,国内各大厂大多沿着“以掩码语言模型 MLM 为核心的 BERT 路线”进行深耕,这种技术路线更加注重提升语言模型的文本理解能力,弱化文本生成能力。真正沿着 ChatGPT 这种生成式语言模型的路线深耕的研究团队,无论国内外,都不是太多。
这就注定了,ChatGPT 的复现不是一朝一夕就能完成的,补功课很可能要从三年前 OpenAI 发布的 GPT-3 开始。如果没有 GPT-3 提供的世界知识和强大的长文本生成能力,训练 ChatGPT 就无异于建造空中楼阁了。
可惜,GPT-3 至今也没有开源,未来也大概率不会开源了。要从头训这么一个 1750 亿参数的大型生成式语言模型,难度非常大。
有人可能要说,那我们训一个小点的模型,比如百亿参数的,可行吗?
目前来看不可行。AI 的表现并非随着模型规模增加而线性增加,而是在参数规模超过特定临界值后显著提升,甚至涌现出小模型不具备的能力。 比如论文表明,模型的规模至少要达到 620 亿参数量后,才可能训练出来思维链(Chain-of-Thought,CoT)能力。
而像 Truthful(可信的)这种能力,甚至 ChatGPT/GPT-3 这样的模型规模都是不够的,要达到 2800 亿参数量才能涌现出这样的能力。是的,复现和超越 ChatGPT,目前来看没有捷径,必须一步一步来,首先要先把 GPT-3 搞定。
基础设施差距甚远
OpenAI 的解决方式是向微软求助。同样的道理,国内如果有初创企业想要成为中国版 OpenAI,自研 ChatGPT,恐怕也要先跟几个云计算厂商好好聊一聊了。
没有做过大模型训练的人,可能会误以为多买几张 A100 卡就可以了。
当你实操的时候,你就会发现:
-
单机多卡根本训不动千亿参数模型,你需要多机多卡分布式训练 -
当你开始多机训练时,你发现 A100 的算力都被网络通信延迟给吃掉了,多机可能还没有你单机训的快 -
然后你会发现训练 ChatGPT 的海量数据存储也是个问题,就算存下来了,数据读取的 IO 效率又极大的制约了模型的训练效率 -
一通基础设施问题下来,A100 的算力被浪费了 7、8 成,模型训练实验无法开展
因此,没有一个面向AI高度优化的云计算平台,训练 GPT-3 和 ChatGPT 这种级别的模型怪兽,是相当不现实的。
这里面有两个重点,一个叫“面向 AI”,另一个叫“高度优化”。
“高度优化”不必多说,考验的是一个云计算平台底层的优化能力,包括网络、存储、计算、通信等方方面面的系统化工程能力。
什么叫“面向 AI”呢?
这里引用一下《ChatGPT,和聪明地设计 Infra》这篇文章里的表述:
云计算很多时候在关注资源的池化和虚拟化:
-
怎么把计算,存储,网络,从物理资源变成虚拟的概念,“批发转零售”; -
如何在这种虚拟环境下把利用率做上去,或者说超卖; -
怎么更加容易地部署软件,做复杂软件的免运维(比如说,容灾、高可用)等等,不一而足。
但是 AI 的计算不一样。对于 AI 而言,尤其是今天 AI 的训练:
-
并不要求特别强的虚拟化。一般训练会“独占”物理机,除了简单的例如建立虚拟网络并且转发包之外,并没有太强的虚拟化需求。 -
需要很高性能和带宽的存储和网络。例如,网络经常需要几百 G 以上的 RDMA 带宽连接,而不是常见的云服务器几 G 到几十 G 的带宽。 -
对于高可用并没有很强的要求,因为本身很多离线计算的任务,不涉及到容灾等问题。 -
没有过度复杂的调度和机器级别的容灾。因为机器本身的故障率并不很高(否则 GPU 运维团队就该去看了),同时训练本身经常以分钟级别来做 checkpointing,在有故障的时候可以重启整个任务从前一个 checkpoint 恢复。
也就是说,对于 AI 训练而言,尤其是今天那么大规模的训练,性能和规模是第一位的,传统云服务所涉及到的一些能力,是第二位的。
给你一万张 A100,就能把 ChatGPT 训出来吗?答案无疑是否定的。万卡集群对于网络、存储和通信有极高的要求,弄得不好直接宕机。
千亿参数规模的大模型研发,需要底层庞大的算力、网络、存储、大数据、AI 框架等智算基础设施的支持,也需要面向 AI 的针对性优化,这是一个囊括诸多技术领域的复杂系统工程。
ChatGPT 之争已经超出了算法的范畴,它更是一个 AI+ 云计算能力的全方位竞争,是技术生态层面的竞争。 既需要强大的云基础设施能力的保障,又需要深厚的大模型技术积淀,两者缺一不可。
没有回复内容