3.0 Release Note¶
作为中国首个自主研发的产业级深度学习平台,飞桨一直坚持开源路线,支撑产业智能化升级。飞桨框架 3.0 版本不仅延续了飞桨框架 2.0 系列动静统一、训推一体的特性,更在自动并行、神经网络编译器、高阶自动微分等方面取得突破,为大模型时代的技术创新与产业应用提供了强大支撑,为开发者打造了一站式、高性能的深度学习开发体验。无论是前沿算法研究还是产业级大模型落地,飞桨框架 3.0 都将成为开发者的首选利器。重点特性说明如下:
动静统一自动并行: 这一功能大幅度降低了产业开发和训练的成本。用户只需在单卡基础上进行少量的张量切分标记,飞桨框架便会自动完成分布式切分信息的推导,并添加通信算子以确保逻辑的正确性。同时,根据模型结构和集群信息,结合显存和调度层的优化,飞桨能自动寻找最高效的分布式并行策略,从而大幅降低混合并行训练的开发成本,使开发者能够更专注于模型和算法的创新。自动并行架构进行了深入的验证和打磨,以更好地支持纯文稠密模型、纯文稀疏模型(MoE)和多模态理解模型等常见大模型场景的预训练+精调流程;完善算子的切分推导规则,并支持将自动并行训练参数转化成手动并行参数进行下游推理,自动并行达到了全面可用的状态,帮助用户降低大模型并行程序的开发成本。同时,为了进一步简化用户的分布式开发流程,推出全新的
paddle.distributed.parallel
接口,基于对分布式张量标记语法的封装,支持用户在模型组网外不侵入地配置数据并行、模型并行、流水并行等常见的并行策略。此外,静态图自动并行架构基于 PIR 完成了全面的升级,底层的基础组件、核心模块、并行策略和性能优化策略均统一基于扩展的 PIRDistDialect
进行实现,进一步增强了自动并行的动静一致性,并在 Llama 系列模型上性能达到了持平甚至领先手动并行方式的水平。大模型训推一体: 自 2.0 版本起,飞桨便采用了“动静统一、训推一体”的设计理念,3.0 版本也将继续秉持这一理念。得益于动静统一的架构和接口设计,飞桨能够完整支持动态图和静态图这两种不同的运行模式,并且具备出色的整图导出能力。飞桨的动转静整图导出成功率高达 95%,高于 PyTorch 的 62%。“训推一体”意味着能够在同一套框架下,尽可能复用训练和推理的代码,特别是复用模型组网代码。在完成模型的开发训练后,只需进行少量的开发工作,即可实现快速推理部署。这一特性为产业提供了极致的开发体验。它使训练和推理的能力能够相互复用,为大模型的全流程提供了统一的开发体验和极致的训练效率。通过动转静的工作,训练和推理的工作得以无缝衔接。支持多款主流大模型、DeepSeek-R1 满血版实现单机部署,吞吐提升一倍。
科学计算高阶微分: 飞桨框架 3.0 为科学计算提供了高阶自动微分、编译优化和分布式训练能力的支撑。英伟达 Modulus 的 41 个不同方程实验显示,飞桨的微分方程求解速度比 PyTorch 开启编译器优化后的版本平均快 115%。同时,飞桨还建设了面向通用数理问题求解的赛桨 PaddleScience 以及专注于生物计算的螺旋桨 PaddleHelix 工具包。此外,飞桨框架 3.0 还原生支持复数技术体系,这对于气象预报、汽车飞行器气动分析等场景下的数据特征分析具有重要意义。
神经网络编译器: 这一功能显著降低了性能优化的成本。飞桨的编译器采用与框架一体化的设计,能够支持生成式模型、科学计算模型等多种模型的高效训练与可变形状推理,在计算灵活性与高性能之间提供了良好的平衡点。使用 CINN 编译器后超过 60%的 模型有显著性能提升,平均提升达 27.4%。CINN 神经网络编译器在完备性、性能表现等方面效果全面提升。此版本中,我们对编译器前端、后端各个环节进行了全面优化:包括新增反向计算图自动 Re-Compute 机制、前端 Pass 性能优化、符号推导机制升级、算子融合策略优化、后端 Schedule 策略和下标表达式化简能力增强等,同时排查并修复了大量正确性和性能问题,系统化的提升了编译器的通用优化能力。
异构多芯适配: 飞桨的重要特色之一是适配异构多芯并充分释放硬件潜能。在接入机制上,飞桨提供了简洁高效的抽象接口和基础算子体系,降低了适配成本。在运行机制上,它优化了调度编排和存储共享等机制,提升了调度效率。从算子内核角度,飞桨提供了编译器自动融合调优方案,以提升端到端的性能。同时,飞桨还为新硬件厂商建设了代码合入、持续集成、模型回归测试等研发基础设施。这些机制保障了新硬件被纳入飞桨的正常发版体系中,用户无需编译即可直接安装试用。飞桨这种功能完善、低成本接入的机制吸引了硬件厂商共同为飞桨贡献了 4001 个 PR,共包含 26584 个 commits。
除了上述核心特性外,高扩展中间表示为了提升飞桨框架的可扩展性,我们研发了高扩展中间表示 PIR(Paddle Intermediate Representation)。这一表示系统性地抽象了底层核心概念,提供了灵活且高效的组件。PIR 作为基础设施,支撑着动转静、自动微分、自动并行、组合算子、图优化等多项技术,并广泛应用于分布式训练、模型压缩、推理部署等场景。通过 PIR 提供的 DRR(Declarative Rewrite Rule)机制,Pass 的开发成本可以降低 60%。同时 PIR 完成在全场景的验证,并默认开启,支持一键动转静,保证了框架卓越的性能表现和良好的拓展性。对框架 2.0 版已有功能的持续改进,同时新特性在使用体验、性能、二次开发便利度以及硬件适配能力等方面带来了显著提升。此版本在用户体验层面持续丰富并增强了满足更多场景的 API 功能,针对大模型场景优化完善了分布式并行策略优化和推理功能增强,在编译安装方面做了比较彻底的易用性改进,对依赖包的安装方式和版本进行了全新同步升级,对系统安全进行了全面加固,对产品文档也进行了全面的纠错检查,同时也对一些废弃代码做了大量的清理以保证架构的简洁性。
不兼容升级¶
飞桨 API 支持隐式类型提升。在加减乘除等最常用的计算中,如果两个输入的数据类型不一样,就需要确定输出的数据类型问题。飞桨历史上的现状是部分支持且实际规则并不清楚,客观上表现为动静不一致、API 和运算符重载不一致 及 不符合交换率,特别是在大模型广泛使用 bf16/fp16 与 fp32 进行混合计算时容易出现非预期问题且难以定位。飞桨从 3.0 beta 版本开始,明确了隐式数据类型提升规则,其中详细定义了 Tensor 与 Tensor 和 Tensor 与 1 个数(Scalar)计算结果的类型,保证了计算符合交换律,运算符重载与二元 API 结果一致,动态图与静态图结果一致。更符合用户理解和业界习惯。https://github.com/PaddlePaddle/Paddle/pull/60638, https://github.com/PaddlePaddle/Paddle/pull/63842, https://github.com/PaddlePaddle/Paddle/pull/60011
废弃功能¶
支持 0 维 Tensor 已经稳定了 2 个版本,本版本取消了在一些情况下将 0 维 Tensor 转成只含 1 个元素的 1 维 Tensor 的开关 FLAGS_set_to_1d,这个开关是为了兼容一些套件中用 1 个元素的 1 维 Tensor 表示 0 维 Tensor 的不正确写法。即当前飞桨完全区分 0 维 Tensor 和只含 1 个元素的 1 维 Tensor 的语义,两者不等价。https://github.com/PaddlePaddle/Paddle/pull/61227
1. 用户体验升级¶
新特性¶
新增飞桨 API,扩展飞桨功能。包括
paddle.nn.FeatureAlphaDropout
,paddle.cartesian_prod
,paddle.distributed.to_distributed
,paddle.pi
等。#64881, #65605, #70757, #71030, #69946, #70021, #69613, #68123, #70032新增 Tensor 类方法和属性,及新增相关单测,使得 Tensor 更易用。#68334, #68681, #69132, #69270, #69256, #69197, #69231, #69222, #69257, #69301, #69361, #69348, #69464, #69542, #69667, #69563, #69796, #69477, #69779, #69724, #69835, #69781, #69982, #69913, #70026, #70013, #69539, #69736, #69841, #70277, #69580, #69599, #69693, #69848, #69751, #70556, #70591, #69673, #70647, #68192, #68511, #68833, #69406, #69480, #69463, #69632, #69473, #68694, #69534, #69820, #70121
API 功能增强¶
增强了 43 个 API 的功能,使得已有 API 更易用,也更容易进行代码转换。包括但不限于增加 API 参数,扩展 API 支持的数据类型,以及修正原有不合理设计等。#65105, #65103, #62975, #64436, #63346, #68079, #67878, #68432, #68677, #69012, #69385, #65032, #64977, #67071, #67298, #66687, #65946, #66170, #66929, #67994, #67947, #68033, #68046, #68294, #68214, #68281, #68390, #68772, #69451, #69252, #69529, #69750, #69827, #69099, #68594, #70090, #70228, #70166, #70389, #70790, #71029, #71283, #71342
飞桨 Python API 全面支持类型提示。所有 Python API 的参数和返回值都添加了类型提示,以便于开发和使用。#65209, #65201, #65190, #65082, #65226, #65076, #65238, #65236, #65247, #65249, #65244, #65272, #65191, #65290, #65255, #65292, #65300, #65301, #65332, #65323, #65326, #65273, #65317, #65354, #65283, #65372, #65337, #65085, #65382, #65381, #65378, #65274, #65380, #65386, #65351, #65284, #65366, #65308, #65375, #65376, #65464, #65197, #65455, #65457, #65487, #65486, #65547, #65504, #65460, #65183, #65454, #65559, #65560, #65570, #65569, #65566, #65620, #65568, #65567, #65660, #65645, #65600, #65532, #65765, #65767, #65770, #65768, #65771, #65772, #65774, #65769, #65773, #65766, #65776, #65775, #65755, #65779, #65777, #65823, #65807, #65821, #65819, #65810, #65808, #65824, #65553, #65818, #65812, #65803, #65865, #65870, #65866, #65844, #65845, #65853, #65874, #65871, #65809, #65867, #65822, #65872, #65873, #65869, #65868, #65849, #65875, #65876, #65843, #65727, #65587, #66006, #66005, #65785, #65784, #65811, #65919, #65838, #65852, #65847, #66014, #65805, #66009, #66012, #65633, #66011, #66010, #66013, #66015, #66016, #66030, #66028, #66029, #66054, #66040, #65993, #66058, #66280, #66037, #66057, #66077, #66051, #65912, #66090, #66189, #66127, #66277, #66119, #66270, #66305, #66306, #66279, #66276, #66295, #66301, #66473, #66384, #66505, #66328, #66394, #66392, #66432, #66575, #66572, #66656, #66475, #66654, #66616, #66694, #66686, #66766, #66749, #66760, #66803, #66770, #66693, #66771, #66792, #66862, #66867, #66684, #66966, #66793, #66987, #66985, #66989, #66639, #66994, #66986, #66993, #67002, #66996, #67001, #66864, #67031, #67089, #67143, #67179, #67178, #67284, #67104, #67079, #67132, #67147, #67204, #67112, #67233, #67366, #67067, #67391, #67428, #67197, #67047, #66890, #67159, #67439, #67555, #67448, #67556, #67469, #67558, #67405, #67644, #67624, #67679, #67677, #67785, #67767, #65319, #65277, #67673, #65557, #67527, #66965, #65905, #65657, #66357, #68163
优化了较多飞桨 API 的报错信息,使得报错更易懂。#67148, #67154, #67546, #67335, #67255, #67099, #67074, #67073, #66957, #67063, #67575, #67608, #67634, #67325, #67429, #67401, #66881, #68492, #67695, #69833, #70398
Bug 修复¶
修复
paddle.nn.functional.max_unpool1d
中当输入 output_size 为 tuple 时的 bug。 #65910修复
paddle.base.core.eager.Tensor
中不支持 paddle::DataType 的问题。 #66765修复打开 pir 开关时,bf16 训练报错的问题。 #66833
修复流水线并行中,线性层 bias 的问题。 #67212
修复流水线并行中,使用 loss 进行判断时的报错问题。 #66980
修复流水线并行中,使用
paddle.Tensor.item
的报错问题。 #67441修复
paddle.einsum
在特定场景的 bug。 #67588修复
paddle.nn.SyncBatchNorm
在梯度计算时的报错问题。 #67559修复 issue #69992 提到的问题。 #70017
修复
paddle.arange
在遇到大整数时,计算结果错误的问题。 #70188修复
paddle.max
、paddle.min
在输入存在 nan 时传播不正确问题。 #70049修复
paddle.linalg.svd
,paddle.linalg.any
等 API 在处理 0-size Tensor 时的问题。 #70235, #70489, #70047, #70103, #70127, #70098, #70077, #70130, #70254, #70125, #70342, #70369, #71094, #71089, #71185, #70537, #70481修复一些类型提示标注的问题、文档问题等。#65429, #65496, #65461, #65542, #65575, #65545, #65609, #65644, #65700, #65697, #65719, #65639, #65742, #65891, #65877, #65895, #66007, #66679, #66680, #66676, #66677, #66884, #67288, #67302, #66978, #67295, #67520, #67421, #67529, #67536, #67618, #67661, #67698, #67800, #67933, #67893, #68108, #67927, #68322, #68341, #68415, #68372, #68559, #68598, #68708, #68780, #68992, #68989, #68895, #69014, #69139, #68996, #69090, #68922, #69333, #69141, #69609, #69652, #69715, #69716, #69934, #70253, #70297, #70252, #70468, #70102, #70546, #70616, #70582, #70635, #70499, #70755, #70935, #71133, #71172, #71238, #71230, #71394
文档优化¶
增强了若干 API 文档,使得文档易读和易懂。#67772, #69895, #65904, #66480, #66974, #67100, #66991, #67287, #67841, #68206, #68305, #68462, #67061, #66503, #68856, #68866, #68768, #69215, #69449, #69396, #69498, #69413, #69404, #69729, #69749, #69266, #69989, #70209, #70128, #70143, #69874, #70242, #70145, #70813, #71046
2. 基础执行架构¶
PIR 全面推全并默认开启,支持一键动转静,保证了框架卓越的性能表现和良好的拓展性。
Bug 修复¶
修复参数配置导致的精度问题。 #65814
修复 save/load 相关 Bug。 #65268, #65359, #65373, #65314, #65446, #65476, #66891, #66931, #65978, #67654, #67906, #68723, #71452, #71457, #67819, #68120, #68300, #68315, #68743, #68744, #69585, #71165, #71400
跳过/修复在 PIR 模式下的失败单测,包括 Windows、XPU 等场景。 #65690, #65759, #65730, #65760, #65833, #65834, #65856, #65886, #65899, #65932, #65998, #65953, #65997, #66061, #66111, #66137, #66073, #66203, #66227, #65744, #66234, #67487, #67561, #67584, #67742, #69832, #65885, #66709, #66734, #66959, #67399, #67389, #67230, #67403, #67619, #67662, #67902, #67382, #67430, #67517, #67533, #67573, #67468, #67640, #67667, #67716, #68386, #67234, #67266, #67362, #67631, #68081
修复动转静相关 Bug。 #67617, #67936, #68938, #68734, #69010, #69408, #69461, #69699, #69774, #69803, #69853, #70510, #70830, #70904, #70913, #71040, #71048, #71106, #71201, #71216, #71223, #71296, #71385, #71505, #66934, #71096, #71144, #71430, #71437, #71473, #71412, #65648, #67853, #66543, #68229, #70846, #67532
修复其他 Bug,包括反向传播梯度计算、内存拷贝、执行器报错等。 #65493, #65678, #65673, #65794, #66358, #66875, #67339, #67465, #67754, #67835, #67892, #67967, #67952, #68036, #68063, #68128, #68151, #68140, #68167, #68200, #68325, #68376, #68539, #68530, #68637, #68639, #68688, #68751, #68806, #68810, #68779, #68811, #68844, #68790, #68870, #68960, #68999, #69036, #69188, #69234, #69375, #69399, #69538, #69603, #69633, #69765, #69768, #69821, #70091, #70123, #70147, #70201, #70198, #69815, #70420, #70377, #70552, #70545, #70595, #70836, #70771, #70922, #70969, #70926, #71117, #71151, #71194, #71234, #71339, #71445, #66350, #66533, #66622, #67721, #67700, #69207, #69615, #69785, #67805
功能优化¶
支持 save/load。 #65296, #65671, #66231, #66185, #66722, #66863, #67057, #68101, #68628, #66359, #68481
支持 custom device。 #70909, #71294, #71362, #71010, #71036, #70637, #71085
其他场景的执行支持。 #65050, #65664, #65741, #65786, #65499, #66441, #67668, #68199, #69088, #70199, #70308, #70709, #70937, #71066, #71079, #71121, #71136, #71205
新特性¶
SOT 适配 Python 3.13 版本字节码,支持 Python 3.13 下以 SOT 模式转静。#68071, #69126, #69131, #69196, #69232, #69253, #69267, #69412, #69431, #69432, #69436, #69557, #69567, #69700, #69707, #69735, #69738, #69744, #69753, #69887, #69920, #69950, #70319, #70927
适配 PIR 前向执行。 #65335
适配 save/load。 #67910
适配 pylayer。 #70335
优化 PIR 下的逻辑。 #67961
普通用户无关改动¶
其他¶
开发者¶
动转静功能修复,提升整图转换成功率,优化推理导出体验。#65291, #66153, #66379, #66557, #67021, #67482, #67495, #67981, #68030, #68078, #68328, #68442, #68679, #68850, #68892, #68991, #69043, #69097, #69210, #69295, #69428, #69518, #69642, #69940, #70118, #70169, #70218, #70287, #70412, #71099, #71156, #71193, #71336, #71463, #71476, #71503
Inplace 策略升级。 #65491
控制流相关开发。 #67251
添加环境变量。 #68467
支持稀疏算子运算。 #67111
其他执行支持开发,包括逻辑优化、版本适配、添加单测等。 #69241, #69806, #70768, #66829, #67110, #67442, #67041, #67452, #69061, #69307, #68669, #69829, #70003, #70443, #70364, #71495
性能优化¶
优化动态 shape 场景转静能力,降低构图次数,减少编译时间。#65235, #65477, #65517, #65882, #66346, #66746, #67786, #67876, #68113, #68302, #68337, #68616, #69354, #70009, #70877
SOT 端到端性能优化,减少子图打断,降低调度开销,提升转静训练性能。#67591, #67746, #67823, #67890, #67921, #68031, #68153, #68729, #69249, #69263, #69300, #69313, #69325, #69353, #69411, #69506, #69672, #69746, #69834, #69836, #69852, #69975, #70151, #70293, #70405, #70851, #71039, #71254, #71295, #71298, #71346, #71377, #71407
加速 PIR 执行器执行速度。 #69513
优化 PIR 保存和加载性能。 #69683
针对 device 进行优化。 #69676
清理输入输出冗余信息。 #66278
3. 编译器架构¶
CINN 编译器在完备性、性能表现等方面效果全面提升。此版本中,我们对编译器前端、后端各个环节进行了全面优化:包括新增反向计算图自动 Re-Compute 机制、前端 Pass 性能优化、符号推导机制升级、算子融合策略优化、后端 Schedule 策略和下标表达式化简能力增强等,同时排查并修复了大量正确性和性能问题,系统化的提升了编译器的通用优化能力。在飞桨 PaddleX 系列模型开启 CINN 编译器后相比动态图模式有超 60% 模型有显著性能提升。
新功能¶
功能优化¶
性能优化¶
新增了 GridReduce、Loop 合并、Transpose 调优、自动向量化等后端优化策略,显著提升了各种维度空间、不同硬件配置全场景下的 Kernel 性能。(#67236、#68897、#69409、#65336、#66419、#68338、#68364、#71087、#68019、#68122、#65187、#66742、#67083、#68667、#68750、#69376、#69350、#69740、#68918、#70092、#69607、#69794、#70258、#70547、#70581、#70649、#69732、#70786、#70942、#71014、#71263、#71249、#71340、#71301、#71380)
优化算子融合策略,升级了包括水平融合、多下游融合、Reshape 对齐融合等多种策略,进一步增强算子的融合能力,提升端到端优化性能。(#66034、#67829、#68171、#69478、#69691、#70665、#71103、#70873)
升级了后端下标表达式的化简能力,支持动静态维度的复杂表达式化简,显著降低后端生成 Kernel 的下标计算开销。(#68011、#68617、#68624、#68685、#68220、#68720、#68753、#68986、#68987、#69071、#69164、 #69282、#69522、#69857、#70208、#70355、#70427、#70450、#68737、#70500、#70953、#70933、#71026、#70456、#70257、#70461、#70142、#71018、#71278)
新增了反向计算图自动 Re-Compute 机制,可有效降低模型训练显存并提升性能。(#69342、#70255、#68241、#69954、#70832)
优化后端 Host、Device 代码编译流程,降低编译耗时,同时提升 Broadcast 场景下分支的处理性能。(#65669、#65916、#66109、#65611、#65990、#66088、#66207、#66537、#66768、#70685、#71410、#66062)
完善升级了动态维度的符号推导、化简、缓存等机制,添加了所有常规算子(580+)的符号推导接口实现,为 Kernel 编译提供更多约束信息。(#65343、#66582、#65500、#65591、#66637、#68208、#68056、#68015、#68096、#68236、#68973、#68967、#69133、#68550、#68882、#69005、#69911、#70376、#71153、#66644、#66650、#66642、#66729、#66838、#66762、#66580、#66612、#66625、#66643、#66837、#66946、#67018、#67049、#66956、#67008、#66930、#66877、#66896、#67120、#67117、#67098、#67136、#67294、#67327、#66827、#67201、#66892、#67377、#66619、#67037、#67412、#67394、#67374、#67418、#67348、#67337、#67390、#67407、#67491、#67422、#67461、#67458、#67486、#67490、#67462、#67364、#67435、#67665、#67426、#67507、#67730、#67776、#67806、#67803、#67788、#67705、#67814、#67858、#67751、#67875、#67663、#67434、#67818、#68180、#68547、#68548、#68670、#68964、#68929、#68907、#68917、#68984、#68644、#69167、#68975、#68947、#68978、#68980、#68979、#69329、#69055、#69331、#69414、#69335、#69017、#69344、#69069、#69698、#69919、#69964、#70337、#70282、#70741、#70818、#71031、#70541、#66609、#66889、#66633、#66735、#66935、#66627、#66730、#67210、#67115、#67275、#67472、#67577、#67328、#67566、#67451、#68098、#68225、#68177、#68102、#67951、#67957、#68235、#68447、#68446、#68183、#68318、#68385、#67635、#65623、#65956、#66063、#65992、#65880、#66343、#65889、#66606、#66618、#66737、#66607、#66579、#66732、#66849、#66400、#66952、#66570、#66967、#66595、#67121、#67206、#67444、#67494、#67499、#67267、#67567、#67455、#67161、#67581、#67539、#67625、#67690、#67454、#67731、#67734、#67735、#67607、#67413、#67387、#67882、#67864、#67503、#67861、#67888、#67884、#67826、#68044、#67851、#68276、#69888、#70093、#70436、#70914、#71222)
优化了部分前端 Pass,提高前端处理流程的鲁棒性,提升计算密集型的子图性能。 (#65142、#67466、#69228、#70994、#71226、#71297、#71443)
设计了新的后端 IR 基础组件和相关 Pass 接口,提供更加简洁高效的优化策略开发方式,通过自动剪枝策略同时可有效降低后端 IR 的遍历开销。(#70485、#70765、#71042、#70952、#69454、#70361、#70334、#70406、 #70191、#70462、#70548、#70592、#70437、#70619、#70543、#69611、#70739、#70533、#70696、#70498、#70829、#71111、#70883)
Bug 修复¶
修复部分算子符号推导实现逻辑的 Bug。(#65185、#65231、#65266、#65951、#67142、#67286、#65958、#65955、#66470、#66764、#66036、#66662、#66741、#66745、#66807、#66791、#66859、#66880、#66962)
修复部分特殊算子 Lowering 到编译器时的 Bug。(#68698、#68699、 #68691、#68948、#70144、#70895)
修复算子融合在部分场景报错的问题。(#67038、#67400、#67655、#67723、#68029、#68042、#68888、#69250、#69937、#70924)
修复后端在处理极端值时的正确性问题,提高编译器的鲁棒性。(#68327)
修复后端 Schedule 和 后处理调优过程的实现逻辑 Bug,解决部分 case 下的报错和性能问题。(#68605、#68937、#68587、#69060、#69608、#71471、#71068)
4. 自动并行架构¶
在 3.0 正式版中,我们对自动并行架构进行了深入的验证和打磨,以更好地支持纯文稠密模型、纯文稀疏模型(MoE)和多模态理解模型等常见大模型场景的预训练+精调流程。具体而言,我们针对这些场景新增了 20+算子的切分推导规则,并支持将自动并行训练参数转化成手动并行参数进行下游推理,使自动并行达到了全面可用的状态,帮助用户降低大模型并行程序的开发成本。同时,为了进一步简化用户的分布式开发流程,我们推出了一个新的paddle.distributed.parallel
接口,基于对分布式张量标记语法的封装,支持用户在模型组网外不侵入地配置数据并行、模型并行、流水并行等常见的并行策略。此外,静态图自动并行架构基于 PIR 完成了全面的升级,底层的基础组件、核心模块、并行策略和性能优化策略均统一基于扩展的 PIR DistDialect
进行实现,进一步增强了自动并行的动静一致性,并在 Llama 系列模型上性能达到了持平甚至领先手动并行方式的水平。
新特性¶
新增
paddle.distributed.parallel
接口,支持在模型组网外配置常见并行策略,简化分布式开发流程。#69004, #69033, #69077, #69136, #69169, #69212, #69217, #69283, #69288, #69326, #69365, #69384, #69426, #69443, #69462, #69492, #69628, #69677, #69697, #69776, #69896, #70138, #70182, #70539, #71116, #71210面向纯文稀疏场景支持 MoE 专家并行,实现专家并行变 mesh 切分转换机制并支持自动调用 all2all 通信。#66462, #66750, #68004, #68053, #68187, #68477, #69098, #69262, #69296, #70715, #71292, #71320
为了满足极致手工优化场景下用户自行管理切分状态和通信操作的需求,同时解决部分非 SPMD 场景下无法使用张量切分语法的问题,我们新增了
LocalLayer
接口,支持自动并行和手动并行混合组网。#70519, #70525, #70600, #71232, #71264, #71373为了让用户可以使用国产硬件运行自动并行程序,完成了对昆仑芯片的适配,其它芯片的支持也在进行中。#70997, #71126, #71229, #71289, #71425, #71500
针对数据维度无法整除设备维度的情况,支持了非均衡的切分推导和切分转换。#66103, #67756, #69265, #70072
对 shard_dataloader 功能进行了升级,支持通过
batch_sampler
设置梯度累加步数,同时支持模型多输入的场景。#65325, #70659对参数保存和加载功能进行了升级,支持参数异步存储、支持动态图和静态图互相加载
master_weight
、同时支持参数版本控制和 offload 功能。#66858, #67427, #70105, #70639为了满足用户对含有
PyLayer
的组网进行动转静的需求,在静态图模式下对PyLayer
进行了支持,允许在PyLayer
内部运行分布式张量。#67326, #68190, #69089, #70831为了解决数据流输入格式与模型动转静实际需要的
input_spec
不一致导致无法正确动转静的问题,对动转静接口支持了用户自定义input_spec
功能,允许用户自行传入需要的input_spec
。#69183针对混合并行场景,对梯度裁剪策略进行了适配和支持。#65259, #65928, #69287, #69760, #71421
针对模型层数不整除设备数的场景,支持非均衡流水并行策略,允许用户在不同流水阶段切分数量不同的网络层。#69728, #70164, #70230
新增
set_mesh
和get_mesh
接口,支持用户方便地设置和获取全局 mesh。#69999新增自动并行和手动并行精度对齐开关,方便将已有的手动并行模型改写成自动并行后验证精度正确性。#67681
功能改进¶
对于算子切分推导规则进行完善和优化
新增
assign
和embedding_grad
算子切分推导规则。#67457新增
clip
算子切分推导规则。#70632新增
dist_stack
和gather_nd
算子切分推导规则。#65426新增
dropout
算子切分推导规则。#70216新增
fused_dropout_add
算子切分推导规则。#67722新增
fast_ln
自定义算子切分推导规则。#68148新增
greater_equal
和less_equal
算子切分推导规则。#68868新增
greater_than
和less_than
算子切分推导规则。#68133新增
if
算子切分推导规则。#69357新增
logical_and
、logical_not
、logical_or
和logical_xor
算子切分推导规则。#67840新增
logsumexp
算子切分推导规则。#67840新增
non_zero
算子切分推导规则。#67996新增
pad
算子切分推导规则。#68304新增
p_norm
算子切分推导规则。#68317新增
scatter_nd
算子切分推导规则。#67980新增
sigmoid
算子切分推导规则。#71092
静态图自动并行架构基于 PIR 升级
流水并行策略升级。#66810, #67174, #67522, #68141, #68742, #68962, #69052, #69201, #69244, #69578, #69584, #69654, #69799, #69894, #70360, #70615
梯度累加策略升级。#66641, #67254, #67907, #68391, #68460, #68472, #68664, #68727, #69171, #69805
算子融合策略升级。#68087, #68207, #68383, #68623, #68650, #68736, #69103, #70889
tensor_fusion
优化策略升级。#66130, #68475, #69243, #69560, #69823, #70195, #70309, #70363, #70869自定义算子切分推导机制升级。#67614
计算图编译时间优化。#68796
bug 修复¶
修复切分推导机制及若干算子的切分推导规则 bug。#65702, #65835, #66098, #66955, #67052, #67059, #67101, #67283, #67729, #67996, #68413, #68455, #68533, #68976, #68977, #69027, #69203, #69223, #69862, #69991, #70100, #70624, #71024, #71152, #71214, #71253, #71388
修复切分转换机制的若干 bug。#65060, #65820, #67630, #67809, #68115, #68468, #70023
修复
shard_dataloader
动态图和静态图结果不一致以及切分 dict 类型数据、自定义sampler
场景等场景下的问题。#65262, #66096, #66882, #69620修复
recompute
设置use_reentrant=false
时和参数切分不兼容的 bug。#65188修复
Conv2D
、fill_constant
、flash_attn_grad
、reduce_scatter
、if
、tuple_push
和tuple_pop
等算子的 bug。#67587, #68008, #68586, #68589, #69519, #70207修复在部分卡上未初始化的分布式张量转 numpy 时自动分配显存的 bug。#66361
修复非切分张量调用 to_tensor 时触发数据拷贝的 bug。#67169
修复
scaler
参数切分的 bug。#68289修复
enable_delay_scale_loss
精度问题。#68525修复通信组创建顺序不同导致的 hang 问题。#68847
修复静态图下计算图 cache 机制失效的 bug。#68488
修复
paddle.distributed.to_distributed
索引越界的 bug。#70174修复流水并行可视化工具的 bug。#71386
5. 算子机制¶
算子相关 PR,包括组合算子拆分、新硬件适配算子 kernel、稀疏算子运算、旧 IR 算子退场等工作,为 PIR 适配编译器、多硬件并取得性能优势奠定了基础;规范了算子体系优化了代码结构,减少了技术债,并提升了可维护性。
新特性¶
支持组合算子拆分。 #65148, #65007, #65482, #65006, #65692, #65961, #65968, #65967, #66510, #66795, #66835, #67151, #67342, #67481, #67502, #67606, #67757, #67775, #67891, #67790, #67965, #67968, #68168, #68125, #68228, #68295, #68353, #68357, #68827, #68834, #69239, #68817, #69108, #69373, #69372, #68829, #69684, #68818, #68835, #69838, #69998, #69675, #70367, #70080, #71352, #66450, #67593, #67988, #68346, #68399, #68319, #68485, #68961, #68575
支持手动 Recompute。 #65879
实现 kernel 并注册算子。 #63130
添加 acos 的动态图二阶反向组合。 #70409
支持 0-size tensor 的初始化和计算。 #70504
Bug 修复¶
修复 save/load 相关 Bug。 #69153
其他算子调用和执行过程中的问题修复,包括类型匹配、类型推导、参数类型支持等,。 #65360, #65024, #66308, #67085, #67285, #67076, #67547, #68007, #68527, #68549, #68543, #68604, #68741, #68859, #69025, #69065, #69405, #69688, #69912, #70177, #70517, #70596, #70788, #70870, #71332, #71454, #71442, #71499, #67459, #68470, #70206
其他¶
废弃¶
xshape 输出退场。 #66769, #67009, #67152, #67172, #67355, #67373, #66089
移除 fluid 体系下废弃的算子及其 kernel、相关单测、相关调用代码。 #67370, #67088, #67324, #67666, #68058, #68311, #68358, #68312, #68355, #67528, #68316, #68356, #68397, #68441, #68417, #68567, #68583, #68649, #68331, #68730, #69754, #69445, #69921, #70268, #69446, #69544, #70272, #69745, #70300, #70388, #70421, #70302, #70445, #69275, #69081, #70588, #67778, #67953, #68093, #68092, #67684, #69665, #67915, #67917, #68403, #68404, #68969, #68953, #68954, #68942, #68950, #69381, #69380, #69448, #69680, #69775, #69812, #69840, #69828, #69742, #69923, #69922, #69904, #70002, #70054, #70052, #70053, #70713, #70718, #70718, #70717
开发者相关¶
支持组合算子,包括适配算子、添加 Flag、测试用例等。 #67725, #65252, #67590, #68076, #66711, #68813, #68928, #69054, #69156, #69255, #69460, #70270
增加算子 API 别名用于 PaddleCustomDevice。 #69526
移动算子定义位置,使其只支持动态图。 #69289
标注仅前向计算算算子。 #68580
将 view 运算的反向算子改为复用前向算子,从而支持科学计算场景下高阶微分的需求。 #71086
迁移算子文件位置/修改函数命名空间/修改函数参数名等。 #66393, #67066, #67012, #67243, #67367, #67760, #67242, #67189, #67899, #67687, #68035, #67682, #68464, #68469, #67900, #68563, #68562, #68564, #68479, #68588, #68726, #68719, #68767, #68557, #68671, #68786, #67948, #64999, #68581, #68361, #68656, #68396, #68059, #68785, #68665, #68869, #67626, #68921, #69268, #69271, #69306, #69302, #69341, #69364, #69343, #69383, #69415, #69437, #69494, #69541, #69543, #69540, #69569, #69568, #69621, #69622, #69701, #69702, #69704, #69743, #69780, #69814, #69822, #69893, #69967, #69976, #70011, #70015, #70007, #70010, #70346, #70414, #69951, #70299, #70441, #70435, #68420, #70671, #70705, #68540, #70211, #67489, #66927, #66942, #66848, #66796, #67036, #67244, #67299, #67171, #67293, #67208, #67408, #67523, #67689, #67694, #67797, #67894, #65969, #65939, #67928, #68097, #66744, #68496, #66943, #68773, #69272
改进¶
6. 框架性能优化¶
性能优化相关 PR,包括优化算子性能、优化 kernel 表现、优化内存、优化命名空间等,给使用者带来更好的开发体验。
新特性¶
功能改进¶
Bug 修复¶
性能优化¶
其他¶
7. 推理部署¶
重点围绕新一代中间表示(PIR)生态建设与大模型推理优化两大核心方向, 主要突破包括:
PIR-TensorRT 深度融合
完成核心执行机制重构与代码优化,开发 50+算子转换器
新增低精度支持(FP16/INT8)与 Generic Plugin 执行能力
构建完整单测体系,支持模型加载/保存全流程
大模型推理性能飞跃
新增混合专家系统(MoE)全流程支持,覆盖 Hopper 架构优化
支持 128K 超长序列处理,提升长文本推理能力
实现 FP8/W8A8 等前沿量化方案,降低显存占用
基础架构全面升级
OneDNN 升级至 3.6 版本,CPU 推理性能显著提升
模型加载速度优化 40%+,支持 PIR 模型快速加载
完善分布式推理支持,修复 allreduce 数据类型问题
新增功能¶
支持基于飞桨新一代中间表示(PIR)的 Paddle-TensorRT
算子 Marker 及 Converter 开发。#67753,#67956,#68084,#67974,#68395,#68216,#68529,#68608, #68663,#68757,#68614,#68783,#68775,#68839,#68686,#68840,#68941,#69015,#69038,#69117,#69208,#69315,#69261,#68878,#69705,#69706,#70170,#70267,#70429,#69330,#70507,#70535,#70667,#70816,#70826,#70955,#71028,#71013,#71157,#71231,#69199,#68956,#66658,#66811,#67519,#67877,#68090,#69086,#68787,#68778,#69318,#69995,#70325,#70817,#70879,#70875,#71041,#68876
单测体系、pass 使用支持等辅助功能完善#67525,#68034,#71281,#71235,#67568,#70139,#70529
大模型推理优化
功能完善¶
性能优化¶
Bug 修复¶
修复 Predictor 在保存/加载 PIR 模型时有关问题。 #65180,#65019,#65714,#69619,#67570,#65595,#69200
修复推理单测在 PIR、多硬件等场景下的执行问题。#65763,#66481,#67105,#67248,#67470,#67638,#68135,#68191,#68211,#68160,#68185,#68127,#68887,#69191, #70961,#68020,#67923,#67963,#68482,#68546,#68593,#68793
修复 Paddle TensorRT 转换与执行相关问题。#66932,#66655,#67274,#67504,#65780,#68170,#68647,#68776,#69573,#69598,#69510,#69864,#69885,#70161,#70116,#70791,#70801,#70824,#70939, #71143,#71154,#71163,#71183,#71233,#71287,#71319,#67720,#69671,#70168,#69957
Pass 相关问题修复。#65349,#65421,#65677,#66850,#67443,#67620,#68158,#68642,#68837,#68880,#68935,#69112,#69205,#69242,#69352,#69421,#69690,
修复 fused_moe 相关问题(测试/GEMM/WINT4/多架构兼容性/Bias 可选)#67353, #67396, #67717, #67794, #67783
修复 block_attention 系列问题(GQA 差异/越界风险/多头支持)#67175, #69001, #70763
其他关键修复(减小 C++库体积/修复 NeoX 格式下的 RoPE 计算/修复静态图执行)#66041, #66583, #67580
8. 硬件适配¶
针对昆仑、海光等平台持续进行功能完善和升级,提升用户体验
新功能¶
昆仑芯 XPU 上进行 OP 的添加和功能的完善,涉及的 ops 包括:flash attention/flash_attn_unpadded、multinomial、matmul、repeat_interleave、logsumexp、index_put_grad、mean_grad、pow、pow_grad、rsqrt、full、rms_norm、rms_norm_grad、put_along_axis、Cumsum、argmin、masked_select/grad、expand_v2/grad、all2all、expand、reduce_sum、reduce_max、reduce_min、moe、fused_linear_param_grad_add、adamw、clip/clip_grad、tan、acos、blha_get_max_len、gather/gather_grad、scatter/scatter_grad、round、index_select/sindex_select_grad、isfinite、isinf、quantize_linear、dequantize_linear、conv3d_transpose、logsumexp_grad、index_add_grad、eye、gather_element、tril、triu、set_value_grad、argmax、take_along_axis 等 #65413, #64846, #65656, #65963, #66143, #66482, #66585, #67077, #67173, #67551, #63989, #67919, #68052, #68176, #68408, #68454, #68478, #68473, #68453, #68770, #68933, #69042, #68713, #69368, #69723, #69767, #69898, #69970, #69771, #70176, #70428, #70573, #70576, #70633, #70114, #70627, #71038, #71132, #71228, #71274, #71364, #71375, #71431, #71451, #67585, #67637, #67914, #67641, #67913, #67955, #68411, #68560, #68423, #68894, #71053, #71047, #69056, #70843, #65653, #68023, #67780, #68622, #67215
海光 DCU 上添加 rocsolver、warpctc 的支持,并进行 OP 的添加和功能的完善,涉及的 ops 包括:flash_attention、hipblaslt、fastgelu、multiclass_nms3
Bug 修复¶
昆仑芯 XPU 上进行 OP 的 Bug 修复 #65020, #65251, #65418, #65387, #65525, #65613, #65533, #65705, #65915, #66238, #66485, #67349, #67372, #67276, #67460, #67496, #67530, #67828, #68010, #68157, #68172, #68388, #68213, #68501, #68504, #68585, #69229, #69374, #69424, #69440, #69614, #68542, #69990, #70351, #70479, #70431, #70638, #70856, #70974, #70973, #71027, #71062, #71115, #71110, #70858, #71147, #71212, #71361, #71423, #70859, #71492, #71493, #69826, #67341, #68906, #71171
9. 环境更新¶
优化了框架的稳定性和跨平台兼容性,修复了测试覆盖率及编译环境兼容性问题,并增强对 Windows/XPU/DCU 等多平台支持;同时精简了代码结构,移除废弃代码和无用依赖库以降低维护成本;升级 CUDA 等关键依赖,进一步优化 CI/CD 流程,提升构建速度并增强系统整体稳定性。
Bug 修复¶
改进升级¶
新特性¶
10. 其他¶
与用户使用无关的改动,包括废弃代码清理、代码迁移、单测清理、调试或者监控机制升级等。
开发者相关内容¶
删除无用调试代码,代码迁移 #65256, #65782, #65836, #65840, #65862, #65863, #65987, #66547, #66556, #66645, #66646, #66648, #66672, #66783, #66083, #65562, #66564, #66370, #66912, #66913, #66914, #66915, #66664, #66671, #66121, #65907, #65949, #65950, #65954, #66545, #66649, #66900, #66901, #66902, #66903, #66904, #66906, #66907, #66908, #66909, #66549, #66555, #66647, #66898, #66886, #66042, #66043, #66045, #66046, #65826, #65825, #65827, #65829, #65830, #65831, #66081, #66082, #66087, #65980, #65981, #65983, #65985, #65979, #65986, #65988, #65989, #66682, #66717, #65802, #66159, #66147, #66149, #66150, #65798, #65731, #66145, #66086, #65781, #65837, #65828, #65864, #65959, #65706, #66918, #66191, #66689, #66808, #65424, #65452, #65463, #65478, #65339
规范化代码命名空间 #64755, #64765, #64767, #64770, #64775, #64776, #64757, #64780, #64777, #64779, #64758, #64759, #64762
修改算子列表 #66573, #65598, #65100, #65385, #65192, #65118, #65108, #65153, #65465, #65128, #65420, #65099, #65207, #66066, #65400, #65160, #65195, #65445, #65479, #65193, #65401, #66724, #65164, #65466, #65661, #65897, #66022, #65313, #65616, #65588, #65174, #65402, #65154, #65151, #65098, #64953, #65122, #65590, #65152
报错信息提示优化 #66668, #66675, #66605, #66613, #66507, #66700, #66739, #66719, #66733, #66552, #66548, #66623, #66702, #66705, #66718, #66727, #66860, #66869, #66933, #66939, #66553, #66774, #66794, #66551, #66540, #66617, #66841, #66788, #66954, #66698, #66782, #66844, #66443, #66455, #66517, #66804, #66802, #66536, #66707, #66525, #66753, #66550, #66857, #66471, #66628, #66469, #66775, #66506, #66780, #66953, #66695, #66603, #66491, #66715, #66632, #66594, #66615, #66578, #66534, #66569, #66529, #66530, #66522, #66789, #66600, #66511, #66512, #66527, #66518, #66958, #66532, #65258, #66487, #66876, #66832, #66872, #66830, #66708, #66502, #66521, #66592
废弃¶
废弃代码清理、无用单测清理 #65894, #66165, #66293, #66102, #66442, #66922, #66531, #65518, #66800, #66372, #65902, #65462, #65327, #65189, #65181, #66535, #65383, #65173, #66429, #66386, #66447, #66367, #66160, #65408, #65433, #65481, #65444, #65389, #65663, #65649, #65629, #66142, #65796, #66163, #66291, #65480, #65495, #65498, #65503, #65502, #65501, #65512, #65528, #65472, #65390, #65344, #65384, #65388, #65198, #65248, #65443, #65430
11. 贡献者名单¶
0x3878f, 0x45f, 2742195759, 86kkd, A-nnonymous, ADream-ki, Aganlengzi, Albresky, AndPuQing, AndSonder, Aoraki-Dream, ApricityXX, Asthestarsfalll, Aurelius84, BHmingyang, BeingGod, Betelgeu, BiynXu, CJ77Qi, Caogration, DDDivano, Dale1314, Deleter-D, DesmonDay, Difers, Dmovic, DongBaiYue, DrRyanHuang, DrownFish19, Eddie-Wang1120, EgoistSA, FeixLiu, ForFishes, Fripping, From00, Function-Samuel, GoldenStain, Guanhuachen2003, GuoxiaWang, Hanyonggong, HarperCy, Hongqing-work, HydrogenSulfate, JZ-LIANG, Jeff114514, JiaWenxuan, LLee233, LanCole, Lans1ot, Layssy, Leoforever123, LiYuRio, LielinJiang, LittleHeroZZZX, Liujie0926, Liyulingyue, Luohongzhige, Marcusryz, MarisaSparkL, Micalling, MikhayEeer, MrXnneHang, MufanColin, NKNaN, Neo-WY, NeroLoh, PolaKuma, Qin-sx, QingshuChen, RachelXu7, RichardWooSJTU, RuohengMa, SCUcookie, Sekiro-x, SigureMo, Sunny-bot1, SylarTiaNII, Sylence8, TBD1, TR666, TimeYWL, Tom-Zheng, Turingg, Victor-Bayim, Vvsmile, WAYKEN-TSE, Wanglongzhi2001, Wangzheee, Waynezee, Wennie396, Whsjrczr, Wizard-ZP, Wong4j, XavierZXY, XiaociZhang, XieYunshen, Xing-lil, Xreki, YKTian-x2b, YZW-explorer, YanhuiDua, YuanRisheng, ZHOU05030, ZhangHandi, ZhangX-21, ZibinGuo, a2064968462, anderson101866, aooxin, aquagull, baoqiwen, bapijun, blacksheep-Aristotle, bukejiyu, carryyu, ccsuzzh, chang-wenbin, changeyoung98, chen2016013, ckl117, cmcamdy, co63oc, continue-coding, cqulilujia, crazyxiaoxi, cszdrg, cubehan3, cyber-pioneer, danleifeng, decade-afk, deepllz, dynamicheart, eee4017, eggman-1024, enkilee, epiphanyer, ethan-sem, fangfangssj, feixi21, fightfat, fufu0615, fxfxfxfxfxfxfxfx, fxy1699, gitliuyf, gongel, gongshaotian, gongweibao, gouzil, gsq7474741, guixxiic, gzy19990617, hanyang2508, haoyu2022, heavyrain-lzy, houj04, huangjiyi, huangkr03, hxzd5568, icpcccpc, inaomIIsfarell, iosmers, jeff41404, jerrywgz, jiachengdai, jiahy0825, jinmingyi1998, jinyouzhi, joseflv, jychen21, jzhang533, kangguangli, kanze1, kineast, kircle888, l1cacheDell, leo0519, lifulll, linkk08, little1d, liufengwei0103, liuruyan, lixcli, liym27, liyongchao911, lizexu123, lizhenyun01, lj970926, lshpku, lszxb, ltd0924, luotao1, lwkhahaha, lxd-cumt, mayang002, megemini, mikemikimike, ming1753, monster1015, mori0umi, ndyysheep, nizne9, nobodynobody, ooooo-create, penPenf28, phlrain, pkuzyc, qili93, rich04lin, risemeup1, ronny1996, rsmallblue, runzhech, skywalker2012, smile2game, sneaxiy, successfulbarrier, sunzhongkai588, swgu98, tc20042008, tianhaodongbd, tianshuo78520a, tizhou86, tlxd, uanu2002, umiswing, vivienfanghuagood, waliwali777, walkalone20, wanghuancoder, wangna11BD, will-jl944, winffke, winter-wang, wwwuyan, xiaoguoguo626807, xiaoluomi, xiaoyao0115, xingmingyyj, xkkkkkk23, xu8117, xuxinyi389, xz-alex, yangrongxinuser, yeteye, yinfan98, yongqiangma, yuan20041218, yuanlehome, yuguo-Jack, yumin066, zbt78, zeroRains, zhangbo9674, zhanghonggeng, zhanglirong1999, zhangting2020, zhangyk0314, zhangyuqin1998, zhiminzhang0830, zhink, zhiqiu, zhouquan32, zhoutianzi666, zhwesky2010, zoooo0820, zrr1999, zty-king, zxcd, zyfncg