
4 月 1 日,飞桨框架迎来重大更新,官方发布了飞桨框架 3.0 正式版。
据介绍,飞桨框架 3.0 版本不仅延续了飞桨框架 2.0 系列动静统一、训推一体的特性,更在自动并行、神经网络编译器、高阶自动微分等方面取得突破。飞桨框架 3.0 具备以下五大新特性:
动静统一自动并行:通过少量的张量切分标记,即可自动完成分布式切分信息的推导,Llama 预训练场景减少 80%的分布式相关代码开发。
大模型训推一体:依托高扩展性的中间表示(PIR)从模型压缩、推理计算、服务部署、多硬件推理全方位深度优化,支持文心 4.5、文心 X1 等多款主流大模型,DeepSeek-R1 满血版单机部署吞吐提升一倍。
科学计算高阶微分:通过高阶自动微分和神经网络编译器技术,微分方程求解速度比 PyTorch 快 115%。
神经网络编译器:通过自动算子自动融合技术,无需手写 CUDA 等底层代码,部分算子执行速度提升 4 倍,模型端到端训练速度提升 27.4%。
异构多芯适配:通过对硬件接入模块进行抽象,降低异构芯片与框架适配的复杂度,兼容硬件差异,初次跑通所需适配接口数比 PyTorch 减少 56%,代码量减少 80%。
飞桨框架 3.0 旨在开为发者提供一个“动静统一、训推一体、自动并行、自动优化、广泛硬件适配”的深度学习框架,像写单机代码一样写分布式代码,无需感知复杂的通信和调度逻辑,即可实现大模型的开发;像写数学公式一样用 Python 语言写神经网络,无需使用硬件开发语言编写复杂的算子内核代码即可实现高效运行。目前 3.0 正式版本已面向开发者开放,并且兼容 2.0 版本的开发接口。
据悉,飞桨框架 3.0 在训练、推理等方面为文心大模型提供端到端优化,训练方面重点提升训练吞吐、训练有效率和收敛效率,集群训练有效率超过 98%;推理部署方面通过注意力机制量化推理、通用投机解码等技术提升推理吞吐和效率;全面支持文心 4.5、文心 X1 等大模型的技术创新和产业应用。
飞桨 3.0 提供了深度学习相关的各种开发接口;表示层专注于计算图的表达与转换,通过高可扩展中间表示 PIR,实现动转静、自动微分、自动并行、算子组合以及计算图优化等核心功能;调度层负责对代码或计算图进行智能编排与高效调度,支持动态图和静态图两种不同的执行模式;算子层由神经网络编译器 CINN 和算子库 PHI 共同构成,涵盖了张量定义、算子定义、算子自动融合和算子内核实现等关键功能;适配层则用于实现与底层芯片适配,包括设备管理、算子适配、通信适配以及编译接入等功能。

飞桨框架 3.0 架构图
飞桨框架 3.0 的此次发布主要针对当前算法工程师和科研人员在使用现有深度学习框架进行算法创新时面临的诸多挑战。
全面支持自动并行训练
传统的单机单卡训练已无法满足需求,分布式并行训练成为加速大模型迭代的关键。然而分布式训练需使用复杂的并行策略,包括数据并行、张量并行、参数分片并行、流水线并行、序列并行、专家并行等,如何实现多种并行策略的高效协同已成为关键瓶颈。
当前,无论是动态图还是静态图,市场上的并行训练框架普遍存在使用成本高的问题。开发者既要熟知模型结构,还要深入了解并行策略和框架调度逻辑,使得大模型的开发和性能优化门槛非常高,制约了大模型的开发和训练效率。为此,飞桨提出了动静统一自动并行方案,具体工作流程如下图所示:

动静统一自动并行流程图
据介绍,该技术通过原生动态图的编程界面与自动并行能力,同时保障灵活性和易用性,大幅降低大模型并行训练的开发成本;同时利用框架动静统一的优势,一键转静使用静态优化能力,提供极致的大模型并行训练性能。开发者仅需少量的张量切分标记,框架便能自动推导出所有张量和算子的分布式切分状态,并添加合适的通信算子,保证结果正确性。
飞桨自动并行功能允许用户仅需借助少量 API 调用,即可将算法转换为并行训练程序。以 Llama2 的预训练为例,传统实现方式需要开发者精细调整通信策略,以确保正确高效执行,而自动并行实现方式相比传统方式减少 80%的分布式核心代码。
据悉,基于飞桨大模型开发套件(PaddleNLP、PaddleMIX),飞桨框架已全面验证 Llama、QwenVL 等从大语言模型到多模态模型的预训练、精调阶段的自动并行训练。此外,飞桨协同文心实现了精细化重计算、稀疏注意力计算优化、灵活批次的流水线均衡优化等,这些优化技术在飞桨框架 3.0 中开源。

