GPT-3没有亲自上手,不如展望一下GPT-4?

103次阅读

2020-08-07 01:33:02

GPT- 3 没有亲自上手,不如展望一下 GPT-4?

作者 | 青暮、陈大鑫

编辑 | 丛末

近日 ,GPT- 3 在国内外引起了火爆的关注 , 各路大神都对它玩起了图灵测试 , 不知道小伙伴们有没有亲手实践一波 , 但是据说 GPT- 3 的 API 申请列表早已满了 , 需要做维护才能后期开放。

那不如我们直接瞻仰一下 GPT- 4 吧。

啊这 ? 难道 GPT- 4 已经诞生了 ?

并没有 , 但是我们今天来讨论一下实现 GPT- 4 所需要的大概 20 万亿参数量的可行性。

reddit 近日有一个议题引起了热烈讨论 , 楼主 u /AxeLond 称自己发现一篇论文 (ZeRO) 能基本解释从 GPT- 2 到 GPT- 3 的增益 , 即从 15 亿参数增加到 1,750 亿参数 , 是如何实现的。 语言模型的性能与参数量、数据集规模和训练吞吐量存在简单的幂律关系。 他甚至据此推出了下一代 GPT 即 GPT- 4 的参数量、训练数据量和训练费用 , 规模惊人 , 称得上是“国家级”语言模型 , 即便是巨头科技企业都很可能负担不起 GPT- 4 的训练。

GPT- 3 没有亲自上手,不如展望一下 GPT-4?

ZeRO 论文地址 :https://arxiv.org/abs/1910.02054

现有的训练大型深度学习模型的方法 , 例如数据和模型并行 , 已经显示出基本的局限性 , 即无法将模型拟合到有限的内存中 , 同时兼具计算、通信和开发效率。

在论文中 , 研究人员开发了一种新颖的解决方案 ZeRO 以优化内存 , 在大大提高训练速度的同时 , 增加模型参数。

GPT- 3 没有亲自上手,不如展望一下 GPT-4?

图 : 使用 ZeRO-100B 的 600 亿参数模型的超线性可扩展性和训练吞吐量。

ZeRO 消除了数据和模型并行训练中的内存冗余 , 同时保持了低通信量和高计算粒度 , 从而能够按设备数量成比例地缩放模型参数。

研究人员通过分析内存需求和通讯量 , 表明 ZeRO 可以使用现有的硬件扩展到超过 1 万亿个参数。

1 内存优化

基本的数据并行化不会减少每个设备的内存 , 如果要训练超过 14 亿参数的模型 ,32GB 内存 (GPU) 是不足的。

论文还讨论了如何对优化器状态、梯度进行巧妙分区 , 来减少 GPU 节点之间通信的需求 , 从而实现内存优化。但是即便不使用模型并行 , 也要在 1 个 GPU 上运行 1 个模型副本。

ZeRO-100B 可以在 128 个 GPU 上训练多达 130 亿参数的模型 , 而无需模型并行 , 平均每个 GPU 的吞吐量超过 40 TFlops。

相比之下 , 如果没有 ZeRO, 则最大的仅数据并行的可训练模型就只有 14 亿参数 , 每个 GPU 的吞吐量小于 20 TFlops。

在英伟达 V100 和 128 个节点的 DGX- 2 集群中添加 16 路模型并行处理 , 可以训练大约 2,000 亿个参数。

从 16 路模型并行开始 , 可以运行 15.4 倍的大型模型 , 而不会真正造成性能损失 , 而在运行 16 路模型并行和 64 路数据并行 (1024 个 GPU) 时 , 性能仅比峰值性能低 30%。

GPT- 3 没有亲自上手,不如展望一下 GPT-4?

图 : 比较模型状态的每设备内存消耗 , 以及三个阶段的 ZeRO-DP 优化。Ψ 表示模型大小 ( 参数数量 ),K 表示优化器状态的内存乘数 ,N_d 表示 DP 度。在本例中 , 我们假设模型尺寸 ψ =7.5B,DP 为 N_d=64,K=12, 基于 Adam 优化器的混合精度训练。

以上增益全部源自对梯度和优化器状态进行分区。研究人员讨论了参数分区 , 并说明它可以线性地减少内存 ( 与 GPU 数量成比例 )。

因此 64 个 GPU 可以运行 64 倍大的模型 , 并且仅需要 50% 的通信带宽。不过有待商榷的是 , 研究人员实际上并没有对此进行任何实现。

2 幂律关系

网友 u /AxeLond 表示 , 根据 GPT- 3 引用 OpenAI 自家论文《Scaling Laws for Neural Language Models》的方法 , 我们能得出一个经验规律 , 即语言模型的性能与参数量、数据集规模和训练吞吐量存在简单的幂律关系。

GPT- 3 没有亲自上手,不如展望一下 GPT-4?

图 : 随着我们增加模型大小、数据集大小和用于训练的计算吞吐量 , 语言建模性能会平稳提高。为了获得最佳性能 , 必须同时放大所有三个因素。当没有其他两个瓶颈时 , 经验性能与每个因素都有幂律关系。

损失 (L) 和模型参数数量 (N) 存在以下关系 :

GPT- 3 没有亲自上手,不如展望一下 GPT-4?

将模型参数转换为吞吐量 (C, 单位 petaFLOP/s-days), 我们得到 :

GPT- 3 没有亲自上手,不如展望一下 GPT-4?GPT- 3 没有亲自上手,不如展望一下 GPT-4?

GPT- 3 能很好地拟合这个等式 :

GPT- 3 没有亲自上手,不如展望一下 GPT-4?

C 和 N 之间的关系如下 :

