教程-Amazon SageMaker HyperPod Checkpointless 预训练或微调自定义模型 - 亚马逊 SageMaker AI
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

教程-Amazon SageMaker HyperPod Checkpointless 预训练或微调自定义模型

要在自定义模型开启的情况下运行无检查点训练,需要执行以下步骤顺序。 HyperPod

先决条件

在开始设置环境之前,请确保您:

Kubernetes 环境设置

要设置你的 Kubernetes 环境,请执行以下操作:

  1. 设置虚拟环境。确保你使用的 Python 大于或等于 3.10 且低于 3.14。

    python3 -m venv ${PWD}/venv source venv/bin/activate
  2. 设置 kubectl 和 eksctl

  3. 连接到 Kubernetes 集群

    aws eks update-kubeconfig --region "${CLUSTER_REGION}" --name "${CLUSTER_NAME}"
  4. 安装依赖项。

    # install SageMaker HyperPod checkpointless training. git clone git@github.com:aws/sagemaker-hyperpod-checkpointless-training.git cd sagemaker-hyperpod-checkpointless-training

无检查点训练修改说明

要逐步采用自定义模型的无检查点训练,请遵循集成指南(这里我们以 Llama 3 70b 预训练为例),其中包括:

  • 快速创建沟通器

  • 内存映射的数据加载器 (MMAP)

  • 进程内恢复和无检查点恢复

组件 1:快速创建通信器

这是为了优化在工作人员之间建立联系的时间。无需更改代码,只需要设置环境变量即可

# Enable Rootless features export HPCT_USE_ROOTLESS=1 && \ sysctl -w net.ipv4.ip_local_port_range="20000 65535" && \ hyperpodrun --nproc_per_node=8 \ ... --inprocess-restart \ ...

完整的更改可以在 llama3 70 预训练启动任务配置中找到。

组件 2:内存映射的数据加载器 (MMAP)

MMAP 缓存用于存储预先获取的数据样本,无需等待数据预处理即可立即开始训练。通过封装现有的数据加载器,只需最少的代码更改即可采用。

data_module = MMAPDataModule( data_module=base_data_module, mmap_config=CacheResumeMMAPConfig(cache_dir=…) )

组件 3 和 4:进程内恢复和无检查点恢复

这样就可以在不重启训练过程或从检查点加载的情况下进行故障恢复。需要进行其他代码更改(策略和训练配置更新,封装现有的主代码)

@HPWrapper( health_check=CudaHealthCheck(), hp_api_factory=HPAgentK8sAPIFactory(), abort_timeout=60.0, ...) def run_main( cfg, caller: Optional[HPCallWrapper] = None): ... CheckpointlessMegatronStrategy( **self.cfg.strategy, ddp=self.ddp, )

完整的更改可以在 llama3 70 预训练入门脚本中找到,相应的训练配置更改可以在 ll ama3 70 b 训练配置中找到。

启动培训

现在,你可以使用 kubectl 启动无检查点训练。

kubectl apply -f your_job_config.yaml