ce041330b09dcac83fc757a586703576.jpeg

©作者 | HKUST&DAMO TECH

来源 | 始智AI wisemodel

始智AI wisemodel.cn社区已上线2个月,是类huggingface社区的产品,将努力打造成中国最活跃的中立AI开源社区。“源享计划”即开源共享计划,大家自己研发的开源模型和数据集,以及基于开源成果衍生的开源模型和数据集等,欢迎同步发布到国内wisemodel.cn社区,方便大家更容易获取和使用。

大型语言模型(LLMs)在学术和工业界都取得显著进展,推动了开源框架和技术的更新,以加速 LLMs 的训练和应用。然而,在不同硬件和软件配置下,性能差异显著。

香港科技大学(广州)褚晓文教授团队与北京大模科技研发团队合作对不同大小 LLMs 在多种 GPU 平台上的性能进行了基准测试,包括各种优化技术,还深入分析了 LLMs 的子模块,包括计算和通信操作。这项工作旨在帮助用户和研究人员更好地理解和选择 LLMs 的配置,以及发现进一步优化性能的潜在机会。

aa94f526d921d94ba4b82c760e265f2f.jpeg

论文标题: 

Dissecting the Runtime Performance of the Training, Fine-tuning, and Inference of Large Language Models

论文链接 : 

https://arxiv.org/abs/2311.03687

53ad810ab0286873885f795b503e9e83.jpeg

性能评估问题

LLMs 投入生产包括预训练、微调和服务三个主要阶段。预训练是最耗时阶段,通常需要上千显卡以及数月。微调阶段则针对特定任务调整模型。最后将模型作为网络服务部署,提供推理结果。

然而,LLM 框架和优化技术在不同硬件上的性能仍有待探索。重要的问题包括:特定硬件配置的需求、时间成本、启用的优化技术,以及现有系统是否充分利用了 GPU 资源。为此,该研究在不同 GPU 服务器上对 LLM 流程的运行时和内存性能进行了基准测试,涵盖了不同框架、硬件、优化技术的性能评估,及对模型模块和操作的详细分析。

68d42664be884ca6a0c11bfc49ed09d3.jpeg

▲ 从微调到部署LLaMA2模型的完整流程

8e67379b7143d8e5c6d3fad4ddec88ae.jpeg

测试方法

全面的基准测试方法评估了 Llama2 模型在三种 8 卡 GPU 平台(NVIDIA A800、RTX4090 和 RTX3090)上的性能。这些平台代表市场上不同级别的高性能计算资源。测试聚焦于预训练、微调和服务三个阶段,使用多种性能指标,如端到端步骤时间、模块级时间和操作时间,以深入分析 LLMs 的时间效率。目的是全面理解 LLMs 在不同硬件上的表现,并为其优化提供洞见。

db16f2d1a783216e85f387bf4acffe14.jpeg

预训练

这部分主要分析了不同规模模型(7B、13B、70B)的预训练性能,主要关注迭代时间或吞吐量和内存消耗和模块级和操作级的微基准测试。

3.1 端到端性能分析 

DeepSpeed 的训练速度优势主要归因于其数据并行训练的效率。但是,同等批量大小下,DeepSpeed 相较于基于张量并行的 Megatron-LM 消耗更多 GPU 内存。

cb0e708d38ce9657ae44fa2220bb229c.jpeg

▲ Megatron-LM与DeepSpeed比较

3.2 不同GPU平台的扩展效率 

基于 DeepSpeed 和量化技术研究不同硬件平台的扩展效率,结果表明:A800 平台几乎实现了线性扩展;而 RTX4090 和 RTX3090 平台的扩展效率略低,其中 RTX4090 比 RTX3090 高 4.9%。在 RTX3090 上,使用 NVLink 连接可以额外提升约 10% 的扩展效率。

bbb3251a938580f8e77b65121f315d68.jpeg

▲ 在不同GPU上进行数据并行训练的扩展性

3.3 硬件及优化技术对训练性能的影响 

研究也通过 DeepSpeed 来评估不同内存和计算效率高的方法对训练性能的影响,结果如下表所示。

ac67991fe66ef9a6d68dbe563562c7e9.jpeg

