性能和可扩展性
训练大型 Transformer 模型并将其部署到生产环境中会带来各种挑战。
在训练过程中,模型可能需要比可用内存更多的 GPU 内存,或者训练速度缓慢。在部署阶段,模型可能难以在生产环境中处理所需的吞吐量。
本文档旨在帮助您克服这些挑战,并找到适合您用例的最佳设置。指南分为训练和推理部分,因为每个部分都面临不同的挑战和解决方案。在每个部分中,您会找到针对不同硬件配置的单独指南,例如训练时的单 GPU 与多 GPU,或推理时的 CPU 与 GPU。
使用本文档作为起点,进一步导航到与您的场景匹配的方法。
训练
高效地训练大型 Transformer 模型需要使用加速器,例如 GPU 或 TPU。最常见的情况是您拥有单个 GPU。您可以应用于提高单个 GPU 上训练效率的方法可以扩展到其他设置,例如多个 GPU。但是,也有一些技术是特定于多 GPU 或 CPU 训练的。我们将在单独的部分中介绍它们。
- 在单个 GPU 上进行高效训练的方法和工具:从这里开始学习可以帮助优化 GPU 内存利用率、加快训练速度或同时实现两者的方法。
- 多GPU训练部分: 探索本部分以了解适用于多GPU设置的进一步优化方法,例如数据、张量和流水线并行。
- CPU训练部分: 了解在CPU上进行混合精度训练。
- 在多个CPU上高效训练: 了解分布式CPU训练。
- 使用TensorFlow在TPU上训练: 如果你不熟悉TPU,请参考本节了解在TPU上训练和使用XLA的入门指南。
- 用于训练的自定义硬件: 在构建自己的深度学习平台时,查找提示和技巧。
- 使用Trainer API进行超参数搜索
推理
在生产环境中使用大型模型进行高效推理可能与训练它们一样具有挑战性。在以下部分中,我们将逐步介绍在CPU和单/多GPU设置上运行推理的步骤。
训练和推理
在这里,您将找到适用于您训练模型或使用模型进行推理的技术、提示和技巧。
贡献
本文档远未完成,还需要添加更多内容,因此,如果您有任何补充或更正,请随时打开PR,或者如果您不确定,请先发起Issue,我们可以在那里讨论详细信息。
在做出A优于B的贡献时,请尝试包含可重复的基准测试和/或指向该信息来源的链接(除非该信息直接来自您)。
< > 更新 在GitHub上