Amazon SageMaker 训练编译器 - Amazon SageMaker
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

Amazon SageMaker 训练编译器

重要

Amazon Web Services (Amazon) 宣布, SageMaker 训练编译器将没有新版本或新版本。你可以继续通过现有的 Dee Amazon p Lear SageMaker ning Containers (DLC) 使用 Training Compiler 进行 SageMaker 训练。值得注意的是,尽管现有的 DLC 仍然可以访问,但根据Amazon 深度学习容器框架支持政策 Amazon,它们将不再收到来自的补丁或更新。

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

什么是 SageMaker 训练编译器?

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

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

SageMaker 训练编译器已集成到 Dee Amazon p Learning Containers (DLC) 中。使用支持 SageMaker 训练编译器的 Amazon DLC,您可以在 GPU 实例上编译和优化 GPU 实例上的训练作业,而只需对代码进行最少的更改。将您的深度学习模型引入 SageMaker 并启用 T SageMaker raining Compiler 来加快 SageMaker 机器学习实例上的训练作业的速度,从而加快计算速度。

工作方式

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

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

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

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

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

    2. 调整超参数(batch_sizelearning_rate),以最大限度地发挥 Training Compil SageMaker er 提供的优势。

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

      有关针对常用模型测试的 batch_size 的参考,请参阅经过测试的模型

      在调整批处理大小时,还必须适当地调整 learning_rate。有关调整学习率和批处理大小变化的最佳实践,请参阅SageMaker 训练编译器最佳实践和注意事项

    3. 通过运行estimator.fit()类方法, SageMaker编译模型并启动训练作业。

    有关如何启动训练作业的说明,请参阅启用 SageMaker 训练编译器

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

提示

SageMaker Training Compiler 仅编译 DL 模型,以便在由 SageMaker管理的支持的 GPU 实例上进行训练。要编译模型以进行推理并将其部署到云端和边缘的任何位置运行,请使用 SageMaker Neo 编译器