一周之内,由人工智能实验室OpenAI发布的对话式大型语言模型ChatGPT在全世界掀起“AI狂潮”,数十亿次请求从全世界各个角落汇总到ChatGPT服务器。作为“新晋网红”,ChatGPT “知无不言”,“有求必应”,许多人就身边遇到的问题对它进行提问,虽然回答不一定准确,但也出现了相当多有意思的问题。
ChatGPT是怎样做到无所不答的?我们知道,训练AI算法需要用到大量GPU算力资源。而作为当前AI算法的“顶流”,训练ChatGPT用到的GPU数量或将达上千颗。本文将带你了解ChatGPT工作的底层逻辑,以及它如何驱使上千颗GPU为你工作。
如何训练ChatGPT
当我们想要构建一个AI模型时,最重要的步骤总结下来就是:定义架构、训练、调试以及测试。记者询问ChatGPT,你是如何训练的,它的回复是:1. 选择大规模语料库,构建训练集。2. 定义模型架构,通常使用Transformer模型。3. 选择优化算法并设置超参数。4. 训练模型,根据训练损失下降情况和验证集结果决定是否需要调整超参数。5. 使用测试集评估模型性能。6. 如果需要,对模型进行微调,以提高性能。
当决定要训练一个语言类AI模型时,第一件事就要明确训练AI的语料库。语料库的选择十分重要,为了让语言模型学到足够多的语言信息,需要选择尽量规模大的文本语料库。以ChatGPT为例,训练类似AI模型时,就需要准备各类网站的百科文章、网络回答、专业论文等。据了解,一款通用AI算法所使用的预训练语料库大小为1-10GB之间,而用于训练ChatGPT的前身——GPT-3的语料库达到了45TB。
训练AI执行语言任务还绕不开Transformer模型。Transformer模型(变换器)是一种采用自注意力机制的深度学习模型,自注意力的意思即可以按照输入数据各部分重要性的不同而分配不同的权重。它通过计算词与词之间的相对位置关系来确定注意力的权值,最终生成语句的语义表示。Transformer的优势在于其可以并行计算,速度快,精度高,是目前自然语言处理中最常使用的模型之一。
目前,基于庞大的训练语料库与Transformer模型,GPT-3已经具有了上下文学习能力。简单的说,我们目前可以向模型输入一个问题,再给出相似问题的解决方案,ChatGPT就可以自动猜测相关任务的答案。此外官方在GPT-3.5的训练中,还添加了海量的代码数据,这就是目前ChatGPT能够为用户解答编程问题的原因。AI专家分析,ChatGPT在训练时添加的代码语料库可能具有详细的注释,这能很好的帮助AI理解代码功能。
经过多次训练、调试后,ChatGPT才最终出现在我们眼前,为用户回答各类脑洞大开的问题。
训练ChatGPT需要多少GPU
无论是ChatGPT,还是其他AI模型,其主要功能都是帮助我们实现与硬件的交互,尤其是帮助我们高效利用具有庞大算力的GPU集群。记者就该问题也询问了ChatGPT,得到的回复是:
ChatGPT的回答并没有指出关键所在。我们知道,GPU的多核结构在运行大规模并行计算时,相比CPU会更有优势。但在面对ChatGPT如此庞大的语料库时,任何一颗GPU芯片都不能胜任。有AI算法专家表示,训练通用的AI模型需要用到1亿以上的参数,而ChatGPT的1750亿就需要调用天文数字般的算力资源。英伟达和微软研究院的研究论文称,如果我们能够在单个GPU中拟合模型,所需的大量计算操作也会需要超乎寻常的长训练时间,GPT-3在单个英伟达V100 GPU上估计需要288年。如今时间已经来到2023年,相比于GPT-3,ChatGPT将会拥有更加恐怖的参数数量与训练成本。
不过当我们增加GPU数量后,AI算法的训练时间可以显著降低。以GPT-3模型训练为例,使用8张V100显卡,训练时长预计需要36年,512张V100显卡,训练时间接近7个月,而1024张A100的训练时长可以减少到1个月。这种利用多显卡同时计算的方式就是分布式并行计算。
分布式并行计算,是一组电脑通过过网络相互连接传递信息,并协调它们的行为而形成的系统。组件之间彼此进行交互以实现一个共同的目标。它可以把一个需要非常巨大的计算能力才能解决的问题分成许多小的部分,由多台计算机分别计算,再上传运算结果。在消费端,很多人熟悉的NVLink就是分布式计算的一种。业界主流的分布式并行类型包括数据并行、模型并行和混合并行三种。
在AI算法的训练过程中,我们会用到PyTorch、TensorFlow等软件工具帮我们实现分布式并行计算。例如可以把ChatGPT 45TB的语料库平均分布到1000张英伟达H100 GPU中(每颗GPU具有1.8万个核心),这样单颗ALU仅会分到2.6KB左右的计算量,最后再通过逐级计算总成,训练AI算法的速度将会大大减少。
此外,AI算法更重要的一点就是神经网络。神经网络的搭建需要链接多个数据节点(数据节点可以是单个ALU核心),进行多次迭代与训练建立不同逻辑对应的节点链接,而分布式计算就像链接不同神经元之间的神经束,让GPU集群拥有了类似人脑一样的思考方式。
除了在训练阶段,ChatGPT在回答用户问题时也可以以同样的路径链接各个节点,在上百TB的数据中找到最接近你问题的答案。所以,当你向ChatGPT提问时,其实是上千颗高性能GPU在一同解决你的问题。
ChatGPT未来会怎么发展?
目前,ChatGPT已经展现出来无与伦比的替代能力,很多人正在担忧它的出现会威胁到自己的职业前途。在《流浪地球2》中,拥有超高智能的MOSS计算机已经在未来取代了绝大部分人工,甚至可以自行决定行星发动机的建设,这更加催生了人们对于AI发展的焦虑情绪。但就目前来看,ChatGPT距离完美还有些距离,起码在算力方面,AI还远达不到完全替代人工的程度。记者就未来发展向ChatGPT提问,得到的回复简单总结是:1. 更大、更精准的语料库。2. 不断改进模型。3. 多语言支持。4. 在更专业的领域深耕。5. 用途更加广泛。
未来,ChatGPT可能会普遍存在于人们的生活中,应用在各行各业里,成为一种高效、便捷的生产力工具,为人们的生活增添无数便利。
最后,各位读者可以猜测一下,这篇文章是ChatGPT自动生成的吗?