发布时间:2026年9月22日
版本号:v0.19.7
DeepSpeed v0.19.7 正式发布。本次更新覆盖训练、推理、分布式通信、自动并行、检查点、性能分析、优化器、CPU 加速、MPS 支持、持续集成与工作流等多个方向。
从更新内容来看,v0.19.7 的重点不只是新增能力,更集中解决了大量真实训练和推理场景中的兼容性、稳定性、内存管理、布局转换、参数分片、断点恢复及设备适配问题。尤其是 ZeRO、AutoTP、AutoEP、Muon、DeepCompile、Ulysses、Universal Checkpoint 等核心模块,均有较多修复和增强。
一、ZeRO 与检查点能力持续增强
在 ZeRO 和检查点导出、恢复、参数分片等方向,v0.19.7 增加了多项重要改进。
首先,ZeRO 检查点导出现在支持配置数据类型。用户可以为导出的 ZeRO checkpoint 指定 dtype,从而更灵活地控制检查点的精度和存储形式。
在通用检查点方面,本次版本完善了分片表达与恢复逻辑。通用检查点分片被描述为仿射映射,使分片关系的表达更加明确。同时,复制映射中的 affine scale 被正确保留在 replicated map 中,而不是错误地附加到 split 上。
针对 AutoTP 规模变化后的恢复场景,v0.19.7 修复了通用检查点跨 AutoTP size 恢复时的问题。这意味着,在不同 AutoTP 配置之间恢复通用检查点时,恢复逻辑得到了修正。
在 ZeRO 参数布局方面,修复了 grouped_mm 的 ZeRO 参数对齐问题,避免相关计算中因参数对齐不正确带来的异常。
DeepCompile 与 ZeRO-3 的组合也获得多项修复。新版本稳定了 ZeRO-3 参数 guard,减少 DeepCompile 场景下参数保护逻辑的不稳定性。同时,DeepCompile 的 ZeRO-3 内存调度器被拆分,使相关内存调度逻辑更加清晰。
对于启用激活检查点时 AutoTP 与 DeepCompile 的组合场景,本次修复了 collective 通信可能被静默丢弃的问题。该修复涉及 AutoTP、DeepCompile 与 AC 同时启用时的分布式通信正确性。
此外,v0.19.7 增加了一个可选的 ZeRO Stage 1 和 Stage 2 梯度范数快速路径,为对应场景提供更快的 gradient norm 处理方式。
二、AutoTP 能力升级:模型级元数据、Qwen3.5 适配与映射输出
AutoTP 是本次版本更新较为集中的模块之一。
此前,AutoTP 的 tp_shard 依赖进程级全局变量。v0.19.7 将这部分逻辑替换为每模型独立的 AutoTPMeta。这样可以避免进程范围全局状态带来的耦合问题,使 AutoTP 元数据更贴近具体模型实例。
在模型模块加载方面,新版本识别了 Qwen3.5 的 RMSNorm 变体,使 AutoTP 能够正确处理该模型中的相关归一化模块。
Llama 注入策略也得到更新。现在会从 rope_parameters 中读取 rope_theta,而不再局限于旧的读取方式。与之对应,Inference V2 同样支持从 rope_parameters 读取 rope_theta,确保 RoPE 参数读取逻辑在不同推理路径中保持一致。
AutoTP 层现在可以输出 affine maps。这与通用检查点中仿射映射的表达方向相呼应,为参数映射和分片描述提供支持。
此外,修复了调试名称映射意外持有模型引用的问题。此前,debug name maps 可能会持续引用其快照对应的模型;本次更新避免了这种模型被意外固定引用的情况。
三、AutoEP 与 DeepEP:专家通信、参数分片和恢复流程优化
AutoEP 与 DeepEP 是 v0.19.7 的另一大重点。
新版本为 AutoEP expert all-to-all 增加了可选的 DeepEP transport。用户可以选择启用 DeepEP 作为专家 all-to-all 的传输路径。
在专家恢复方向,增加了一个可选的 fused weighted restore,用于 AutoEP 的加权恢复流程。
针对 DeepEP 通信准备,本次优化避免了 AutoEP DeepEP 场景中不必要的 collective token preparation。该调整减少了相关通信前置准备操作。
在 ZeRO-3 场景下,AutoEP 的 expert 参数现在按层进行分区。该变更涉及 AutoEP expert 参数在 ZeRO-3 下的分片粒度。
本次还修复了 AutoEP 中优化器与被替换 MoE 参数不匹配的问题,避免优化器参数与替换后的 MoE 参数之间出现不一致。
AutoEP 的 score correction bias buffers 现在会被保留,防止相关偏置缓冲区在流程中丢失。
四、Muon 优化器集中修复:ZeRO、动量与参数组问题得到处理
Muon 在本次版本中获得了非常密集的修复和行为调整。
首先,在 ZeRO Stage 0 的默认场景中,Muon 不再运行 Newton-Schulz。这一行为调整明确了 ZeRO Stage 0 下 Muon 的执行路径。
对于使用 zero.Init 构建模型的 ZeRO-3 场景,修复了 Muon 被静默禁用的问题。此前即使用户配置了 Muon,在特定模型构建方式下也可能没有实际启用;本次版本对此进行了处理。
Muon 的 momentum dtype 也得到多处修正。当检查点恢复时,Muon 会协调动量的数据类型;当动量与梯度进行组合时,动量将采用对应梯度的数据类型。
在 loss scaler 丢弃某一步更新时,Muon 不再推进或保留不应生效的动量变化,避免无效 step 对动量状态造成影响。
此外,修复了 Muon 静默丢弃用户传入 param groups 的问题,确保传入的参数组不会被忽略。
五、Ulysses、序列并行与分布式通信修复
分布式注意力、Ulysses 和序列相关通信路径在 v0.19.7 中也有多项关键修复。
针对 seq-first Ulysses all-to-all,修复了输出布局问题,确保 all-to-all 后的输出 layout 正确。
DistributedAttention 现在会携带 KV head count。该调整使每个 DistributedAttention 实例能够保留 KV 头数信息。
序列 overlap 的反向传播路径修复了梯度 permutation 问题,避免重叠序列处理时反向梯度排列异常。
在通信句柄方面,AllGatherHandle 和 NoGatherHandle 的 wait 方法现在具备幂等性。也就是说,多次调用 wait 不会导致行为异常。
barrier 调用中的 device_ids 现在会被正确转发给通信后端,改善不同后端和设备场景下的 barrier 行为。
另一个重要修复是 _DimZeroAllToAll 在 torch.compile 下可能静默不发送梯度的问题。该问题现已修复,保障编译模式下 all-to-all 相关梯度通信的正确性。
六、性能分析与 FLOPs 统计更准确
v0.19.7 对 FLOPs profiler 进行了多项修复。
在聚合 FLOPs profiler 总量时,同一个 module object 只会计算一次,避免同一模块对象被重复聚合计数。
对于转置卷积,修复了 FLOPs profiler 的统计问题,使 transposed convolutions 的 FLOPs 计算更加正确。
元素级计算的 FLOPs 广播规则也进行了修正。现在 elementwise FLOPs 会从尾部维度进行广播处理。
Rollout 模块增加了 prefill 和 decode forward 的性能分析能力,可以对这两类 forward 阶段进行 profile。
此外,rollout 还新增了 continuous batching generation prototype,并增加了 continuous batching profiling,覆盖连续批处理生成及其性能分析路径。
七、推理、Hybrid Engine、KV Cache 与 Triton 相关修复
在推理能力方面,Hybrid Engine 增加了针对不受支持策略的 fallback 机制。当遇到不支持的 Hybrid Engine policy 时,可以进入回退处理路径。
推理参数校验也更加严格。对于 inference 和 HybridEngine 的 max output tokens,现在会校验其必须为正数。
静态 KV cache 的预分配逻辑改为使用 config.head_dim,确保 KV cache 的初始化尺寸依据正确的 head_dim 配置。
TritonSelfAttention 中已经移除了无效的非 Triton attention 路径,使该模块不再保留已经失效的实现分支。
针对 Triton NFS 检测,修复了当 df 命令输出包含较长设备名称时可能发生崩溃的问题。
fp_quantizer 不再执行 Triton 兼容性检查,移除了这一额外限制。
在 tiled 相关实现中,tiled MLP 使用 reshape 替代 view,TiledFusedLogitsLoss 同样使用 reshape 替代 view。这些调整涉及张量形状变换的处理方式。
八、CPU Adam、ARM 与 MPS 支持进一步完善
CPU Adam 在 ARM 平台上新增了更多 SIMD 优化能力。
本次更新为 CPU Adam 增加了 ARM SVE update kernel,提升 ARM SVE 路径的支持。
在 AArch64 平台上,CPU Adam 增加了 NEON SIMD 路径,属于 CPU Adam 的第二阶段优化内容。
针对 CUDA 13 及更高版本,op_builder 在 nvcc 编译时使用 C++20 标准。
MPS 支持也得到增强。新版本增加了 macOS MPS 的持续集成工作流,并为 MPS accelerator 增加 torch floor check。
对于不支持 fp16 的加速器,相关 fp16 配置测试会被跳过,避免在不具备 fp16 能力的设备上执行不适用的测试。
CPUAdamBuilder 在 MPS 相关调整中更新了 C++ 标准。
九、设备绑定、内存卸载与运行时行为修复
本次版本修复了设备绑定策略。device id 只会在确实需要时绑定,避免不必要的设备绑定行为。
对于 CPU reference models,DDP 不再固定 device_ids,避免 CPU 参考模型被错误地附加 DDP GPU 设备绑定逻辑。
测试辅助工具中的设备放置逻辑也得到调整,改用 device names,而不是 rank ids 来决定设备放置。
empty scratch destination 增加了 pin_empty helper,用于处理空 scratch 目标的 pin 操作。
在内存卸载方面,当一个保存的 view 是唯一持有底层 storage 的值时,该 view 可以被卸载。
offload-state memory deltas 现在仅在 allocator-backed stats 可用时生效,避免在不具备对应内存统计基础时进行不合适的增量计算。
train_cifar 的 fork_rng device entries 现在会探测 device module,修复相关设备条目的处理方式。
十、训练调度、配置传递与启动器行为调整
WarmupCosineLR 的 ratio flags 现在会正确传递到配置中,确保命令行参数能够真正影响调度器配置。
lr range test 中的 staircase 参数被改为显式可选项,不再默认启用。
curriculum schedule 不会再从低于 min_difficulty 的难度开始,避免课程调度起点低于最小难度配置。
elasticity 的 batch overrides 不再写入调用方原始 config dict,避免调用方配置对象被意外修改。
partition 方法现在会继续转发 free_data 参数,而不是将其固定为 True。
SLURM launcher 现在会遵守 include 和 exclude 参数。
include 过滤逻辑也得到修复:过滤依据改为真实 slots,而不是对 include 自身进行过滤。
十一、日志、异常处理与信息采集修复
comms logger 在未提供 log_name 时可能触发 KeyError,本次版本已修复该问题。
cuda_graph 的 assertion 被替换为显式 ValueError,使错误类型更明确。同时,custom_op 的类型注解也得到修复。
source-checkout 场景下 torch_info 的 fallback 现在会包含 nccl_version,补全相关环境信息。
版本文件已在 0.19.6 发布后完成更新,并且 release commits 增加了 DCO sign-off。
十二、持续集成、工作流与测试规则更新
本次版本对 CI 与工作流进行了多项调整。
Modal CI 的超时时间被提高,以适应较慢的 sandbox provisioning。
Modal CI 预算被拆分为 acquisition 和 test 两个阶段,分别处理环境获取与测试执行的时间预算。
Modal GPU 工作流改为仅从 merge queue 触发。
Modal sandbox 的安装链被缓存在镜像层中,优化 sandbox 环境准备流程。
文档中新增了 agent guidelines 的测试纪律规则。
此外,DeepSpeed 对部分未使用功能进行了弃用处理,同时也弃用了 sparse attention。
结语
代码地址:github.com/deepspeedai/DeepSpeed
DeepSpeed v0.19.7 是一次覆盖面很广的版本更新。
从 ZeRO checkpoint dtype 配置、通用检查点跨 AutoTP 恢复,到 AutoEP 的 DeepEP transport、专家参数按层分区,再到 Muon 在 ZeRO、动量 dtype、参数组和 loss scaler 场景下的修复,本次版本显著强化了核心训练能力。
同时,Ulysses 输出布局、序列 overlap 反向梯度、torch.compile 下 all-to-all 梯度发送、FLOPs profiler 统计、Hybrid Engine fallback、KV cache 预分配、CPU Adam 的 ARM SVE 与 NEON 支持、macOS MPS CI、SLURM include 和 exclude 过滤等更新,也覆盖了分布式训练和推理中的大量细节问题。
对于正在使用 ZeRO、AutoTP、AutoEP、DeepCompile、Muon、Ulysses、Universal Checkpoint、CPU Adam 或 MPS 的用户而言,v0.19.7 的修复与能力更新值得重点关注。