38

XLNet训练成本6万美元,顶5个BERT,大模型「身价」惊人

 4 years ago
source link: https://www.tuicool.com/articles/VJjAnyI
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

数据、算法和计算力是推动人工智能发展的三大要素。随着高性能 GPU、TPU 的出现,人们似乎正在将算力的利用推向极致。

去年 10 月,「最强 NLP 预训练模型」Bert 问世,横扫 11 项 NLP 任务记录。但仅仅过了 8 个月,这一「最强」模型就遭到 XLNet 的碾压,后者在 20 项任务上超越前者,又一次刷新 NLP 预训练模型的各项记录。

但除了「最强」之外,这些模型似乎也是「最贵」的。

早在 Bert 问世之时,深度好奇 CTO 吕正东就曾表示:「BERT 是一个 google 风格的暴力模型,暴力模型的好处是验证概念上简单模型的有效性,从而粉碎大家对于奇技淫巧的迷恋; 但暴力模型通常出现的一个坏处是'there is no new physics',我相信不少人对 BERT 都有那种『我也曾经多多少少想过类似的事情』的感觉,虽然也仅仅是想过而已。」

无一例外,碾压 Bert 的 XLNet 也没有走出「暴力美学」的范畴,普通研究者看了其训练成本之后,只能说声「打扰了……」

那么,令普通研究者望而却步的计算力到底有多贵?机器之心从原论文出发统计了大模型的训练成本,下面让我们仔细算一算这笔账。

1.语言模型

  • BERT:1.2 万美元

  • GPT-2:4.3 万美元

  • XLNet:6.1 万美元

2. 高分辨率 GAN

  • BigGAN:2.5 万美元

  • StyleGAN:0.3 万美元

这几种都是比较有代表性的大模型,如果读者也算过大模型训练成本,欢迎留言对比呀。

计算力到底有多贵?

目前训练神经网络主要还是使用 GPU 或 TPU,先不说英伟达的各种高端 GPU 有多贵,云计算上的高性能计算也不便宜。我们以谷歌云为例,Tesla V100 每小时 2.48 美元、Tesla P100 每小时 1.46 美元,谷歌 Colab 免费提供的 Tesla T4 GPU 每小时也要 0.95 美元。

对于大模型来说,最合理的计算资源还是 TPU,因为它能大大降低训练时间,且成本换算下来还比较有优势。TPU 的费用如下图所示:

QNFBJ3m.png!web

注意这里还有一些换算关系,TPU 数量并不能简单地通过一块两块的方式统计。从大到小可以分为 Pod、Cloud TPU device、TPU Chips 和 Cores。上面的价格是一个 Cloud TPU device 的费用,它包含 4 块 TPU Chip,且每块 TPU Chip 有两个核心(Core)。

TPU v2 和 TPU v3 的计数方式差异主要体现在 Pod 上,一个 Cloud TPU v2 Pod 有 64 个 Cloud TPU,即 512 个 TPU 核心。而一个 Cloud TPU v3 Pod 有 256 个 Cloud TPU,即 2048 个 TPU 核心。一个 Pod 中的所有 TPU 设备都是连在一起的,所以它们天然可以联合做模型训练或推断。

因为论文中描述的 TPU 单位是不同的,我们会最终转化为 Cloud TPU,并统计训练大模型所花费的成本。

qiqIzqe.jpg!web一个完整的 Cloud TPU v3 Pod。

为什么说 TPU 性价比高于 GPU

很多读者知道 TPU 性价比高,但不太了解到底高多少。在下图中我们可以看到各种设备训练相同 ResNet-50 所需要的时间,其中红色数字表示芯片数量。

6fiqmuN.jpg!web

如上图所示,一个 Cloud TPU v3 训练 ResNet 需要 183 分钟,它的价格为 8$/h;8 块 Tesla V100 训练 ResNet 需要 137 分钟,它的价格为 19.84$/h。这样算起来,TPU v3 总共费用需要 24.4 美元,Tesla V100 需要 45.57 美元。不过这样计算也有一丢丢不公平,因为 TPU v3 慢了 47 分钟,时间也是一种成本。