动静统一自动并行训练速度对比
大模型训推一体
飞桨框架 3.0 继续采用“动静统一、训推一体”的设计理念,并在大模型场景下持续优化。
在推理部署方面,相较于动态图,静态图部署范围更为广泛,能够通过整图导出的方式,摆脱对 Python 源代码和执行环境的依赖,而且更适合进行全局调优,可通过手写或者借助编译器自动实现算子融合等方式来加速推理过程。
据悉,得益于动静统一的架构和接口设计,飞桨能够完整支持动态图和静态图这两种不同的运行模式,并且具备出色的整图导出能力。飞桨的动转静整图导出成功率高达 95%,高于 PyTorch 62%。
“训推一体”意味着能够在同一套框架下,尽可能复用训练和推理的代码,特别是复用模型组网代码。与业界当前先使用 PyTorch 和 DeepSpeed 进行训练,再采用 vLLM、SGLang、ONNXRuntime 等推理引擎进行推理部署的方案相比,飞桨采用训练和推理使用同一套框架的方式可以避免不同框架之间可能出现的版本兼容性问题,以及因模型结构变化、中间表示差异、算子实现差异等带来的问题。

飞桨训推一体架构设计
据悉,飞桨框架 3.0 支持了 DeepSeek V3/R1 满血版及其系列蒸馏版模型的 FP8 推理,并且提供 INT8 量化功能,破除了 Hopper 架构的限制。此外,还引入了 4 比特量化推理,使得用户可以单机部署,降低成本的同时显著提升系统吞吐一倍,提供了更为高效、经济的部署方案。
在性能优化方面,飞桨对 MLA 算子进行多级流水线编排、精细的寄存器及共享内存分配优化,性能相比 FlashMLA 最高可提升 23%。综合 FP8 矩阵计算调优及动态量化算子优化等基于飞桨框架 3.0 的 DeepSeek R1 FP8 推理,单机每秒输出 token 数超 1000;若采用 4 比特单机部署方案,每秒输出 token 数可达 2000 以上,推理性能显著领先其他开源方案。
此外,飞桨框架 3.0 还支持了 MTP 投机解码,突破大批次推理加速,在解码速度保持不变的情况下,吞吐提升 144%;吞吐接近的情况下,解码速度提升 42%。针对长序列 Prefill 阶段,通过注意力计算动态量化,首 token 推理速度提升 37%。

DeepSeek 模型单机推理速度对比(H800 上 256 并发不含 MTP 测试)
助力科学前沿探索
科学智能(AI for Science)为解决科学问题带来新方法的同时,也需要深度学习框架能够具备更加丰富的各类计算表达能力,如高阶自动微分、傅里叶变换、复数运算、高阶优化器等,还要实现深度学习框架与传统科学计算工具链的协同。
为此,飞桨框架 3.0 提出了基于组合算子的高阶自动微分技术,如下图所示。该技术的核心思想是将复杂算子(如 log_softmax)拆解为多个基础算子的组合,然后对这些基础算子进行一阶自动微分变换。重要的是,基础算子经过一阶自动微分变换后,其所得的计算图仍然由基础算子构成。通过反复应用一阶自动微分规则,可以轻松获得高阶自动微分的结果。

基于组合算子的高阶自动微分技术
据悉,英伟达 Modulus 的 41 个不同方程实验显示,飞桨的微分方程求解速度比 PyTorch 开启编译器优化后的 2.6 版本平均快 115%。此外,飞桨还实现了傅里叶变换、复数运算、高阶优化器等功能,这些方法在航空航天、汽车船舶、气象海洋、生命科学等多个领域都具有广泛的应用潜力。
在模型层面,团队研发了赛桨(PaddleScience)、螺旋桨(PaddleHelix)等系列开发套件,并对 DeepXDE、Modulus 等主流开源科学计算工具进行了广泛适配。

