AI宝库

AI宝库首页 › AI 资讯 › 为更快的 SageMaker AI 任务发布 SOCI 索引图像

为更快的 SageMaker AI 任务发布 SOCI 索引图像

来源:AWS ML Blog · 发布时间:10-28 · 由 AI宝库每小时自动聚合

可搜索的OCI(SOCI)为Amazon SageMaker AI的培训和处理工作编制索引,将完整的容器图像下载从关键路径中取出。 SageMaker AI 懒惰的我

人工智能

为更快的 SageMaker AI 任务发布 SOCI 索引图像

你的深层学习容器图像每分每分每分每分每分每分每分每分每分每分每分每分每分每分每分每分每分每分每分每分每分每分集装箱图像下载是纯高通:可计费的工作时间不会产生模型进度。 对于现代的深层学习图像来说,管理费是每个工作的几分钟。 SageMaker AI训练及Amazon SageMaker AI处理工作

通过SOCI索引,SageMaker AI懒惰地装入了你的容器图像。 它只获取启动容器所需的文件,并且在您代码运行时会流出背景中的其余部分,因此您的工作以秒而不是分钟开始。 您通过指代一个预索引的 AWS 深层学习容器( DLC) 或者在您自己的图像中添加一个索引来通过它。 两种方法都要求您修改工作定义、切入点或数据通道。 其结果是更快地开始工作,降低工作成本,花费更多的时间来建造模型,而不是等待基础设施。

SOCI-index化的图像在几秒钟内开始Amazon SageMaker AI训练容器,对训练性能没有影响。 正如我们所测量的部分所显示的,这把GPU在图像拉动时的闲置时间减少了90% 在我们的基准测试。

这篇文章显示如何通过 SOCI 索引:是什么,我们测量的结果,以及如何为自己的工作打开它。

挑战

SageMaker AI的培训和处理工作在Amazon弹性集装箱登记册(Amazon ECR)所储存的集装箱图像内进行。 在任务执行您的代码之前,服务会将整个图像下载到实例中。 它会解压,并将每一层写入磁盘。

对于小图像,这需要几秒钟。 但深层学习图像通常会超过10GB或以上。 下载新增分钟给每个工作,你支付它作为工作时间。 影响是最大的,具体而言,在迭代速度最紧要的地方:超参数调试扫荡上百个工作,快速实验,以及短处理工作,其中图像下载可以支配总运行时间。

SOCI如何编制索引

可搜索的OCI(SOCI)是一种开源技术,可以懒散地装载容器图像。 运行时间不是在开始前下载整个图像,而是使用一个SOCI索引,只获取容器发布所需的文件。 然后随着你的代码访问,它会流出背景中的其余部分。

一个 SOCI 索引是元数据,用于映射您图像中的每个文件。 你把它存放在Amazon ECR中,作为符合OCI要求的与你原始图像相联的文物。 由于索引是单独的文物,你的图像摘要和任何现存的签名仍然有效。

SageMaker AI 自动检查索引

当您创建培训或处理工作时,SageMaker AI 检查您指定的图像是否有 SOCI 索引,并相应行事:

因为工作总是在需要的时候会回到标准的下载,所以添加一个SOCI索引永远不会妨碍你的工作运行。 你只得到更快的启动。 你从不冒险打破现有的工作流程

我们衡量的

我们在真正的 SageMaker AI 训练工作上绘制了相同的容器图像:标准下载和SOCI索引的懒惰加载。 然后,我们从两个方面开展全面培训工作,以衡量对培训速度的影响。

设置

- 8个图像,1.8–35.4 GB压缩。

- GPU和CPU实例:ml.g4dn、ml.g5、ml.g6、ml.g6e、ml.g7、ml.g7e、ml.p4d、ml.p5和ml.m7i,从x大到48大,分布在美国西部(奥来贡)地区(西-2)和美国东部(北弗吉尼亚)地区(东-1)。

- 从图像拉动开始直到容器准备运行为止的下载时间。 所有数字均为重复运行的中位数。

结果 1:在每个图像大小下下载时间从分到秒

