Release Notes
MindSpore Transformers 2.1.0 Release Notes
以下为MindSpore Transformers套件2.1.0版本的变更日志,相较于2.0.0版本有以下关键新特性和bugfix。
新特性
动态图训练与推理能力增强:
新增动态图 Trainer 前向推理接口,支持批量贪心解码,复用训练的多维并行与权重加载流程,通过
run_mode: predict启动,支持文本及 JSONL 等输入和结果保存(!8749);支持动态调整全局 batch size,通过调整梯度累积步数逐步增大训练 batch,适配流水线并行及断点续训(!8509);新增可扩展的 TensorBoard 训练监控,统一记录训练指标与配置(!8542);
新增训练性能数据 Profile 能力,支持采集与分析训练过程的性能数据,并可开启 CPU 算子采集(!8236、!8390);
新增 NaN/Inf 跳步保护,可在全局梯度范数为 NaN/Inf 时跳过优化器更新,并设置连续跳步上限,避免无效训练持续运行;该能力默认关闭(!8748)。
DSA 长序列训练:
并行与数据性能优化:
新增基于本地 Tensor 计算的 TP/SP 路径,参数仍由 DTensor 管理,减少激活重分布开销(!8525);优化 HSDP 梯度累积,将 replicate 维的 all-reduce 延迟至最后一个 micro-batch(!8770);
新增 OrderedIndexDataLoader,并支持 TND 长序列数据负载均衡,通过样本索引重排改善数据并行各 rank 的注意力计算负载(!8569、!8668);
新增数据集广播,通过
use_distribute_dataset在 TP×CP 数据域内广播数据 batch,避免域内各 rank 重复读取与预处理,并消除所有 rank 冗余初始化数据与 index map 冗余生成(!8424、!8704);优化 Muon 去冗余计算的负载分配、BF16 Newton-Schulz 计算及 HSDP 通信范围,降低热点 rank 的显存压力(!8687);重构
exclude_op,支持按模块、函数属性及 TP/EP 通信路径排除重计算(!8577)。
权重方案:
新增动态图 DeepSeek-V4 的 Hugging Face 权重加载,支持从 HF 格式的 safetensors 权重直接构建模型并启动训练,自动完成权重重分片与布局转换(!8567);
补齐 MindFormers→Hugging Face 权重转换,新增离线导出工具,支持基于模型声明的转换规则导出 safetensors,并从带有 metadata 的 rank 分片权重重建参数;采用按层处理方式控制内存开销(!8709、!8761);
优化动态图大规模集群的 Checkpoint 保存与加载,通过 layout 去重汇聚、rank 0 集中构建与分发保存计划、缓存复用及统一写入 metadata,减少重复通信和 CPU 内存开销(!8741、!8745、!8746)。
新模型
本版本主要扩展已有模型的能力,以下为新增支持的运行场景:
模型 |
规格 |
|---|---|
DeepSeek-V4(PyNative) |
Flash:新增 Trainer 前向推理(!8749) |
Qwen3(PyNative) |
8B:新增 Trainer 前向推理,并完成 Hugging Face 权重加载验证(!8749) |
Bugfix
在当前版本发布周期内,我们进行了模型/功能/易用性/文档等诸多方面的bugfix,在此列举部分关键修复内容:
!8836:修复静态图平衡存盘首次保存崩溃、分片文件冲突及 metadata 与实际权重内容不一致等问题。
!8623、!8717:修复冻结参数缺少优化器状态、PP 续训时 FP32 主权重被错误覆盖导致的精度偏差。
!8816、!8819:修复 no_load_optim: true 时仍校验优化器文件,以及 PP 下无 layout 参数续训找不到权重文件的问题。
!8621、!8639:修复静态图开启 calculate_per_token_loss 与 MTP 后编译失败,以及流水线 stage 数不少于 4 时执行死锁的问题。
!8778:修复整层重计算 replay 提前停止引起的确定性问题。
!8766:修复按注意力头维度切分 CP 时 QK clipping 写越界与死锁问题。
!8769:修复 linear_fc1 融合权重布局未跟随模型配置,导致权重转换错误的问题。
!8815:修复 Muon 去冗余 P2P scatter 在压缩 rank 域下的分片错位问题。
!8821、!8817:修复 SwiGLU 配置引起的 MLP 宽度不匹配,以及 dryrun 下 TND 序列长度传递引起的 FlashAttention 异常。
!8786、!8824、!8825:更新第三方依赖并移除核心 BLEU 指标对 nltk 的依赖;补齐 YAML 深度检查,调整安装脚本的子进程调用方式,并恢复容器安装源的 TLS 校验。
变更说明
当前版本包含以下配置、依赖及使用方式变更:
变更内容 |
变更说明 |
|---|---|
第三方依赖 |
|
动态图推理 |
通过 |
MF→HF 离线导出 |
按模型声明的 |
Muon 运行环境 |
优化路径依赖 MindSpore 的 |
贡献者
感谢以下在本次版本增量中提交合入 PR 的开发者:
@alpha-junh 、 @husichao 、 @jimmyisme1 、 @lanshaozuishuai 、 @lzy0920232 、 @qhzhuang1 、 @senzhen-town 、 @smallsilly 、 @Sunshine_Youngster 、 @wei_zhuoyi 、 @xu-xianliang 、 @zhangyihuiben 、 @zzzkeke
欢迎以任何形式对项目提供贡献!