DeepSpeed v0.19.3发布:ZeRO-3、AutoEP、DeepCompile、推理与训练稳定性全面升级

📅 2026/7/26 2:29:36
DeepSpeed v0.19.3发布:ZeRO-3、AutoEP、DeepCompile、推理与训练稳定性全面升级
DeepSpeed v0.19.3 是一次覆盖训练稳定性、ZeRO 优化、自动并行、DeepCompile、推理能力、量化压缩、日志与类型提示、CI 流程以及文档维护的补丁版本更新。此次更新的核心方向非常明确一方面持续修复 ZeRO-3 在混合精度、参数聚合、激活检查点、模块 Hook 等复杂训练场景中的问题另一方面增强 AutoEP、AutoTP、Hybrid Engine、Inference V2 等新能力。同时版本还针对 Muon 优化器、梯度缩放、学习率调度器、通信日志、文件描述符、共享内存缓冲区等多个稳定性细节进行了修复和校验。一、版本发布与工程流程更新v0.19.3 首先完成了发布后的版本号更新确保代码仓库中的版本信息与正式发布版本保持一致。在工程协作和持续集成方面此次更新新增了合并队列的 DCO 工作流并进一步让该工作流兼容 Probot。这样可以让合并流程中的开发者签署认证流程更加完善。CI 流程也获得多项改进在工作流被取消时停止已经过时的 CI 任务避免无效任务继续占用资源。增加基于差异内容驱动的测试选择机制根据代码变更范围选择对应测试。将 AlexNet 测试中的 CIFAR 数据切换为合成数据。更新 CI 徽章展示。移除文档中“并行构建扩展”的建议。这些更新主要集中在测试选择、任务取消、测试数据与工程文档等方面。二、混合精度与梯度缩放更新混合精度训练是 DeepSpeed 的重要能力之一v0.19.3 对 fp16、bf16 与梯度缩放相关行为进行了补强。首先版本增加了对 fp16 动态损失缩放参数的输入校验。相关参数必须为正数从而避免无效配置进入训练过程。在 bf16 场景中check_grad_overflow现在默认启用与 fp16 的行为保持一致。该更新使 bf16 和 fp16 在梯度溢出检查上的默认行为更加统一。默认梯度裁剪参数也发生变化gradient_clipping1.0也就是说gradient_clipping的默认值调整为1.0。此外版本修复了流水线阶段中梯度被重复缩放的问题。该修复涉及多流水线阶段下的梯度缩放行为可避免同一梯度在不同阶段出现重复缩放。针对学习率调度器v0.19.3 还增加了输入校验并修复了 WarmupCosineLR 的一个边界问题当total_num_steps等于warmup_num_steps时原有计算可能触发除零错误现在该情况已被保护。保存检查点接口和 warmup 学习率调度器也增加了输入验证以提升参数配置的可靠性。三、ZeRO-3 迎来多项关键修复ZeRO-3 是本次更新最集中的模块之一多个修复都围绕参数聚合、混合数据类型、量化缓存、Hook、激活检查点和检查点机制展开。在_allgather_params_coalesced中输出缓冲区现在使用每个参数自身的数据类型而不是依赖统一的数据类型。这一改动解决了混合参数数据类型场景下输出缓冲区类型不匹配的问题。与之对应量化 scale 缓冲区同样改为使用每个参数自己的数据类型。这样参数聚合过程中的输出缓冲区与量化 scale 缓冲区都能够正确适配参数本身的数据类型。针对自动混合精度v0.19.3 修复了 ZeRO-3 在混合参数数据类型下进行 autocast gather 的问题。该修复进一步完善了 ZeRO-3 与混合精度参数组合使用时的参数收集逻辑。在 DeepCompile 相关场景中如果 Dynamo 跳过某些帧ZeRO-3 的参数 gather 逻辑此前可能出现问题。本次更新修复了这一情况使 DeepCompile 与 ZeRO-3 的组合处理更加正确。ZeRO-3 的模块 Hook 机制也得到修复。对于通过属性委托实现的模块ZeRO-3 Hook 现在能够正确工作。在激活检查点方面新增了 ZeRO-3 对包含冻结参数的激活检查点场景的支持。与此同时activation_checkpointing的num_layers默认值改为None使得configure()中的断言能够正确触发。此外ZeRO-3 的 elastic checkpoint 被标记为弃用。该项更新明确了旧检查点机制的状态。AutoEP 与 ZeRO-3 也进一步打通。现在AutoEP 支持 ZeRO-3 的zero.Init源模块。四、ZeRO-1、ZeRO-2 与 Muon 优化器更新v0.19.3 对 ZeRO-1、ZeRO-2 下 Muon 优化器的使用进行了多轮调整。版本首先增加了数值正确性测试用于验证 Muon 在 ZeRO-1 和 ZeRO-2 下的行为。随后针对 Muon 与reduce_scatter的组合版本进行了兼容性处理。此前 Muon 优化器与 ZeRO-1、ZeRO-2 的reduce_scatter组合会被拒绝本次更新进一步加入对该组合的支持。通信和梯度平均路径也获得修复。在 ZeRO-1 和 ZeRO-2 中average_tensor现在会等待所有 IPG bucket 生产者流完成再继续进行相关处理。这些更新覆盖了 Muon、reduce_scatter、IPG bucket 与张量平均等 ZeRO-1、ZeRO-2 训练路径。五、AutoEP 与 AutoTP 自动并行能力增强自动专家并行与自动张量并行是此次版本的重要功能更新方向。v0.19.3 新增 AutoEP 与 AutoTP 的并行折叠能力使两类自动并行能力能够进行结合。AutoTP 的分区配置逻辑也得到修复。partition_config现在使用完整的层级模块路径而不是不完整的模块路径。这一改动修复了自动张量并行在模块定位与分区配置上的路径问题。在使用 AutoTP 时版本调整了部分数据一致性检查逻辑位于tp_group中的特定数据将不再进行一致性检查。AutoEP 的ep_router还修复了 Python 3.9 环境下导入时可能出现的TypeError。该修复保证 AutoEP 路由模块可以在 Python 3.9 下正常完成导入。与此同时AutoEP 已支持结合 ZeRO-3 的zero.Init源模块使用进一步扩展自动专家并行与 ZeRO-3 初始化机制的组合范围。六、DeepCompile 持续完善v0.19.3 对 DeepCompile 的多个环节进行了修复与增强涉及性能分析、内存清理、参数 gather、标量输出以及优化 Pass 管理。首先版本修复了 DeepCompile 的 profile 元数据回填问题使性能分析相关元数据能够正确补全。在性能分析后DeepCompile 的内存清理逻辑也得到修复避免 profiling 过程中相关内存未正确释放的问题。对于 Dynamo 跳过帧的情况DeepCompile 现在能够正确处理 ZeRO-3 参数 gather避免跳过帧路径下参数收集异常。在输出处理上版本修复了 DeepCompile 对标量输出的 fallback 处理。标量输出现在能够进入正确的回退处理路径。此外DeepCompile 新增轻量级优化 Pass 合约。这一更新为优化 Pass 的使用增加了明确的轻量级约束机制。七、Hybrid Engine 与推理能力更新此次版本新增了 DeepSpeed Hybrid Engine rollout用于支持 On-Policy Distillation Trainer也就是 OPSD Trainer。该能力将 Hybrid Engine rollout 与 On-Policy Distillation Trainer 的支持结合起来是本次功能更新中的重要新增项。在 Inference V2 方面新增 EXAONE 4.5 模型支持。DeepSpeedInferenceConfig 也修复了一个兼容性问题当旧版本配置中的 MoE 值以布尔类型提供时可能导致配置解析崩溃现在该向后兼容场景已经得到修复。推理与运行时模块中还修复了部分注释和文档字符串中的拼写问题。八、量化、压缩与旋转位置编码更新在压缩和量化配置方面v0.19.3 修复了仅压缩量化配置中的特征值解析问题。此前在 compression-only 的量化配置中特征值相关字段可能无法被正确解析本次更新修复了这一问题。同时特征值监控数值现在会被记录到日志中。也就是说eigenvalue monitor 的相关值能够输出到日志记录流程中。在 GPU 内核优化方面fake_quantize_kernel降低了blockDim以改善 SM 占用率。旋转位置编码方面apply_rotary_pos_emb新增可选的 torchembed RoPE 后端支持。该更新为旋转位置编码的应用增加了一个可选后端。九、ZenFlow 与 CPU 优化器能力更新ZenFlow 新增了一个执行方式重叠执行的 CPU 优化器可以运行在原生进程中。该更新聚焦于 overlapped CPU optimizer 的运行机制将其执行方式扩展为原生进程运行。十、日志、通信与运行时配置改进v0.19.3 新增可配置的 engine 日志级别。用户可以通过配置控制 DeepSpeed engine 的日志输出级别。通信日志模块中CommsLogger.stop_profiling_comms修复了一个问题该方法此前不会正确关闭全局 profiling 状态现在已经能够正确禁用全局通信性能分析。在异常处理方面部分过于宽泛的Exception捕获被替换为更具体的异常类型。该更新缩小了异常捕获范围。对于 FlopsProfiler版本修复了 sequence parallelism 场景下dp_world_size为None时可能出现的崩溃问题。十一、文件描述符、共享内存与 CUDA 初始化修复底层资源管理是此次补丁版本的重要稳定性内容。在deepspeed_io_handle_t::wait()中文件描述符现在会被关闭从而避免文件描述符泄漏。共享内存实现中的shm.cpp新增缓冲区长度检查用于避免缓冲区长度相关问题。在算子兼容性检查过程中DeepSpeed 现在避免在导入时初始化 CUDA 上下文。也就是说执行 op compatibility check 时不会因为模块导入而触发 CUDA context 初始化。NPUOpBuilder 的异常处理也进行了调整KeyboardInterrupt和SystemExit不再被吞掉相关中断与退出行为可以正常向外传递。十二、类型提示与公共 API 完善此次版本继续扩展 DeepSpeed 的类型提示覆盖范围。顶层公共 API 函数新增类型提示。公共通信 API 函数同样新增类型提示。这些更新覆盖顶层公共接口和通信公共接口使接口定义中的类型信息更加完整。十三、文档、项目治理与信息更新代码地址github.com/deepspeedai/DeepSpeed文档与项目信息方面v0.19.3 包含以下更新更新 README 中的论文发表列表。修复 runtime 模块与 inference 模块中的少量注释和文档字符串拼写问题。移除关于并行构建扩展的文档建议。更新 COMMITTERS 文件中的机构信息。采用 PTF Code of Conduct。这些改动覆盖项目文档、贡献者信息、行为准则和代码注释维护。十四、v0.19.3 更新清单汇总为了便于快速查阅以下是本次版本的完整更新方向汇总完成发布后的版本号更新。校验 fp16 动态损失缩放参数必须为正数。新增合并队列 DCO 工作流。工作流取消时停止过时 CI 任务。修复 ZeRO-3 参数聚合输出缓冲区的数据类型处理。修复deepspeed_io_handle_t::wait()中的文件描述符泄漏。为顶层公共 API 添加类型提示。将默认gradient_clipping设置为1.0。将 activation checkpointing 的num_layers默认值设为None。新增可配置 engine 日志级别。新增基于差异驱动的测试选择。默认开启 bf16 的check_grad_overflow。支持 AutoEP 与 ZeRO-3zero.Init源模块组合。更新 README 论文发表列表。修复 AutoTP 分区配置的层级模块路径处理。调整 Muon 与 ZeRO-1、ZeRO-2 的reduce_scatter组合支持。修复 DeepCompile profile 元数据回填。新增 Muon 在 ZeRO-1、ZeRO-2 下的数值正确性测试。不再吞掉 NPUOpBuilder 中的中断和退出异常。避免导入时因算子兼容性检查初始化 CUDA 上下文。修复 DeepCompile 在 Dynamo 跳过帧场景下的 ZeRO-3 参数 gather。弃用 ZeRO-3 elastic checkpoint。修复仅压缩量化配置中的特征值解析。记录特征值监控数值。修复 DeepCompile profiling 内存清理。为apply_rotary_pos_emb增加可选 torchembed RoPE 后端。修复 runtime 与 inference 模块中的注释、文档字符串问题。支持 ZenFlow 将重叠 CPU 优化器运行在原生进程中。为共享内存缓冲区增加长度检查。修复 sequence parallelism 下 FlopsProfiler 的崩溃问题。修复 Python 3.9 下 AutoEPep_router的导入错误。为保存检查点和 warmup 学习率调度器增加输入校验。修复 ZeRO-3 参数聚合中量化 scale 缓冲区的数据类型处理。修复 ZeRO-3 autocast gather 的混合参数类型问题。移除并行构建扩展的文档建议。为公共通信 API 添加类型提示。新增 Hybrid Engine rollout 以支持 OPSD Trainer。新增 AutoEP 与 AutoTP 并行折叠。让 DCO 工作流兼容 Probot。修复 ZeRO-1、ZeRO-2 中average_tensor对 IPG bucket 生产者流的等待逻辑。修复CommsLogger.stop_profiling_comms未关闭全局 profiling 的问题。修复 WarmupCosineLR 在总步数等于 warmup 步数时的除零问题。为 Inference V2 新增 EXAONE 4.5 模型支持。调整 AutoTP 下tp_group中特定数据的一致性检查。降低fake_quantize_kernel的blockDim。修复 DeepSpeedInferenceConfig 对布尔 MoE 旧配置值的兼容性崩溃。将宽泛异常捕获改为特定异常类型。支持 Muon 在 ZeRO-1、ZeRO-2 中使用reduce_scatter。为 DeepCompile 优化 Pass 增加轻量级合约。修复 DeepCompile 对标量输出的 fallback 处理。在 AlexNet 测试中使用合成 CIFAR 数据。更新 CI 徽章。更新 COMMITTERS 文件中的机构信息。修复 ZeRO-3 对属性委托模块的 Hook。修复流水线阶段中的重复梯度缩放。支持 ZeRO-3 在冻结参数场景下使用 activation checkpointing。采用 PTF Code of Conduct。