专栏名称: 飞桨PaddlePaddle
源于产业实践的开源深度学习平台
目录
相关文章推荐
产业互联网大视野  ·  找钢网与一亩田:两家产业互联网"硬骨头"公司 ... ·  15 小时前  
Python开发者  ·  清北 DeepSeek ... ·  3 天前  
中国财富  ·  潘盛烈被查 ·  3 天前  
中国财富  ·  潘盛烈被查 ·  3 天前  
51好读  ›  专栏  ›  飞桨PaddlePaddle

PaddleX 3.0-beta1 重磅升级,200+模型一站式全流程开发

飞桨PaddlePaddle  · 公众号  ·  · 2024-10-17 19:00

正文

2023年12月,飞桨正式推出了低代码开发工具—— PaddleX 。这款一站式AI开发工具集成了飞桨开发套件多年积累的模型训练、推理全流程开发的优势能力。近期,PaddleX 团队发布了全新的 PaddleX 3.0-beta1 版本,带来四大重磅升级,包括:

  • 提供 200+ 模型 通过极简的 Python API 一键调用
  • 实现基于统一命令的模型训练推理全流程开发,并集成了 PP-ChatOCRv3-doc 模型产线
  • 支持 100+ 模型高性能推理与服务化部署,端侧部署覆盖 4 条产线 8 个模型
  • 支持昆仑芯、昇腾、寒武纪、海光等硬件快速推理与二次开发 ,使用上和GPU无缝切换

PaddleX 3.0-beta1 代码库地址,欢迎大家star:

https://github.com/PaddlePaddle/PaddleX/tree/release/3.0-beta1  

下面我们就对上述升级依次进行说明。

模型丰富 一键调用

PaddleX 从产业落地的角度出发,为大家精挑细选了超 200 个模型,覆盖文本图像智能分析、OCR、目标检测、时序预测等多个关键领域。
同时,PaddleX还将这些模型整合为 19 条模型产线,进一步方便大家使用。模型产线是指一系列预定义好的、针对特定AI任务的预测系统,包含能够独立完成某类任务的单模型(单功能模块)组合。模型产线支持命令行一键快速体验效果,以及极简的 Python API 方便大家进行开发与集成。以 OCR 产线为例,该产线集成了文本检测模型、文本识别模型,因此可实现端到端的文本识别,使用 PaddleX 可一键体验效果:
# 安装好PaddlePaddle与PaddleX, 一键体验效果paddlex --pipeline OCR --input ./test_ocr.png --save_path ./output
运行上述命令,即可得到预测结果,可视化图像如下:
如果对产线的预测效果满意,PaddleX 提供了统一的 Python API ,可以直接对产线进行快速集成。仍以 OCR 产线为例,仅需三行代码即可支持:
from paddlex import create_pipelinepipeline = create_pipeline("OCR") output = pipeline.predict("general_ocr_002.png")
此外,PaddleX 还支持高性能推理、服务化部署、端侧部署,方便大家灵活集成到不同部署环境中,后续 多种 场景灵活部署” 章节有详细介绍。
对于上述 OCR 产线,其内部由文本检测模型、文本识别模型组成。PaddleX 同样支持以上单模型进行推理预测,方便大家针对性解决业务问题。以下是单独使用文本检测模型进行推理预测的示例:
from paddlex import create_modelmodel = create_model("PP-OCRv4_mobile_det")          output = model.predict("general_ocr_002.png")
此外,如果对产线效果不满意,PaddleX 提供了单模型开发工具,方便大家对模型进行微调训练,详细可参考接下来的章节。
提高效率 降低门槛 
为了方便大家选择合适的模型进行微调训练,PaddleX 提供了全部 200 余个模型的benchmark信息,包括精度、推理速度等指标,具体可查看模型列表。
https://github.com/PaddlePaddle/PaddleX/blob/release/3.0-beta1/docs/support_list/models_list.md
使用 PaddleX 高效的单模型开发工具,可以基于统一命令完成数据校验、模型训练与评估到模型推理,开发者无需了解深度学习的底层原理,按模型要求准备好场景数据,简单运行命令即可完成模型迭代:
python main.py -c config.yaml -o Global.mode=train
上述命令中:main.py 为模型开发统一入口文件;-c 用于指定模型配置文件的参数,模型配置文件 config.yaml 中包含了具体模型的信息,如模型名、学习率、批次大小等,其中 mode 支持指定数据校验(dataset_check)、训练(train)、评估(evaluate)、推理(predict)。

