

DeepSpeed v0.18.2 于 2025年11月6日 正式发布,本次补丁版本在多项核心模块进行了优化与 Bug 修复,减少训练过程中的冗余计算与内存开销,并对文档进行了更直观的调整,提升开发者使用体验。以下为本次更新的详细内容整理:
本次更新主要涉及以下几类改动:
torch.autocast 场景下的权重管理,防止不必要的权重重复拷贝。在 ZeRO Stage 3 与 torch.autocast 同时启用时,模型权重可能会在所谓的 “fp16” 分组中直接以 fp32 格式存在并更新。 此次更新中,系统检测到此类场景后不再额外创建 fp32 副本,直接使用现有权重,减少内存占用与拷贝开销。
本次更新对 UlyssesSPAttentionHF 接口优化,主要包括:
seq_length_is_variable=True 时不必在初始化设置固定序列长度,由 forward 动态计算。seq_length 参数用于固定批次长度场景(可节省少量运行时间),替代已废弃的 max_length 参数。此外,更新强调了 TiledMLP 与 SequenceTiledCompute 在反向计算中会重复执行 forward(激活检查点模式下甚至可达三次),提醒用户注意性能开销。
修复了溢出处理逻辑中 return 语句位置错误 的问题,确保溢出计时器在返回前能够正确记录信息。
修复了 extra_large_param_to_reduce 在管理梯度通信数据类型(comm_dtype)时的错误索引问题,确保数据按正确的通信精度分桶存储与传输。
同时解决了 _get_state_without_padding 在处理 0维 Tensor 时的切片报错问题。
record_function 参数的错误拼写,改为 "model_forward" 以便正确标注分析段落。max_length → seq_length(推荐使用 seq_length,max_length 已标记为废弃)。seq_length_is_variable=True,系统每批次计算形状。seq_length_is_variable=False,需保证序列长度可被 sequence_parallel_size 整除。DeepSpeed v0.18.2 尽管是一次补丁版本,但涵盖了从内存优化到 API 改进再到文档修复的全面优化,特别是在 Ulysses Sequence Parallelism 与 ZeRO Stage 部分,为大规模模型的稳定、高效训练提供了更坚实的支持。
我们相信人工智能为普通人提供了一种“增强工具”,并致力于分享全方位的AI知识。在这里,您可以找到最新的AI科普文章、工具评测、提升效率的秘籍以及行业洞察。 欢迎关注“福大大架构师每日一题”,发消息可获得面试资料,让AI助力您的未来发展。