语言模型是使用自然文本预测序列中标记连续性的统计方法。 大型语言模型(LLM)是基于神经网络的语言模型,具有数亿(BERT) 到超过一万亿个参数 (麦克风),其大小使得单 GPU 训练不切实际。 LLM 的生成能力使它们在文本合成、摘要、机器翻译等方面很受欢迎。
LLM 的规模及其训练数据是一把双刃剑:它带来了建模质量,但也带来了基础设施方面的挑战。 模型本身通常太大,无法容纳在单个 GPU 设备的内存中或多 GPU 实例的多个设备上。 这些因素需要在大型加速机器学习 (ML) 实例集群上训练 LLM。 在过去几年中,许多客户一直在使用 AWS 云进行 LLM 培训。
在这篇文章中,我们深入探讨了成功进行 LLM 培训的技巧和最佳实践 亚马逊 SageMaker 培训. SageMaker Training 是一种托管的批量 ML 计算服务,可减少大规模训练和调整模型的时间和成本,而无需管理基础设施。 在一个启动命令中, 亚马逊SageMaker 启动功能齐全的临时计算集群,运行您选择的任务,并具有增强的 ML 功能,例如 Metastore、托管 I/O 和分布。 该帖子涵盖了 LLM 培训工作负载的所有阶段,并描述了相关的基础架构功能和最佳实践。 本文中的一些最佳实践专门针对 ml.p4d.24xlarge 实例,但大多数都适用于任何实例类型。 这些最佳实践允许您在 SageMaker 上以数十到数亿个参数的规模训练 LLM。
关于这篇文章的范围,请注意以下几点:
- 我们不涵盖神经网络科学设计和相关优化。 亚马逊科学 以众多科学出版物为特色,包括但不限于 法学硕士.
- 虽然这篇文章的重点是 LLM,但它的大部分最佳实践都与任何类型的大型模型训练相关,包括计算机视觉和多模态模型,例如 Stable Diffusion。
最佳实践
我们在这篇文章中讨论了以下最佳实践:
- 计算 – SageMaker Training 是一个很棒的 API,可以启动 CPU 数据集准备作业和千级 GPU 作业。
- 存储 – 我们看到数据加载和检查点以两种方式完成,具体取决于技能和偏好:使用 亚马逊 FSx 光泽 文件系统,或 亚马逊简单存储服务 仅限(亚马逊 S3)。
- 排比 – 您选择的分布式训练库对于正确使用 GPU 至关重要。 我们建议使用云优化库,例如 SageMaker 分片数据并行性,但自我管理和开源库也可以使用。
- 网络相关 – 确保启用 EFA 和 NVIDIA GPUDirectRDMA,以实现快速的机器间通信。
- 弹性 – 在规模上,可能会发生硬件故障。 我们建议定期检查点。 每隔几个小时很常见。
区域选择
实例类型和所需容量是区域选择的决定性因素。 对于 SageMaker 支持的区域和 亚马逊弹性计算云 每个区域可用的 (Amazon EC2) 实例类型,请参阅 Amazon SageMaker定价. 在本文中,我们假设训练实例类型是 SageMaker 管理的 ml.p4d.24xlarge。
我们建议与您的 AWS 客户团队合作或联系 亚马逊销售 以确定适合您的 LLM 工作负载的区域。
资料准备
LLM 开发人员在大型自然文本数据集上训练他们的模型。 此类数据源的常见示例包括 常见的抓取 和 堆. 自然出现的文本可能包含偏见、不准确、语法错误和语法变化。 LLM 的最终质量在很大程度上取决于训练数据的选择和管理。 LLM 培训数据准备是 LLM 行业研究和创新的活跃领域。 自然语言处理 (NLP) 数据集的准备充满了无共享并行性的机会。 换句话说,有些步骤可以应用于作品单元——源文件、段落、句子、单词——而不需要工作间同步。
SageMaker 作业 API,即 SageMaker Training 和 SageMaker Processing,非常适合此类任务。 它们使开发人员能够在多台机器上运行任意 Docker 容器。 对于 SageMaker Training API,计算队列可以是 异质. SageMaker 上使用了众多分布式计算框架,包括 达斯克, 射线,并且 火花,其中有一个专门的 AWS 管理的容器 和 软件开发套件(SDK) 在 SageMaker 处理中。
当您使用多台机器启动一项作业时,SageMaker Training and Processing 会在每台机器上运行您的代码一次。 您不需要使用特定的分布式计算框架来编写分布式应用程序:您可以编写您选择的代码,每台机器运行一次,以实现无共享并行。 您还可以编写或安装您选择的节点间通信逻辑。
资料载入
有多种方法可以存储训练数据并将其从存储移动到加速计算节点。 在本节中,我们将讨论数据加载的选项和最佳实践。
SageMaker 存储和加载选项
典型的 LLM 数据集大小为数亿个文本标记,相当于几百 GB。 SageMaker 管理的 ml.p4d.24xlarge 实例集群提出了多个数据集存储和加载选项:
- 节点上 NVMe SSD – ml.P4d.24xlarge 实例配备 8TB NVMe,可在
/opt/ml/input/data/<channel>
如果您使用 SageMaker 文件模式,并在/tmp
. 如果您正在寻求本地读取的简单性和性能,您可以将数据复制到 NVMe SSD。 复制可以通过 SageMaker 文件模式完成,也可以通过您自己的代码完成,例如使用多进程 博托3 or S5命令. - FSx 光泽 – 节点上 NVMe SSD 的大小有限,并且需要在每个作业或热集群创建时从 Amazon S3 摄取。 如果您希望在保持低延迟随机访问的同时扩展到更大的数据集,则可以使用 FSx for Lustre。 Amazon FSx 是一种开源并行文件系统,在高性能计算 (HPC) 中很受欢迎。 FSx for Lustre 使用 分布式文件存储 (剥离)并将文件元数据与文件内容物理分离,以实现高性能读/写。
- SageMaker FastFile 模式 – 快速文件模式 (FFM) 是 SageMaker 独有的功能,它在符合 POSIX 的接口下在 SageMaker 管理的计算实例中呈现远程 S3 对象,并仅在读取时使用 FUSE 流式传输它们。 FFM 在 S3 调用中读取结果,逐块流式传输远程文件。 作为避免与 Amazon S3 流量相关的错误的最佳实践,FFM 开发人员应该致力于保持 S3 调用的基础数量合理,例如通过按顺序读取文件并控制并行度。
- 自我管理的数据加载 – 当然,您也可以决定使用专有或开源代码来实现您自己的、完全自定义的数据加载逻辑。 使用自我管理的数据加载的一些原因是通过重用已经开发的代码来促进迁移,实现自定义错误处理逻辑,或者对底层性能和分片有更多的控制。 您可以用于自我管理数据加载的库示例包括 火炬数据.数据管道 (先前 AWS PyTorch S3 插件) 以及 Web数据集. AWS Python 开发工具包 博托3 也可以结合 火炬数据集 类来创建自定义数据加载代码。 自定义数据加载类还支持创造性地使用 SageMaker Training 异构集群,以精细调整 CPU 和 GPU 平衡以适应给定的工作负载。
有关这些选项以及如何选择它们的更多信息,请参阅 为您的 Amazon SageMaker 训练作业选择最佳数据源.
与 Amazon S3 进行大规模交互的最佳实践
Amazon S3 能够处理 LLM 工作负载,包括数据读取和检查点。 它支持一个 请求率 桶中每个前缀每秒 3,500 个 PUT/COPY/POST/DELETE 或 5,500 个 GET/HEAD 请求。 但是,此速率不一定默认可用。 相反,随着前缀请求率的增长,Amazon S3 会自动扩展以处理增加的速率。 有关详细信息,请参阅 当请求在每个前缀支持的请求率范围内时,为什么我从 Amazon S503 收到 3 Slow Down 错误.
如果您期望高频 Amazon S3 交互,我们推荐以下最佳实践:
- 尝试从多个 S3 存储桶读取和写入 前缀. 例如,您可以跨不同的前缀划分训练数据和检查点。
- 检查 Amazon S3 指标 亚马逊CloudWatch 跟踪请求率。
- 尽量减少并发 PUT/GET 的数量:
- 同时使用 Amazon S3 的进程更少。 例如,如果每个节点有八个进程需要检查点到 Amazon S3,您可以通过分层检查点将 PUT 流量减少 8 倍:首先在节点内,然后从节点到 Amazon S3。
- 从单个文件或 S3 GET 读取多个训练记录,而不是对每个训练记录使用 S3 GET。
- 如果您通过 SageMaker FFM 使用 Amazon S3,SageMaker FFM 会进行 S3 调用以逐块获取文件。 为了限制 FFM 产生的 Amazon S3 流量,我们鼓励您按顺序读取文件并限制并行打开的文件数。
如果你有一个 开发人员、业务或企业支持计划,您可以打开有关 S3 503 Slow Down 错误的技术支持案例。 但首先要确保您遵循了最佳实践,并且 获取请求 ID 对于失败的请求。
训练并行度
LLM 通常有几十到几千亿个参数,这使得它们太大而无法容纳在单个 NVIDIA GPU 卡中。 LLM 从业者开发了多个开源库,以促进 LLM 培训的分布式计算,包括 FSDP, 极速 和 威震天. 您可以在 SageMaker Training 中运行这些库,但您也可以使用 SageMaker 分布式训练库,这些库针对 AWS 云进行了优化并提供更简单的开发人员体验。 开发人员在 SageMaker 上对其 LLM 进行分布式培训有两种选择:分布式库或自我管理。
SageMaker 分布式库
为了向您提供改进的分布式训练性能和可用性,SageMaker Training 提出了几个专有扩展来扩展 TensorFlow 和 PyTorch 训练代码。 LLM 培训通常以 3D 并行方式进行:
- 数据并行 将训练小批量拆分并提供给模型的多个相同副本,以提高处理速度
- 流水线并行性 将模型的各个层分配给不同的 GPU 甚至实例,以便将模型大小扩展到单个 GPU 和单个服务器之外
- 张量并行度 将单个层拆分为多个 GPU,通常在同一台服务器中,以将各个层扩展到超过单个 GPU 的大小
在以下示例中,一个 6 层模型在具有 3*k*8 个 GPU(每台服务器 3 个 GPU)的 k*8 服务器集群上进行训练。 数据并行度为 k,流水线并行度为 6,张量并行度为 4。集群中的每个 GPU 包含模型层的四分之一,并且一个完整的模型被划分到三个服务器上(总共 24 个 GPU)。
以下内容与 LLM 特别相关:
- SageMaker 分布式模型并行 – 该库使用图形分区来生成针对速度或内存优化的智能模型分区。 SageMaker 分布式模型并行公开了最新最好的大型模型训练优化,包括数据并行、管道并行、张量并行、优化器状态分片、激活检查点和卸载。 借助 SageMaker 分布式模型并行库,我们记录了在 175 个 NVIDIA A920 GPU 上进行的 100 亿参数模型训练。 有关详细信息,请参阅 在 Amazon SageMaker 上使用模型并行添加和 Hugging Face 训练 175 多个参数 NLP 模型.
- SageMaker 并行分片数据 - 在 MiCS:在公共云上训练巨型模型的近线性缩放, 张等人。 引入一种低通信模型并行策略,该策略仅在数据并行组而不是整个集群上对模型进行分区。 借助 MiCS,AWS 科学家能够实现每个 GPU 176 teraflops(理论峰值的 56.4%),用于在 EC210 P1.06de 实例上训练 2 层 4 万亿参数模型。 MiCS 现在可供 SageMaker Training 客户使用 SageMaker 并行分片数据.
SageMaker 分布式训练库提供高性能和更简单的开发人员体验。 特别是,开发人员不需要编写和维护自定义并行进程启动器或使用特定于框架的启动工具,因为并行启动器内置于作业启动 SDK 中。
自我管理
通过 SageMaker Training,您可以自由使用您选择的框架和科学范式。 特别是,如果您想自己管理分布式训练,您有两种选择来编写您的自定义代码:
- 使用 AWS 深度学习容器 (DLC) – AWS 开发和维护 的DLC,为顶级开源 ML 框架提供经过 AWS 优化的基于 Docker 的环境。 SageMaker Training 具有独特的集成,允许您使用用户定义的外部入口点拉取和运行 AWS DLC。 特别是对于 LLM 培训,适用于 TensorFlow、PyTorch、Hugging Face 和 MXNet 的 AWS DLC 特别相关。 使用框架 DLC 允许您使用框架原生并行性,例如 PyTorch Distributed,而无需开发和管理您自己的 Docker 映像。 此外,我们的 DLC 具有 MPI 集成,它允许您轻松启动并行代码。
- 编写与 SageMaker 兼容的自定义 Docker 映像 – 您可以自带 (BYO) 映像(请参阅 使用你自己的训练算法 和 Amazon SageMaker自定义培训容器),要么从头开始,要么扩展现有的 DLC 图像。 在 SageMaker 上使用自定义图像进行 LLM 训练时,验证以下内容尤为重要:
- 您的图像包含具有适当设置的 EFA(本文稍后将详细讨论)
- 您的图像包含一个 NVIDIA NCCL 通信库,启用了 GPUDirectRDMA
客户已经能够使用许多自我管理的分布式训练库,包括 DeepSpeed。
通信
鉴于 LLM 培训工作的分布式性质,机器间通信对于工作负载的可行性、性能和成本至关重要。 在本节中,我们将介绍机器间通信的主要功能,并以安装和调优技巧作为结尾。
弹性织物适配器
为了加速 ML 应用程序,并通过实现云提供的灵活性、可扩展性和弹性来提高性能,您可以利用 弹性织物适配器 (EFA) 与 SageMaker。 根据我们的经验,使用 EFA 是获得令人满意的多节点 LLM 训练性能的必要条件。
EFA 设备是在训练作业运行期间连接到由 SageMaker 管理的 EC2 实例的网络接口。 EFA 适用于特定系列的实例,包括 P4d。 EFA 网络能够实现数百 Gbps 的吞吐量。
与 EFA 相关联,AWS 推出了 可扩展的可靠数据报 (SRD),一种基于以太网的传输,其灵感来自于 InfiniBand 可靠数据报,随着放松的数据包排序约束而发展。 有关 EFA 和 SRD 的更多信息,请参阅 在寻找性能时,建立网络的方法不止一种, 该视频 EFA 的工作原理以及为什么我们不在云中使用 infiniband, 和研究论文 用于弹性和可扩展 HPC 的云优化传输协议 来自 Shalev 等人。
您可以将兼容实例上的 EFA 集成添加到 SageMaker 现有 Docker 容器,或可用于使用 SageMaker 作业训练 ML 模型的自定义容器。 有关详细信息,请参阅 使用 EFA 进行培训. EFA 通过开源公开 库结构 通信包。 然而,LLM 开发人员很少直接使用 Libfabric 对其进行编程,而是通常依赖于 NVIDIA Collective Communications Library (NCCL)。
AWS-OFI-NCCL 插件
在分布式 ML 中,EFA 最常与 NVIDIA 集体通信库 (NCCL) 一起使用。 NCCL 是 NVIDIA 开发的实现 GPU 间通信算法的开源库。 GPU 间通信是 LLM 培训的基石,可促进可扩展性和性能。 它对 DL 训练非常重要,以至于 NCCL 通常作为通信后端直接集成到深度学习训练库中,因此 LLM 开发人员可以从他们首选的 Python DL 开发框架中使用它——有时没有注意到。 要在 EFA 上使用 NCCL,LLM 开发人员使用 AWS 开发的 AWS OFI NCCL 插件,它将 NCCL 调用映射到 EFA 使用的 Libfabric 接口。 我们建议使用最新版本的 AWS OFI NCCL 以受益于最近的改进。
要验证 NCCL 使用 EFA,您应该设置环境变量 NCCL_DEBUG
至 INFO
,并检查 NCCL 加载 EFA 的日志:
有关 NCCL 和 EFA 配置的更多信息,请参阅 测试您的 EFA 和 NCCL 配置. 您可以使用几个进一步自定义 NCCL 环境变量. 请注意,在 NCCL 2.12 及更高版本中有效,AWS 为 EFA 网络贡献了一个自动通信算法选择逻辑(NCCL_ALGO
可以不设置)。
基于 EFA 的 NVIDIA GPUDirect RDMA
使用 P4d 实例类型,我们 介绍 EFA 结构上的 GPUDirect RDMA (GDR)。 它使网络接口卡 (NIC) 能够直接访问 GPU 内存,从而加快跨基于 NVIDIA GPU 的 EC2 实例的远程 GPU 到 GPU 通信,减少 CPU 和用户应用程序的编排开销。 在可行的情况下,NCCL 在幕后使用 GDR。
当日志级别设置为 INFO 时,GDR 使用情况出现在 GPU 间通信中,如下代码所示:
在 AWS 深度学习容器中使用 EFA
AWS 维护着深度学习容器 (DLC),其中许多都带有 AWS 管理的 Dockerfile,并且构建时包含 EFA、AWS OFI NCCL 和 NCCL。 以下 GitHub 存储库提供示例 PyTorch 和 TensorFlow. 您不需要自己安装这些库。
在您自己的 SageMaker 培训容器中使用 EFA
如果您创建自己的 SageMaker Training 容器并希望使用 NCCL over EFA 来加速节点间通信,则需要安装 EFA、NCCL 和 AWS OFI NCCL。 有关详细信息,请参阅 使用 EFA 运行培训。 此外,您应该在容器或入口点代码中设置以下环境变量:
FI_PROVIDER="efa"
指定结构接口提供者NCCL_PROTO=simple
指示 NCCL 使用简单的通信协议(目前,EFA 提供者不支持 LL 协议;启用它们可能会导致数据损坏)FI_EFA_USE_DEVICE_RDMA=1
使用设备的 RDMA 功能进行单侧和双侧传输NCCL_LAUNCH_MODE="PARALLEL"
NCCL_NET_SHARED_COMMS="0"
编曲配置
管理数十到数百个计算实例的生命周期和工作负载需要编排软件。 在本节中,我们提供 LLM 编排的最佳实践
作业内编排
在大多数分布式框架中,开发人员必须同时编写服务器端训练代码和客户端启动器代码。 训练代码在训练机器上运行,而客户端启动器代码从客户端机器启动分布式工作负载。 今天几乎没有标准化,例如:
- 在 PyTorch 中,开发人员可以使用
torchrun
,torchx
,torch.distributed.launch
(弃用路径),或torch.multiprocessing.spawn
- DeepSpeed 提出了自己的 deepspeed CLI launcher,也支持 MPI launch
- MPI 是一种流行的并行计算框架,具有与 ML 无关和合理使用的优势,因此稳定且有文档记录,并且越来越多地出现在分布式 ML 工作负载中
在 SageMaker 训练集群中,训练容器在每台机器上启动一次。 因此,您有以下三种选择:
- 本机启动器 – 您可以使用特定 DL 框架的本机启动器作为入口点,例如
torchrun
调用,它本身会产生多个本地进程并建立跨实例的通信。 - SageMaker MPI 集成 – 您可以使用我们的 AWS DLC 中提供的 SageMaker MPI 集成,或通过以下方式自行安装 贤者培训工具包, 在每台机器上直接运行你的入口点代码 N 次。 这样做的好处是避免在您自己的代码中使用中间的、特定于框架的启动器脚本。
- SageMaker 分布式库 – 如果您使用 SageMaker 分布式库,您可以专注于训练代码,根本不必编写启动器代码! SageMaker 分布式启动器代码内置于 SageMaker SDK 中。
作业间编排
LLM 项目通常包含多项工作:参数搜索、缩放实验、从错误中恢复等。 为了启动、停止和并行化训练任务,使用作业编排器很重要。 SageMaker Training 是一种无服务器 ML 作业编排器,可根据请求立即配置瞬态计算实例。 您只需为使用的资源付费,一旦您的代码结束,集群就会退役。 和 SageMaker 训练热池,您可以选择在训练集群上定义生存时间,以便跨作业重用相同的基础设施。 这减少了迭代时间和作业间放置的可变性。 SageMaker 作业可以从多种编程语言启动,包括 蟒蛇 和 CLI.
有一个特定于 SageMaker 的 Python SDK,称为 SageMaker Python 开发工具包 并通过 sagemaker Python 库,但它的使用是可选的。
使用大而长的训练集群增加训练作业的配额
SageMaker 具有默认的资源配额,旨在防止意外使用和成本。 要使用长时间运行的大型高端实例集群来训练 LLM,您可能需要增加下表中的配额。
配额名称 | 默认值 |
训练作业的最长运行时间 | 432,000秒 |
所有训练作业的实例数 | 4 |
每个训练作业的最大实例数 | 20 |
ml.p4d.24xlarge 用于训练作业使用 | 0 |
ml.p4d.24xlarge 用于训练暖池使用 | 0 |
我们 AWS 服务配额 如何查看您的配额值并请求增加配额。 按需、Spot 实例和培训热池配额分别进行跟踪和修改。
如果您决定保持 SageMaker Profiler 处于激活状态,请注意每个训练作业都会启动一个 SageMaker Processing 作业,每个作业都会消耗一个 ml.m5.2xlarge 实例。 确认您的 SageMaker Processing 配额足够高以适应预期的训练作业并发。 例如,如果您想要同时启动 50 个启用 Profiler 的训练作业,则需要将用于处理作业使用限制的 ml.m5.2xlarge 提高到 50。
此外,要启动长时间运行的作业,您需要明确设置 估计 max_run
参数为训练作业所需的最大持续时间(以秒为单位),最高为训练作业最长运行时间的配额值。
监控和弹性
硬件故障在单个实例的规模上极为罕见,并且随着同时使用的实例数量的增加而变得越来越频繁。 在典型的 LLM 规模下——成百上千个 GPU 全天候使用数周至数月——硬件故障几乎肯定会发生。 因此,LLM 工作负载必须实施适当的监控和弹性机制。 首先,密切监控 LLM 基础设施非常重要,以限制故障的影响并优化计算资源的使用。 SageMaker Training 为此提出了几个功能:
- 日志会自动发送到 CloudWatch Logs。 日志包括您的训练脚本
stdout
和stderr
. 在基于 MPI 的分布式训练中,所有 MPI worker 都将他们的日志发送到领导进程。 - 内存、CPU 使用率和 GPU 使用率等系统资源利用率指标会自动发送到 CloudWatch。
- 您还可以 定义自定义训练指标 将被发送到 CloudWatch。 指标是根据您设置的正则表达式从日志中捕获的。 第三方实验包如 AWS 合作伙伴 Offering Weights & Biases 可以与 SageMaker Training 一起使用(有关示例,请参阅 使用 W&B 和 SageMaker 优化 CIFAR-10 超参数).
- SageMaker 分析器 允许您检查基础架构使用情况并获得优化建议。
- 亚马逊EventBridge 和 AWS Lambda 允许您创建自动化的客户端逻辑,以响应作业失败、成功、S3 文件上传等事件。
- SageMaker SSH 帮助程序 是一个社区维护的开源库,允许您通过 SSH 连接到训练作业主机。 它有助于检查特定节点上运行的代码并对其进行故障排除。
除了监控,SageMaker 还带来了工作弹性的设备:
- 集群健康检查 – 在您的作业开始之前,SageMaker 会运行 GPU 运行状况检查并验证 GPU 实例上的 NCCL 通信,并在必要时更换任何有故障的实例,以确保您的训练脚本开始在健康的实例集群上运行。 目前已为基于 P 和 G GPU 的实例类型启用健康检查。
- 内置重试和集群更新 – 您可以将 SageMaker 配置为自动 重试 因 SageMaker 内部服务器错误 (ISE) 而失败的训练作业。 作为重试作业的一部分,SageMaker 将用新实例替换遇到不可恢复的 GPU 错误的任何实例,重新启动所有健康的实例,然后再次启动作业。 这导致更快的重启和工作负载完成。 目前已为基于 P 和 G GPU 的实例类型启用集群更新。 你可以自己添加 应用重试机制 围绕提交作业的客户端代码,处理其他类型的启动错误,例如超出您的帐户配额。
- 自动化 Amazon S3 的检查点 – 这可以帮助您 检查站 您的进度并重新加载新工作的过去状态。
要从节点级替换中获益,您的代码必须出错。 当节点出现故障时,集体可能会挂起,而不是出错。 因此,要及时补救,请为您的集体正确设置超时,并让代码在到达时抛出错误。
一些客户设置了一个监控客户端来监控作业挂起或应用程序收敛停止的情况并采取行动,方法是监控 CloudWatch 日志和指标以了解异常模式,例如未写入日志或 0% GPU 使用率以提示挂起、收敛停止和自动停止/重试作业。
深入研究检查点
SageMaker 检查点 功能复制您写的所有内容 /opt/ml/checkpoints
作为在中指定的 URI 返回到 Amazon S3 checkpoint_s3_uri
开发工具包参数。 当作业开始或重新启动时,写入该 URI 的所有内容都会发送回所有机器,位于 /opt/ml/checkpoints
. 如果您希望所有节点都可以访问所有检查点,那么这很方便,但规模很大——当您有很多机器或许多历史检查点时,这可能会导致下载时间过长和 Amazon S3 上的流量过高。 此外,在张量和管道并行性中,工作人员只需要检查点模型的一部分,而不是全部。 如果您面临这些限制,我们推荐以下选项:
- 检查点到 FSx for Lustre – 由于高性能随机 I/O,您可以定义您选择的分片和文件归属方案
- 自我管理的 Amazon S3 检查点 – 有关可用于以非阻塞方式保存和读取检查点的 Python 函数示例,请参阅 保存检查点
我们强烈建议每隔几个小时检查一次您的模型,例如 1-3 小时,具体取决于相关的开销和成本。
前端和用户管理
与传统的共享 HPC 基础设施相比,用户管理是 SageMaker 的关键可用性优势。 SageMaker 培训权限由几个 AWS身份和访问管理 (IAM) 抽象:
- 委托人(用户和系统)被授予启动资源的权限
- 训练作业本身带有角色,允许它们拥有自己的权限,例如关于数据访问和服务调用
此外,我们在 2022 年增加了 SageMaker 角色管理器 以促进创建角色驱动的权限。
结论
借助 SageMaker Training,您可以降低成本并提高大型模型训练工作负载的迭代速度。 我们在众多帖子和案例研究中记录了成功案例,包括:
如果您希望在降低成本的同时缩短 LLM 上市时间,请查看 SageMaker Training API,让我们知道您构建了什么!
特别感谢 Amr Ragab、Rashika Kheria、Zmnako Awrahman、Arun Nagarajan 和 Gal Oshri 的有益评论和教导。
作者简介
阿纳斯塔西娅·泽维莱卡 是 AWS 的机器学习和人工智能专家解决方案架构师。 她与欧洲、中东和非洲地区的客户合作,帮助他们使用 AWS 服务大规模构建机器学习解决方案。 她从事过不同领域的项目,包括自然语言处理 (NLP)、MLOps 和低代码无代码工具。
吉利纳楚姆 是一名高级 AI/ML 专家解决方案架构师,是 EMEA 亚马逊机器学习团队的一员。 Gili 对训练深度学习模型的挑战以及机器学习如何改变我们所知道的世界充满热情。 在业余时间,吉利喜欢打乒乓球。
奥利维尔·克鲁尚 是 AWS 的首席机器学习专家解决方案架构师,常驻法国。 Olivier 帮助 AWS 客户(从小型初创公司到大型企业)开发和部署生产级机器学习应用程序。 在业余时间,他喜欢阅读研究论文并与朋友和家人一起探索荒野。
布鲁诺·皮斯通 是位于米兰的 AWS 的 AI/ML 专家解决方案架构师。 他与任何规模的客户合作,帮助他们深入了解他们的技术需求并设计人工智能和机器学习解决方案,以充分利用 AWS 云和亚马逊机器学习堆栈。 他的专业领域是端到端机器学习、机器学习工业化和 MLOps。 他喜欢与朋友共度时光,探索新的地方,以及前往新的目的地。
- SEO 支持的内容和 PR 分发。 今天得到放大。
- 柏拉图区块链。 Web3 元宇宙智能。 知识放大。 访问这里。
- Sumber: https://aws.amazon.com/blogs/machine-learning/training-large-language-models-on-amazon-sagemaker-best-practices/
- :是
- ][p
- $UP
- 000
- 1
- 100
- 2022
- 7
- 8
- a
- 能力
- Able
- 关于
- 以上
- 加快
- 加速
- ACCESS
- 容纳
- 账号管理
- 实现
- 横过
- 法案
- 活化
- 要积极。
- 适应
- 添加
- 增加
- 另外
- 增加
- 优点
- AI
- AI / ML
- AL
- 算法
- 算法
- 所有类型
- 允许
- 允许
- Amazon
- Amazon EC2
- 亚马逊FSx
- 亚马逊机器学习
- 亚马逊SageMaker
- 量
- 和
- API
- APIs
- 相应
- 应用领域
- 应用领域
- 应用的
- 适当
- 保健
- 国家 / 地区
- 围绕
- AS
- 相关
- At
- 属性
- 汽车
- 自动化
- 自动
- 可使用
- 避免
- AWS
- 背部
- 后端
- 当前余额
- 基于
- BE
- 因为
- 成为
- before
- 作为
- 得益
- 最佳
- 最佳实践
- 超越
- 大
- 亿
- 十亿美元
- 阻止
- 带来
- 带来
- 建立
- 建
- 商业
- by
- 呼叫
- 被称为
- 呼叫
- CAN
- 能力
- 容量
- 卡
- 牌
- 携带
- 案件
- 客户案例
- 催化
- 挑战
- 改变
- 渠道
- 查
- 支票
- 选择
- 选择
- 类
- 客户
- 密切
- 云端技术
- 簇
- 码
- 集体
- 结合
- 如何
- 相当常见
- 常用
- 沟通
- 通信
- 相比
- 兼容
- 完成
- 计算
- 计算
- 一台
- 计算机视觉
- 计算
- 总结
- 进行
- 配置
- 确认
- 分享链接
- 所以
- 包含
- 容器
- 集装箱
- 包含
- 内容
- 贡献
- 控制
- 受控
- 便捷
- 收敛
- 腐败
- 价格
- 成本
- 可以
- 套餐
- 外壳
- 盖
- 创建信息图
- 创建
- 创意奖学金
- 危急
- 关键
- 策展
- 目前
- 习俗
- 合作伙伴
- 定制
- data
- 数据访问
- 资料准备
- 数据集
- 决定
- 专用
- 深
- 深入学习
- 默认
- 学位
- 根据
- 依靠
- 部署
- 设计
- 设计
- 期望
- 旅游目的地
- 确定
- 确定
- 开发
- 发达
- 开发商
- 开发
- 研发支持
- 发展
- 设备
- 设备
- 不同
- 扩散
- 直接
- 讨论
- 讨论
- 分布
- 分布式计算
- 分布式培训
- 分配
- 码头工人
- 不会
- 域名
- 别
- 向下
- 下载
- 几十个
- ,我们将参加
- 每
- 容易
- 有效
- 或
- 欧洲与中东地区
- enable
- 启用
- 使
- 使
- 鼓励
- 结束
- 增强
- 享受
- 更多
- 确保
- 企业
- 企业
- 条目
- 环境
- 环境中
- 设备
- 配备
- 错误
- 故障
- 建立
- 甚至
- 事件
- 最终的
- 所有的
- 一切
- 进化
- 例子
- 例子
- Excel
- 现有
- 期望
- 预期
- 体验
- 实验
- 探索
- 裸露
- 表达式
- 延长
- 扩展
- 外部
- 非常
- 布
- 面部彩妆
- 促进
- 促进
- 因素
- 失败
- 失败
- 失败
- 家庭
- 家庭
- 时尚
- 高效率
- 快
- 故障
- 可行
- 专栏
- 特征
- 少数
- 部分
- 文件
- 档
- (名字)
- 适合
- 舰队
- 高度灵活
- 专注焦点
- 重点
- 其次
- 以下
- 针对
- 分数
- 骨架
- 框架
- 法国
- Freedom
- 频繁
- 新鲜
- 朋友
- 止
- ,
- 充分
- 实用
- 功能
- 功能
- 进一步
- GAL
- 产生
- 生成的
- 得到
- 越来越
- GitHub上
- 特定
- GPU
- 图形处理器
- 图形
- 大
- 最大的
- 团队
- 成长
- 处理
- 处理
- 挂
- 发生
- 硬件
- 有
- 有
- 健康管理
- 健康
- 有帮助
- 帮助
- 帮助
- 高
- 高频
- 高性能
- 历史的
- 兜帽
- 为了
- HOURS
- 创新中心
- How To
- 但是
- HPC
- HTML
- HTTP
- HTTPS
- 数百
- 亿万
- i
- 相同
- 身分
- 图片
- 图片
- 立即
- 影响力故事
- 实施
- 实施
- 实施
- 重要
- 改善
- 改善
- 改善
- in
- 其他
- 包括
- 包含
- 增加
- 增加
- 增加
- 日益
- 个人
- 行业中的应用:
- info
- 信息
- 基础设施
- 創新
- 灵感
- 安装
- 例
- 代替
- 集成
- 积分
- 智能化
- 相互作用
- 接口
- 中介
- 内部
- 介绍
- 介绍
- IT
- 迭代
- 它的
- 本身
- 工作
- 工作机会
- JPG
- 保持
- 键
- 类
- 知道
- 语言
- 语言
- 大
- 大规模
- 大
- 最新
- 发射
- 推出
- 启动
- 层
- 层
- 铅
- 领导者
- 学习
- 遗产
- Level
- 库
- 自学资料库
- 生命周期
- 喜欢
- 容易
- 极限
- 限制
- 有限
- 小
- LLM
- 装载
- 本地
- 长
- 长时间
- 看
- 寻找
- 低
- 机
- 机器学习
- 机
- 保持
- 维护
- 维护
- 使
- 制作
- 制作
- 管理
- 管理
- 颠覆性技术
- 许多
- 地图
- 最多
- 内存
- 元数据
- 方法
- 指标
- 移民
- 米兰
- 百万
- ML
- 多播
- 时尚
- 模型
- 模型
- 改性
- 显示器
- 监控
- 更多
- 最先进的
- 移动
- 多
- 亦即
- 本地人
- 自然
- 自然语言处理
- 自然
- 一定
- 必要
- 需求
- 需要
- 网络
- 基于网络的
- 网络
- 神经网络
- 全新
- NLP
- 节点
- 节点
- 数
- 众多
- Nvidia公司
- 对象
- of
- 提供
- 提供
- 橄
- on
- 点播
- 一
- 打开
- 开放源码
- 开源代码
- 打开
- 机会
- 优化
- 优化
- 优化
- 附加选项
- 附加选项
- 管弦乐编曲
- 秩序
- 其他名称
- 己
- 包
- 包
- 纸类
- 文件
- 范例
- 并行
- 参数
- 参数
- 部分
- 特别
- 尤其
- 多情
- 过去
- 径
- 模式
- 高峰
- 性能
- 表演
- 允许
- 权限
- 物理
- 管道
- 地方
- 柏拉图
- 柏拉图数据智能
- 柏拉图数据
- 播放
- 点
- 池
- 矿池
- 热门
- 帖子
- 帖子
- 在练习上
- 做法
- 预测
- 喜好
- 首选
- 当下
- 礼物
- 防止
- 先前
- 校长
- 过程
- 过程
- 处理
- 生产
- 曲目
- 代码编程
- 编程语言
- 进展
- 项目
- 正确
- 提供
- 建议
- 所有权
- 协议
- 协议
- 提供
- 提供
- 提供者
- 优
- 国家
- 出版物
- 目的
- 放
- 蟒蛇
- pytorch
- 质量
- 提高
- 随机
- 罕见
- 率
- 价格表
- 达到
- 阅读
- 阅读
- 实现
- 合理
- 原因
- 接收
- 最近
- 建议
- 建议
- 记录
- 记录
- 恢复
- 减少
- 减少
- 减少
- 关于
- 地区
- 地区
- 定期
- 经常
- 有关
- 相应
- 可靠
- 远程
- 更换
- 代表
- 请求
- 要求
- 要求
- 需求
- 需要
- 研究
- 研究与创新
- 资源
- 资源
- 成果
- 评论
- 角色
- 角色
- 运行
- 运行
- sagemaker
- 同
- 保存
- 可扩展性
- 可扩展性
- 鳞片
- 秤
- 缩放
- 方案
- .
- 科学家
- 范围
- 脚本
- SDK
- 搜索
- 其次
- 秒
- 部分
- 寻求
- 选
- 选择
- 前辈
- 无服务器
- 服务器
- 服务
- 特色服务
- 集
- 设置
- 几个
- 分片
- 分片
- 共用的,
- 应该
- 显著
- 简易
- 简单
- 同时
- 单
- 尺寸
- 尺寸
- 技能
- 放慢
- 小
- So
- 软件
- 解决方案
- 一些
- 来源
- 来源
- 专家
- 具体的
- 特别是
- 指定
- 速度
- 花费
- 拆分
- Spot
- 稳定
- 堆
- 开始
- 开始
- 启动
- 初创企业
- 州/领地
- 统计
- 步骤
- Stop 停止
- 停车
- 存储
- 商店
- 故事
- 策略
- 流
- 流
- 实力
- 剥离
- 非常
- 研究
- 成功
- 成功案例
- 成功
- 这样
- SUPPORT
- 支持
- 支持
- 同步
- 句法
- 系统
- 表
- 采取
- 任务
- 任务
- 团队
- 文案
- tensorflow
- 谢谢
- 这
- 世界
- 其
- 他们
- 他们自己
- 理论
- 因此
- 博曼
- 第三方
- 数千
- 三
- 通过
- 吞吐量
- 次
- 时
- 秘诀
- 至
- 今晚
- 令牌
- 也有
- 工具
- 工具
- 最佳
- 合计
- 跟踪时
- 交通
- 培训
- 熟练
- 产品培训
- 翻译
- 运输
- 兆
- 类型
- 普遍
- 下
- 相关
- 理解
- 独特
- 单位
- 更新
- us
- 可用性
- 用法
- 使用
- 用户
- 平时
- 折扣值
- 价值观
- 各种
- 各个
- 确认
- 版本
- 通过
- 视频
- 查看
- 愿景
- 温暖
- 方法..
- 方法
- 周
- 井
- 什么是
- 这
- 而
- WHO
- 全
- 将
- 中
- 也完全不需要
- 话
- 工作
- 工作
- 工人
- 加工
- 合作
- 世界
- 写
- 书面
- 年
- 完全
- 您一站式解决方案
- 你自己
- YouTube的
- 和风网