多种场景灵活部署
PaddleX 针对不同应用场景,提供了多种部署方案,以满足用户多样化的部署需求。
(1)本地高性能推理
在实际生产环境中,许多应用对部署策略的性能指标(尤其是响应速度)有着较严苛的标准,以确保系统的高效运行与用户体验的流畅性。为此,PaddleX 提供高性能推理插件,通过对模型推理及前后处理进行深度性能优化,实现端到端流程的显著提速。对于部分模型,使用高性能推理插件可将模型推理时间最多可以缩短 80% 以上。部分模型使用高性能推理插件前后推理耗时对比如下:
以上测试使用 1 块 Intel Xeon Gold 5117 CPU 与 1 块 NVIDIA Tesla T4 GPU,仅记录模型对于单张输入图像的推理耗时(不含前后处理耗时)。
启用高性能推理插件十分方便:用户只需在星河社区免费获取序列号,然后使用 PaddleX CLI、Python API 时,打开 use_hpip 开关并指定序列号即可。CLI 和 Python API 的例子分别如下:
paddlex \   --pipeline OCR \   --input https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/general_ocr_001.png \   --device gpu:0 \   --use_hpip \   --serial_number {序列号}from paddlex import create_pipeline

pipeline = create_pipeline( pipeline="OCR", use_hpip=True, serial_number="{序列号}",)
output = pipeline.predict("https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/general_ocr_001.png")
高性能推理文档入口: https://github.com/PaddlePaddle/PaddleX/blob/develop/docs/pipeline_deploy/high_performance_deploy.md 
(2)服务化部署
在大规模应用中,常常需要将模型产线部署为服务,以保障系统的灵活性和可扩展性。针对这一需求,PaddleX 基于 FastAPI 框架实现了简单易用的产线服务化部署方案。具体而言,通过 PaddleX CLI ,用户可以一键将产线部署成服务,例如:
paddlex --serve --pipeline OCR
服务启动后,用户可参考 PaddleX 产线使用教程中的多语言调用示例(覆盖 Python、C++、Java、Go、C#、JavaScript、PHP 等 7 种语言)对服务进行调用。 目前,PaddleX 已集成的所有官方产线均支持服务化部署。
服务化部署文档入口: https://github.com/PaddlePaddle/PaddleX/blob/develop/docs/pipeline_deploy/service_deploy.md 
(3)端侧部署
PaddleX 提供一系列 Android demo,帮助用户在端侧 ARM CPU 和 Mali/Adreno GPU(OpenCL)上部署模型产线。目前端侧部署示例覆盖 4 条产线、8 个模型,各 demo 均配套有完善的使用文档。目前已支持端侧部署的产线和模型如下:
端侧部署文档入口: https://github.com/PaddlePaddle/PaddleX/blob/develop/docs/pipeline_deploy/lite_deploy.md 
主流硬件高效支持
为了满足用户的多硬件需求,PaddleX 团队基于飞桨框架在硬件兼容性和灵活性方面的优势,积极适配了多种芯片,为用户在硬件上提供更大的选择空间。除了英伟达 GPU 之外,PaddleX 3.0-beta1 还支持 昆仑芯、昇腾、寒武纪、海光 等硬件。只需添加一个配置设备的参数,即可在对应硬件上使用 PaddleX 进行快速推理和二次开发。目前昇腾910B已经适配 100+ 模型,昆仑芯、寒武纪和海光也在持续适配中。详细的模型支持列表请在以下链接中查看:

昇腾

https://github.com/PaddlePaddle/PaddleX/blob/release/3.0-beta1/docs/support_list/model_list_npu.md

昆仑芯

https://github.com/PaddlePaddle/PaddleX/blob/release/3.0-beta1/docs/support_list/model_list_xpu.md

寒武纪

https://github.com/PaddlePaddle/PaddleX/blob/release/3.0-beta1/docs/support_list/model_list_mlu.md

海光

https://github.com/PaddlePaddle/PaddleX/blob/release/3.0-beta1/docs/support_list/model_ list_dcu.md

未来我们将继续在这些硬件上适配更多的模型,并在主流硬件上推动高性能和服务化部署的实施,敬请期待。
在PaddleX上基于多硬件启动训练的方式非常简单,只需要在对应硬件上参照 安装文档 安装多硬件版本的飞桨框架及 PaddleX 后,在启动训练时指定 使用设备 即可。
  • 基于昇腾训练模型

指定使用设备为昇腾npu
python main.py -c config.yaml -o Global.mode=train -o Global.device=npu
  • 基于昆仑训练模型
指定使用设备为昆仑芯xpu
python main.py -c config.yaml -o Global.mode=train -o Global.device=xpu
  • 基于寒武纪训练模型

指定使用设备为寒武纪mlu
python main.py -c config.yaml -o Global.mode=train -o Global.device=mlu
  • 基于海光训练模型

指定使用设备为海光dcu






请到「今天看啥」查看全文