大模型到底有多贵?

自然语言到视觉,大模型的训练费用越来越高,但具体高到什么程度很少有量化对比。如下在计算不同模型的单次训练费用时,因为调参之类的费用没办法统计,所以我们就忽略了。此外,因为GPT-2原论文中没有描述训练配置,论文作者只在 Reddit 中简要描述一段,所以我们以 Reddit 中的数据为准。

BERT

原论文中描述,大型 BERT 模型在 16 个 Cloud TPU 上需要训练 4 天:

Training of BERT_BASE was performed on 4 Cloud TPUs in Pod configuration (16 TPU chips total).13 Training of BERT_LARGE was performed on 16 Cloud TPUs (64 TPU chips total). Each pretraining took 4 days to complete.

现在我们来算一下成本,16 个 Cloud TPU v3 总训练成本为 16×8×24×4=12288 美元。有研究者在 Reddit 中回复作者,他们可以使用更便宜的抢占式(Preemptible)TPU 训练模型,那样成本约为 16×2.4×24×4=3686.4 美元。不过一般的 TPU 优先于抢占式 TPU,如果它们需要计算资源,可以暂停抢占式对资源的调用。

BERT 的作者在 Reddit 上也表示预训练的计算量非常大,Jacob 说:「OpenAI的 Transformer 有 12 层、768 个隐藏单元,他们使用 8 块 P100 在 8 亿词量的数据集上训练 40 个 Epoch 需要一个月,而 BERT-Large 模型有 24 层、2014 个隐藏单元,它们在有 33 亿词量的数据集上需要训练 40 个 Epoch,因此在 8 块 P100 上可能需要 1 年?16 个 Cloud TPU 已经是非常大的计算力了。」

为了做对比,这里统一用一般的 TPU 价格计算成本,因此 BERT 训练一次大概需要 1.23 万美元。

GPT-2

今年另一个非常受关注的语言模型就是GPT-2了,它充分展示了什么才算大模型。我们可以理解为,GPT-2就是在 GPT 的基础上放大十多倍,它需要的算力应该比 BERT 还大。堆了这么多算力与数据,GPT-2的效果确实惊人,它根据一个前提就能从容地把故事编下去。

但是在GPT-2原论文中,我们没找到关于算力的描述,只找到了疑似论文作者的描述。他表明GPT-2用了 64 个 Cloud TPU v3,训练了一周多一点。

QzEFFva.jpg!web

如果按这个数据,那么训练成本为 32×8×24×7=43008 美元,这个成本已经是训练 BERT 的 3 到 4 倍了。

XLNet 

2018 年,谷歌发布大规模预训练语言模型BERT ,为 NLP 领域带来了极大的惊喜。但最近,Quoc V. Le 等研究者提出的 XLNet 在 20 个任务上超过了 BERT 的表现,并在 18 个任务上取得了当前最佳效果。既然效果这么好,那么它的成本会不会也超过 BERT?

在原论文中,作者表示 XLNet 大模型在 128 个 Cloud TPU v3 下需要训练 2 天半:

We train XLNet-Large on 512 TPU v3 chips for 500K steps with an Adam optimizer, linear learning rate decay and a batch size of 2048, which takes about 2.5 days. 

这样算起来,128×8×24×2.5=61440 美元,没想到 XLNet 训练一次的费用比GPT-2还高,达到了 BERT 的 5 倍。既然成本这么高,以后可以考虑用预训练的 XLNet 代替 BERT 了。

在看了 XLNet 的算力成本之后,有开发者感叹:「谢天谢地我不在 NLP 领域工作,要是让我去说服老板训练一个模型花 6 万多美元,而且还不能保证这个模型一定好用,我觉得我会哭……」

