

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# Amazon SageMaker 训练编译器
<a name="training-compiler"></a>

**重要**  
Amazon Web Services (Amazon) 宣布， SageMaker 训练编译器将没有新版本或新版本。你可以继续通过现有的 Dee Amazon p Learning Containers (DLCs) 使用 SageMaker SageMaker 训练编译器进行训练。值得注意的是，根据[Amazon 深度学习容器（Deep Learning Containers Framework Support）政策 Amazon](https://docs.amazonaws.cn/deep-learning-containers/latest/devguide/support-policy.html)，虽然现有内容 DLCs 仍然可以访问，但它们将不再收到来自的补丁或更新。

使用 Amazon Training Compiler 在由 A SageMaker I 管理的可扩展 GPU 实例上更快地 SageMaker 训练深度学习 (DL) 模型。

## 什么是 SageMaker 训练编译器？
<a name="training-compiler-what-is"></a>

State-of-the-art 深度学习 (DL) 模型由复杂的多层神经网络组成，具有数十亿个参数，可能需要数千个 GPU 小时才能训练。在训练基础设施上优化此类模型需要一系列广泛的深度学习和系统工程知识；即使对于有限的使用案例来说，这也是具有挑战性的。尽管编译器的开源实施可以优化深度学习训练过程，但它们可能在将深度学习框架与某些硬件（例如 GPU 实例）集成方面缺少灵活性。

SageMaker Training Compiler 是 SageMaker AI 的一项功能，它可以进行这些 hard-to-implement优化以缩短 GPU 实例上的训练时间。编译器通过使用 SageMaker AI 机器学习 (ML) GPU 实例来优化 DL 模型，从而更有效地加速训练。 SageMaker Training Compiler 在 SageMaker AI 中无需额外付费，它可以加快训练速度，从而帮助缩短总计费时间。

![SageMaker 训练编译器如何与 SageMaker AI 配合使用的概念图。](http://docs.amazonaws.cn/sagemaker/latest/dg/images/training-compiler-marketing-diagram.png)


SageMaker 训练编译器已集成到 Dee Amazon p Learning Containers (DLCs) 中。使用启用的 SageMaker 训练编译器 Amazon DLCs，您可以在 GPU 实例上编译和优化 GPU 实例上的训练作业，而只需对代码进行最少的更改。将您的深度学习模型引入 SageMaker AI，让 Tra SageMaker ining Compiler 能够在 SageMaker AI ML 实例上加快训练作业的速度，从而加快计算速度。

## 工作方式
<a name="training-compiler-how-it-works"></a>

SageMaker Training Compiler 将 DL 模型从其高级语言表示形式转换为硬件优化的指令。具体而言，T SageMaker raining Compiler 会应用图形级优化、数据流级优化和后端优化，生成高效使用硬件资源的优化模型。因此，您可以比在不编译的情况下训练模型时更快地训练模型。

为你的 SageMaker 训练作业激活 Training Compiler 的过程分为两步：

1. 带上你自己的 DL 脚本，如果需要，可以调整为使用 Training Compiler 进行编译和 SageMaker 训练。要了解更多信息，请参阅[自带深度学习模型](training-compiler-modify-scripts.md)。

1. 使用 Pyth SageMaker on SDK 创建带有编译器配置参数的 SageMaker AI 估算器对象。

   1. 通过添加`compiler_config=TrainingCompilerConfig()`到 SageMaker AI 估算器类来开启 SageMaker 训练编译器。

   1. 调整超参数（`batch_size`和`learning_rate`），以最大限度地发挥 Training Compil SageMaker er 提供的优势。

      通过 SageMaker 训练编译器进行编译会更改模型的内存占用。最常见的是，这表现为内存利用率的降低，以及随之而来的 GPU 可容纳的最大批处理大小的增加。在某些情况下，编译器会智能地推进缓存，从而减小 GPU 上可容纳的最大批处理大小。请注意，如果要更改批处理大小，则必须适当地调整学习率。

      有关针对常用模型测试的 `batch_size` 的参考，请参阅[经过测试的模型](training-compiler-support.md#training-compiler-tested-models)。

      在调整批处理大小时，还必须适当地调整 `learning_rate`。有关调整学习率和批处理大小变化的最佳实践，请参阅[SageMaker 训练编译器最佳实践和注意事项](training-compiler-tips-pitfalls.md)。

   1. 通过运行`estimator.fit()`类方法， SageMaker AI 会编译您的模型并启动训练作业。

   有关如何启动训练作业的说明，请参阅[启用 SageMaker 训练编译器](training-compiler-enable.md)。

SageMaker Training Compiler 不会改变最终经过训练的模型，同时允许您更有效地使用 GPU 内存并在每次迭代时拟合更大的批量大小，从而加快训练作业。来自编译器加速的训练作业的最终训练模型与来自普通训练作业的最终训练模型相同。

**提示**  
SageMaker Training Compiler 仅编译 DL 模型，以便在 SageMaker AI 管理的[支持的 GPU 实例](https://docs.amazonaws.cn/sagemaker/latest/dg/training-compiler-support.html#training-compiler-supported-instance-types)上进行训练。要编译模型以进行推理并将其部署到云端和边缘的任何位置运行，请使用 [SageMaker Neo 编译器](https://docs.amazonaws.cn/sagemaker/latest/dg/neo.html)。

**Topics**
+ [什么是 SageMaker 训练编译器？](#training-compiler-what-is)
+ [工作方式](#training-compiler-how-it-works)
+ [支持的框架 Amazon Web Services 区域、实例类型和经过测试的模型](training-compiler-support.md)
+ [自带深度学习模型](training-compiler-modify-scripts.md)
+ [启用 SageMaker 训练编译器](training-compiler-enable.md)
+ [SageMaker 训练编译器示例笔记本和博客](training-compiler-examples-and-blogs.md)
+ [SageMaker 训练编译器最佳实践和注意事项](training-compiler-tips-pitfalls.md)
+ [SageMaker 训练编译器常见问题](training-compiler-faq.md)
+ [SageMaker 训练编译器故障排除](training-compiler-troubleshooting.md)
+ [Amazon SageMaker 训练编译器发行说明](training-compiler-release-notes.md)