以下图表比较了容器图像下载时间,用于标准Docker拉出反SOCI懒惰地加载从1.8GB到35.4GB的8个图像尺寸。

每个图像大小为显示二条。 Docker下载时间栏(蓝色)随图像大小而稳步增长,从1.8GB的48秒到35.4GB的7分17秒。

每对显示上方的快取标签是Docker时间与SOCI时间之比。 速度从最小图像大约10x到最大图像超过35x不等。

标准的下载时间随着图像大小而增加,因为每个文件都被解压缩并被写入。 懒散的装载不管大小都停留在3–11秒,是一款8x–46x的改进。 图像越大,你节省的时间就越多。

成果2:每个实例类型和大小的节省都存在

在13个实例类型/大小组合中运行13.2 GB图像,标准下载范围从3分16秒到4分20秒不等,而懒惰的加载则维持在6-8秒。 每个配置都快34分您不需要更改实例类型或大小才能受益。

成果3:培训工作未受影响,超过头一个时期的惩罚

我们从Docker和SOCI指数化的图像中完成了两种完整的训练工作并且比较了每一个时代:

- 关于图像网的ResNet-50的图像分类(9 469个图像)

- 集装箱图像:PyTorch (13.2 GB DLC)和TensorFlow (9.9 GB DLC)

- 实例:ml.p5.48x大,ml.p4d.24x大,ml.g7e.48x大,ml.g7.48x大,ml.g6e.12x大,ml.g6e.24x大,ml.g6e.48x大。

- 大型语言模型(LLM) 微调:全参数导出微调 (SFT) Qwen2.5-0.5B 在平原上清理(51,760个实例) 有Hugging Face训练员。

- 集装箱图像:9.4 GB Hugging Face PyTorch DLC.

- 实例:ml.p5.48x大,ml.p4d.24x大,ml.g6.48x大。

以下图表将任务启动分解为图像下载时间和第一次培训时段,将标准Docker拉动与跨GPU和CPU配置的SOCI索引图像进行对比,以完成这两个工作量。

- 从第二个时期开始,每个时期的时间(在运行中的变化范围内)在每一情况下都是一样的,对两种工作量都是如此。

– 第一个时代需要从懒惰的图像中取出3–16 s 更长的时间,而文件框架第一次被取出。 头一个时期的成本在每一个实例大小上都是一样的。

- 网:每份工作提前1-6分钟完成。 即下载节省减去一次性的第一个时期成本,每个工作固定节省。

测试你自己的工作量

这些数字来自前面所述的两个工作量。 第一个时代的成本取决于您的图像和您的代码在启动时会碰到什么:

- 懒人加载在第一训练步骤只需要图像的一分之一时获胜,其余的溪流在训练时获胜。

- 如果您的入门点在训练开始前读取了大部分图像(例如扫描、检查或预装其内容),第一个时代将等待大约相同的字节,一个完整的拉出。 净改善不大。

- 我们的测试中仍然有前置开始:

——"火炬". 编译和正时(JIT)所建造的CUDA扩展器在第一个时代增加了7-15 s (净节省了3分25 s-3分56 s)

- 6GB型号在加载时间被烘烤入图像后将重量流出,增加了2-3.5分,但总体工作仍能更早地完成索引成像上的2-2.5分。

开始

您可以采用 SOCI 索引两种方式:使用预索引的 AWS 深层学习容器或为自己的自定义图像创建索引。

备选案文1:使用预索引的AWS深层学习容器

AWS发布多款受欢迎的深层学习容器的SOCI索引变体

预索引变体可用于PyTorch训练,TensorFlow训练,vLLM和SGLang,包括一些框架的arm64变体。 要采用懒惰的加载,请将工作定义中的图像标记更新到 -soci 变体。 浏览 AWS 深层学习容器图片库中的完整列表。

注意:如果您从 DLC 碱基图像构建自己的图像,您必须为您的最终图像创建 SOCI 索引。 来自基图像的索引不会延续到所衍生的图像。

选项2:为您自己的图像创建 SOCI 索引

