DeepSpeed v0.18.8 发布:稳定性、Evoformer、多架构构建与ZeRO优化全面升级详解
日志与内存监控优化:减少无意义的日志噪音Evoformer Attention 多架构构建修复:解决编译与调度根因FP16 loss_scale 校验增强:避免隐性训练错误ZeRO Stage1/2/3 稳定性改进:CUDA stream 与日志行为修复Bloom 模型推理测试修复华为 Ascend NPU Async IO 构建问题修复AI 编码代理项目规范新增测试覆盖增强版本号更新代码地址:g



DeepSpeed v0.18.8 于 2026 年 3 月 13 日 正式发布,这是一次以“修复问题 + 提升稳定性 + 改善开发与构建体验”为核心目标的补丁版本。
该版本共包含 9 次提交、16 个文件变更、260 行新增代码、84 行删除代码,覆盖 训练稳定性、日志控制、Evoformer 多架构支持、ZeRO Stage1/2/3、FP16 精度配置、NPU 构建、Async IO、测试与文档 等多个关键模块。
本文将完全基于官方更新内容,对 DeepSpeed v0.18.8 的所有变更进行逐条拆解与系统化解读,帮助你快速理解本次版本升级带来的实际价值。
一、版本概览与更新重点
1. 基本信息
- 版本号:v0.18.8
- 发布时间:2026 年 3 月 13 日
- 版本类型:Patch Release(补丁版本)
2. 核心更新方向总结
本次 v0.18.8 主要聚焦以下几个方面:
- 日志与内存监控优化:减少无意义的日志噪音
- Evoformer Attention 多架构构建修复:解决编译与调度根因
- FP16 loss_scale 校验增强:避免隐性训练错误
- ZeRO Stage1/2/3 稳定性改进:CUDA stream 与日志行为修复
- Bloom 模型推理测试修复
- 华为 Ascend NPU Async IO 构建问题修复
- AI 编码代理项目规范新增
- 测试覆盖增强
- 版本号更新
二、日志与内存使用输出优化
Suppress see_memory_usage logs
多个 ZeRO 相关模块中,see_memory_usage 的日志调用被统一优化:
- 同一位置同时调用
force=True与force=False - 在 rank0 或非必要场景下避免重复打印
涉及模块包括:
- ZeRO Offload
- ZeRO Stage3
- ZeRO Stage1 & Stage2
- 参数分区与卸载流程
优化效果
- 显著减少控制台日志噪音
- 在大规模分布式训练中提升可读性
- 不影响原有内存调试能力
三、Bloom 推理测试卡死问题修复
Fix hangs of bloom test
Bloom 推理容器在特定 Transformers 版本检测逻辑中存在异常行为。
修复点
- 原逻辑在检测到 Transformers 版本超过 4.43.4 时,使用了
sys.exit - 修复为 直接抛出 RuntimeError
影响
- 测试环境不再直接退出 Python 进程
- 错误提示更加友好、可捕获
- CI 与自动化测试稳定性提升
四、FP16 loss_scale 校验全面增强
Validate fp16.loss_scale is finite and non-negative
在 DeepSpeedFP16Config 中,新增了对 loss_scale 的严格校验逻辑。
新增校验规则
- 不允许为
bool - 必须可转换为数值
- 必须是 有限值(禁止 inf / -inf / nan)
- 必须 ≥ 0
0表示启用动态 loss scaling
对应测试用例新增
- 覆盖非法值:
-1、inf、nan、True - 覆盖合法值:
0、1、2.0、字符串数值 - 错误类型时,错误信息清晰明确
实际价值
- 避免训练过程中出现难以排查的数值异常
- 在配置阶段即阻断错误输入
- 提升 FP16 训练的安全性与可维护性
五、Evoformer Attention:多架构构建与调度根因修复
这是 v0.18.8 中技术含量最高、影响最深远的更新之一。
1. 多架构 dispatch 根因修复
核心变化
- 移除
CheckArch中对__CUDA_ARCH__的依赖 - 修复多架构构建时的逻辑冲突
- 明确不同架构对 fp16 / bf16 的支持范围
架构支持矩阵
| 架构 | fp16 | bf16 |
|---|---|---|
| Sm70 | 支持 | 不支持 |
| Sm75 | 支持 | 不支持 |
| Sm80+ | 支持 | 支持 |
2. DISPATCH_ARCHTAG 宏逻辑重构
- 不再依赖编译期 GPU_ARCH 条件嵌套
- 运行期根据 CC 直接选择 Sm70 / Sm75 / Sm80
- 不满足 Tensor Core 条件直接报错
好处
- 多架构 CUDA slice 行为更一致
- 解决 Evoformer 在混合 GPU 环境下的异常构建问题
3. DS_EVOFORMER_GPU_ARCH 正式废弃
变化说明
- 构建逻辑中不再读取该环境变量
- 设置该变量时仅发出警告
- 真正生效的构建控制方式为
TORCH_CUDA_ARCH_LIST
新推荐方式
TORCH_CUDA_ARCH_LIST='7.0;8.0'
4. Evoformer 构建文档全面更新
文档明确说明:
- Evoformer 仅支持 SM ≥ 70
- Tensor Core 为必要条件
- 多架构构建完全依赖
TORCH_CUDA_ARCH_LIST - 低于 SM70 的目标会被自动裁剪
5. Evoformer Builder 测试新增
新增单元测试覆盖:
- 低于 7.0 的 CC 被过滤
- +PTX 后缀正确保留
- 不再生成
-DGPU_ARCH编译参数 CheckArch中不再包含__CUDA_ARCH__
六、Async IO:华为 Ascend NPU 构建问题修复
Fix async_io ops building error on Huawei Ascend NPU
修复内容
- 修正源文件列表中缺失的逗号
- 修复 CPU op 中对 NPU 判断逻辑
- 避免 torch_npu 未声明导致的构建失败
影响
- Ascend NPU 环境下 Async IO 可正常编译
- 提升 DeepSpeed 在非 CUDA 平台的可用性
七、ZeRO 系列模块关键修复
1. ZeRO-3 CUDA stream 修复
修复点
- 使用
current_stream()替代default_stream() - 避免梯度归约时的数据依赖问题
效果
- CUDA Stream 同步更安全
- 减少潜在死锁与性能异常
2. ZeRO 参数卸载与分区日志修正
- 多处
print_rank_0重复 force 参数修复 - see_memory_usage 行为统一
- 提升多卡训练日志一致性
3. ZeRO Stage1 & Stage2 稳定性增强
- 优化 optimizer state 初始化前后的内存日志
- 保持与 Stage3 行为一致
八、AI 编码代理项目规则正式加入
新增 AGENTS.md 与 CLAUDE.md
两份文件内容完全一致,作为 DeepSpeed 工作区级 AI 编码规范。
核心规则包括:
- 提交必须带 Signed-off-by
- 强制 yapf + flake8
- 禁止无意义格式化提交
- 新文件必须包含 Apache-2.0 License Header
- 不允许直接 import torch.distributed
- 删除无运行时价值的死代码
- 注释强调“为什么”,而非“做什么”
意义
- 明确 AI 编码参与项目的行为边界
- 降低 Review 成本
- 提升长期代码质量与一致性
九、版本号更新
version.txt从 0.18.7 → 0.18.8- 正式标志该补丁版本发布完成
十、总结:为什么推荐升级到 v0.18.8
代码地址:github.com/deepspeedai/DeepSpeed
DeepSpeed v0.18.8 虽然是一个 Patch 级别更新,但从实际改动内容来看,v0.18.8 已经远远超出了“简单修 Bug”的范畴,而是一次针对稳定性、可维护性与未来演进方向的系统性修正版本
鲲鹏昇腾开发者社区是面向全社会开放的“联接全球计算开发者,聚合华为+生态”的社区,内容涵盖鲲鹏、昇腾资源,帮助开发者快速获取所需的知识、经验、软件、工具、算力,支撑开发者易学、好用、成功,成为核心开发者。
更多推荐


所有评论(0)