飞桨 AI for Science 全景图
神经网络编译器技术
众多深度学习的应用场景,如大模型训练、自动驾驶等,对模型的训练与推理速度均提出了极高的要求。
在模型结构层面,模型结构正日益呈现出多样化的趋势,从基础的全连接网络,到复杂的卷积神经网络、循环神经网络、Attention 网络、状态空间模型、图神经网络等,每一种模型结构都拥有其独特的计算模式与优化需求。
在硬件特性方面,算力的增长速度远远超过了访存性能的提升,访存性能的瓶颈限制了访存密集型算子(如归一化层、激活函数等)的执行效率。特别是,当前市场上硬件平台种类繁多,需要投入大量的人力物力进行针对性的优化工作,这将严重拖慢算法创新和产业应用的速度。
以 Llama 模型中经常使用的 RMS Normalization(Root Mean Square Layer Normalization)为例,其计算公式相对简单明了:

假设需要实现 RMS Normalization 的计算,简单方法是可以使用飞桨框架提供的张量运算开发接口,调用平方、求和、除法、开根号等操作来完成:

上述代码开发简单,但是由于存在大量的访存操作导致性能很差,且显存占比较多。为了突破访存瓶颈,开发者可以选择通过手写 CUDA 代码的方式实现一个融合的 FusedRMSNorm 算子,但是对于开发者要求更高、开发成本也更高,更重要的是这种方式极大降低了可维护性和灵活性。
为此,飞桨框架 3.0 研制了神经网络编译器 CINN(Compiler Infrastructure for Neural Networks),相比于 PyTorch 2.0 的 Inductor 加 Triton 的两阶段编译方案,CINN 支持直接从神经网络中间表述编译生成 CUDA C 代码,通过一阶段的编译方案,CINN 避免了两阶段编译由于中间表示信息传递和表达能力限制所造成的信息损失,具备更通用的融合能力和更好的性能表现。主要特点如下:
以 Reduce 为核心的算子融合技术。摒弃传统的粗粒度 pattern 匹配模式,支持维度轴自动变换对齐融合,在保证计算正确性的同时,具有更强的算子融合能力,带来更大的性能优化潜力。动静态维度的高效后端 Kernel 调优技术。算子全面支持 reduce、broadcast、transpose 等多种算子的不同组合方式,针对各类算子组合和数据类型,自适应不同维度大小与不同硬件配置,进行全场景高效调优。通过自动向量化提高 BF16、FP16 等小数据类型的访存效率。通过分析与分桶机制,实现动静态运行时配置生成,根据运行时的硬件配置,在无需 profiling 的情况下生成高效的 kernel。动态维度的复杂表达式化简技术。建立了分层化简体系,Lower、Schedule、CodeGen 阶段执行不同等级化简方法,解决传统化简方法中多场景叠加后化简困难、化简不彻底问题。实现了复杂表达式结构化简,抽取融合算子经过编译、调优后的固定子结构进行专项化简,且灵活支持自定义化简方法。

神经网络编译器 CINN 流程图
以下为 A100 平台上 RMSNorm 算子的性能测试结果:相较于采用 Python 开发接口组合实现的方式,经过编译优化后的算子运行速度提升了 4 倍;即便与手动算子融合的方式相比,也实现了 14%的性能提升,在灵活性与高性能之间寻找到了较为理想平衡点。飞奖团队在 PaddleX 开发套件里选取了超过 60 模型进行实验,使用 CINN 编译器后超 60%模型有显著性能提升,平均提升达 27.4%。重点模型相比 PyTorch 开启编译优化后的版本平均快 18.4%。

神经网络编译器 CINN 训练速度对比
标准化统一硬件适配
在深度学习的创新探索与产业落地进程中,单一芯片往往难以满足复杂多变的业务需求,因此通常需要融合运用多种芯片来构建解决方案。
飞桨框架 3.0 版本聚焦于硬件接口的抽象。飞桨将硬件接口细分为设备管理、计算执行、分布式通信等多个类别,通过标准化的硬件接口成功屏蔽了不同芯片软件栈开发接口之间的差异。通过合理的抽象,减少了适配所需的接口数量,以昇腾芯片适配为例,初步跑通所需适配接口数比 PyTorch 方案减少 56%,适配代码量减少 80%。

多硬件统一适配方案
基于标准化适配接口的定义,飞桨实现了松耦合、可插拔的架构,每类芯片仅需提供标准化适配接口的具体实现,便能融入飞桨后端。考虑到不同芯片软件栈成熟度的差异,飞桨提供涵盖算子开发、算子映射、图接入、编译器接入等方式。针对大模型训练与推理需求,飞桨支持动静统一编程范式、超大规模分布式训练技术等。据悉,基于前述技术,飞桨已经适配 60 多个芯片系列。
评论