Azure Managed Lustre与Azure Blob 存储相结合,提供专为大规模 AI 训练工作负载设计的分层检查点体系结构。 此方案使用 Azure Managed Lustre 作为靠近 GPU 计算资源的高带宽、符合 POSIX 标准的加速层,并使用 Azure Blob 存储 作为持久可靠、经济高效的核心存储层,用于长期保存检查点。
本文介绍何时使用分层检查点、体系结构的工作原理以及预期的性能。
何时使用此方案
当工作负荷满足以下一个或多个条件时,请考虑使用Azure Managed Lustre分层检查点:
- 训练大型基础模型(例如,数十亿至数千亿个参数中的 LLM)以生成大型频繁的检查点。
- 你需要尽量减少检查点写入时间,以减少训练期间的 GPU 空闲周期。
- 需要持久、长期保留检查点,以便恢复或试验可重现性。
- 你希望通过分离加速器层和核心存储层,将检查点写入性能与对象存储分离。
- 在 GPU 群集(例如,需要共享 POSIX 文件系统的 Azure ND 系列虚拟机)上运行分布式训练。
Architecture
分层检查点体系结构使用Azure Managed Lustre的分层存储管理(HSM)功能来创建两层设计:
- 加速器层 - Azure Managed Lustre:直接装载在 GPU 计算节点上的高性能、符合 POSIX 的并行文件系统。 检查点以文件系统的完整预配置带宽写入(例如,在容量为 128 TiB 的 AMLFS 500 层上,带宽为 64 GB/s)。
- 核心存储层 - Azure Blob 存储:用于检查点存档和长期保留的持久、可缩放和成本优化的对象存储。
训练检查点通过原生 Lustre 客户端从 GPU 节点写入到 Azure Managed Lustre。 然后,使用 Azure Managed Lustre Blob 集成自动导出功能将已完成的检查点异步复制到Azure Blob 存储。
┌─────────────────────────────────────────────────────────────────────────┐
│ Training Compute Cluster │
└─────────────────────────────┬───────────────────────────────────────────┘
│ Write checkpoints at full AMLFS bandwidth
▼
┌─────────────────────────────────────────────────────────────────────────┐
│ Azure Managed Lustre (AMLFS) │
│ │
│ /lustrefs/checkpoints/modelA/ │
│ ├── global_epoch1_step1/ │
│ ├── global_epoch1_step2/ │
│ └── global_epoch1_stepN/ │
└─────────────────────────────┬───────────────────────────────────────────┘
│ Asynchronous HSM archive (auto-export)
▼
┌─────────────────────────────────────────────────────────────────────────┐
│ Azure Blob Storage │
│ │
│ - Recovery │
│ - Long-term retention │
│ - Cost-optimized archive │
└─────────────────────────────────────────────────────────────────────────┘
数据流的工作原理
- 检查点写入 - AI 训练框架直接通过 POSIX 接口将检查点写入Azure Managed Lustre。 写入使用文件系统的完整预配带宽,最大限度地减少 GPU 停止时间。
- 本地持久性 - Azure Managed Lustre提供本地冗余存储(LRS)复原能力。 检查点一旦提交到文件系统,便会独立于 GPU 计算节点的生命周期而持续存在。
- 异步存档 - AMLFS Blob 集成自动导出功能持续自动传输已完成的检查点到Azure Blob 存储,而无需用户干预。 存档与训练循环分离,因此不会影响 GPU 的写入吞吐量。
- 恢复 - 可按需通过导入作业将已存档的检查点重新导入到 Azure Managed Lustre。
注释
可以随时从Azure门户或Azure CLI在Azure Managed Lustre文件系统上启用自动导出。 有关详细信息,请参阅 使用自动导出作业导出数据。
管理文件系统容量
使用 基于保留的删除 来管理加速器层的容量。 实现自定义删除策略,根据年龄、步骤数或模型纪元从Azure Managed Lustre中删除过时的检查点。
Important
在当前的 Azure Managed Lustre Blob 集成中,在 AMLFS 端执行的删除、重命名和移动操作不会同步到 Azure Blob 存储 帐户。 据此规划保留和命名策略。 此行为可能会在将来的版本中发生更改,并将记录为重大更改。
从检查点重启
将最新的检查点数据和元数据保留在Azure Managed Lustre。 此配置提供最快的重启路径,并减少大型 AI 训练作业的恢复时间。
如果您从 Azure Managed Lustre 中删除了检查点文件,请使用导入作业(通过 Azure 门户或 Azure CLI)将 Azure Blob 存储 中已存档的检查点重新恢复到文件系统中。 有关详细信息,请参阅 使用手动导入作业导入数据。
检查点写入性能
从 GPU 节点向 Azure Managed Lustre 执行的检查点写入操作可达到该文件系统的全部预配带宽。 例如,在容量为 128 TiB 的 AMLFS 500 层上,文件系统提供大约 64 GB/秒的写入吞吐量。 因此,一个约 912 GiB 的检查点(相当于 LLAMA 3 70B 的一次训练步骤)可在约 15 秒内写入加速器层。 此性能可最大程度地减少训练期间的 GPU 停止时间,并将检查点提交延迟从较慢的异步存档分离到Azure Blob 存储。
默认情况下,Azure Managed Lustre和Azure Blob 存储之间的数据移动器配置为提供大约 7.5 GB/秒,与 Azure Blob 存储 帐户的默认入口限制保持一致。 如果您的工作负载需要更高的持续归档吞吐量,请提交支持工单以了解可选方案。