top of page

SageMaker AI SOCI 索引将镜像下载移出启动路径

3小时前
讀畢需時 13 分鐘

Amazon 推出了面向训练和处理作业的 SageMaker AI SOCI 索引,让容器无需等待完整镜像下载完毕即可启动。该功能于 10 月 27 日发布,旨在解决一个常见痛点:有用计算开始前,必须等待基础设施准备就绪。SOCI 是 Seekable OCI 的缩写,可提供元数据,使容器能够按需获取镜像内容。

核心变化在于操作顺序。容器镜像,即作业所需的软件环境打包内容,不再必须在执行启动前完整到位。这一变化挑战了传统的“先下载、后运行”方式,同时无需团队重新设计其机器学习实验。

此前已有先例,包括 Amazon 的托管容器计算服务 AWS Fargate。此次的重要性在于,这种方式被引入托管训练和处理场景。对平台工程师而言,关键问题变成:在实际工作负载中,更早开始执行是否能带来更早的结果。

SageMaker AI SOCI 索引改变作业可开始的时机

此次公告改变的是启动依赖,而非模型的底层计算。

根据 AWS 的 SOCI 索引镜像公告,该功能支持跨 AWS 区域的训练和处理。符合条件的镜像必须位于 Amazon 的容器镜像仓库 Amazon ECR 私有仓库中。私有 Docker registry 访问模式不在支持范围内。SageMaker 会检查是否存在索引,并在必要时回退至传统下载方式。

这一适用范围很重要,因为“更快的作业”可能指代多种不同改进。更快的处理器可缩短计算时间,更好的算法可减少所需工作量,而更早的容器执行则处理的是工作开始前的等待时间。

这些改进应在不同的工程讨论中看待。评估模型质量的团队不应将基础设施优化视为预测结果更好的证据。不过,平台团队确实有理由研究任何能够消除重复延迟的变化。

以一个示例性的开发流程为例:工程师提交实验,等待初始化,发现配置错误后再提交修正后的运行。模型并不需要那次失败尝试,但工程师仍然经历了其启动延迟。

即使最终训练运行保持不变,缩短这段延迟也能改善反馈循环。这是运营层面的推断,并非 AWS 报告的客户结果。其价值取决于团队重复这一过程的频率。

此次公告也改变了应当测量的内容。仅显示应用程序执行时间的仪表板,会遗漏应用代码可用之前的时间区间。仅显示容器就绪状态的仪表板,则会遗漏后续的一切。

因此,有效评估需要明确区分不同边界。团队应将提交、基础设施准备、应用初始化、有效计算和完成分开衡量。即使服务将它们集中呈现,这些标签描述的也是用户等待时间的不同部分。

这种区分可以避免一个常见误解:将工作推进到容器启动边界之后,并不一定意味着它从作业中消失。有些工作可以与执行重叠;另一些工作则会在请求时继续阻塞应用程序。

因此,相关对比应是“先完整下载再执行”与“镜像仅部分可用时便开始执行”,而不是机器学习框架之间的竞争,也不是对打包工作已不再重要的宣称。

SageMaker 容器启动值得关注,因为它位于工程师作出决定与获得下一次决策所需证据之间。当这段时间反复打断持续工作时,实际收益会更大。

该功能还为基础设施负责人提供了更具体的优化目标。他们不必只问整个环境为何显得缓慢,而可以分析其中有多少等待来自软件包的准备过程。

这个更聚焦的问题让此次公告具备可操作性。它指出了一种无需改变实验科学目标、即可被隔离、测量和比较的延迟。

短时实验让启动开销受到更严格审视

最有力的运营理由来自反复等待,尤其是每个作业执行的有效工作相对较少时。

节省固定时间的优化,在不同工作负载中的意义不同。对于长时间训练运行,该时间在总完成时间中所占比例较小。对于简短的验证任务,它却可能主导整体体验。

这一区别解释了为何平台团队应分别评估不同作业类别。全组织平均值可能掩盖初始化占等待时间最大比例的工作流程,也可能夸大其对计算占主导地位工作负载的相关性。

压力首先落在负责共享执行环境的工程师身上。他们选择打包规范、维护支持的镜像,并调查有关实验缓慢的投诉。更早执行为这项职责增加了另一个选项。

应用开发者面临相关问题:程序在有用工作开始前必须读取什么?当启动行为变得可见时,在已经准备好的环境中看似无害的依赖项就值得更仔细地审视。

