



























大语言模型(Large Language Model, LLM, 下称大模型)可谓是当下最火的科技。纵使它这么火爆,能够入局的玩家却不多。究其原因,还是玩转大模型的门槛太高了。「拥有」一个专属大模型并不难。参照论文、开源代码、数据集,改一改,总能搓出来一个大模型。但是想要玩转,就难了。
怎样才算玩转?当然是玩着,还把钱挣了。本文尝试从学术界和工业界的双重视角来解释:为了玩转大模型,需要克服哪些门槛?
GPUs, lots of GPUs.
现在,所有人都知道,跑大语言模型的关键在于显卡(GPU)。谁拥有最多的显卡,谁就有机会发展出更大的模型,提供更好的服务。但是只要有显卡就够了吗?
答案是:不够。
目前流行的大语言模型,通常是 Transformer 架构模型,是一类深度神经网络模型。这类模型需要经历训练和推理两个阶段。就像人脑一样,先学习知识,再运用到新的问题上,所谓举一反三。对于企业来说,就需要先拥有一个训练好的模型,再将用户的问题输入到模型中,进行推理,并返回结果。
理想情况下,如果一块 GPU 训练一个模型要一天,那么两块 GPU 训练相同的模型就只用半天。现实会给你狠狠的一巴掌——钞能力在这不管用。正如《人月神话》讨论工作效率随人数增加,非线性增加的问题,随着 GPU 数量的增加,模型训练的效率也不是成比例增加的。业界通常使用加速比(多卡训练下的单卡吞吐量平均指标除以单卡训练下的吞吐量平均指标)来衡量多卡训练的效率,越接近 1 越好。
以双卡加速比 0.8 为例。这代表着,如果一张卡单独训练时的吞吐率为每秒钟 600 条序列(即每秒钟,显卡可以接收 600 条序列的文字并更新模型参数),那么两张卡时,每张卡每秒钟只能处理 600*0.8 = 480 条序列了,两张卡也才处理 960 条序列。相比较理想情况下,双卡 600*2=1200 条序列,是不是感觉两张卡带来的效率提升也没那么大了?
GPU 越多,GPU 的吞吐率越小,GPU 吞吐率越小,GPU 越少。所以,GPU 越多,GPU 越少。
假设 GPU 已经不是门槛,厂商就会把这些 GPU 全部放在一起,搭建一个专门的 AI 集群处理 LLM 相关服务流量,称为「GPU 大厂」。大厂员工往往干活的时间不多,更多的时间花费在拉通对齐,GPU 大厂也不例外。
GPU 拉通对齐什么呢?
回答上面的问题,首先要解释一下多卡训练时,每个 GPU 在干嘛。模型训练阶段主要涉及两个部分:数据集和模型参数。随着数据集和模型参数的增加,多卡训练也可以分为数据并行和模型并行。数据并行就是将一整个数据集分成几个小数据集,每个 GPU 负责训练一个小数据集。模型并行就是将模型划分为好几个子模型(按照划分的方式不同,分为张量并行和流水线并行),每个 GPU 负责训练一个子模型。由于训练的过程需要迭代好多轮,所以每一轮结束这些 GPU 都需要进行同步,向别的 GPU 汇报这一轮的工作结果(训练结果)。


上述三种并行方式发展的很成熟,并被应用于现在流行的训练框架中(DeepSpeed,Megatron-LM)。除了以上最典型的三种并行方式,随着对大模型训练的研究更加深入,一些训练框架应用了如序列并行(Colossal-AI)以及专家并行(DeepSpeed-MoE)等手段。这些手段通常针对特定场景或模型,因此不再赘述。
现在的 GPU 性能越来越强,单卡训练的速度越来越快,但是想让这些 GPU 一起高效的干活越来越困难了。研究结果表明1,AI 集群的瓶颈往往在 GPU 间的通信上。在学术界,有一个专门的指标来衡量 GPU 的利用率:MFU。字节跳动最新的研究成果2,在多达一万显卡的集群进行优化,将 MFU 提高至55%,也就是说 AI 集群有大约一半的时间,GPU 都在「摸鱼」。
不是 GPU 想摸鱼,是工作内容不得不摸鱼。为了不让 GPU 摸鱼,学界和业界可谓是挖空心思降本增效,试图用更少的 GPU 干更多的活:
除了直接解决 GPU 使用效率不高的问题,业界还会思考一些其他更现实的问题:
模型训练和推理的关系就像是人类学习和学以致用的关系。我们花了大量时间学习,最终是为了将学习的知识应用到实际。
学习的时候,关注点在学习内容。学以致用时,关注点在反应时间。面对询问,一个人能够很快地做出反应并给出正确答案,我们会夸这个人聪明。大模型也不例外。这就导致模型训练和推理时,业界的关注目标不一样。作为用户,在各个平台和大模型对话,背后都是一个个推理请求,对应了大模型的推理任务。对于推理任务,无论是用户还是业界,都希望大模型反应速度越快越好,对应的指标就是「推理时延」。
从技术的角度,推理任务和训练任务也有所不同,直接给出结论就是:推理任务对内存访问速度的要求更高。所以学界和业界开始意识到,针对推理任务,需要从新的角度进行优化。这些优化近期被提出来,思路简单,却能够取得很好的效果:
这篇文章的写作契机是刷 5 月 6 日 的派早报,看到其中分享了阿里云在 Eurosys 24 上发表的学术成果。虽然阿里云的这篇论文成果不属于我的研究领域,但是我会阅读 Eurosys 这类系统会议中的其他论文。我着实有点惊讶,少数派对学术会议的关注,也开始考虑,是不是我也可以介绍一些学术成果?
曾经有评论问我的研究内容是什么?不太好说清楚,这篇文章可以作为一部分回答。多亏了 OpenAI ,大模型被广为人知,我的研究内容看上去也有了一点价值。除了产生一点学术价值或工业价值,我更希望产生一些社会价值。希望一些「小白」看到这篇文章,对大模型有更深的理解。尚不清楚这篇文章带来的具体价值,或许在吹水时来一句:你知道玩大模型不是卡越多越好吗?能让同伴对你刮目相看——搁这装逼来了。
为了增强可读性,尽可能避免将本文写成文献综述或技术文档,因此想到将 AI 集群类比科技大厂,尝试以较为简单易懂的方式去介绍大模型技术落地过程中面临的挑战。展开来说,这些内容三天三夜都说不完,本文权当抛砖引玉。如果读者想要获取更加专业的内容,可以去 Arxiv 、知乎等平台阅读更加专业的材料,也可以直接和我交流。
> 关注 少数派小红书,感受精彩数字生活 🍃
> 特惠、好用的硬件产品,尽在 少数派 sspai 官方店铺 🛒
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。