要索引自定义图像,您需要Linux主机(如Amazon弹性计算云(Amazon EC2))实例运行 Amazon Linux 2023,并安装了容器,SOCI快照器,并安装了芬奇或书呆克ctl.

- 设定环境变量。

- 安装所需的工具。

- 认证到Amazon ECR。

- 拉出你最初的形象

- 创建SOCI索引图像。

- 推指数图像。

这在您的寄存器中创建了两种文物:SOCI索引和符合OCI的图像索引表,将您的图像与索引联系起来。 您的原始形象及其文摘保持不变。

CI/CD 自动创建索引

为了在每次推力上自动生成索引,部署CFN ECR SOCI索引构建器。 它使用Amazon EventBridge规则来检测Amazon ECR图像推力事件并构建索引。 您的建设管道不需要更改。

在 SageMaker AI 工作中使用索引图像

引用您 SOCI 索引的图像与您其他图像完全一样。 不需要修改 API。 只有标记不同。

培训实例( SageMaker Python SDK)

校验您的图像是否包含 SOCI 索引

在发布之前,请确认您的标记解析到索引图像:

寻找儿童名单,其文物Type从应用/vnd.amazon.soci.index开始。 与您的平台显示。 如果它不存在,标记不会指向有索引的图像。

要记住的事

- Amazon ECR 仅限私人存储器。 其他登记册中的图像,或者通过私人的Docker登记册取出(Training Repository Access Mode set to Vpc),不具备懒惰加载的资格。

- 有图像大小的改进尺度。 图像小于约4GB,可见相对较小的改进。

- 检查Docker的具体假设。 SOCI指数化的图像运行在一个基于容器的运行时间上。 审查密码的切入点和设置脚本,这些代码称Docker CLI,读作/var/run/docker.sock,或从cgroup路径得到标识符。 SageMaker AI 为后向相容性挂载了 /.dockerenv 标记,但避免添加新的依赖性。

- 所有AWS区都有SageMaker AI工作的SOCI索引。

结论

通过 SOCI 索引,您可以从您的 SageMaker AI 培训和处理任务中将容器图像下载时间最小化。 在您的图像中添加 SOCI 索引,或者切换到预索引的 AWS 深层学习容器。 无论哪种方式,你都将启动时间从分到秒,降低总的工作成本,并加快机器学习(ML)迭代周期。 而您现有的工作定义,API呼叫,和数据管道保持完全一致。

为了更多地了解Amazon SageMaker AI,并开始使用SOCI索引,探索以下资源:

- 选择一个SOCI指数化的深层学习容器。 浏览您图像标签中的“ 深层学习容器” 图片库和附件 - soci。 关于具体框架的指导,见AWS深层学习容器的SCI指数。

- 索引你自己的自定义图像。 遵循"SageMaker AI开发者指南"中的分步走过,或参考"SOCI快照"为高级选项启动的指南。

- 在你的CI/CD管道自动索引。 部署 CFN ECR SOCI 索引构建器,在每次图像推力上自动生成索引。 无需改变管道。

- 和芬奇进行局部测试利用芬奇懒散的穿行来验证你的形象在一个基于容器的运行时间在你提交工作之前。

- 潜入科技深处使用 DLAMI 上的 SOCI 索引和 AWS 机器学习 Blog 上的 DLC 来读取容器冷启动时间,或在引擎盖下探索:在 AWS 容器 Blog 上用可搜索的 OCI 和 AWS Fargate 来装入懒惰的容器图像,以详细了解懒惰装入机制。

更快的容器启动只差一个图像标记。 试试下次SageMaker AI的工作,看看区别

本文由 AI宝库自动抓取并翻译,版权归原作者所有;如需查看原文请点下方链接。

相关 AI 工具

相关免费羊毛

同源资讯

阅读原文(aws.amazon.com)

标题、摘要与正文均来自该信源的公开页面,版权归原作者所有;本站自动聚合与翻译,仅作出处跳转。

← 返回 AI 资讯列表AI工具图鉴首页

返回 AI宝库首页 · 提交工具 · 商务合作 · 关于本站 · 593 款 AI 工具分类导航 · 每日 AI 热门项目与动态