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

    关注

    87

    文章

    30072

    浏览量

    268334
  • 人工智能
    +关注

    关注

    1791

    文章

    46820

    浏览量

    237457
  • 深度学习
    +关注

    关注

    73

    文章

    5491

    浏览量

    120958

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

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

收藏 人收藏

    评论

    相关推荐

    AI模型部署和管理的关系

    AI模型部署与管理是AI项目成功的两大支柱,它们之间既相互独立又紧密相连,共同推动着AI技术从实验室走向实际应用。
    的头像 发表于 11-21 10:02 49次阅读

    如何在STM32f4系列开发板上部署STM32Cube.AI

    已下载STM32Cube.AI扩展包,但是无法使用,感觉像是没有部署AI模型,我是想要通过摄像头拍照,上传图像后,经过开发板处理器进行AI
    发表于 11-18 09:39

    AI模型托管原理分析

    AI模型托管是指将训练好的AI模型部署在云端或边缘服务器上,由第方平台提供
    的头像 发表于 11-07 09:33 101次阅读

    企业AI模型部署怎么做

    AI模型部署作为这一转型过程中的关键环节,其成功实施对于企业的长远发展至关重要。在此,AI部落小编为您介绍企业AI
    的头像 发表于 11-04 10:15 98次阅读

    三行代码完成生成式AI部署

    LLM加载与推理部署能力,实现了OpenVINO对CNN网络、生成式模型、LLM网络主流模型的全面推理支持。
    的头像 发表于 08-30 16:49 377次阅读
    <b class='flag-5'>三行</b><b class='flag-5'>代码</b><b class='flag-5'>完成</b>生成式<b class='flag-5'>AI</b><b class='flag-5'>部署</b>

    利用恩智浦云实验室部署AI模型

    如今,人工智能(AI)非常火爆,这个风口该如何把握?作为一个电子工程师,和AI最主要的交集应该就是边缘计算了,具体来讲,就是在一些性能、功耗以及价格相对较低的嵌入式平台上部署和运行AI
    的头像 发表于 08-02 11:46 2663次阅读
    利用恩智浦云实验室<b class='flag-5'>部署</b><b class='flag-5'>AI</b><b class='flag-5'>模型</b>

    摩尔线程携手东华软件完成AI模型推理测试与适配

    近日,摩尔线程与东华软件云筑AI创新中心宣布,双方已完成模型推理测试与适配。依托摩尔线程的全功能GPU国产算力,东华软件打造安全可信的基于私有化大模型的“智多型(A.I.Cognif
    的头像 发表于 07-31 10:51 686次阅读

    英伟达推出Flextron AI框架:赋能灵活高效的AI模型部署

    在人工智能与机器学习领域,随着技术的不断演进,模型的高效部署与适应性成为研究的新热点。近日,英伟达与德克萨斯大学奥斯汀分校携手宣布了一项重大突破——推出了一种名为FLEXTRON的新型灵活模型架构及训练后优化框架,这一创新成果为
    的头像 发表于 07-18 15:22 2692次阅读

    CubeIDE生成的代码框架会卡在MX_X_CUBE_AI_Process()函数中是怎么回事?

    当我将网络模型部署到STM32F407VGT6中时,CubeIDE生成的代码框架会卡在MX_X_CUBE_AI_Process()函数中是怎么回事?CUbeAI库的版本是9.0。期待您
    发表于 05-30 06:11

    爱芯通元NPU完成Llama 3和Phi-3大模型适配,推动AI模型技术普及

    AI模型技术的持续进步正在推动千百业智能化升级。
    的头像 发表于 04-26 16:57 827次阅读
    爱芯通元NPU<b class='flag-5'>完成</b>Llama 3和Phi-3大<b class='flag-5'>模型</b>适配,推动<b class='flag-5'>AI</b>大<b class='flag-5'>模型</b>技术普及

    AI模型将如何推动中国产业升级?华为盘古大模型深耕千万业

    AI模型将如何推动中国产业升级?日前,华为混合云副总裁胡玉海在做客央视网《中国神气局》时,畅谈AI模型发展趋势以及如何助力产业创新。胡玉海表示,盘古大
    的头像 发表于 03-22 10:40 560次阅读

    防止AI模型被黑客病毒入侵控制(原创)聆思大模型AI开发套件评测4

    风险。 以下是我编写的一个简单的Python代码,用于防止AI模型被黑客病毒入侵控制: import os# 这是咱的“大管家”,专门负责家里(系统)的各种琐事,比如找个文件、开个窗户什么的
    发表于 03-19 11:18

    使用CUBEAI部署tflite模型到STM32F0中,模型创建失败怎么解决?

    CRC IP,用MX生成工程时已经启用了CRC,代码中也有。 但是依旧无法生成模型。 想问问该如何解决,还是说F0还是无法部署AI模型
    发表于 03-15 08:10

    AI模型可以设计电路吗?

    AI模型
    电子发烧友网官方
    发布于 :2024年01月02日 15:09:29

    代码生成:基于 AI模型的挑战与前景

    使用AI通用模型完成代码生成这类非常具体的任务可能会带来问题。人工智能生成的代码就像是陌生人的代码
    的头像 发表于 11-26 08:05 710次阅读
    <b class='flag-5'>代码</b>生成:基于 <b class='flag-5'>AI</b> 大<b class='flag-5'>模型</b>的挑战与前景