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
    +关注

    关注

    89

    文章

    38090

    浏览量

    296512
  • 人工智能
    +关注

    关注

    1813

    文章

    49734

    浏览量

    261477
  • 深度学习
    +关注

    关注

    73

    文章

    5590

    浏览量

    123900

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

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

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

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

    AI无处不在。你在部署AI,你的竞争对手也在部署AI,几乎所有人都在做AI。然而,
    的头像 发表于 10-17 10:00 2338次阅读
    使用瑞萨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 674次阅读

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

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

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

    AI端侧部署开发(SC171开发套件V3) 序列 课程名称 视频课程时长 视频课程链接 课件链接 工程源码 1 Fibo AI Stack模型转化指南------Docker Desk
    发表于 04-16 18:30

    首创开源架构,天玑AI开发套件让端侧AI模型接入得心应手

    模型库的限制,联发科还首发了开源弹性架构。区别于过往的开放接口,只能部署特定架构模型,开放弹性架构允许开发者直接调整平台源代码,无需等待芯片厂商的支持,即可
    发表于 04-13 19:52

    博实结完成DeepSeek大模型本地化部署

    近日,公司完成DeepSeek R1 671B大模型本地化部署。通过构建自主可控的AI基础设施,公司同步实现研发智能升级、研发成本重构、数据安全闭环与应用场景突破,为产业智能化赋能。
    的头像 发表于 03-19 16:31 1017次阅读

    完成DeepSeek-R1大模型本地化部署

    近日,芯正式宣布完成 DeepSeek-R1 大模型本地化部署,实现在多场景、多产品中应用。解锁“芯”玩法,开启“芯”未来!
    的头像 发表于 02-24 15:17 1142次阅读

    C#集成OpenVINO™:简化AI模型部署

    在开源测控、机器视觉、数采与分析大领域中,如何快速将AI模型集成到应用程序中, 实现AI赋能和应用增值? 最容易的方式是:在C#中,使用 OpenVINO工具套件 集成
    的头像 发表于 02-17 10:03 2513次阅读
    C#集成OpenVINO™:简化<b class='flag-5'>AI</b><b class='flag-5'>模型</b><b class='flag-5'>部署</b>

    添越智创基于 RK3588 开发板部署测试 DeepSeek 模型全攻略

    DeepSeek 模型部署与测试,开启这场充满挑战与惊喜的技术探索之旅。 RK3588 开发板:AI 性能担当 RK3588 开发板基于先进的 8nm LP 制程工艺精心打造,其硬件配置堪称豪华,在
    发表于 02-14 17:42

    企业AI模型部署攻略

    当下,越来越多的企业开始探索和实施AI模型,以提升业务效率和竞争力。然而,AI模型部署并非易事,需要企业在多个层面进行细致的规划和准备。下
    的头像 发表于 12-23 10:31 1296次阅读

    AI模型部署边缘设备的奇妙之旅:目标检测模型

    智视觉模块上部署 PaddleDetection 模型如果说有自己制作数据的话,需要将数据上传,然后在修改全局配置项,修改数据集地址以及对应的类别数。 按照厂家提供的配置直接进行训练转换。 训练完成后,会自动生成一个rknn
    发表于 12-19 14:33