新智元报道
编辑:LRS
最近谷歌的PaLM语言模型横空出世,接连打破多项自然语言处理任务的sota,这个拥有5400亿参数的Transformer语言模型再次证明了「大力出奇迹」。
论文地址:https://storage.googleapis.com/pathways-language-model/PaLM-paper.pdf
除了用到强大的Pathways系统外,论文中介绍PaLM的训练用到了6144个TPU v4,使用了7800亿token的高质量数据集,并且其中有一定比例的非英文多语种语料。
一个字,就是「贵」
如果真的想复现一遍训练过程的话,到底需要花多少钱?
有研究人员最近估算了一下成本,一个简短的答案是:大概需要900万-1700万美元。
如果其他模型用作对比的话:BERT 训练成本 1.2 万美元、GPT-2 训练成本 4.3 万美元、XLNet 训练成本 6.1 万美元,110 亿参数的谷歌T5模型单次训练成本预估130万美元。
需要注意的是,训练成本并非一成不变,硬件改进、更先进的参数优化措施都可以降低训练成本。不过,即使训练成本大幅降低,但收集、清洗如此大规模的数据,也远远不是「穷博士」和「小公司」能够负担得起的。
训练成本的摩尔定律
训练机器学习模型的计算量一直在不断飙升,需要采购的计算资源也大幅提升。
计算、数据和算法的进步是指导现代机器学习取得进展的三个基本因素,其中计算是最容易量化的,所以计算训练成本通常就是看模型训练所需的计算量。
有研究人员曾做过调研,在2010年之前,训练里程碑式的机器学习模型大体符合「摩尔定律」,大约20个月计算量翻一番。
但2010年初深度学习出现以后,训练所需的计算量大幅提升,大约6个月就要翻一番。
到了2015年末,一个新的趋势是预训练大模型,由公司主导开发的大规模机器学习模型,对训练计算的要求提高了10-100倍。
这三个时间段也被划分为前深度学习时代、深度学习时代和大规模时代。
论文地址:https://arxiv.org/pdf/2202.05924.pdf
回到PaLM模型,可以看到5400亿的参数量,让PaLM攀到了计算山峰之巅。
根据论文中提供的训练计算数据,可以看到PaLM最终训练所需的计算数为2.56e24个FLOPs
如果以1750亿参数的GPT-3所需的计算FLOPs作为基本单位,那PaLM所需成本就是GPT-3的十倍。
论文中还提到,PaLM在6144个TPU v4芯片上训练了1200小时,在3072个TPU v4芯片上训练了336小时,其中包括一些停机时间和重复步骤。
每个TPU v4有两个核心,所以总共需要16809984个TPU v4核心小时数,也就是1917.7年。
此外,论文的附录B中提到了TPU的利用率问题。540B的模型训练使用了rematerialization技术,在相同batch size情况下取得更高的吞吐量。如果不考虑rematerialization成本,在没有自注意力情况下,FLOPs的利用率为45.7%,而PaLM分析计算硬件FLOPs用上rematerialization的利用率为57.8%
所以现在有两种方式来估算训练成本:
1. 以2.56×10²⁴ FLOPs来计算训练成本,我们可以估算出租用TPU实例的每FLOP成本,也可以通过提取其他云供应商(例如使用NVIDIA A100的云供应商)的每FLOP成本来估计成本。
2. 按照使用8404992 个TPU 小时数来计算,然后查询TPU芯片的每小时租金。
不过目前TPUv4还没有公开的价格,所以只能用方法一来计算。
租用32个核心的TPUv3的话是每小时32美元,所以一个TPU核心小时就是1美元。
如果按照16889984 TPUv4个核心时间来算,那成本大约是1700万美元,对于这种大客户,谷歌可以给你1年37%的折扣。
不过实际上肯定会比1700万美元还贵,因为TPUv3的性能肯定比不上TPUv4,所以需要更多的TPU核心时间。
但话说回来,科技的进步就是更少的钱买更多的服务,所以TPUv4的定价应当也是每核心1美元,所以1700万算是一个相对准确的估算数字。
按照FLOPs来计算的话,可以看到TPUv3芯片能够为bfloat16提供大约123TFLOPS的性能,不过这是峰值性能,实际情况要取决于利用率,PaLM的FLOPs利用率达到了57.8%,已经算是破纪录了。
假设PaLM在TPUv3上训练时硬件利用率达到50%的话,那1美元我们可以买到221 PFLOPs,再结合所需的算力,最终花费为1160万美元。
如果用显卡训练得花多少钱?
LambdaLabs两年前给GPT-3算了一下,如果租用英伟达V100显卡云服务的话,最低需要花费460万美元。
而PaLM的训练计算量是GPT-3的十倍,那最终的计算成本则需要4600万美元。
时至今日,英伟达A100的Tensor性能又相较A100提升了10倍,如果按照利用率50%来计算,那最终需要920万美元,算下来比TPU还便宜。
虽然三种方法算下来,得出了三个训练成本,分别为 1700 万美元、1160 万美元和 920 万美元。
但实际上谷歌并不需要花那么多钱,因为他们不用租硬件,而成本的计算都是假设用户租用TPU向Google Cloud支付的钱。
并且这只是一次训练的成本,不包括其他工作的开销,比如工程、研究、测试等。
参考资料:
https://blog.heim.xyz/palm-training-cost/