awsome distributed training
1.0.0
此存储库包含使用 Amazon SageMaker Hyperpod、AWS ParallelCluster、AWS Batch 和 Amazon EKS 进行分布式模型训练的参考架构和测试用例。测试用例涵盖不同类型和大小的模型以及不同的框架和并行优化(Pytorch DDP/FSDP、MegatronLM、NemoMegatron...)。
该目录的主要组成部分是:
reference-architectures/
| -- 1.architectures/ # CloudFormation templates for reference arch
| -- 2.ami_and_containers/ # Scripts to create AMIs and container images
| -- 3.test_cases/ # Reference test cases and/or benchmark scripts
| -- 4.validation_observability/ # Tools to measure performance or troubleshoot
` -- ...
注意:这些架构旨在与使用参考模板1.architectures/0.s3/
和1.architectures/1.vpc_network/
创建的 S3 存储桶和 VPC 配合使用。强烈建议您在部署任何参考架构之前部署这两个模板。
您可以按照下面的研讨会在 AWS 上训练模型。每个都包含多个测试用例的示例以及有关操作 LLM 培训集群的信息。
姓名 | 评论 |
---|---|
亚马逊 SageMaker HyperPod | SageMaker HyperPod 研讨会展示了如何部署和监控它 |
AWS 并行集群 | 与 HyperPod 类似的研讨会,但在 ParallelCluster 上 |
Amazon SageMaker HyperPod EKS | SageMaker HyperPod EKS 研讨会展示了如何部署和监控它 |
架构位于1.architectures
中,由实用程序和服务相关架构组成。
姓名 | 类别 | 用法 |
---|---|---|
0.s3 | 贮存 | 创建 S3 存储桶 |
1.vpc_network | 网络 | 创建具有子网所需资源的 VPC |
2.aws-parallelcluster | 计算 | 用于 GPU 和定制芯片训练的集群模板 |
3.aws-batch | 计算 | 用于分布式训练的 AWS Batch 模板 |
4.amazon-eks | 计算 | 使用 Amazon EKS 进行训练的清单文件 |
5.sagemaker-hyperpod | 计算 | 用于分布式训练的 SageMaker HyperPod 模板 |
更多内容将会出现,请随意添加新的(例如雷?)。您还可以找到 EFA 和推荐的环境变量的文档。
可以使用 Packer for AWS ParallelCluster、Amazon EKS 和普通 EC2 构建自定义机器映像。这些图像基于 Ansible 角色和剧本。
所有测试用例都在3.test_cases/
下。您可以进入每个测试用例目录来了解如何运行它。
测试用例 | 泥浆 | 库伯内斯 | AWS 批处理 |
---|---|---|---|
1.megatron-lm | ✅ | ✅ | ❓ |
2.nemo-launcher | ✅ | ✅ | |
3.MPT | ✅ | ❓ | ❓ |
4.DDP | ✅ | ❓ | ❓ |
5.param-benchmark | ✅ | ❓ | ❓ |
6.stable-diffusion | ✅ | ✅ | ❓ |
7.tensorflow-distributed | ✅ | ❓ | ❓ |
10.FSDP | ✅ | ✅ | ❓ |
11.modelparallel | ✅ | ❓ | ❓ |
12.SM-dataparallel-FSDP | ✅ | ❓ | ❓ |
13.SM-dataparallel-deepspeed | ✅ | ❓ | ❓ |
14.bionemo | ✅ | ❓ | ❓ |
15.gpt-neox | ✅ | ❓ | ❓ |
16.pytorch-cpu-ddp | ✅ | ✅ | ❓ |
17.SM-modelparallelv2 | ✅ | ❓ | ❓ |
18.deepspeed | ✅ | ❓ | ❓ |
jax | ✅ | ❓ | ❓ |
实用程序脚本和微基准示例在4.validation_scripts/
下设置。 EFA Prometheus 导出器可以在此目录中找到
姓名 | 评论 |
---|---|
1.pytorch-env-validation | 验证您的 PyTorch 环境 |
3.efa-node-exporter | 具有 Amazon EFA 监控模块的节点导出器 |
4.prometheus-grafana | 用于监控 SageMaker Hyperpod 集群的部署资产 |
5.nsight | 展示如何运行 Nvidia Nsight Systems 来分析您的工作负载 |
efa-versions.py | 获取 Nvidia 库、驱动程序和 EFA 驱动程序的版本 |
集成测试是用 pytest 编写的。只需运行:
pytest .
或者,您可以运行测试,而无需捕获标准输出并将所有 docker 映像保留为其他工件。
pytest -s --keep-artifacts=t
感谢所有构建、审查和测试的贡献者。