PaddlePaddle v3.3.0 Release Notes

Release Date: 2026-01-31 // 4 months ago
  • 重要更新

    飞桨框架 3.3 版本在大模型训练效率、开发体验及国产硬件适配等关键领域持续突破创新,在计算显存高效利用、训推衔接转换、生态兼容性、调试效率、国产硬件适配等方面带来多项重要升级,全面提升大模型训推能力。

    训练效率突破

    • FlashMaskV3升级 :深度优化稀疏注意力掩码计算FlashMaskV3计算内核,性能全面超越FlexAttention,算子性能最高领先2.1 倍;原生支持上下文并行并引入计算负载均衡机制,分布式场景算子性能相比Megatron-LM快80%,全面强化长文训练能力。
    • FlexCheckpoint参数自动切分重组系统 :基于首创的轻量级描述语言AOA (All in One Arrow),支持从单卡视角灵活描述复杂的权重转换关系,并自动推导分片映射;通过跨机通信的高并发与负载均衡调度,在大参数规模下权重转换性能相比Megatron-LM领先1.2倍以上,有效解决大模型训推不同阶段参数转换的成本与效率难题。
    • 虚拟内存动态碎片整理 :引入基于虚拟内存技术的显存分配机制,可根据运行时显存占用情况动态进行碎片整理。在主流MoE模型训练中,显存碎片率从超过10%降至最低3%,显著提升显存利用率。

    开发体验优化

    • 生态兼容 :通过框架API、算子注册、执行调度等关键链路的兼容设计,实现无缝衔接使用外部生态算子,支持FlashInfer、FlashMLA、DeepGEMM、DeepEP、TorchCodec和SonicMoE等社区高性能模块的高效集成应用。
    • 动态图调试能力升级 :新增动态图前反向计算图可视化功能,支持导出算子调用栈与张量MD5校验信息;系统优化关键路径日志,新增局部日志打印功能,提升调试信息丰富度与获取便捷性。
    • 显存观测工具 :新增显存观测功能,可视化显存池中内存块分布,支持追踪特定代码段的显存申请/释放与全局状态,助力大模型显存异常的精准定位与处置。

    国产硬件深度适配

    • 昆仑芯 XPU :系统完善MoE场景适配,为相关算子新增bool、bfloat16、complex64数据类型支持,并对FlashAttention、DeepEP、Profiler等模块进行深度适配。
    • 海光 DCU :支持 Hygon数学库后端,进一步优化海光芯片推理性能。

    1. 执行调度机制

    针对大模型预训练、后训练与推理阶段中,因分布式策略及组网差异导致的权重转换困难,飞桨FlexCheckpoint机制创新提出高效的权重重组方法与灵活的模型编辑原语AOA,为模型研发到生产全流程提供高效、统一的分布式参数转换与重组支持。该机制全面适配训推衔接、跨策略断点续训、生态兼容格式加载导出、强化学习参数同步等多种场景下的权重转换需求,并在大参数规模场景下实现超越Megatron-LM 1.2倍以上的转换性能,从根本上解决了分布式参数转换成本高、效率低的难题。
    在显存管理方面,针对MoE模型因专家路由动态性导致的显存碎片率高、资源浪费严重等问题,本版本推出了基于虚拟内存管理技术的高性能VMM Allocator。该分配器可在模型运行期间根据系统显存使用情况,动态自适应执行碎片整理,显著提升显存利用效率。
    飞桨3.3版本持续深耕自动并行与AI编译器技术。在自动并行架构中新增对FSDP等策略的支持,并增强了动态Shape流水线并行功能;面向科学计算场景,实现了对高阶导数的支持,并拓展了相关算子切分推导规则的覆盖范围,进一步提升了自动并行架构的通用性与易用性。此外,围绕推理场景,优化了AI编译器CINN及动转静SOT功能,显著提升易用性与执行调度性能。

    新特性

    功能增强

    • FlexCheckpoint优化AOA宏展开功能,为fuse类宏支持传入axis属性。#75282
    • FlexCheckpoint AOA解析功能增强,支持优化器状态与模型状态共用一套AOA标记,切分信息传递、模型加载与存储共用一套AOA标记。#75613, #76013, #76437
    • FlexCheckpoint支持ShardingStage2和ShardingStage3策略。#76309, #76538
    • 优化FlexCheckpoint报错信息。 #76813, #77266
    • 自动并行中层 API 流水线 Hook 支持处理元组对象。#75081
    • 自动并行流水线并行策略支持动态shape。#75724
    • 支持自动并行场景下的FlexCheckpoint机制及优化器状态字典的分片处理。#76240, #76305
    • 升级 DLPack 到v1.2 版本,全面支持 TVM FFI,支持 C 函数交换协议、DataType 交换协议、Device 交换协议等新特性。#75193, #75205, #75650, #75854, #75973, #76828, #76673
    • 将ComparePriority 函数返回类型从 bool升级为int,以满足 std::sort 的严格弱序要求,并引入 SortComparePriority 包装函数确保排序算法正确性。#76027
    • 动转静支持禁用编译超时自动回退功能。#76386
    • 统一EqualAllOpInferSymbolicShape 函数与InferMeta 逻辑,提升编译器与框架动态图调度结果的一致性。#76477
    • ⬇️ 为all_reduce,c_allreduce_sum,c_concat,c_identity,flash_attn_unpadded,mp_allreduce_sum等算子添加 infer_symbolic_shape 接口,支持符号化形状推导。#76783, #76836

    性能优化

    • 将FlexCheckpoint保存阶段重组摊平权重的通信操作延后至加载阶段执行,减少高频保存操作的耗时。#75613
    • FlexCheckpoint支持使用Grouped Send Recv进行参数重切分通信。#76779, #76810
    • FlexCheckpoint支持权重冗余存储,减少热启时权重重切分时间。#76857
    • CINN支持编译Kernel 缓存功能,节省编译耗时开销。 #75989, #76825, #76853
    • 优化动转静子图打断率,提升整体转静性能。#76104, #76354, #76641, #76862
    • CINN化简过长的 shape 表达式以减少符号推导耗时。#76969

    🐛 Bug 修复


