0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

三行代码完成AI模型的部署!

CVer 来源:CVer 作者:CVer 2022-11-10 10:18 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

人工智能产业应用发展的越来越快,开发者需要面对的适配部署工作也越来越复杂。层出不穷的算法模型、各种架构的AI硬件、不同场景的部署需求(服务器、服务化、嵌入式、移动端等)、不同操作系统和开发语言,为AI开发者项目落地带来不小的挑战。44eb51b4-609d-11ed-8abf-dac502259ad0.png

为了解决AI部署落地难题,我们发起了FastDeploy项目。FastDeploy针对产业落地场景中的重要AI模型,将模型API标准化,提供下载即可运行的Demo示例。相比传统推理引擎,做到端到端的推理性能优化。FastDeploy还支持在线(服务化部署)和离线部署形态,满足不同开发者的部署需求。

经过为期一年的高密度打磨,FastDeploy目前具备三类特色能力:

全场景:支持GPUCPU、Jetson、ARM CPU、瑞芯微NPU、晶晨NPU、恩智浦NPU等多类硬件,支持本地部署、服务化部署、Web端部署、移动端部署等,支持CV、NLP、Speech三大领域,支持图像分类、图像分割、语义分割、物体检测、字符识别(OCR)、人脸检测识别、人像扣图、姿态估计、文本分类、信息抽取、行人跟踪、语音合成等16大主流算法场景。

易用灵活:三行代码完成AI模型的部署,一行API完成模型替换,无缝切换至其他模型部署,提供了150+热门AI模型的部署Demo。

极致高效:相比传统深度学习推理引擎只关注模型的推理时间,FastDeploy则关注模型任务的端到端部署性能。通过高性能前后处理、整合高性能推理引擎、一键自动压缩等技术,实现了AI模型推理部署的极致性能优化。

项目传送门:

https://github.com/PaddlePaddle/FastDeploy

以下将对该3大特性做进一步技术解读,全文大约2100字,预计阅读时长3分钟。

1

3大特性篇

2

3步部署实战篇,抢先看

CPU/GPU部署实战

Jetson部署实战

RK3588部署实战(RV1126、晶晨A311D等NPU类似)

1

3大特性解读

全场景:一套代码云边端多平台多硬件一网打尽,覆盖CV、NLP、Speech

支持PaddleInference、TensorRT、OpenVINO、ONNXRuntime、PaddleLite、RKNN等后端,覆盖常见的NVIDIAGPU、x86CPU、Jetson Nano、Jetson TX2、ARMCPU(移动端、ARM开发板)、Jetson Xavier、瑞芯微NPU(RK3588、RK3568、RV1126、RV1109、RK1808)、晶晨NPU(A311D、S905D)等云边端场景的多类几十款AI硬件部署。同时支持服务化部署、离线CPU/GPU部署、端侧和移动端部署方式。针对不同硬件,统一API保证一套代码在数据中心、边缘部署和端侧部署无缝切换。45072542-609d-11ed-8abf-dac502259ad0.jpgFastDeploy支持CV、NLP、Speech三大AI领域,覆盖16大类算法(图像分类、图像分割、语义分割、物体检测、字符识别(OCR) 、人脸检测、人脸关键点检测、人脸识别、人像扣图、视频扣图、姿态估计、文本分类 信息抽取 文图生成、行人跟踪、语音合成)。支持飞桨PaddleClas、PaddleDetection、PaddleSeg、PaddleOCR、PaddleNLP、PaddleSpeech 6大热门AI套件的主流模型,同时也支持生态(如PyTorch、ONNX等)热门模型的部署。4517dd88-609d-11ed-8abf-dac502259ad0.gif  

易用灵活,三行代码完成模型部署,一行命令快速体验150+热门模型部署