GPT- 3 没有亲自上手,不如展望一下 GPT-4?

如果我们把 GPT- 2 至 GPT- 3 的参数扩大规模同等应用到 GPT- 3 至 GPT- 4 上面 , 那么可以计算得到 :C≈3.43×10^7, 则 N≈20 万亿。

也就是说 GPT- 4 将有 20 万亿个参数 , 因为 GPT- 3 已经有 1,750 亿个参数 (C≈18,300)。

GPT- 3 训练了 3000 亿 token, 但是 GPT- 4 的训练需要大约 16 万亿 token。据统计 , 英语维基百科有 30 亿 token, 网络抓取 570 GB 的数据有 4000 亿 token, 因此要得到 16 万亿 token, 大概需要 23 TB 的数据 , 相当于 Facebook 每天要处理的数据量 , 也就是说 ,GPT- 4 的训练将需要巨头科技企业倾尽全力。

由于 GPT- 3 的计算成本约为 460 万美元 , 则同等硬件环境下训练 GPT- 4 的计算成本估计为 86 亿美元。

如果从内存的角度来看 , 使用参数分区训练更大的模型是如此容易 , 但是需要解决内存问题才能真正使它完全加载。

与 V100 相比 ,A100 的计算量可增加 3 - 6 倍 , 但即便如此 , 成本也要高达 14 亿美元。

英伟达在 2020 年第一季度报告的“数据中心”收入是 11.5 亿美元 , 所以仅仅为了训练“GPT-4”, 几乎需要全球 1 个季度 (3 个月 ) 的显卡供应 , 或者说至少得这个数量级。

3 GPT- 4 不值得 ?

这篇文章在 reddit 引起了热烈讨论。

网友 tornado28 认为 , 用如此巨额资金用于训练一个语言模型是不值得的 :“如果我们有 86 亿美元用于建立一个语言模型 , 我建议投入 50 亿美元作为研究经费 , 并可以用剩下的 36 亿美元和 3 万篇关于语言建模的新研究论文来训练一个相当好的模型。”

但是 , 这 3 万篇论文又会有多少是真正的算法突破呢 ?Science 曾经在 5 月刊文提到 : 一些多年前的老算法经过微调 , 性能足以匹敌当前的 SOTA, 机器学习领域调参和炼金研究模式仍然盛行 , 算法的泛化能力有限。一句话总结就是 : 有调查有真相 ! 某些 AI 领域多年无实际进展。

网友 bohreffect 认为 ,GPT- 4 的存在不切实际 , 并且没有必要 :“先别说内存需求 , 世界上真的存在 16 万亿 token 的文本数据吗 ? 在某种意义上 , 这个假想的 GPT- 4 的 VC 维度似乎会超过英语本身的复杂性 , 因此会产生过拟合。”

如果 GPT- 4 没有足够的训练数据 , 那就只需要记忆数据就行 , 这样的话它的存在并没有意义。

网友 RusticScentedMale 认为 , 问题不在于算法而在于计算 :“GPT- 3 的成就不是通过发表更多的研究论文而是通过加大训练费用获得的 , 所以把钱继续花在研究经费上或许不是最好的选择 , 除非是关于如何更有效地构建并行计算芯片的研究。”

网友 SrslyPaladin 评估了所谓“16 万亿 token”是什么概念 ,GPT- 4 可能是文本生成模型的极限 :“16 万亿 token 大概是所有已印刷书籍的大小 :1.5 亿本书 x 每本书 200 页 x 每页 300token= 9 万亿 token, 但是你提出了一个很好的观点 , 假想的 GPT- 4 可能代表了文本输入的有用性极限。”

如果 GPT- 4 真的能学习全世界的文本数据 , 可能到时候就没有什么文本任务能难倒它 , 从而它能超仿真的通过图灵测试。

网友 thunder_jaxx 提到了谷歌的一项新研究 , 谷歌提出了 Gshard 模型 , 这个模型有 6000 亿参数 , 论文中的一张图能明显看出 BLUE 分数的提升与参数量增加的关系。

GPT- 3 没有亲自上手,不如展望一下 GPT-4?

Gshard 论文链接 :https://arxiv.org/abs/2006.16668

网友 thunder_jaxx 表示 , 我们也应该看看 MIT 这篇关于深度学习的计算极限的文章 , 第 12 页的图很有洞察力。“仅仅扩大计算规模并不是唯一的出路。GPT- 3 可以做很多有用的任务 , 但是要完全解决语言的细微差别 , 需要的不仅仅是计算 , 因为有太多模型“记忆”( 过拟合 ) 的例子了。我们需要一些全新的东西 , 就像原始的 transformer 一样。transformer 为序列建模问题创建了一个范式转换。我们需要这样的东西来解决通用智能问题。”

ZeRO 这篇论文再次揭示了深度学习模型性能和算力之间的强依赖关系 , 如何突破这个困境 , 以及如何在算法研究上取得真正的突破 , 仍然值得深思。

论文第 12 页的图 :

GPT- 3 没有亲自上手,不如展望一下 GPT-4?

图 : 深度学习应用程序的性能改善与训练该模型的计算负载有关 ( 以千兆浮点运算为单位 )。

参考资料 :

https://www.reddit.com/r/MachineLearning/comments/i49jf8/d_biggest_roadblock_in_making_gpt4_a_20_trillion/

原文链接:https://blog.csdn.net/weixin_42137700/article/details/107933021

正文完
 
不知道
版权声明:本站原创文章,由 不知道 2023-07-27发表,共计3541字。
转载说明:声明:本站内容均来自互联网,归原创作者所有,如有侵权必删除。 本站文章皆由CC-4.0协议发布,如无来源则为原创,转载请注明出处。