那么问题来了,NLP 算力烧钱,视觉模型就省钱吗?

我们拿视觉领域比较有代表性的大模型 BigGAN 和 StyleGAN 来算一笔账。

BigGAN 

视觉模型中,常见高成本任务就是训练高分辨率的 GAN 了。在去年 BigGAN 中,研究者表示他们训练 512×512 像素的图像需要 64 个 Cloud TPU v3,训练 24 到 48 个小时:

We train on a Google TPU v3 Pod, with the number of cores proportional to the resolution: 128 for 128×128, 256 for 256×256, and 512 for 512×512. Training takes between 24 and 48 hours for most models.

如果我们用最大训练时间 48 小时为基准,那么训练成本为 64×8×48=24576 美元。是的,BigGAN 的训练成本也比 BERT 高,大约是它的两倍左右。

StyleGAN

最后,我们统计一下 StyleGAN 的训练成本,因为这篇论文是英伟达提出来的,所以用的是 Tesla V100。该论文使用的 FFHQ 数据集由 1024×1024 的人脸图像组成,模型使用 8 张 Tesla V100 需要训练一星期:

Our training time is approximately one week on an NVIDIA DGX-1 with 8 Tesla V100 GPUs.

这里我们按照谷歌云的价格计算总成本,从而更好地做对比。总体而言,训练成本为 8×2.48×24×7=3333.12 美元。可能因为数据集仅限于人脸,StyleGAN 的成本要比 BigGAN 低很多。

没有谷歌级别的算力,要怎么取得研究突破?

在算完算力这笔账之后,我们可以得出一个结论:以谷歌、Facebook 等巨头为首的大型公司似乎才玩得起这种大模型,这种算力上的碾压是普通研究者无法抗衡的。那么,无法获得这种大规模算力支持的普通研究者路在何方?他们要怎样才能取得研究突破?

在这一问题上,致力于 AI 和游戏研究的纽约大学副教授 Julian Togelius 给出的答案是:不走寻常路(By being weird)。

J3aIZr6.jpg!web

他解释说,「那些公司虽然规模庞大,但它们也痴迷于保持自己的灵活性。其中一些公司在一定程度上取得了成功,但它们不敢像一个疯疯癫癫的教授一样特立独行。一个只有几个学生和几台电脑的教授永远无法在直接竞争中抗衡DeepMind和 FAIR。但我们可以去尝试那些看起来完全讲不通的方法,或者去破解那些没有人想要去尝试解决的问题(因为那些问题看起来不像问题)。」

Julian Togelius 教授还以自己为例,证明了这种做法的有效性。他表示,自己在研究生涯中做的那些有用、有价值的事情往往都是去解决一些别人没有想到要去解决的问题,或者尝试一些原本看起来行不通的方法,最后的结果都出乎自己的预料。

对于 Togelius 教授的观点,有人表示支持,并指出很多创业公司就是靠「不走寻常路」才建立了竞争优势。

但也有人提出了质疑,认为 Julian Togelius 教授提出的观点可能存在很大的「幸存者偏差」。这位质疑者认为,我们不应该不顾别人阻拦就一头扎进某个问题。他认为,我们正在推行一种文化,即鼓励人们去做自己认为对的事情,哪怕所有人都告诉他不要去做。虽然有时候一意孤行会取得成果,但鼓励大家都这么做并不合适,因为只有一小部分人最后会取得成功。ta 还引用了 Yoshua Bengio 在采访时说过的一句话:「光有自信还不够,你可能会因为自信而犯错。」

当然,对于 Togelius 教授的建议,我们要理性看待。无论该建议是否可行,他都为我们做了一个很好的榜样,说明算力不等于一切。

正如有些 reddit 评论者所指出的,那些获得最佳论文奖项的研究多数是用中小级别计算机就能完成的,不需要谷歌级别的算力。因此,普通研究者要取得突破,算力可能从来都不是真正的限制。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK