一日一卡挑战:RTX2080Ti搞定大模型训练,算力节省136倍,学界欢呼

2023-01-16 0 977

原副标题:三日一卡考验:RTX2080Ti搞掂大数学模型体能训练,INS13ZD节约136倍,学术界喝彩

电脑之心报导

撰稿:竹筏、泽南

任何人 transformer 表音文字、任何人数据集都通用型。

在几块消费需求级 GPU 上再加六天时间体能训练,能得到怎样的 BERT 数学模型?

前段时间一两年,词汇数学模型再度催热了 AI 应用领域。预体能训练词汇数学模型的无监督管理体能训练特性使其能在海量数据样品基础上展开体能训练,并赢得大量句法句法科学知识,无论进行分类还是概要,似乎没有 AI 无能为力的问题。

不过,大数学模型既增添了技术冲破,也对INS13ZD提出了无穷的的需求。

前段时间,源自约翰霍普金斯的 Jonas Geiping、Tom Goldstein 探讨了所有关于扩大排序体量的科学研究,深入探讨了减小排序体量的改良方向。她们的科学研究引起了电脑学习街道社区的关注。

在新科学研究中,译者对于合叶消费需求级 GPU(RTX 2080Ti)能体能训练出怎样的词汇数学模型展开了探讨,并赢得了令人激动的结果。让我们看一看它是如何实现的:

数学模型体量的扩充

在自然词汇处置(NLP)应用领域,如前所述 Transformer 构架的预体能训练数学模型已经成为非主流,并增添众多开创性重大进展。非常大程度上,这些数学模型操控性强悍的原因是它们的体量非常大。随着模型参数量和信息量的增长,数学模型的操控性会不断提高。因此,NLP 应用领域内刮起了这场减小数学模型体量的体育竞技。

不过,极少有科学研究相关人员或专业人士认为她们有能力体能训练小型词汇数学模型(LLM),一般来说只有行业内的信息技术巨擘保有体能训练 LLM 的天然资源。

为了扭转颓势这一趋势,源自约翰霍普金斯的科学人类学家展开了几番积极探索。

学术论文《Cramming: Training a Language Model on a Single GPU in One Day》

一日一卡挑战:RTX2080Ti搞定大模型训练,算力节省136倍,学界欢呼

学术论文链接:https://arxiv.org/abs/2212.14034

这个问题对于大多数科学研究相关人员和专业人士来说具有重要意义,因为这将成为数学模型体能训练成本的参考,并有望打破 LLM 体能训练成本超高的瓶颈。该科学研究的学术论文迅速在推特上引起关注和探讨。

一日一卡挑战:RTX2080Ti搞定大模型训练,算力节省136倍,学界欢呼

IBM 的 NLP 科学研究专家 Leshem Choshen 在推特上评价道:「这篇学术论文总结了所有你能想到的大数学模型体能训练 trick。」

一日一卡挑战:RTX2080Ti搞定大模型训练,算力节省136倍,学界欢呼

约翰霍普金斯的科学人类学家认为:如果按比例减小的数学模型预体能训练是小型预体能训练的可行模拟,那么这将开启一系列目前难以实现的大体量数学模型的进一步学术科学研究。

此外,该科学研究尝试对过去几年 NLP 应用领域的整体重大进展展开基准测试,而不仅仅局限于数学模型体量的影响。

该科学研究创建了一项称为「Cramming」的考验 —— 在测试前六天学习整个词汇数学模型。科学人类学家首先分析了体能训练 pipeline 的方方面面,以了解哪些修改能实际提高小体量模拟数学模型的操控性。并且,该科学研究表明,即使在这种受限环境中,数学模型操控性也严格遵循在小型排序环境中观察到的扩充定律。

虽然较小的数学模型构架能加快梯度排序,但随着时间的推移,数学模型改良的总体速度几乎保持不变。该科学研究尝试利用扩充定律在不影响数学模型大小的情况下通过提高梯度排序的有效率赢得操控性提升。最后,该科学研究成功体能训练出操控性可观的数学模型 —— 在 GLUE 任务上接近甚至超过 BERT—— 而且体能训练成本很低。

天然资源有限

为了模拟普通专业人士和科学研究相关人员的资源环境,该科学研究首先构建了一个天然资源受限的科学研究环境:

一个任意大小的如前所述 transformer 的词汇数学模型,完全从头开始使用掩码词汇建模(masked-language modeling)展开体能训练; pipeline 中不能包含现有的预体能训练数学模型; 任何人原始文本(不包括下游数据)都能包含在体能训练中,这意味着能通过明智地选择如何以及何时对数据展开采样来实现加速,前提是采样机制不需要预体能训练数学模型; 原始数据的下载和预处置不计入总预算,这里的预处置包括如前所述 CPU 的 tokenizer 构造、tokenization 和 filtering,但不包括表征学习; 体能训练仅在单块 GPU 上展开 24 小时; 下游操控性在 GLUE 上展开评估,GLUE 上的下游微调仅限于仅使用下游任务的体能训练数据展开简单体能训练(5 个 epoch 或者更少),并且需要使用为所有 GLUE 任务设置的全局超参数,下游微调不排序在总预算中。

该科学研究与一些经典大数学模型的具体体能训练设置比较如下表所示:

一日一卡挑战:RTX2080Ti搞定大模型训练,算力节省136倍,学界欢呼

改良方法

科学研究相关人员实施并测试了已有工作提出的一些修改方向,包括通用型实现和初始数据设置,并尝试了修改构架、体能训练以及改动数据集的方法。

