
低代码开发工具PaddleX 3.0-beta聚焦了主流AI场景与优质模型,进一步满足开发者在本地硬件设备上开发模型的需求。
飞桨框架3.0-beta寒武纪版
设计思路
飞桨框架3.0版本延续了2.x版本动静统一、训推一体的设计理念,其开发接口全面兼容2.x版本。这意味着,使用2.x版本开发的代码,在绝大多数情况下无需修改,即可直接在3.0版本上运行。在飞桨框架3.0-beta寒武纪版中,着重推出了动静统一自动并行、大模型训推一体、大模型寒武纪硬件适配三大新特性。这些特性在飞桨框架2.6版本或更早版本时就已经开始开发,目前已达到外部可试用的阶段。使用飞桨框架3.0-beta寒武纪版可显著提升开发者的使用体验,不仅能够充分调动寒武纪硬件的性能,同时二次开发极其便利。
▲飞桨框架3.0的设计理念和主要特色
飞桨3.0升级亮点
飞桨框架对外提供了丰富的深度学习相关的各种开发接口,如张量表示、数学计算、模型组网、优化策略等。通过这些接口,开发者能够便捷地构建和训练自己的深度学习模型,无需深入到底层的技术细节中去。
在开发接口之下,飞桨框架可以划分为4个层次:表示层、调度层、算子层和适配层。
▲飞桨框架3.0架构
本次飞桨3.0版本全新升级的有以下两个模块:
计算图中间表示(IR)是深度学习框架性能优化、推理部署、编译器等方向的重要基石。在3.0版本下,飞桨在基础架构层面规范了中间表示 IR 定义,实现全架构统一表示,实现上下游各个方向共享开发成果。飞桨的新一代 IR 架构聚焦于高度灵活和高扩展性两个重要维度,通过更加完备且鲁棒的语义表达能力、训推全架构统一表示和高效可插拔的性能优化策略(Pass)开发机制,实现复杂语义支持,更便捷地支撑大模型自动并行下丰富的切分策略,无缝对接神经网络编译器实现自动性能优化和寒武纪硬件适配。

