ChatGPT破圈爆火后,越来越多人开始问:
“什么时候会出现中国版的ChatGPT?”
国内的学术界和工业界都开始躁动起来——百度、阿里、字节等大企业纷纷高调宣传,一些创业公司也开始争相打造中国版的OpenAI。近期,复旦大学推出的MOSS模型开放试用后迅速登上热搜,引发了广泛关注。
这一切让人眼花缭乱,不禁让人思考:
有钱就能训练出模型吗?
以美团的大佬带资入组为例,许多创业者和投资人纷纷把目光投向ChatGPT。作为一名自然语言处理(NLP)从业者,我对此持乐观态度,认为在热钱的推动下,NLP算法工程师的薪资可能很快会与芯片工程师相媲美。
但我仍然想泼个冷水:创业公司想要开发ChatGPT,想要训练模型,绝非只凭资金和招几个算法工程师就能实现的。
不谈ChatGPT,单是较为成熟、参数量相对较小的BERT模型,其Large版本的参数量也仅有3.4亿,与当前的ChatGPT相比要小三个数量级。然而,如果一名从业者真从零开始训练BERT模型,他一定会意识到,训练这样一个“小模型”并非易事。
更何况,BERT在2018年发布时,其模型参数、训练代码都已全面开源,训练数据如BookCorpus和Wikipedia也十分容易获得。在这种情况下,国内各大厂训练出内部版本的BERT模型时,也经历了大约半年的摸索。期间,算力配置、训练精度优化、性能提升、底层框架支持、训练策略和数据策略的优化等都充满了挑战。
如今,ChatGPT不仅没有公开代码、训练数据,也未公布模型参数,连前置模型的参数都没有透露,而且其模型体量是BERT的许多倍。
ChatGPT没有捷径
相较于创业团队,中国的互联网巨头在大模型方向拥有一些积累和先发优势,然而这并不意味着他们可以高枕无忧。
在语言模型方面,国内大多数企业依然沿着“以掩码语言模型(MLM)为核心的BERT路线”深耕,这条技术路线更注重提高语言模型的文本理解能力,而相对弱化文本生成能力。但真正沿着ChatGPT这种生成式语言模型路线深入研究的团队,不论国内外,屈指可数。
这也就意味着,复现ChatGPT不是一朝一夕之功,补功课可能要从三年前OpenAI发布的GPT-3开始。如果缺乏GPT-3提供的世界知识和强大的长文本生成能力,训练ChatGPT就如同在空中建楼阁。
不幸的是,至今GPT-3并未开源,未来也大概率不会开源。要从头训练这样一个拥有1750亿参数的大型生成式语言模型,难度极大。
有人可能会问,那训练一个小一些的模型,比如百亿参数的,是可行的吗?
从目前来看,这显然不可行。AI的表现并非随着模型规模的增加而线性提高,而是在参数规模超过特定临界值后,才能显著提升,甚至涌现出小模型不具备的能力。研究表明,模型的规模至少要达到620亿参数,才能训练出思维链(Chain-of-Thought,CoT)能力。同时,像可信性(Truthful)这样的能力,甚至需要2800亿参数的模型才能实现。是的,复现和超越ChatGPT,目前来看没有捷径,必须一步一个脚印,首先得搞定GPT-3。
国内有人真正复刻了GPT-3吗?
是的,只有一家,那就是阿里达摩院。该团队从小模型到大模型(从base到175B),全面复刻了GPT-3,并开放在魔搭社区上。
达摩院的复刻并非毫无背景,他们在大模型的各个方向上进行了深入探索。早在2021年4月,他们就发布了首个中文语言大模型PLUG(参数量为270亿)。该模型首次在中文语言理解榜单CLUE上取得了86.685分的优异成绩,超越了人类表现。
同年10月份,达摩院还实现了10万亿参数模型——M6,团队通过大量的底层优化和算法设计,仅使用了512个GPU就完成了这一庞大的模型工程。此前,M6模型成功将AI图像生成的清晰度从OpenAI的DALL·E的256×256提升到了1024×1024,效果极为出色。
M6的发布引起了国内外的广泛关注,OpenAI前政策主管Jack Clark更是公开点评:“这个模型的规模和设计都非常惊人。这是许多中国AI研究机构逐渐发展壮大的体现。”
从达摩院的经历可以合理推测:如果一个研发团队此前没有训练过千亿级别的大型语言模型,那么在可以接受的时间框架内训练出具备生产力价值的类ChatGPT模型将非常困难。
然而,我们也应意识到,算法只是硬币的一面,另一面是算力和云基础设施,这同样不容忽视。
云基础设施的重要性
OpenAI的解决方案是依靠微软的支持。同样地,若国内初创企业想要成为中国版OpenAI、自主研发ChatGPT,恐怕也需要与几家云计算厂商展开深入的交流。
那些没有进行过大模型训练的人员,可能会误以为仅仅购买几张A100显卡就可以解决问题。
然而,当你实际操作时,你会发现:
- 单机多卡根本无法满足千亿参数模型的训练需求,需要进行多机多卡的分布式训练;
- 当你开始多机训练时,A100的算力可能因网络通信延迟而大打折扣,多机的效率甚至可能不及单机训练;
- 训练ChatGPT需要处理海量数据存储问题,即便数据存储成功,数据读取的IO效率也会极大限制模型的训练效率。
经过一番基础设施问题的折腾,A100的算力可能浪费了70%至80%,训练实验无法开展。
因此,若没有一个针对AI高度优化的云计算平台,训练出GPT-3和ChatGPT这样级别的模型几乎是不现实的。
这里面有两个重点,一个是“面向AI”,另一个是“高度优化”。
“高度优化”并不言喻,它考验的正是云计算平台底层的各种优化能力,包括网络、存储、计算、通信等系统化工程能力。
那么,“面向AI”又意味着什么呢?
在《ChatGPT,和聪明地设计Infra》一文中有这样的描述:
云计算通常集中在资源的池化和虚拟化方面,即如何将计算、存储和网络从物理资源转化为虚拟概念,实现“从批发到零售”的转变,以及在虚拟环境中提升利用率或超卖。此外,如何简化软件部署、实现复杂软件的免运维(如容灾、高可用性)等,都是其核心内容。
然而,AI计算却有所不同。尤其是在当前的AI训练中,并不要求特别强的虚拟化能力。一般训练会“独占”物理机,除了简单的设置虚拟网络并转发数据外,并无更复杂的虚拟化需求。
AI训练需要极高性能和带宽的存储和网络。例如,网络通常需要达到几百G以上的RDMA带宽连接,而不是常见云服务器只有几G到几十G的带宽。同时,对于高可用性并没有非常强烈的要求,因为大多数离线计算任务并不涉及容灾。
也就是说,对AI训练,特别是那么大规模的训练来说,性能和规模优先于传统云服务关注的一些能力。
具体来说,达摩院之所以能训练出多个万亿参数级别的模型,正是因为他们背后有阿里云的飞天智算平台支持。这是一个超大规模的高性能计算集群,是国内唯一能实现万卡级别的AI集群。
如果给你一万张A100显卡就能把ChatGPT训练出来吗?答案显然是否定的。万卡集群对网络、存储和通信有极高的要求,一旦处理不当就会直接宕机。
提供一些数据以供参考:
飞天智算平台的单集群算力峰值高达12EFLOPS,并且千卡并行效率达90%。针对ChatGPT这类数据密集型场景,该平台还进行了大量数据IO优化,通过自研KSpeed和RDMA高速网络架构,将存储IO性能提高了10倍,时延显著降低了90%。
此外,阿里云自研的高性能集成通信库ACCL和网络交换机为万卡规模的AI集群提供了无拥塞、高性能的集群通讯能力。
大模型训练也极度依赖软件平台层,飞天智算平台的机器学习平台PAI,专门针对AI大模型推理和训练场景进行了优化,利用率提升了3倍以上,AI训练效率提升了11倍,推理效率提升了6倍,覆盖了全链路的AI开发工具与大数据服务。
简而言之,这种面向AI且实现高度优化的云平台,是ChatGPT等大模型快速迭代的基础保障。
总结
千亿参数级别的大模型研发不仅需要强大的算力、网络、存储、大数据和AI框架等智慧计算基础设施的支持,还需要面向AI的特别优化。这是一个涵盖多个技术领域的复杂系统工程。
ChatGPT之争已经超出了算法的范畴,它更是一场AI与云计算能力的全方位竞争,涉及技术生态层面的博弈。强大的云基础设施能力与深厚的大模型技术积淀,缺一不可。
多说一句
作为一名NLP从业者,我深刻感受到,自2020年GPT-3模型发布以来,AI的研究生态日益封闭。虽然这种趋势对已经取得竞争优势的商业化公司可能带来好处,但对实现全人类的AGI终极梦想而言,却是一个不利的文化趋势。
客观来看,我们需要承认与OpenAI的差距。因此,如果能构建一个更加开放的大模型生态,使更多的AI研究人员能够避免“重复造轮子”,那国内“ChatGPT复现”的进程无疑会大为加快。
一枝独放不是春。