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
感謝所有建置、審查和測試的貢獻者。