今天看啥  ›  专栏  ›  阿里云开发者

一文揭秘|预训练一个72b模型需要多久?

阿里云开发者  · 公众号  · 科技公司  · 2024-08-14 08:30

主要观点总结

本文介绍了评估和量化训练大规模语言模型(尤其是Qwen2-72B模型)所需的时间、资源和计算能力。通过提供详细的数据和公式,展示了预训练Qwen2-72B模型在不同条件下的计算量需求,并讨论了模型架构、参数、序列长度和批处理大小等因素对计算量的影响。此外,文章还探讨了反向传播过程与正向传播的算力需求关系,并基于提供的公式和假设的算力利用率,估算了完成模型训练所需的资源和时间。

关键观点总结

关键观点1: 预训练Qwen2-72B模型所需的时间和资源

预训练一个Qwen2-72B模型,给定7T tokens数据集,6000张A100,一个完整epoch需要最多30天。计算量需求公式为3*T(2.6e6*s + 2P),其中T为数据集token数量,P为模型参数量,s表示序列长度。在序列长度较短时退化为6TP。若使用了全部重计算技术,则系数由3变成4。大模型计算量只和“矩阵乘法”有关。且反向传播过程是正向的2倍。不同优化器影响不大。

关键观点2: 模型架构和参数对计算量的影响

模型架构、参数、序列长度和批处理大小等因素对计算量有重要影响。例如,attention对seq长度的平方复杂度,拉到32768长度对总算力需求增加0.6倍。batch size对计算量没有影响,在超过某个阈值后对训练时间没有影响。

关键观点3: 反向传播过程与正向传播的算力需求关系

反向传播的算力需求一般是前向传播的2倍。这是因为反向传播过程中,正向的矩阵乘法需要2次反向过程的矩阵计算,从而增加了计算量。

关键观点4: 完成模型训练所需的资源和时间估算

基于提供的公式和假设的算力利用率,估算了完成模型训练所需的资源和时间。例如,使用6k张卡,大约需要30天能完成一轮完整训练。


文章预览

阿里妹导读 本文讲述评估和量化训练大规模语言模型,尤其是Qwen2-72B模型,所需的时间、资源和计算能力。 update:qwen2公布了技术报告[1]。和本文里依赖的基础信息的基本没差。但训练数据集变成7t了。笔者已经在文章中修正。另外训练语料的长度也是在最后阶段才从4096拓展到32768。所以本文预估的算力需求会有一定程度高估,但不到一倍。 背景 让我们想象一个场景,假如说某一天,上面哪个大老板突然拉着你进一个会议,会上一群人问你:假如给你一个千卡集群,让你训一个qwen/百灵/凤凰/chatglm/chatgpt出来,能不能搞?有什么困难?需要多久? 此时肯定是结论先行:能训。此时此刻,非我莫属。 但第二个问题怎么回答呢?需要一堆数据,需要多少T,需要多少人力?需要一个工程组来搞定千卡架构的问题,需要一些算法hc,招人嘛。 那就剩下第 ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照
总结与预览地址:访问总结与预览