稚久|GPT迭代成本「近乎荒谬」,300行代码带你玩转迷你版( 二 )


稚久|GPT迭代成本「近乎荒谬」,300行代码带你玩转迷你版GPT3的工程师们用非常小的模型做了大量的测试 , 找到了相关的缩放曲线来决定如何分配计算/数据/模型大小 , 以便在给定的预算下获得最佳性能 , 他们检查了以前在transformer上的超参数设置和架构选择, 发现 GPT 对前者相对不敏感 , 应该扩大数据范围 , 以饱和 GPU 的吞吐量 。
模型性能依赖于规模 , 它由三个因素组成:模型参数N的数量(不包括嵌入) , 数据集D的大小以及训练所用计算资源C 。
结果显示 , 在合理的范围内 , 性能模型的体系结构参数依赖较小 , 例如模型的深度与宽度 。
只要同时扩大N和D的规模 , 性能就会显著地提高 , 但是如果N或D保持不变而另一个因素在变 , 则进入性能收益递减的状态 。 性能损失大致取决于N^0.74 / D的比率 , 这意味着每次我们将模型大小增加8倍时 , 我们只需将数据增加大约5倍即可避免损失 。
稚久|GPT迭代成本「近乎荒谬」,300行代码带你玩转迷你版当固定计算资源C , 但对模型大小N或可用数据D没有任何其他限制时 , 可以通过训练非常大的模型并及时停止来获得最佳性能 。
因此 , 最大程度地提高计算效率将比基于训练小型模型进行收敛所期望的收益高得多 , 训练数据的需求量和计算资源遵循D?C^0.27 , 可以看到数据需求增长十分缓慢 。
如果有更多的计算资源可用 , 可以选择分配更多资源来训练更大的模型 , 使用更大的批次以及训练更多的步数 。
比如将来算力增长了十亿倍 , 为了获得最佳的结果 , 大部分精力应该用于增加模型大小 。 数据的增加可以通过增加批处理量来提高并行度 , 只需要很少的时间 。

  • The End
我们没有过多讨论超参数的具体调整方法 , 在计算资源有限的情况下 , 确实需要一些技巧 , 来提升计算效率 , 或者说模型的性能 , 当未来算力足够时 , 我们就不会这么依赖超参数了 。
对神经网络的探索方法 , 也应该有新的思路 。
「如果你真的在做研究 , 那么通常情况下 , 你研究的问题越小越简单 , 研究贡献越大」 。
任何人都可以通过使问题更难 , 神经网络更大来显示改进 , 但是如果你可以用一个新的小而简单的设计来产生更好的性能 , 那么就会进一步提高理解能力 。
【稚久|GPT迭代成本「近乎荒谬」,300行代码带你玩转迷你版】如果你能在一个简单的toy case上演示一些神经网络的bug或者其他有趣的特性 , 就会更加理解它是如何发生的 , 何时发生的 , 以及为什么会发生 。


推荐阅读