性能和可扩展性
训练大型Transformer模型并将其部署到生产环境中面临各种挑战。
在训练过程中,模型可能需要比可用GPU内存更多的内存,或者表现出训练速度缓慢。在部署阶段,模型可能难以在生产环境中处理所需的吞吐量。
本文档旨在帮助您克服这些挑战,并为您的使用场景找到最佳设置。 指南分为训练和推理部分,因为每个部分都伴随着不同的挑战和解决方案。 在每个部分中,您将找到针对不同硬件配置的单独指南,例如单GPU与多GPU 用于训练或CPU与GPU用于推理。
将此文档作为您的起点,进一步导航到与您的场景匹配的方法。
训练
高效训练大型Transformer模型需要像GPU或TPU这样的加速器。最常见的情况是您只有一个GPU。您可以应用的方法来提高单个GPU上的训练效率,这些方法也适用于其他设置,如多个GPU。然而,也有一些技术是专门针对多GPU或CPU训练的。我们将在单独的章节中介绍它们。
- 单GPU高效训练的方法和工具:从这里开始,了解常见的方法,这些方法可以帮助优化GPU内存利用率,加快训练速度,或两者兼而有之。
- Multi-GPU training section: 探索本节以了解适用于多GPU设置的进一步优化方法,例如数据、张量和管道并行。
- CPU training section: 了解在CPU上进行混合精度训练。
- Efficient Training on Multiple CPUs: 了解分布式CPU训练。
- 在TPU上使用TensorFlow进行训练:如果您是TPU的新手,请参考本节,了解关于在TPU上训练和使用XLA的有见地的介绍。
- Custom hardware for training: 在构建自己的深度学习设备时找到提示和技巧。
- 使用Trainer API进行超参数搜索
推理
在生产环境中使用大型模型进行高效推理可能与训练它们一样具有挑战性。在接下来的章节中,我们将介绍如何在CPU和单/多GPU设置上运行推理的步骤。
训练和推理
在这里,您将找到适用于训练模型或使用模型进行推理的技术、提示和技巧。
贡献
本文档远未完成,还需要添加很多内容,因此如果您有补充或更正,请毫不犹豫地提交PR,或者如果您不确定,可以发起一个Issue,我们可以在那里讨论细节。
当贡献A比B更好的内容时,请尽量包含一个可复现的基准测试和/或信息来源的链接(除非信息直接来自您)。
< > Update on GitHub