▲ 在四种类型的8-GPU平台上,我们比较了基线设置(Naive)、ZeRO-2(Z2)和3(Z3)、卸载(O)、量化(Q)、激活值重计算(R)以及FlashAttention(F)在预训练性能上的表现。我们报告的吞吐量单位为10^3 tokens/s (T/s),每个吞吐量值的右下角显示了三次独立运行的平均值和标准差,以及峰值GPU内存使用量(M)以GB为单位。在每次运行中,吞吐量在30步预热步骤后的100步中取平均。"-" 表示内存溢出(OOM)。

3.3.1 硬件对预训练的影响 

在考虑硬件影响时,A800 的吞吐量通常是 RTX4090 和 RTX3090 的 50 倍。但在使用量化技术时,RTX GPU 的性能可达到 A800 的一半。在 RTX4090 和 RTX3090 的比较中,RTX4090 性能比 RTX3090 高出 50%,而 RTX3090 上的 NVLink 能提升约 10% 的性能。 

3.3.2 解析子模块 

为了深入理解预训练性能,该研究对预训练过程进行了模块化分析。有趣的发现是,约 37% 的时间被用于优化器。后续将计划进一步探讨这一现象,特别是重计算的影响。 

该研究也对前向和后向阶段进行了时间分析。在 Llama2 模型中,decoder layer 占据了大部分计算时间。特别是,依赖于通用矩阵乘法(GEMM)的多层感知器(MLP)和查询、键、值(QKV)投影是最耗时的部分。此外,RMSNorm 和 RoPE 模块也因大量元素级操作而占用了相当时间。在后向阶段,由于梯度在 GPU 间同步,会产生额外的通信开销。

03723735ae428360f8948649d4d0ca11.jpeg

▲ Llama2-7B在前向和后向阶段的模块时间消耗和百分比。解码器层中模块的时间消耗是32次迭代的累积时间。

3.3.3 FlashAttention的影响 

下表显示,FlashAttention 可以分别提高 34.9% 和 24.7% 的注意力模块速度。

6ad5a02b65f4bb01a47476131f6ef195.jpeg

0c80860ff662e96c8f4b89f73e5bd973.jpeg

微调

在微调方面,该研究专注于对比 LoRA 和 QLoRA 在不同模型大小和硬件设置下的性能,发现 LoRA 的吞吐量是 QLoRA 的两倍,但 QLoRA 的内存消耗仅为 LoRA 的一半。结合 FlashAttention 和 ZeRO-2 使用时,LoRA 微调吞吐量提升 20% 和 10%。微调 Llama2-13B 模型比 Llama2-7B 模型吞吐量下降约 30%。使用所有优化技术,甚至 RTX4090 和 RTX3090 也能微调 Llama2-70B 模型,总吞吐量约为每秒 200 个 tokens。

838f8d83b708d2fec1fafad7e70b85f3.jpeg

▲ 在4种类型的8-GPU服务器上,包括A800、RTX4090、RTX3090 w/ NVLink和RTX3090 w/o NVLink,我们比较了LoRA (L)、QLoRA (QL)以及不同优化方法的微调性能,包括ZeRO stage 2和3 (Z2, Z3)、FlashAttention (F)、卸载 (O)、激活重计算 (R)。批处理大小固定为1。我们报告了三次独立运行中的平均吞吐量10^3 tokens/s (T/s)及其标准差,以及峰值GPU内存使用量 (M)(以GB为单位)。

66ad850597af8b2816928d09536fbc31.jpeg

推理

5.1 端到端推理性能分析 

5.1.1 吞吐量分析 

在比较不同硬件平台和推理框架的吞吐量时,发现 TGI 在 24GB GPU 上效果好,而 LightLLM 则在高性能 GPU(如 A800/A100 系列)上表现最佳。

58d579bba8b3480fbe5ab4af0040350c.jpeg

5.1.2 延迟比较

在比较同一 GPU 平台上不同推理框架的延迟时,发现 RTX3090 和 A800 上 TGI 有最低延迟,其次是 LightLLM,vLLM 延迟最高。另外,消费级 GPU 上推理时间随模型参数增长而增加,尤其在 RTX4090上,Llama2-7B 与 Llama2-70B 推理时间差可达 13 倍。而在 A800 上,大模型推理时间差较小,显示 A800 能有效处理大型 LLMs,70B 模型未达其性能极限。