FastDeploy三行代码可完成AI模型在不同硬件上的部署,极大降低了AI模型部署难度和工作量。一行命令切换TensorRT、OpenVINO、Paddle Inference、Paddle Lite、ONNX Runtime、RKNN等不同推理后端和对应硬件。低门槛的推理引擎后端集成方案,平均一周时间即可完成任意硬件推理引擎的接入使用,解耦前后端架构设计,简单编译测试即可体验FastDeploy支持的AI模型。开发者可以根据模型API实现相应模型部署,也可以选择git clone一键获取150+热门AI模型的部署示例Demo,快速体验不同模型的推理部署。

			# PP-YOLOE的部署 import fastdeploy as fd import cv2 model = fd.vision.detection.PPYOLOE("model.pdmodel", "model.pdiparams", "infer_cfg.yml") im = cv2.imread("test.jpg") result = model.predict(im) # YOLOv7的部署 import fastdeploy as fd import cv2 model = fd.vision.detection.YOLOv7("model.onnx") im = cv2.imread("test.jpg") result = model.predict(im)

FastDeploy部署不同模型


			# PP-YOLOE的部署 import fastdeploy as fd import cv2 option = fd.RuntimeOption() option.use_cpu() option.use_openvino_backend() # 一行命令切换使用 OpenVINO部署 model = fd.vision.detection.PPYOLOE("model.pdmodel", "model.pdiparams", "infer_cfg.yml", runtime_option=option) im = cv2.imread("test.jpg") result = model.predict(im)FastDeploy切换后端和硬件
						

极致高效:一键压缩提速,预处理加速,端到端性能优化,提升AI算法产业落地

FastDeploy在吸收TensorRT、OpenVINO、Paddle Inference、Paddle Lite、ONNX Runtime、RKNN等高性能推理优势的同时,通过端到端的推理优化解决了传统推理引擎仅关心模型推理速度的问题,提升整体推理速度和性能。集成自动压缩工具,在参数量大大减小的同时(精度几乎无损),推理速度大幅提升。使用CUDA加速优化预处理和后处理模块,将YOLO系列的模型推理加速整体从41ms优化到25ms。端到端的优化策略,彻底解决AI部署落地中的性能难题。更多性能优化,欢迎关注GitHub了解详情。https://github.com/PaddlePaddle/FastDeploy45fb784a-609d-11ed-8abf-dac502259ad0.png    

2

3步部署实战篇,抢先看

1

CPU/GPU部署实战(以YOLOv7为例)

安装FastDeploy部署包,下载部署示例(可选,也可以三行API实现部署代码)


			pip install fastdeploy-gpu-python -f https://www.paddlepaddle.org.cn/whl/fastdeploy.html git clone https://github.com/PaddlePaddle/FastDeploy.git cd examples/vision/detection/yolov7/python/
						

准备模型文件和测试图片


			wget https://bj.bcebos.com/paddlehub/fastdeploy/yolov7.onnx wget https://gitee.com/paddlepaddle/PaddleDetection/raw/release/2.4/demo/000000014439.jpg
						

CPU/GPU推理模型


			# CPU推理 python infer.py --model yolov7.onnx --image 000000014439.jpg --device cpu # GPU推理 python infer.py --model yolov7.onnx --image 000000014439.jpg --device gpu # GPU上使用TensorRT推理 python infer.py --model yolov7.onnx --image 000000014439.jpg --device gpu --use_trt True

推理结果示例:

462f6b6e-609d-11ed-8abf-dac502259ad0.png

2

Jetson部署实战(以YOLOv7为例)

安装FastDeploy部署包,配置环境变量


			git clone https://github.com/PaddlePaddle/FastDeploy cd FastDeploy mkdir build && cd build cmake .. ­DBUILD_ON_JETSON=ON ­DENABLE_VISION=ON ­DCMAKE_INSTALL_PREFIX=${PWD}/install make ­j8 make install cd FastDeploy/build/install source fastdeploy_init.sh
						

准备模型文件和测试图片


			wget https://bj.bcebos.com/paddlehub/fastdeploy/yolov7.onnx wget https://gitee.com/paddlepaddle/PaddleDetection/raw/release/2.4/demo/000000014439.jpg
						

编译推理模型


			cd examples/vision/detection/yolov7/cpp cmake .. ­DFASTDEPLOY_INSTALL_DIR=${FASTDEPOLY_DIR} mkdir build && cd build make ­j # 使用TensorRT推理(当模型不支持TensorRT时会自动转成使用CPU推理) ./infer_demo yolov7s.onnx 000000014439.jpg 27s.onnx 000000014439.jpg 2