处理工作流可以说明这一点。假设一个作业加载环境、转换少量输入,并写出结果。其业务价值取决于完成的输出,而不只是转换过程持续多久。

如果环境准备占据了大量耗时,优化转换过程可能针对了错误的瓶颈。正确的第一步调查应是比较准备时间与有效执行时间。

同样的推理也适用于实验。更快的反馈并不会自动改善模型,但会改变开发人员排除失败配置的速度。它可以让一次工作会话更富成效,而无需改变模型数学原理。

财务解读同样需要谨慎。更短的经过时间可以支持效率论证,但组织应根据自身账单记录计算节省。仅凭容器就绪度比较,无法证明组织最终的支出减少。

团队还应区分汇总资源时间和项目经过时间。并行作业可能消耗更少的合计资源时间,却不会缩短项目中最长的依赖链。顺序实验则可能将更早的结果直接转化为更早的下一步。

两种结果都不必然更有价值。它们为不同负责人回答不同问题。财务团队关注可测量的消耗,而研究人员通常关注从提交一个想法到看到证据之间的时间。

因此,在评估中,SageMaker 容器启动应与完成时间并列,而不是替代它。两项指标之间的关系揭示了这项优化是否改善了用户实际体验的工作流程。

这也带来优先级上的影响。团队应在追逐宣传中最大加速比之前,先调查反复出现的延迟。一个高频工作流程中的适度改进,可能比罕见场景中的显著结果更重要。

这一判断需要盘点实际作业。识别哪些工作流程会重复、哪些等待会打断持续工作,以及哪些任务的大部分时间本就花在计算上。

此次公告促使人们更精确地提出这些问题。它并不能证明每条现有流水线都需要立即迁移,也不能证明镜像交付是每个团队最大的瓶颈。

延迟加载重新安排交付顺序,而不是消除交付

该机制通过在完成整个包交付之前提供选定镜像内容来发挥作用。

AWS 对 容器镜像延迟加载 的说明描述了其底层方法。负责管理容器文件系统的组件 snapshotter 使用已索引的元数据定位所需内容。它在后台活动将更多镜像数据带入本地存储的同时,获取相关的压缩部分。

AWS 于 2023 年 7 月记录了 Fargate 对 SOCI 的支持。这段历史证明了该机制此前的应用,而非对新 SageMaker 结果的独立验证。

重要含义在于,交付与执行可以重叠。系统无需在允许应用程序开始前完成每一种可能依赖项的准备。

可以将其类比为直接翻开参考书的相关章节,而不是阅读此前的每一页。所需信息仍然存在于其他位置,优势来自以符合当前任务的顺序访问它。

软件带来了这一类比未能涵盖的复杂性。应用程序可能请求意外依赖项、导入另一个库,或在初始化期间检查文件。每一次请求都会改变接下来必须可用的内容。

这使启动行为同时成为镜像和应用程序的属性。仅凭包大小无法描述执行会立即需要哪些内容。两个大小相近的环境可能具有不同的初始访问模式。

这也是为何不应将更早执行与减少总数据传输混为一谈。即便大量数据仍会在之后到达,交付策略也可以通过改变时机改善响应速度。

这种区别对工程决策很重要。试图降低存储消耗的团队,需要采用与试图缩短启动延迟(即有效执行前的等待时间)团队不同的测量方法。

Google 通过 GKE 镜像流式传输 提供了相关对比。Google Kubernetes Engine 会在应用程序请求时流式传输符合条件的镜像数据,并在后台下载镜像。其文档也警告,大量初始化读取可能会降低收益。

这些服务面向不同的运行环境,因此这些文档不支持直接的性能排名。但它们展示了相同的架构回应:避免将完整镜像交付作为执行的通用前提条件。

这一行业背景支持的结论,比云服务商之间的竞争更为收窄。选择性交付是一项成熟的基础设施技术,其有效性取决于工作负载的访问模式。

对采购方而言,有用的比较在于运营适配性。哪个环境已经承载该工作负载?适用哪些镜像仓库和运行时要求?哪些证据表明更早执行能够持续转化为更早完成?

因此,SageMaker 延迟加载应作为镜像交付中的调度变化进入架构讨论。它改变的是依赖项相对于应用活动的到达时机。

它并不能免除维护依赖项、审查软件内容或理解初始化过程的需要。事实上,当团队希望解释为何某个应用比另一个应用获益更多时,这些实践会变得更有价值。

这一机制首先奖励对执行所需条件的清晰理解。这为平台工程师提供了具体依据,使其能够超越镜像大小这一醒目指标来解读结果。