158193fe2f639dca5a98153923fa34a0.jpeg

▲ Llama2-7B在RTX3090和A800

faddce375ab1fca3ad8c83d0e084e3c0.jpeg

▲ RTX4090上7B vs 70B

5.1.3 推理总结 

在吞吐量和延迟方面,A800 平台优于 RTX3090 和 RTX4090。RTX3090 相对于 RTX4090 有轻微优势。三个推理框架在吞吐量上表现类似,但 TGI 框架在延迟上更好。在 A800 上,LightLLM 吞吐量最高,延迟与 TGI 接近。 

5.2 微基准测试 

5.2.1 通信分析 

该研究也测试了 NVLink 的高速通信能力。测试显示,装备 NVLink 的 RTX3090 在 AllGather 和 ReduceScatter 通信操作中性能优于未装备 NVLink 的同型号。

3d215a91236b1a73290f1b4bf0d9127a.jpeg

在数据并行中,后向阶段使用 AllReduce 同步权重,而 ZeRO-2 和 ZeRO-3 分别使用 Reduce 和 ReduceScatter 原语。结果表明,NVLink 对通信效率有显著提升。

24463c0e870dad3dc354ae2199a2afbb.jpeg

实验结果显示,ReduceScatter 内核在处理小数据量时启动时间占主导,而大数据量时性能依赖于带宽。ZeRO-2 和 ZeRO-3 使用 AllGather 更新参数,其内核性能也类似。

dc6f2e3c3fd43b750200513de5307a2f.jpeg

15fa35e4de0b1bf88e7385be1969c8db.jpeg

结论

该研究在 A800-80G、RTX4090 和 RTX3090 的 8 卡 GPU 硬件平台上对 LLMs 的预训练、微调和部署性能进行了基准测试,分析了影响总运行时间的关键模块和操作。这为用户选择硬件、软件和优化技术配置提供了重要信息,有助于 LLMs 的预训练、微调和部署,同时也为系统性能改进提供了优化机会(更详细内容欢迎大家阅读原文)。

在中国做开源社区是件非常充满挑战的事,也是一项需要长期坚持和投入的工作,希望大家多多支持,多点包容和多点耐心!欢迎扫码添加 wisemodel 运营,加入始智 AI-wisemodel 社区用户群,添加请注明“姓名-单位-职位”信息。

a0857105ed631fa8c818e33ea7382f85.jpeg

更多阅读

57cd54c3d8272bbc64598620f83ea73e.jpeg

8c9b55c121d465fbd5de62bc4c59edcd.jpeg

52eda81d87f2a87a0899bf17cd8d1c30.jpeg

063289d6ba8228974214729f2a41c772.jpeg

#投 稿 通 道#

 让你的文字被更多人看到 

如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。

总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。 

PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学术热点剖析科研心得竞赛经验讲解等。我们的目的只有一个,让知识真正流动起来。

📝 稿件基本要求:

• 文章确系个人原创作品,未曾在公开渠道发表,如为其他平台已发表或待发表的文章,请明确标注 

• 稿件建议以 markdown 格式撰写,文中配图以附件形式发送,要求图片清晰,无版权问题

• PaperWeekly 尊重原作者署名权,并将为每篇被采纳的原创首发稿件,提供业内具有竞争力稿酬,具体依据文章阅读量和文章质量阶梯制结算

📬 投稿通道:

• 投稿邮箱:hr@paperweekly.site 

• 来稿请备注即时联系方式(微信),以便我们在稿件选用的第一时间联系作者

• 您也可以直接添加小编微信(pwbot02)快速投稿,备注:姓名-投稿

aa97260356c3907172896b3dcd43861d.jpeg

△长按添加PaperWeekly小编

🔍

现在,在「知乎」也能找到我们了

进入知乎首页搜索「PaperWeekly」

点击「关注」订阅我们的专栏吧

·

·

df60199ac65c822edd3f806aa89684c2.jpeg

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