Google谷歌T5预训练模型单次运行成本超130万美元?算力和金钱才是王道


选自arXiv
作者:Or Sharir、Barak Peleg、Yoav Shoham
机器之心编译
参与:杜伟、小舟
近年来 , 在自然语言处理领域 , 各种各样、各种规模的语言模型层出不穷 , 为该领域的进步提供了充足的动力 。 但欣喜之余 , 训练成本过于高昂的问题也随之出现 。 比如 , BERT 训练成本 1.2 万美元、GPT-2 训练成本 4.3 万美元、XLNet 训练成本 6.1 万美元 , 等等 。 这就使得个人研究者和一些刚起步的初创公司难以负担 。 因此 , 在训练模型时了解成本的多少就变得很重要了 , 本文会为你提供一份参考性指南 。
【Google谷歌T5预训练模型单次运行成本超130万美元?算力和金钱才是王道】在本研究中 , 来自以色列人工智能研究公司 AI21 Labs 的研究者回顾了训练大型语言模型的成本 , 以及这些成本都用在了哪些方面 。 如果你是正在为自己的模型训练实验做预算的工程师和科学家 , 亦或是想要了解现代自然语言处理(NLP)成本的非从业人员 , 这篇文章都值得一读 。
论文链接:https://arxiv.org/pdf/2004.08900.pdf
硬件改进可以降低 FLOPs 成本 , 但总成本却一直上升
首先需要指出的是 , 基本的神经网络(NN)运算 , 即浮点运算(FLOPs)的成本一直都在下降 。 举例而言 , 谷歌关于 ResNet-50 训练成本比较的研究表明 , ResNet-50 的训练成本下降了 38% 。 这得益于硬件(从 GPU 转向了 TPU)以及框架级的优化 , 充分利用了并行性的优势 。
Google谷歌T5预训练模型单次运行成本超130万美元?算力和金钱才是王道
本文插图
谷歌关于 ResNet-50 训练成本比较的研究显示 , 8 块 V100 GPU 训练 90 epoch 需要 216 分钟 , 成本是 75 美元以上;而 1 块 full Cloud TPU v2 Pod 训练 90 epoch 只需要 7.9 分钟 , 成本是 50 美元 。 由此得出 , 使用 TPU 训练时成本下降了 38% , 训练速度快了 27 倍 。
ResNet-50 训练成本的下降并不是孤立的事件 , 大型模型的训练成本也正随着硬件的创新和训练方法的改进而出现相应的下降 。 尽管如此 , 总成本却一直在增加 , 甚至需要投入数百万资金 。 所以 , 研究者接下来解释了为什么会出现这种情况以及哪些因素在 NLP 模型训练成本中起决定作用 。
如果有人问训练一个模型的成本究竟是多少?那么正确答案一般有两种:视情况而定(depends)或非常多(a lot) 。 下面从更定量化的角度展示在维基百科和图书语料库(15GB)上训练不同大小 BERT 模型的大约成本 。
对于不同参数的 BERT 模型 , 研究者给出了两种训练配置下的训练成本:单次训练的成本;超参调优和每个设置下多次运行包含在内的典型全负荷训练成本(这里展示两种训练配置的适度成本上限以及每种配置运行 10 次的成本):
0.25 万美元-5 万美元(1.1 亿参数的模型);
1 万美元-20 万美元(2.4 亿参数的模型);
8 万美元-160 万美元(15 亿参数的模型) 。
这些数字能让我们更清醒地看到训练大型模型的成本 , 并可以根据这些数字对其他训练成本做出合理的猜测 。 例如 , 根据谷歌发布的信息 , 研究者估计在训练 110 亿参数的 T5(谷歌 2019 年推出的预训练模型)变体时 , 单次运行成本就远远超出了 130 万美元 。 因此 , 假设 T5 大模型和数百个小模型运行 2-3 次 , 则整个项目的成本可能就达到了 1000 万美元 。
很多公司 , 当然也包括很多初创公司的确无力承担这些巨额费用 。 有些人则认为费用不是大问题 , 就让谷歌这样的巨擘公司预训练和发布大型语言模型 , 其他公司针对特定任务进行微调就可以了 。 不过也有人对此并不乐观 。
钱花在什么地方:Size 决定一切
并没有一个固定的公式告诉我们一个给定的 NLP 设置需要多少 FLOPs 才能实现目标性能 。 但是 , 一些变量会对数量造成影响 , 并且过去几年这些变量急剧增加 , 远远超出了以前所认为的「大规模」(massive)vision-focused 机器学习模型 。