飞桨中间表示(PIR)在底层抽象了一套高度可扩展的基础组件,涵盖 Type、Attribute、Op、Trait 和 Interface,并引入了 Dialect 的概念,赋予开发者灵活扩展与自由定制的能力,从而提供了全面且稳健的语义表达能力。
飞桨提供了 PatternRewriter 和 Declarative Rewrite Rule(简称 DRR)这两种 Pass 开发机制,兼顾了自定义的灵活性与开发的易用性。采用三段式的 Pass 开发方式,使开发者能够更加专注于 Pass 逻辑的处理,而无需关注底层IR的细节。
自动并行的开发方式降低大模型场景模型开发和性能优化的成本,大幅提升了大模型场景的用户体验。
开发者仅需少量的张量切分标注,框架便能自动推导出所有张量和算子的分布式切分状态,并添加合适的通信算子,保证结果正确性;最后会根据模型结构和集群信息,结合显存、调度层优化,自动寻找最高效的分布式并行策略。
通过采用自动并行的开发方式,开发者无需再考虑复杂的通信逻辑。以 Llama 任务为例,分布式训练核心代码量减少了50%,从而大大降低了开发的难度;从飞桨的一些实验可知,借助全局的分析等优化,性能也优于动态图手动并行的性能。
飞桨与寒武纪目前已经进行了适配,支持了常见算子和典型模型,参考文档如下:
https://www.paddlepaddle.org.cn/documentation/docs/zh/guides/hardware_support/mlu/index_cn.html
https://github.com/PaddlePaddle/PaddleCustomDevice/blob/develop/backends/mlu/README_cn.md
https://github.com/PaddlePaddle/PaddleCustomDevice/pull/633
飞桨框架3.0-Beta寒武纪版面向大模型进行专属设计,向下与寒武纪硬件适配,充分释放寒武纪硬件潜能;向上一体化支撑大模型的训练、推理。同时具有动静统一自动并行、大模型训推一体、寒武纪适配三大能力,全面地提升了服务产业的能力。
目前飞桨的新一代框架3.0-Beta版已面向开发者开放,并且所有的开发接口跟2.0完全兼容,欢迎广大的开发者去使用和反馈。
#安装PaddlePaddle。#该命令会自动安装飞桨主框架的3.0-beta版本:python -m pip install paddlepaddle==3.0.0b1 -i https://www.paddlepaddle.org.cn/packages/stable/cpu/#安装CustomDevice。#该命令会自动安装飞桨Custom Device的3.0-beta版本:python -m pip install paddle-custom-mlu==3.0.0b1 -i https://www.paddlepaddle.org.cn/packages/stable/mlu/
PaddleX 3.0-beta寒武纪版
↓ PaddleX 3.0-beta开源体验地址↓
模型丰富,场景全面
模型开发的过程中,开发者们常常面临模型零散、选择困难等挑战。为了解决这些问题,当前 PaddleX 精选了68个优质的飞桨模型,覆盖了图像分类、目标检测、图像分割、OCR、时序预测等多个关键领域,并整合为16条模型产线。
▲ 产业级模型产线
如何低成本开发和优化单模型一直是业界关注的问题,PaddleX 为了解决这个问题,在模型的开发流程上做了升级,开发者无需深入底层原理,仅需要统一的命令,加载不同的配置,即可完成不同任务的数据校验、训练、评估、推理。在此基础上,PaddleX 暴露了关键超参数,支持开发者快速修改调参优化模型。
python main.py -c config.yaml -o Global.mode=train
main.py为模型开发统一入口,config.yaml 中包含了具体模型的信息,如模型名字、学习率、批次大小等,mode 支持数据校验(dataset_check)、训练(train)、评估(evaluate)、推理(predict)。模型训练完之后,会自动保存模型的动态图和静态图权重,方便后续集成。
python main.py -c config.yaml -o Global.mode=train -oTrain.learning_rate=0.001 -o Train.epochs_iters=100
PaddleX支持开发者对常用超参数进行快速修改进而完成模型的优化,对于模型优化的关键超参数,已经在模型对应的 config.yaml 中暴露,可以通过命令行方便地修改替换。
开发者可以方便地将训练好的模型通过三行代码,集成到自己的项目中,也可以通过这些简单的 Python API 完成模型的组合使用。
from paddlex import create_modelmodel = create_model(model_name="PP-YOLOE_plus-S", model_dir="your_model_dir")result = model.predict({'input_path': "xxx.jpg"})
03.
寒武纪硬件支持
为了满足寒武纪用户的AI开发需求,PaddleX与寒武纪基于飞桨框架在硬件兼容性和灵活性方面的优势,进行了深度适配。只需添加一个配置设备的参数,即可在寒武纪上使用上述工具。在寒武纪硬件上,PaddleX 3.0-beta 支持的模型数量达到数十个,涵盖图像分类、目标检测、图像分割、时序等多个领域,详细的模型支持可以在寒武纪模型列表中查看。未来寒武纪会持续和飞桨合作,适配更多PaddleX开源的模型。
https://github.com/PaddlePaddle/PaddleX/blob/develop/docs/tutorials/models/support_mlu_model_list.md
在PaddleX上基于寒武纪硬件启动训练的方式非常简单,以模型训练为例子,只需要参照安装文档,安装多硬件版本的飞桨框架后,在启动训练时指定使用设备即可。
#通过-o Global.device指定使用设备为寒武纪MLUpython main.py -c config.yaml -o Global.mode=train -o Global.device=mlu
8月29日(周四)晚8:00,寒武纪工程师将做客百度飞桨课程直播,与百度飞桨核心团队工程师一起,全面解读飞桨3.0-beta寒武纪版与PaddleX 3.0-beta寒武纪版。小伙伴们可以扫描下方图片中的二维码获取直播信息,我们不见不散!


