激活分载 - Amazon SageMaker
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

激活分载

当启用激活检查点和管道并行性且微批次数大于 1 时,激活分载是可以进一步减少内存使用的额外功能。激活卸载异步移动与当前未在 CPU 中运行的微批对应的检查点激活。就在 GPU 需要激活来实现微批次的向后传递之前,此功能会预先从 CPU 中取回卸载的激活。

如何使用激活卸载

在下列时,使用激活卸载以减少内存使用微批次数大于 1,并启用激活检查点(请参阅激活检查点)。如果不使用激活检查点,激活卸载将不起作用。当它只与一个微批处理一起使用时,它不会节省内存。

要使用激活卸载,请设置"offload_activations": True中的modelparallel配置。

激活卸载将检查点激活移动到nn.Sequential模块异步到 CPU。通过 PCIe 链路传输的数据与 GPU 计算重叠。一旦计算特定检查点图层的前向通道,卸载立即发生。在特定微批次的向后传递需要激活之前不久将激活加载回 GPU。CPU-GPU 传输与计算类似重叠。

要调整激活加载回 GPU 的早期,可以使用配置参数"activation_loading_horizon"(默认设置为 4,必须是int大于 0)。更大的激活加载水平将导致激活更早地加载回 GPU。如果地平线太大,激活卸载对内存节省的影响可能会降低。如果地平线太小,激活可能无法及时加载,从而减少重叠量并降低性能。

提示

激活卸载对于具有超过 1000 亿个参数的大型模型非常有用。

配置 SageMaker PyTorch 估算器

mpi_options = { "enabled" : True, "processes_per_host" : 8, # 8 processes "custom_mpi_options" : "--mca btl_vader_single_copy_mechanism none " } smp_options = { "enabled":True, "parameters": { "microbatches": 4, "pipeline_parallel_degree": 2, # alias for "partitions" "placement_strategy": "cluster", "tensor_parallel_degree": 2, # tp over 2 devices "ddp": True, "offload_activations": True, "activation_loading_horizon": 4 # optional. default is 4. } }