Transformer模型的基础演算

Transformer模型的基础演算_第1张图片


作者 | Quentin Anthony、Stella Biderman、Hailey Schoelkopf

OneFlow编译

翻译 | 贾川、徐佳渝、杨婷

1

引言

Transformer语言模型的许多基本重要信息可以通过简单计算得出。不幸的是,这些计算公式在自然语言处理(NLP)社区中并不广为人知。AI非营利研究组织EleutherAI收集整理这些公式,并介绍这些公式的来源和重要性。

注:本文主要关注显存(VRAM)主导的训练成本。有关推理成本和时延方面的类似讨论,请参见此前发布的《大型语言模型的推理演算》

(本文经授权后由OneFlow编译发布,译文转载请联系OneFlow获得授权。原文:https://blog.eleuther.ai/transformer-math/)

2

计算需求

Transformer模型的训练成本可通过以下基本公式计算得出:

其中:

  •  C表示训练Transformer模型所需的计算量,以总浮点运算数为单位。

  •   表示硬件设置的总吞吐量(  =(No.GPUs)x(Actual FLOPs/GPU)),以FLOPs为单位。

  •  T表示训练模型所需的时间,以秒为单位。

  •  P表示Transformer模型中的参数数量。

  •  D表示数据集大小,以token为单位。

 

这些公式由OpenAI的论文《Scaling Laws for Neural Language Models》(https://arxiv.org/abs/2001.08361)和DeepMind的论文《Training Compute-Optimal Large Language Models》(https://arxiv.org/abs/2203.15556)提出并经实验证实。

值得一提的是C的单位问题。C是对总计算量的度量,可以用多种单位来表示。例如:

  • FLOP-seconds,单位为  

  • GPU-hours,单位为[No.GPUs] x [Hours]

  • 扩展定律(Scaling laws)论文通常使用PetaFLOP-days,或者  总浮点运算数来报告值(values)。

Actual FLOPs是一个值得注意的有用概念。GPU加速器白皮书通常会宣传它们的理论FLOPs,但在实际情况下这些值往往无法实现(特别是在分布式设置下)。下面的“计算成本”部分指出了在分布式训练设置中Actual FLOPs的常见报告值。

备注:我们使用了吞吐量-时间版本(throughput-time version)的成本公式,这个公式已在一篇关于LLM训练成本的文章中(https://medium.com/@dzmitrybahdanau/the-flops-calculus-of-language-model-training-3b19c1f025e4)使用。

参数与数据集权衡(Tradeoffs)

严格来说,你可

你可能感兴趣的:(业界观点,transformer,深度学习,自然语言处理,ChatGPT,大型语言模型)