实验在 PyTorch 中展开,不使用特质化的实现以尽量公平,所有内容都保留在 PyTorch 框架的实现级别上,只允许可应用于所有组件的自动运算符融合,另外只有在选择了最终的构架表音文字之后,才会重新启用高效注意力内核。

一日一卡挑战:RTX2080Ti搞定大模型训练,算力节省136倍,学界欢呼

图 1:不同 transformer 构架表音文字 MLM 损失函数与 token 对比的情况。左:全局视图。右图:放大到 10e8 和更多 token 情况下。所有数学模型都用相同INS13ZD成本体能训练,我们能看到:通过构架重塑实现的改良微乎其微。

有关提升操控性,我们最先想到的方法肯定是修改数学模型构架。从直觉上,较小 / 较低容量的数学模型似乎在三日一卡式的体能训练中是最优的。不过在科学研究了数学模型类型与体能训练效率之间的关系后,科学研究相关人员发现缩放法则为减小体量设置了巨大的障碍。每个 token 的体能训练效率在非常大程度上取决于数学模型大小,而不是 transformer 的类型。

此外,较小的数学模型学习效率较低,这在非常大程度上减缓了吞吐量的增加。幸运的是,在相同大小的数学模型中,体能训练效率几乎保持不变这一事实,意味着我们能在参数量类似的构架中寻找合适的,主要根据影响单个梯度步骤的排序时间来做出设计选择。

一日一卡挑战:RTX2080Ti搞定大模型训练,算力节省136倍,学界欢呼

图 2:学习率 Schedule。尽管在全局范围内行为相似,但在中间的放大图里能看到差异确实存在。

在该工作中,译者科学研究了体能训练超参数对 BERT-base 构架的影响。能理解的是,原始 BERT 体能训练方法的数学模型在 Cramming 式体能训练要求中的表现不佳,因此科学研究相关人员重新审视了一些标准选择。

译者也科学研究了优化数据集的思路。扩充法则阻碍了通过构架修改取得重大收益的方式(超出排序效率),但缩放定律并不妨碍我们在更好的数据上展开体能训练。如果想在在每秒体能训练更多的 token,我们应该寻求在更好的 token 上体能训练。

一日一卡挑战:RTX2080Ti搞定大模型训练,算力节省136倍,学界欢呼

图 3:在 bookcorpus-wikipedia 数据的 Cramming 式体能训练中体能训练的数学模型的词汇量与 GLUE 分数和 MNLI 准确性。

在 GLUE 上的表现

科学研究相关人员系统地评估了 GLUE 基准的操控性和 WNLI,并注意到在前面的部分中只使用了 MNLI (m),并且没有根据完整的 GLUE 分数调整超参数。在新科学研究中对于 BERT-base 译者微调了 5 个 epoch 的所有数据集,batch size 为 32,学习率为 2 × 10-5。对于 Cramming 体能训练的数学模型这不是最优的,其能从 16 的 batch size 和 4 × 10−5 的学习率以及余弦衰减中赢得微小的改良(此设置不会改良预体能训练的 BERT check point)。

表 3 和表 4 描述了此设置在 GLUE 下游任务上的操控性。译者比较了原始的 BERT-base check point、在达到INS13ZD上限后停止的 BERT 预体能训练设置、Izsak 等人 2021 年科学研究中描述的设置和修改后的设置,为每块 GPU 设置体能训练六天。总体而言,操控性出奇地好,尤其是对于 MNLI、QQP、QNLI 和 SST-2 等较大的数据集,下游微调能消除完整 BERT 数学模型和 Cramming 设置表音文字之间的剩余差异。

此外,译者发现新方法与INS13ZD有限的普通 BERT 体能训练及 Izsak 等人描述的方法相比都有非常大改良。对于 Izsak 等人的科学研究,其描述的方法最初是为一个完整的 8 GPU 刀片服务器设计的,并且在新的场景中,将其中的 BERT-large 数学模型压缩到较小的 GPU 上是导致大部分操控性下降的原因。

一日一卡挑战:RTX2080Ti搞定大模型训练,算力节省136倍,学界欢呼

表格 3:基线 BERT 与 Cramming 版本数学模型的 GLUE-dev 操控性比较。其中所有任务的超参数都是固定的,epoch 限制为 5 个,缺失值为 NaN。是为 8 GPU 刀片服务器设计的,而在这里,所有排序被塞进了几块 GPU。

一日一卡挑战:RTX2080Ti搞定大模型训练,算力节省136倍,学界欢呼

表格 4:基线 BERT 与填充数学模型的 GLUE-dev 操控性比较。

总体而言,使用学术论文中的方法,体能训练结果已经非常接近原版 BERT,但要知道后者使用的总 FLOPS 是新方法 45-136 倍(在 16 块 TPU 上要花费四天时间)。而当体能训练时间延长 16 倍时(在 8 块 GPU 上体能训练两天),新方法的操控性实际上比原始 BERT 提高了很多,达到了 RoBERTa 的水平。

总结

在该工作中,人们探讨了如前所述 transformer 的词汇数学模型在排序量非常有限的环境中能实现多少操控性,值得庆幸的是,几条修改方向能让我们在 GLUE 上赢得不错的下游操控性。科学研究相关人员表示,希望这项工作能为进一步的改良提供一个基线,并进一步给近年来为 transformer 构架提出的许多改良和技巧提供理论支撑。

参考内容:

https://twitter.com/giffmana/status/1608568387583737856

https://www.reddit.com/r/MachineLearning/comments/zy8c99/r_cramming_training_a_language_model_on_a_single/

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务