基准测试区分了更早启动与更快训练

AWS 报告的结果表明,准备等待时间有所缩短,但总作业时长的改善较小。

AWS 测试了八个压缩后大小介于 1.8–35.4 GB 的镜像。其中最大的示例在容器就绪前的时间从 7 分 17 秒降至 3–11 秒。在完整训练测试中,首个 epoch,即对训练数据的一轮遍历,耗时增加了 3–16 秒。后续 epoch 的差异处于运行波动范围内,而作业整体提前了 1–6 分钟完成。

这些是公司自行报告的测量结果,并非独立复现的结果。其适用边界与数值本身同样重要。准备时间的大幅减少,并不意味着完整训练会获得相同比例的缩短。

这些结果描述了一种变化:部分等待被转移到了早期执行阶段,同时执行前的等待时间获得了更大幅度的减少。这与该机制相符。应用程序会更早启动,然后遇到一些仍需传输到位的内容。

读者不应将这种关系视为普遍承诺。基准测试只能证明其测试条件下的行为。更广泛的采用需要证据表明,同样的模式能在不同环境和应用初始化序列中成立。

一个有用的审慎问题是:第一个有价值的结果是否会更早到来?容器就绪固然有价值,但用户最终需要的是完成的转换、训练检查点或其他有意义的输出。

答案可能因工作流而异。一个应用可能看似已具备响应能力,却仍需花费额外时间进行初始化。另一个应用则可能几乎立即开始有效计算,并将大部分剩余传输与该计算重叠进行。

因此,评估应保留完整的时间序列。记录容器何时可用、有用工作何时开始,以及作业何时完成。在等效条件下比较这些边界。

等效条件尤其值得关注。一项同时更改应用代码、镜像内容或输入数据的比较,无法清晰隔离交付策略的影响。它仍可能具有参考价值,但解释结果时的不确定性会更高。

重复测量也优于挑选一次异常有利的运行结果。基础设施性能存在波动,而可靠的改进在运营层面的价值高于孤立的最佳表现。

团队应同时审视较慢的结果与典型结果。一种策略如果改善了通常体验,却引入不可预测的等待,其推广决策应不同于同时改善两者的策略。

正确性也应纳入同一评估。若应用生成不完整的产物或改变预期行为,更早完成就价值有限。性能验收应与现有的成功输出检查一并进行。

这里审阅的来源证据并未证明其在所有处理工作负载中的性能。训练测量结果不应仅因无关应用同样能使用容器,就被泛化为对其的全面主张。

应在保留这一差别的前提下评估 SageMaker lazy loading。所报告的基准测试提供了测试某个工作负载的理由,而工作负载本身则提供部署所需的证据。

因此,最有力的结论是具体的:AWS 报告称,准备时间获得了显著减少,并最终体现为更短的完整训练作业。该收益的程度仍是一个应用层面的问题。

采用后,关注点转向镜像发布管理

简单的作业引用背后,可能隐藏着更重要的责任:准备并验证所引用的镜像。

AWS 的索引容器指南指出,受支持的 Deep Learning Containers(即 AWS 维护的机器学习环境)带有 -soci 标签后缀。它列出了 PyTorch Training、TensorFlow Training、vLLM 和 SGLang 选项。该指南还区分了索引清单版本,即描述索引如何关联其镜像的元数据结构。

在采用方面,AWS 提供预先建立索引的容器,或为自定义镜像建立索引。作业接口保持熟悉,只是镜像引用发生变化。基于已建立索引的基础镜像派生出的最终镜像,需要拥有自己的索引。

这一差别应塑造对“无需改动”的预期。避免采用新的作业接口,并不意味着无需进行发布工作。仍然需要有人选择镜像、验证其适用性,并决定如何推广它。

对于使用现有受支持环境的团队,评估可以聚焦于高度匹配的镜像变体。对于维护自身环境的团队,索引会成为另一个需要跟踪的发布产物。

发布产物是指为部署而准备的打包输出。以这种方式对待索引,能让它拥有负责人并被纳入验证流程,而非沦为可选的手动步骤。

仅靠命名约定不足以证明已准备就绪。标签向人传达意图,而注册表中的内容决定运行时实际能够使用什么。发布审查应考虑这一差别。

在固定版本与自动更新的引用之间做选择也值得关注。可复现性与快速维护相互关联,但优先级不同。团队应有意识地做出这一决定,而非从示例中照搬。

