Amazon SageMaker 训练编译器 - Amazon SageMaker

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

Amazon SageMaker 训练编译器

重要

Amazon Web Services (AWS) 宣布, SageMaker 训练编译器将没有新版本或新版本。你可以继续通过现有的 Dee AWS p Learning Containers (DLCs) 使用 SageMaker SageMaker 训练编译器进行训练。值得注意的是,根据AWS 深度学习容器(Deep Learning Containers Framework Support)政策 AWS,虽然现有内容DLCs仍然可以访问,但它们将不再收到来自的补丁或更新。

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

什么是 SageMaker 训练编译器?

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

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

SageMaker 训练编译器如何使用的概念图 SageMaker。

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

工作方式

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

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

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

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

    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 编译器