推理结果示例:

4645f58c-609d-11ed-8abf-dac502259ad0.png

3

RK3588部署实战以轻量化检测网络PicoDet为例)

安装FastDeploy部署包,下载部署示例(可选,也可以三行API实现部署代码)


			# 参考编译文档,完成FastDeploy编译安装 # 参考文档链接:https://github.com/PaddlePaddle/FastDeploy/blob/develop/docs/cn/build_and_install/rknpu2.md # 下载部署示例代码 git clone https://github.com/PaddlePaddle/FastDeploy.git cd examples/vision/detection/paddledetection/rknpu2/python
						

准备模型文件和测试图片


			wget https://bj.bcebos.com/fastdeploy/models/rknn2/picodet_s_416_coco_npu.zip unzip -qo picodet_s_416_coco_npu.zip ## 下载Paddle静态图模型并解压 wget https://bj.bcebos.com/fastdeploy/models/rknn2/picodet_s_416_coco_npu.zip unzip -qo picodet_s_416_coco_npu.zip # 静态图转ONNX模型,注意,这里的save_file请和压缩包名对齐 paddle2onnx --model_dir picodet_s_416_coco_npu --model_filename model.pdmodel --params_filename model.pdiparams --save_file picodet_s_416_coco_npu/picodet_s_416_coco_npu.onnx --enable_dev_version True python -m paddle2onnx.optimize --input_model picodet_s_416_coco_npu/picodet_s_416_coco_npu.onnx --output_model picodet_s_416_coco_npu/picodet_s_416_coco_npu.onnx --input_shape_dict "{'image':[1,3,416,416]}" # ONNX模型转RKNN模型 # 转换模型,模型将生成在picodet_s_320_coco_lcnet_non_postprocess目录下 python tools/rknpu2/export.py --config_path tools/rknpu2/config/RK3588/picodet_s_416_coco_npu.yaml # 下载图片 wget https://gitee.com/paddlepaddle/PaddleDetection/raw/release/2.4/demo/000000014439.jpg
						

推理模型


		python3 infer.py --model_file ./picodet _3588/picodet_3588.rknn --config_file ./picodet_3588/deploy.yaml --image images/000000014439.jpg
		


审核编辑 :李倩


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • AI
    AI
    +关注

    关注

    91

    文章

    41351

    浏览量

    302735
  • 人工智能
    +关注

    关注

    1821

    文章

    50371

    浏览量

    267082
  • 深度学习
    +关注

    关注

    73

    文章

    5610

    浏览量

    124659

原文标题:炸裂!三行代码完成AI模型的部署!