本地验证提供了另一条有用的边界。开源容器开发客户端 Finch 记录了使用 SOCI 进行本地 lazy loading的方法。其说明要求启用相关 snapshotter,并在运行容器时明确选择它。

这项本地检查可帮助在托管作业运行前研究应用行为。它无法证明在不同环境中会有相同的性能。云端工作负载仍需要进行自己的完成时间比较。

兼容性审查也依然必要。AWS 提醒,已建立索引的 SageMaker 路径使用 containerd(一种容器运行时),而依赖 Docker 特有行为的脚本需要接受检查。

实际应对方式是有针对性的审查,而不是假定每个容器都不兼容。检查初始化脚本及其依赖项,然后在预期运行时下执行预定的应用路径。

工程文档可以让这一过程更容易重复。记录准确的镜像引用、验证条件、观察到的时间数据和推广决策。这些细节使另一位工程师无需重新构建实验,也能理解发生了哪些变化。

整理这些记录的团队可以使用可搜索的工程知识库。其中有价值的关联在于保留技术证据,尤其是在后续镜像发布需要重新验证时。

SageMaker AI SOCI indexing 应作为一项经过测量的基础设施选项纳入发布流程。其运营质量既取决于可复现的准备与审查,也取决于最初的标签变更。

这种框架使采用保持适度。先从具有代表性的工作负载开始,建立验收标准,并在所得证据支持时扩大使用范围。

关注完成时间、发布覆盖范围与启动行为

下一项有价值的证据是,这种改进能否在真实发布和具有代表性的工作负载中持续存在。

未来几个月,第一个值得关注的信号是对完整作业时长的独立报告。应优先参考披露镜像、工作负载、比较条件和测量边界的报告。

持续更早完成将增强扩大使用范围的理由。若报告仅显示容器更早就绪,则能证明的内容较少,特别是在应用初始化吸收了这一差异时。

一份有用的报告还应区分成功执行与成功优化。作业可以生成正确输出,却并未证明经过时间有任何显著减少。这两项发现都应保留其可见性。

第二个信号是对团队实际部署环境的覆盖范围。受支持的框架版本和维护良好的自定义镜像,比存在一个令人印象深刻的演示镜像更重要。

常规发布中可靠的索引能力将加强其运营价值。若某项优化在日常维护中反复消失,那么在广泛采用前将需要额外的发布工程工作。

这一信号关乎流程连续性,而非承诺的产品截止日期。AWS 并未为每个组织偏好的镜像提供统一时间表。买方在评估自身环境时应检查当前可用性。

第三个信号是将启动访问模式与测量结果联系起来的证据。团队需要了解哪些应用可以在依赖有限时开始有用工作,哪些则需要大量准备。

能够解释这些差异的结果,会使 SageMaker AI SOCI indexing 更易于在全面推广前进行评估。无法解释的变化则会降低广泛性能承诺的参考价值。

这些信号也明确了平台负责人应向内部评估索取什么。一项“启动更快”的主张需要定义边界。一项“资源消耗更低”的主张需要测量消耗量。一项“开发者体验更好”的主张需要与工作流建立联系。

最后一点很容易被忽视。无人值守的作业与交互式实验可能拥有类似的技术时间数据,却会对一个人的一天产生不同影响。评估应反映是谁在等待,以及为何等待。

因此,SageMaker 容器启动是一项有用的测量指标,但它应放在对有效执行的更广泛描述中。它应帮助解释用户体验,而非替代用户体验。

没有必要将这一公告变成立即迁移的指令。它的价值在于提供了一个具体机会,可用不同的交付策略审视一种反复出现的延迟来源。

选择一个初始化过程反复打断有效工作的工作负载,然后将其当前镜像路径与符合条件的已建立索引替代方案进行比较。保持应用代码和输入一致。记录就绪、有用执行、完成和输出正确性,以便这一比较回答实际问题。将镜像引用和条件与结果一并保留,并在环境变化时重复评估。如果更早启动也带来更早可用的输出,可考虑将 SageMaker AI SOCI indexing 扩展到类似作业。若没有,则应在扩大采用前调查等待时间转移到了何处。哪一项重复性作业最能为你的团队提供关于更早启动价值的清晰证据?

 
 

免费开始使用

一款本地优先的AI助手

为了获得更好的人工智能体验,

remio 目前仅支持Windows 10+ (x64)和M-Chip Mac 。

你的 AI 工作伙伴

和 remio 一起高效工作

规划、创作、交付

一站式完成

bottom of page