GitHub 存储库 - 亚马逊 SageMaker AI
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

GitHub 存储库

要启动训练作业,您需要使用来自两个不同 GitHub存储库的文件:

这些存储库包含用于启动、管理和自定义大型语言模型 (LLM) 训练过程的基本组件。您可以使用存储库中的脚本来设置和运行您的训练作业 LLMs。

HyperPod 食谱存储库

使用SageMaker HyperPod 食谱存储库获取食谱。

  1. main.py:此文件是启动向集群或训练作业提交训练作业的过程的主要入口点。 SageMaker

  2. launcher_scripts: 此目录包含一系列常用脚本,旨在简化各种大型语言模型的训练过程 (LLMs)。

  3. recipes_collection:此文件夹包含开发人员提供的预定义 LLM 配方的汇编。用户可以将这些配方与他们的自定义数据结合起来,训练根据其特定要求量身定制的 LLM 模型。

您可以使用 SageMaker HyperPod 配方来启动训练或微调作业。无论您使用哪个集群,提交作业的过程都是一样的。例如,您可以使用相同的脚本向 Slurm 或 Kubernetes 集群提交任务。启动器根据三个配置文件调度训练作业:

  1. 常规配置 (config.yaml):包括常用设置,例如训练作业中使用的默认参数或环境变量。

  2. 集群配置(集群):仅适用于使用集群的训练作业。如果您要向 Kubernetes 集群提交训练作业,则可能需要指定音量、标签或重启策略等信息。对于 Slurm 集群,您可能需要指定 Slurm 任务名称。所有参数都与您正在使用的特定集群相关。

  3. 配方(配方):食谱包含训练作业的设置,例如模型类型、分片程度或数据集路径。例如,您可以将 Llama 指定为训练模型,并使用模型或数据并行技术(例如完全分片分布式并行 (FSDP))在八台计算机上对其进行训练。您还可以为训练作业指定不同的检查点频率或路径。

指定配方后,您可以运行启动器脚本,通过main.py入口点根据配置在集群上指定 end-to-end训练作业。对于您使用的每个配方,在 launch_scripts 文件夹中都有随附的 shell 脚本。这些示例将指导您提交和启动培训作业。下图说明了 SageMaker HyperPod 配方启动器如何根据上述内容向集群提交训练作业。目前, SageMaker HyperPod 配方启动器建立在 Nvidia Fr NeMo amework Launcher 之上。有关更多信息,请参阅《NeMo 启动器指南》

该图说明了 HyperPod 配方启动器的工作流程。左边的虚线框内有三个文件图标,分别标有 “食谱”、“config.yaml” 和 “slurm.yaml 或 k8s.yaml 或 sm_job.yaml(集群配置)”。箭头从这个盒子指向一个标有 “HyperPod 食谱启动器” 的中心盒子。从这个中心方框中,另一个箭头向右指向 “Training Job”,箭头上方写着 “main.py”。

HyperPod 配方适配器存储库

SageMaker HyperPod 训练适配器是一个训练框架。您可以使用它来管理训练作业的整个生命周期。使用适配器将模型的预训练或微调分发到多台计算机上。适配器使用不同的并行度技术来分发训练。它还负责保存检查点的实施和管理。有关更多详细信息,请参阅 高级设置

使用SageMaker HyperPod 配方适配器存储库来使用配方适配器。

  1. src:此目录包含大规模语言模型 (LLM) 训练的实现,包括模型并行性、混合精度训练和检查点管理等各种功能。

  2. examples:此文件夹提供了一系列示例,演示了如何创建训练法学硕士模型的入口点,可作为用户的实用指南。