文章出处:【微信号:CVer,微信公众号:CVer】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    AI模型训练与部署实战 | 线下免费培训

    你是否想系统了解AI落地全链路,但缺少一个完整的实战项目练手?模型部署环节繁多,缺乏一套清晰的实战路径?4月18日、4月25日、5月16日RT-Thread将分别在苏州、成都、南京举办“AI
    的头像 发表于 04-07 13:08 699次阅读
    <b class='flag-5'>AI</b><b class='flag-5'>模型</b>训练与<b class='flag-5'>部署</b>实战 | 线下免费培训

    【瑞萨AI挑战赛】手写数字识别模型在RA8P1 Titan Board上的部署

    的CLI形式完成模型转换、INT8量化,代码生成等个步骤,将高维的浮点型模型转换为开发板可执行的轻量化机器
    发表于 03-15 20:42

    模型 ai coding 比较

    框架:llm-coding-bench v1.0 统一代码执行超时:10秒 统一随机种子:42 统一裁判模型:DeepSeek-Chat(第方交叉验证) ? 综合评分公式: scss 体验
    发表于 02-19 13:43

    AI端侧部署开发(SC171开发套件V2-FAS)

    AI端侧部署开发(SC171开发套件V2-FAS) 序列 课程名称 视频课程时长 视频课程链接 课件链接 工程源码 1 Fibo AI Stack模型转化指南 27分19秒 https
    发表于 02-11 11:44

    AI端侧部署开发(SC171开发套件V3)2026版

    AI端侧部署开发(SC171开发套件V3)2026版 序列 课程名称 视频课程时长 视频课程链接 课件链接 工程源码 1 Fibo AI Stack模型转化指南 27分19秒 http
    发表于 01-15 10:31

    【深圳】嵌入式AI实战:半天上手,人形检测模型部署+优化全流程

    12月27日(周六)深圳南山区,我们举办一场纯干货的嵌入式AI实战培训!全程动手操作,半天时间让你从零上手,完成AI模型部署与优化。
    的头像 发表于 12-17 15:16 979次阅读
    【深圳】嵌入式<b class='flag-5'>AI</b>实战:半天上手,人形检测<b class='flag-5'>模型</b><b class='flag-5'>部署</b>+优化全流程

    【深圳】嵌入式AI实战:半天上手,人形检测模型部署+优化全流程

    12月27日(周六)深圳南山区,我们举办一场纯干货的嵌入式AI实战培训!全程动手操作,半天时间让你从零上手,完成AI模型部署与优化。
    的头像 发表于 12-17 14:40 642次阅读
    【深圳】嵌入式<b class='flag-5'>AI</b>实战:半天上手,人形检测<b class='flag-5'>模型</b><b class='flag-5'>部署</b>+优化全流程

    1 GHz Arm® Cortex®-M85 MCU上部署AI模型

    本文将手把手带你实现实时人脸检测,并将完整流程开源。打通从数据采集、模型训练、量化转换,到集成部署的每一个环节。我们已为你准备好了数据集、训练代码、转换工具链与RT-Thread工程。只需跟随步骤
    的头像 发表于 12-02 21:04 9648次阅读
    1 GHz Arm® Cortex®-M85 MCU上<b class='flag-5'>部署</b><b class='flag-5'>AI</b><b class='flag-5'>模型</b>

    使用瑞萨RUHMI工具实现AI模型部署过程

    AI无处不在。你在部署AI,你的竞争对手也在部署AI,几乎所有人都在做AI。然而,
    的头像 发表于 10-17 10:00 2971次阅读
    使用瑞萨RUHMI工具实现<b class='flag-5'>AI</b><b class='flag-5'>模型</b><b class='flag-5'>部署</b>过程

    AI的未来,属于那些既能写代码,又能焊电路的“双栖人才”

    者能单独完成的,也不是传统电子工程师就能搞定的。 它要求我们变得“能从PCB追到代码,也能从代码调到寄存器” 。这不是“斜杠青年”,这是 系统型工程师 。、产业转型,正在倒逼“电子+
    发表于 07-30 16:15

    ai_cube训练模型最后部署失败是什么原因?

    ai_cube训练模型最后部署失败是什么原因?文件保存路径里也没有中文 查看AICube/AI_Cube.log,看看报什么错?
    发表于 07-30 08:15

    HarmonyOS AI辅助编程工具(CodeGenie)代码续写

    理解的情况下进行代码生成。在编辑器中的内容较少时,AI可能无法有效理解用户的意图并生成相应的代码模型反馈需满足规则:光标上文10内,有
    发表于 07-15 16:15

    stm32N657上部署cubeAI生成代码,编译出错的原因?怎么解决?

    你好,要怎么在stm32N657上部署cubeAI生成代码呢,编译出错,我使用cubeAI生成的手写数字模型代码,编译报错 要怎么配置呢,我看其他
    发表于 06-20 06:31

    企业部署AI模型怎么做

    当下,AI模型已成为驱动决策自动化、服务智能化与产品创新的核心引擎。然而,企业面对动辄数百亿参数的大模型部署时,常陷入算力不足、响应延迟高、成本失控等困境。如何突破瓶颈,实现高效、稳
    的头像 发表于 06-04 09:26 1040次阅读

    MediaTek天玑9400率先完成阿里Qwen3模型部署

    通义大模型团队在天玑 9400 旗舰移动平台上率先完成 Qwen3(千问 3)的端侧部署。未来,搭载天玑 9400 移动平台的设备可充分发挥端侧 AI 性能潜力,运行千问 3 大
    的头像 发表于 05-08 10:11 1555次阅读