awslabs/awsome-distributed-ai

GitHub: awslabs/awsome-distributed-ai

该项目汇集了在 AWS 上进行大规模分布式 AI 训练的最佳实践、参考架构、测试用例及监控工具。

Stars: 461 | Forks: 198

# ML 训练参考架构与测试 此仓库包含使用 [Amazon SageMaker HyperPod](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod.html)、[AWS ParallelCluster](https://docs.aws.amazon.com/parallelcluster/latest/ug/what-is-aws-parallelcluster.html)、[AWS Parallel Computing Service (PCS)](https://aws.amazon.com/pcs/)、[AWS Batch](https://docs.aws.amazon.com/batch/latest/userguide/what-is-batch.html) 和 [Amazon EKS](https://docs.aws.amazon.com/eks/latest/userguide/getting-started-console.html) 进行分布式模型训练的参考架构和测试用例。测试用例涵盖了不同类型和大小的模型,以及不同的框架和并行优化(PyTorch DDP/FSDP、Megatron-LM、NeMo 等)。 此目录的主要组成部分是: ``` ├── 1.architectures/ # CloudFormation templates for reference architectures ├── 2.ami_and_containers/ # Scripts to create AMIs and container images ├── 3.test_cases/ # Reference test cases and/or benchmark scripts ├── 4.validation_and_observability/# Tools to measure performance or troubleshoot └── micro-benchmarks/ # Micro-benchmarks (NCCL, NCCOM, NVSHMEM, etc.) ``` **注意**:这些架构设计为与使用参考模板 `1.architectures/0.common/` 和 `1.architectures/1.vpc_network/` 创建的 S3 存储桶和 VPC 配合使用。_强烈建议您在部署任何参考架构**之前**,先部署这两个模板。_ ## 0. 研讨会 | 名称 | 备注 | | ---------------------------------------------------------------------------------- | ----------------------------------------------------------- | | [SageMaker HyperPod 上的 AI](https://awslabs.github.io/ai-on-sagemaker-hyperpod/) | 关于 SageMaker HyperPod 的研讨会,展示如何部署和监控它 | | [AWS ParallelCluster](https://catalog.workshops.aws/ml-on-aws-parallelcluster) | 与 HyperPod 类似的研讨会,但在 ParallelCluster 上进行 | | [AWS Parallel Computing Service](https://catalog.workshops.aws/ml-on-pcs) | 与 HyperPod 类似的研讨会,但在 AWS Parallel Computing Service 上进行 | ## 博客 关于在 AWS 上进行分布式 ML 训练的文章发布在 。Hugo 源码位于 [`content`](https://github.com/awslabs/awsome-distributed/tree/content) 分支。 ## 1. 架构 架构位于 `1.architectures` 中,包含实用工具和服务相关的架构。 | 名称 | 类别 | 用途 | | ------------------------------------------------------------------------------ | ------ | ----------------------------------------------------- | | [`0.common`](./1.architectures/0.common) | 存储 | 公共资源(S3 存储桶、事件通知) | | [`1.vpc_network`](./1.architectures/1.vpc_network) | 网络 | 创建具有子网和所需资源的 VPC | | [`2.aws-parallelcluster`](./1.architectures/2.aws-parallelcluster) | 计算 | 用于 GPU 和自定义芯片训练的集群模板 | | [`3.aws-batch`](./1.architectures/3.aws-batch) | 计算 | 用于分布式训练的 AWS Batch 模板 | | [`4.amazon-eks`](./1.architectures/4.amazon-eks) | 计算 | 使用 Amazon EKS 进行训练的清单文件 | | [`5.sagemaker-hyperpod`](./1.architectures/5.sagemaker-hyperpod) | 计算 | 用于分布式训练的 SageMaker HyperPod 模板 | | [`6.ldap_server`](./1.architectures/6.ldap_server) | 身份 | 用于多用户集群访问的 LDAP 服务器 | | [`7.sagemaker-hyperpod-eks`](./1.architectures/7.sagemaker-hyperpod-eks) | 计算 | 具有 EKS 编排的 SageMaker HyperPod | | [`8.accounting-database`](./1.architectures/8.accounting-database) | 工具 | 用于任务跟踪的记账数据库 | | [`aws-pcs`](./architectures/aws-pcs) | 计算 | 带有 Slurm 调度器的 AWS Parallel Computing Service 模板 | 您还会找到关于 EFA 和推荐环境变量的[文档](./1.architectures/efa-cheatsheet.md)。 ## 2. 自定义 Amazon Machine Image 可以使用 [Packer](https://www.packer.io) 为 AWS ParallelCluster、Amazon EKS 和普通 EC2 构建自定义机器镜像。这些镜像基于 Ansible 角色和 playbook。 ## 3. 测试用例 测试用例按框架(例如 `pytorch/`、`megatron/`、`jax/`)组织在 `3.test_cases/` 下。在每个框架中,目录以训练库或方法命名(例如 `picotron/`、`FSDP/`、`megatron-lm/`)。 每个测试用例都遵循以下通用结构: ``` 3.test_cases/ └── / # e.g. pytorch, megatron, jax └── / # e.g. picotron, FSDP, megatron-lm └── / # e.g. SmolLM-1.7B (may be omitted for single-model cases) ├── Dockerfile # Container / environment setup ├── README.md ├── slurm/ # Slurm-specific launch scripts ├── kubernetes/ # Kubernetes manifests └── hyperpod-eks/ # HyperPod EKS instructions ``` 每个测试用例的顶级目录包含总体介绍和环境设置(Dockerfile、训练脚本、配置),而子目录提供服务特定的启动说明。 浏览 [`3.test_cases/`](./3.test_cases) 以查看可用框架和测试用例的完整列表。 ## 4. 验证与可观测性 用于验证您的环境和监控训练任务的实用脚本和工具位于 `4.validation_and_observability/` 下。 | 名称 | 备注 | | ----------------------------------------------------------------------------------------------- | ------------------------------------------------------------- | | [`1.pytorch-env-validation`](./4.validation_and_observability/1.pytorch-env-validation) | 验证您的 PyTorch 环境 | | [`2.gpu-cluster-healthcheck`](./4.validation_and_observability/2.gpu-cluster-healthcheck) | GPU 集群健康检查 | | [`3.efa-node-exporter`](./4.validation_and_observability/3.efa-node-exporter) | 带有 Amazon EFA 监控模块的 Node exporter | | [`4.prometheus-grafana`](./4.validation_and_observability/4.prometheus-grafana) | 用于 SageMaker HyperPod 和 EKS GPU 集群的监控 | | [`5.nsight`](./4.validation_and_observability/5.nsight) | 展示如何运行 Nvidia Nsight Systems 来分析您的工作负载 | ## 5. 微基准测试 用于评估网络和通信性能的微基准测试位于 `micro-benchmarks/` 下。 | 名称 | 备注 | | --------------------------------------------------------------------- | --------------------------------------------- | | [`nccl-tests`](./micro-benchmarks/nccl-tests) | NCCL 集合通信基准测试 | | [`nccom-tests`](./micro-benchmarks/nccom-tests) | NCCOM 通信基准测试 | | [`nvshmem`](./micro-benchmarks/nvshmem) | NVSHMEM 基准测试 | | [`expert-parallelism`](./micro-benchmarks/expert-parallelism) | 专家并行 (MoE) 基准测试 |
标签:Yelp, 凭据扫描, 子域名突变, 系统提示词, 自定义请求头