Previous changes from v3.2.2

  • 重要更新

    飞桨框架3.2.2版本在分布式并行、算子机制、硬件适配三个方面完成多项优化与升级,进一步提升框架性能与稳定性。

    1. 分布式训练

    • 优化 FlexCheckpoint 的重切分通信流程; 为 paddle.nn.Layer 新增 full 接口, 用于返回完整模型参数; 支持加载 HuggingFace 开源格式的 Checkpoint。(#76249, #76291)
    • 为 group_sharded_optimizer_stage2 优化器新增 sharded_state_dict 函数。#76311
    • 为 paddle.load 接口修复加载 safetensor 文件 device_id 参数错误及 core_dump 问题。#76317
    • 新增 PipelineDatasetPreprocessor 机制,消除流水线并行策略中可能出现的内存泄漏问题。 #76260

    2. 算子机制

    • 修复针对 BFloat16 list 场景下的 to_tensor 精度问题。 #76242

    3. 硬件适配

    • 修改了独立的 XPU 内存监控模块,以确保与最新的内存监控逻辑保持一致。 #76056

    4. 贡献者名单

    qw86972190, xingmingyyj, zhangbo9674, zhangyuqin1998

    ⚡️ Important Updates

    🐎 PaddlePaddle Framework version 3.2.2 features multiple optimizations and upgrades across Distributed Parallelism, Operator Mechanism, and Hardware Adaptation to further enhance the framework's performance and stability.

    1. Distributed Training

    • ⚡️ Optimized the communication process for re-sharding in FlexCheckpoint; added the full interface to paddle.nn.Layer for returning complete model parameters; supported loading Checkpoints in the HuggingFace open-source format. (#76249, #76291)
    • Added the sharded_state_dict function to the group_sharded_optimizer_stage2 optimizer. #76311
    • 🛠 Fixed errors regarding the device_id parameter and a core dump issue when loading safetensor files using the paddle.load interface. #76317
    • Introduced the PipelineDatasetPreprocessor mechanism to eliminate potential memory leak issues in the pipeline parallelism strategy. #76260

    2. Operator Mechanisms

    • 🛠 Fixed a precision issue in to_tensor for BFloat16 list scenarios. #76242

    3. Hardware Adaptation

    • ✅ Modified the independent XPU memory monitoring module to ensure consistency with the latest memory monitoring logic. #76056

    4. List of Contributors

    qw86972190, xingmingyyj, zhangbo9674, zhangyuqin1998