ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

DeepSpeed v0.19.5正式发布:聚焦ZeRO稳定性、卸载能力与Torch兼容性的关键修复

DeepSpeed v0.19.5正式发布:聚焦ZeRO稳定性、卸载能力与Torch兼容性的关键修复 DeepSpeed v0.19.5 已于 2026 年 8 月 18 日发布。本次版本更新没有围绕新增功能展开而是集中处理版本维护、工作流、依赖兼容性、ZeRO 系列能力、梯度卸载、内存固定以及编译问题等内容。从更新条目来看v0.19.5 的重点非常明确一方面完善发布与自动化流程另一方面持续修复分布式训练、参数分片、梯度卸载、模型并行转换等场景中的稳定性问题。对于使用 ZeRO、ZeRO-Offload、ZeRO、AutoEP 以及较新 Torch 版本的用户来说这一版本中的修复具有直接意义。一、版本发布后的版本信息同步本次更新首先完成了上一版本发布后的version.txt更新。版本文件虽然看起来是一个较小的维护项但它承担着版本标识同步的重要作用。发布一个新版本后仓库中的版本信息需要保持一致避免源码版本、构建版本、发布版本以及后续开发状态之间出现不匹配。在 v0.19.5 中相关版本文件已在 v0.19.4 发布之后完成更新。这意味着当前代码库中的版本标识能够与新的发布节奏保持对应也为后续构建、打包、安装和版本识别提供了明确基础。对于依赖版本号进行环境确认、构建流程管理或问题定位的用户来说版本信息一致性是基础环节。此次更新将这一基础维护工作纳入发布内容确保版本状态更加清晰。二、恢复自定义 DCO 工作流v0.19.5 恢复了自定义 DCO 工作流。DCO 工作流属于代码贡献流程中的一部分用于配合项目的提交与贡献管理。此次恢复自定义 DCO 工作流意味着相关流程重新回到项目原有的自定义实现方式。从维护角度看工作流并不直接改变模型训练逻辑也不直接改变 ZeRO、卸载、通信或编译行为但它关系到代码贡献过程中的规范执行与自动化检查。对于持续迭代的大型训练系统项目而言贡献流程的稳定性同样重要。DeepSpeed 的代码库包含多个涉及运行时、分布式训练、内存管理、模型并行和工具链兼容性的模块。恢复自定义 DCO 工作流有助于让相关开发与提交流程保持连续避免流程层面的变化影响项目维护节奏。三、更新工作流中的 Actions 版本本次版本还更新了工作流使用的 Actions 版本。工作流中的 Actions 是自动化流程的重要组成部分通常参与持续集成、检查、构建、验证等任务。随着 Actions 版本变化项目中的自动化工作流也需要同步更新以维持工作流配置与依赖版本的一致性。这一项更新聚焦于工作流环境本身而不是训练功能。它反映出 v0.19.5 不仅关注运行时问题也同步处理工程化维护事项。对于项目维护而言自动化工作流中的依赖版本长期不更新可能会造成工作流配置与执行环境之间的不一致。此次更新工作流中的 Actions 版本使相关自动化流程能够继续使用更新后的版本配置。结合前面的自定义 DCO 工作流恢复可以看到v0.19.5 在工程流程层面进行了两项调整恢复自定义 DCO 工作流更新工作流中的 Actions 版本这两项内容共同覆盖了贡献流程与自动化工作流依赖两个方向。四、避免单个 Op Builder 兼容性探测影响 DeepSpeed 导入v0.19.5 修复了一个与 Op Builder 兼容性探测有关的问题不再让某一个 Op Builder 的兼容性探测结果破坏deepspeed的导入过程。DeepSpeed 中的 Op Builder 与扩展、算子构建及兼容性判断相关。在不同系统环境、不同编译配置、不同依赖组合下某些算子的兼容性探测可能无法通过。此前如果单个 Op Builder 的兼容性探测出现问题可能进一步影响deepspeed的整体导入。此次修复的核心是将单个兼容性探测的影响范围进行控制避免其扩展为整个 DeepSpeed 包无法导入的问题。这一调整尤其重要因为导入是使用框架的起点。即使某一个可选组件、可选算子或兼容性探测无法满足条件也不应让整个框架的导入过程被单点问题阻断。本次修复后的逻辑重点可以概括为单个 Op Builder 的兼容性探测不再扩大为整体导入失败deepspeed导入过程不再被一个探测问题直接破坏算子兼容性判断与框架整体可导入性之间的关系得到修正这项修改并不是新增算子也不是改变算子能力而是修复导入阶段的异常影响范围。五、修复 ZeRO 在小参数场景下的次级分片副本问题本次更新修复了 ZeRO 在小参数场景下的次级分片副本问题。ZeRO 涉及参数分片相关能力而“次级分片副本”则对应其分片数据处理中的一个具体环节。此次问题的触发条件与小参数有关即参数规模较小时次级分片副本的处理存在需要修复的情况。小参数并不意味着可以忽略。模型中通常可能同时包含较大参数和较小参数分片策略需要对不同大小的参数都保持正确处理。尤其在参数分片、复制与存储管理过程中小参数往往更容易暴露边界条件问题。v0.19.5 对这一问题进行了修复覆盖的重点是ZeRO 的次级分片副本处理小参数对应的处理路径参数分片副本在特定规模下的正确性此次变更没有描述新的 ZeRO 配置项也没有引入新的参数分片机制。它处理的是已有 ZeRO 逻辑在小参数条件下的修复需求。对于使用 ZeRO 的场景而言这项更新意味着小参数参与次级分片副本处理时相关逻辑获得了针对性修正。六、修复 ZeRO-3 异步梯度卸载与固定卸载缓冲区问题v0.19.5 中一项重要修复聚焦于 ZeRO-3修复异步梯度卸载并默认使用固定的卸载缓冲区。这一项内容同时涉及三个关键词ZeRO-3异步梯度卸载固定的卸载缓冲区ZeRO-3 是 DeepSpeed 中的重要分片阶段之一。梯度卸载则与训练过程中的梯度数据处理相关。异步梯度卸载表示卸载过程采用异步方式进行而卸载缓冲区则是这一过程中使用的数据缓冲区域。本次更新明确指出修复了 ZeRO-3 的异步梯度卸载问题并将固定的卸载缓冲区设为默认行为。“默认使用固定的卸载缓冲区”是此次条目中需要重点关注的部分。固定内存通常与主机侧内存固定相关而这里的变更直接作用于卸载缓冲区的默认设置。也就是说在相关 ZeRO-3 异步梯度卸载流程中固定卸载缓冲区将成为默认选择。这一修复覆盖的不是普通梯度计算本身而是梯度卸载路径中的异步处理与缓冲区配置。其内容可以拆分理解为对 ZeRO-3 异步梯度卸载逻辑进行修复对卸载缓冲区的使用方式进行调整将固定的卸载缓冲区作为默认设置让异步梯度卸载与默认缓冲区配置保持一致需要注意的是这一项更新的范围明确集中在 ZeRO-3 的异步梯度卸载路径中。更新内容没有描述新的训练策略也没有描述新的卸载模式而是对已有卸载能力进行修复与默认配置调整。七、修复 AutoEP 的 ZeRO-1 与 ZeRO-2 通用转换v0.19.5 修复了 AutoEP 在 ZeRO-1 和 ZeRO-2 下的通用转换问题。AutoEP、ZeRO-1、ZeRO-2 与通用转换共同构成了这一更新条目的核心。此次修复覆盖的范围并非单独的 ZeRO-1也不是单独的 ZeRO-2而是 AutoEP 中面向这两个阶段的通用转换逻辑。ZeRO-1 和 ZeRO-2 是不同的 ZeRO 阶段对应不同的状态处理与分片方式。通用转换需要能够在相关场景中正确完成对应处理。此次更新针对 AutoEP 的 ZeRO-1 与 ZeRO-2 通用转换进行了修复说明相关转换路径此前存在需要调整的地方。该项修复可以归纳为以下几个层面修复 AutoEP 相关逻辑覆盖 ZeRO-1 使用场景覆盖 ZeRO-2 使用场景聚焦通用转换过程这里的重点不是增加新的 AutoEP 功能而是确保现有 AutoEP 在 ZeRO-1 和 ZeRO-2 场景下的通用转换能够按照预期进行。对于同时涉及 AutoEP 和 ZeRO-1、ZeRO-2 的用户来说这项修复直接针对转换链路。由于转换本身连接不同处理状态因此该类问题的修复对于保持相关流程正确性具有明确价值。八、修复 Torch 2.12 及更高版本的编译错误本次版本修复了 Torch 2.12 及更高版本中的编译错误。随着 Torch 版本持续演进编译环境、接口、构建行为或相关依赖关系可能发生变化。DeepSpeed 需要与新的 Torch 版本保持兼容特别是在涉及编译的场景中版本差异可能直接导致构建失败或编译报错。v0.19.5 明确处理了 Torch 2.12 及更高版本中的编译错误。这意味着该版本针对新版本 Torch 环境下的编译问题进行了修复。这项更新的范围十分明确针对 Torch 2.12同时覆盖更高版本的 Torch修复发生在编译阶段的问题对于正在使用或计划使用 Torch 2.12 及以上版本的用户来说这一修复是本次版本中非常直接的兼容性调整。它不涉及模型结构变化不涉及 ZeRO 配置变化也不涉及训练策略改动而是围绕 DeepSpeed 与新版本 Torch 的编译兼容性展开。从发布内容可以看出DeepSpeed v0.19.5 对较新 Torch 版本的支持问题进行了及时处理使编译相关流程获得修复。九、将原生主机固定内存拆分为独立的 pin_memory 算子v0.19.5 将原生主机固定内存能力拆分为独立的pin_memory算子。这一项变更涉及“原生主机固定内存”以及独立的pin_memory算子。此前与原生主机固定内存相关的能力现在被拆分为单独的操作。从命名上看pin_memory直接对应固定内存操作。此次调整将其作为独立算子进行拆分使这一能力在结构上更加明确。这一更新的核心不是简单修改默认参数而是对相关操作进行独立化处理原生主机固定内存不再仅作为其他逻辑中的一部分固定内存相关能力被拆分出来新的独立操作名称为pin_memorypin_memory用于承载原生主机固定内存操作这一改动与前文提到的“固定的卸载缓冲区默认启用”存在关联上的主题一致性二者都涉及固定内存与卸载处理但发布条目所描述的改动位置不同。前者聚焦于 ZeRO-3 异步梯度卸载中的默认卸载缓冲区设置后者则聚焦于原生主机固定内存能力的操作拆分。一个是具体卸载路径中的修复与默认配置另一个是固定内存操作的结构化拆分。因此在理解 v0.19.5 时这两项内容应分别看待ZeRO-3 异步梯度卸载修复并默认使用固定卸载缓冲区原生主机固定内存能力拆分为独立pin_memory算子十、为非托管梯度累积增加 ZeRO Offload 支持本次更新还为非托管梯度累积增加了 ZeRO Offload 支持。这一项内容由三个部分组成非托管梯度累积ZeRO Offload支持关系的增加梯度累积是训练过程中的一个重要环节而本次更新具体指向“非托管梯度累积”。此前ZeRO Offload 在这一场景中的支持存在缺口v0.19.5 则补充了这一支持。需要注意的是该条目描述的是支持范围扩展而不是一般性修复。它明确表示当使用非托管梯度累积时ZeRO Offload 现在得到支持。这一变更可以直接概括为非托管梯度累积场景获得 ZeRO Offload 支持ZeRO Offload 的适用范围扩展到该梯度累积路径非托管梯度累积与 ZeRO Offload 之间的组合得到覆盖结合本次版本中关于异步梯度卸载、固定卸载缓冲区以及pin_memory算子的更新可以看到v0.19.5 在卸载与内存处理相关方向上包含多项内容。这些内容分别对应不同层面ZeRO-3 的异步梯度卸载修复固定卸载缓冲区默认启用原生主机固定内存拆分为pin_memory算子非托管梯度累积支持 ZeRO Offload它们并非重复更新而是分别作用于梯度卸载、缓冲区默认设置、主机固定内存操作以及梯度累积支持范围。十一、v0.19.5 更新内容完整梳理DeepSpeed v0.19.5 的更新内容可以完整归纳为以下十项在 v0.19.4 发布后更新version.txt恢复自定义 DCO 工作流更新工作流中的 Actions 版本避免某一个 Op Builder 的兼容性探测导致deepspeed导入失败修复 ZeRO 在小参数情况下的次级分片副本问题修复 ZeRO-3 异步梯度卸载并默认使用固定的卸载缓冲区修复 AutoEP 在 ZeRO-1 与 ZeRO-2 下的通用转换问题修复 Torch 2.12 及更高版本的编译错误将原生主机固定内存拆分为独立的pin_memory算子为非托管梯度累积增加 ZeRO Offload 支持十二、总结代码地址github.com/deepspeedai/DeepSpeedDeepSpeed v0.19.5 是一次以修复、兼容性与工程维护为主的版本更新。在工程流程层面本次版本更新了版本文件、恢复了自定义 DCO 工作流并升级了工作流中的 Actions 版本。在框架导入与构建兼容性层面v0.19.5 避免单个 Op Builder 的兼容性探测影响deepspeed导入同时修复了 Torch 2.12 及更高版本下的编译错误。在 ZeRO 相关能力层面本次版本修复了 ZeRO 小参数的次级分片副本问题修复了 ZeRO-3 异步梯度卸载问题修复了 AutoEP 在 ZeRO-1 与 ZeRO-2 下的通用转换问题并为非托管梯度累积增加了 ZeRO Offload 支持。在内存与卸载处理层面v0.19.5 默认使用固定的卸载缓冲区同时将原生主机固定内存拆分为独立的pin_memory算子。整体来看DeepSpeed v0.19.5 没有遗漏分布式训练框架运行中常见的关键环节从导入、编译、工作流到 ZeRO 分片、梯度卸载、固定内存和梯度累积均包含对应调整。对于关注 DeepSpeed 稳定性、Torch 新版本编译兼容性、ZeRO 系列能力以及卸载路径的用户而言这一版本值得重点关注。
返回列表