【算法部署】工具下篇

news/2025/1/21 1:54:22/文章来源:https://www.cnblogs.com/o-O-oO/p/18682753

一、算法部署简介

算法部署任务是将已开发的算法模型应用到实际场景中去的过程。这个过程通常需要在计算机、服务器或其它硬件设备上面运行算法模型,并编写一些代码来调用模型。任何模型其实都会涉及到模型部署任务,其实你在调用现成的API接口做推理的过程也可以叫做模型部署。模型部署任务的复杂度在于:需要利用N+个训练框架在N+个芯片上面部署N+个算法模型。
在算法部署任务中,需要考虑以下几个方面:

1、 硬件环境:根据算法模型的规模和计算量,选择合适的硬件环境。例如,对于深度学习模型,可能需要使用GPU加速计算。

2、软件环境:根据算法模型的需求,选择合适的操作系统、开发工具和库等软件环境。例如,对于Python开发的机器学习算法,可能需要安装numpy、pandas、scikit-learn等库。

3、数据输入输出:考虑如何将实际场景中的数据输入给算法模型,并将模型输出集成到业务流程中。例如,对于图像识别算法,可能需要通过摄像头捕捉图像,并将识别结果显示在屏幕上。

4、安全性:保护算法模型的安全性是非常重要的。需要考虑如何防止恶意攻击和未经授权的访问。例如,可以采用数据加密、身份验证和访问控制等措施来保护算法模型。

5、可扩展性:随着业务的扩展,可能需要在不同的计算机或服务器上部署多个算法模型,并将它们集成到一个系统中。需要考虑如何实现模型之间的协作和数据共享,并确保系统的高可用性和可扩展性。

算法部署任务需要综合考虑以上因素,以确保算法模型能够顺利地应用到实际场景中去。一个成功的算法部署可以帮助企业提高效率、降低成本,甚至创造新的商业机会。

二、算法部署工具链

2.1 工业界

1、Tengine:https://github.com/OAID/Tengine

【简介】:
Tengine 由 OPEN AI LAB 主导开发,该项目实现了深度学习神经网络模型在嵌入式设备上的快速、高效部署需求。为实现在众多 AIoT 应用中的跨平台部署,本项目基于原有 Tengine 项目使用 C 语言进行重构,针对嵌入式设备资源有限的特点进行了深度框架裁剪。同时采用了完全分离的前后端设计,有利于 CPU、GPU、NPU 等异构计算单元的快速移植和部署,同时降低评估和迁移成本。
【文档】:

https://tengine.readthedocs.io/zh_CN/latest/

【特点】:
多硬件支持、高性能、异构切图、混合精度、轻量级部署

2、开工天物:https://www.horizon.ai/open-explorer.html

【简介】:
基于地平线自研智能芯片打造的全生命周期软件开发平台,包括模型仓库、芯片工具链和应用开发中间件三大功能模块,为地平线芯片合作伙伴提供丰富的算法资源、灵活高效的开发工具和简单易用的开发框架。
【文档】:

https://www.horizon.ai/open-explorer.html

【特点】:
便捷开发、资源丰富、灵活高效、开发者生态

3、Adlik:https://github.com/Adlik/Adlik

【简介】:
Adlik是人工智能领域深度学习模型的推理应用加速工具链,致力于为开发者提供端到端的深度学习模型优化部署方案,提升AI深度学习模型商业应用的效率。Adlik主要包含三大功能模块:负责剪枝、量化等优化工作的模型优化器(Model Optimizer),负责为指定硬件环境编译模型的模型编译器(Model Compiler)及为模型提供推理方案的推理引擎(Serving Engine)。
【文档】:

https://github.com/Adlik/Adlik

【特点】:
高性能、剪枝与量化、支持多前端、多后端部署

4、Art.Studio:http://www.artosyn.cn/official_download/list/30/31.html

【简介】:
该工具是酷芯微电子针对AR93x系列芯片提供的一个模型部署工具。该工具类似与海思的NNIE工具,用户可以使用简单的GUI界面进行模型参数设置、模型转换、模型优化等多个部署。该工具针对AR9341芯片中的多个算子进行了特定加速,性能属于中等偏上的水平。
【文档】:
需要联系FAE索取sdk及文档
【特点】:
简单易用、功能完善,支持PTQ和QAT量化、支持灵活设置每个输出的数据排布和类型、支持混合精度量化

5、FastDeploy:https://github.com/PaddlePaddle/FastDeploy

【简介】:
FastDeploy是一款全场景、易用灵活、极致高效的AI推理部署工具, 支持云边端部署。提供超过160+Text,Vision, Speech和跨模态模型开箱即用的部署体验,并实现端到端的推理性能优化。包括 物体检测、字符识别(OCR)、人脸、人像扣图、多目标跟踪系统、NLP、Stable Diffusion文图生成、TTS 等几十种任务场景,满足开发者多场景、多硬件、多平台的产业部署需求。
【文档】:

https://github.com/PaddlePaddle/FastDeploy/blob/develop/README_CN.md

【特点】:
全场景,覆盖CV、NLP和语音、灵活易用、极致高效

6、OpenMMLab:https://github.com/open-mmlab

【简介】:
OpenMMLab致力于在深度学习时代构建最具影响力的开源计算机视觉算法系统。它的目标是:1)提供高质量的库,以减少算法重新实现的难度; 2)创建高效的部署工具链,以适应各种后端和设备; 3)为计算机视觉研究和开发建立坚实的基础; 4) 通过全栈工具链弥合学术研究和工业应用之间的差距。
【文档】:

https://mmdetection.readthedocs.io/en/latest/

【特点】:
简单易用、社区完善、跨领域模型、性能一般

7、oneflow:https://github.com/Oneflow-Inc/oneflow

【简介】:
OneFlow是一个基于Tensorflow的深度学习框架,主要用于大规模训练和部署。它拥有高度并行、低延迟的设计,提供了高效使用硬件资源的解决方案,支持CPU、GPU和专用加速器等多种硬件平台,能够实现高效的模型训练和推理。
【文档】:

https://oneflow.readthedocs.io/en/master/

【特点】:
高度并行、多后端、低延迟、支持大规模训练和推理

8、Aidget:https://github.com/midea-ai/Aidget

【简介】:
Aidget是美的AI创新中心自研的高性能深度学习推理引擎和模型自动化压缩工具链,主要应用于linux/rtos/android/ios等不同边端系统,面向armv7/v8及dsp等不同边端平台提供指令级加速;针对多计算单元设备,提供高性能异构计算能力;针对边端小内存设备,在内存管理方面做了精心的优化设计;同时,Aidget支持模型小型化、控制流子图和dynamic shape等推理高阶特性。
文档-https://github.com/midea-ai/Aidget
【特点】:
轻量级部署、通用性强、易用性强、高性能推理

9、AIStation:https://www.inspur.com/lcjtww/2526894/2526897/2526901/2527106/index.html

【简介】:
AIStation人工智能推理服务平台,主要面向企业AI应用部署及在线服务管理场景,通过统一应用接口、算力弹性伸缩、A/B测试、滚动发布、多模型加权评估等全栈AI能力,为企业提供可靠、易用、灵活的推理服务部署及计算资源管理平台,帮助用户AI业务快速上线,提高AI计算资源的利用效率,实现AI产业的快速落地。
【文档】:
向FAE索取相关文档
【特点】:
多前端支持、灵活开放、低延迟高吞吐、计算资源统一管理

10、mediapipe:https://github.com/google/mediapipe

【简介】:
谷歌的mediapipe是一个开源的跨平台的模型推理框架,专门用于开发实时视频和音频处理的应用程序。它基于图形计算技术,将数据流作为计算图中的节点进行处理。你可以通过内置的工具和算法,快速实现各种计算机视觉计算任务。
【文档】:

https://google.github.io/mediapipe/

【特点】:
高效率、简单易用、可扩展、社区开放

11、CANN:https://www.hiascend.com/zh/software/cann

【简介】:
CANN(Compute Architecture for Neural Networks)是华为针对AI场景推出的异构计算架构,对上支持多种AI框架,对下服务AI处理器与编程,发挥承上启下的关键作用,是提升昇腾AI处理器计算效率的关键平台。同时针对多样化应用场景,提供高效易用的编程接口,支持用户快速构建基于昇腾平台的AI应用和业务。
【文档】:

https://www.hiascend.com/document/detail/zh/CANNCommunityEdition/63RC1alpha002/overview/index.html

【特点】:
多前端支持、极简开发、极致性能、开放生态

12、Vitis AI:https://www.xilinx.com/products/design-tools/vitis/vitis-ai.html

【简介】:
AMD Vitis AI集成开发环境是一个完整的AI推理应用开发方案,适用于AMD自适应硬件,包括Versal AI Edge系列、Versal AI Core系列、Zynq、Zynq UltraScale+ MPSoc、Kria SOM、Alveo加速卡等。Vitis AI IDE为从数据中心到边缘应用的AI推理部署提供了一套丰富的AI模型、优化的深度学习处理器单元、工具、库和示例设计。
【文档】:

https://docs.xilinx.com/v/u/en-US/ug1431-vitis-ai-documentation

【特点】:
高性能、低延迟、低DDR带宽、全图优化器、支持ADM ROCm GPU主机

13、ShaderNN:https://github.com/inferenceengine/shadernn

【简介】:
ShaderNN作为OPPO在业内算是继NCNN、MNN后专注于移动端图形着色器、图像后处理的卷积神经网络AI应用的开源轻量推理框架,具备通用性、高性能、可移植性、可扩展性四大优势,不仅在推理时间上大幅超越业内的性能竞品,在平均功耗方面同样取得领先。未来,ShaderNN将深度集成到OPPO自研的AI Boost框架中,在更多场景中落地应用。
【文档】:

https://github.com/inferenceengine/shadernn/tree/dev_opensource_release/docs

【特点】:
针对实现显示和图像后处理、高性能、轻量、灵活、易扩展、通用

14、Triton:https://github.com/triton-inference-server/server

【简介】:
Triton 推理服务器是一种开源推理服务软件,可简化 AI 推理。Triton 使团队能够部署来自多个深度学习和机器学习框架的任何 AI 模型,包括 TensorRT、TensorFlow、PyTorch、ONNX、OpenVINO、Python、RAPIDS FIL 等。Triton 支持在 NVIDIA GPU、x86 和 ARM CPU 或 AWS Inferentia 上跨云、数据中心、边缘和嵌入式设备进行推理。Triton 为许多查询类型提供优化的性能,包括实时、批处理、集成和音频/视频流。

【文档】:

https://github.com/triton-inference-server/tutorials

【特点】:
支持多个深度学习框架、模型并发执行、动态模型加载、自定义后端、动态批处理、支持DLA

15、CDNN:https://www.ceva-dsp.com/product/ceva-deep-neural-network-cdnn/

【简介】:
CEVA 深度神经网络 (CDNN) 是一项全面的 AI 编译器技术,可为 SensPro 传感器中枢 DSP、NeuPro-M AI/ML 处理器架构和 CEVA-XM Vision DSP 创建完全优化的运行时软件。CDNN 针对大众市场嵌入式设备,将广泛的网络优化、高级量化算法、数据流管理和完全优化的计算 CNN 和 RNN 库整合到一个整体解决方案中,使云训练的 AI 模型能够部署在边缘设备上 用于推理处理。
【文档】:

https://www.ceva-dsp.com/resource/cdnn-product-note-chinese/

【特点】:
自动量化与转换、层融合、模型压缩、支持异构计算

16、SGS:http://www.sigmastarsemi.com/

【简介】:
SGS是SigmaStar公司的模型推理引擎。该工具主要由Convert Tool、Calibrator、Compiler、Simulator、SGS Netron等多个工具构成。该工具支持ONNX、Tensorflow等多个前端,基于命令行的转换工具来比较顺手,推理还不错。
文档-寻找SigmaStart FAE咨询
【特点】:
高性能、模块化、命令行工具、标定速度快

2.2 学术界

1、Keras:https://github.com/keras-team/keras

【简介】:
Keras 是一个用 Python 编写的高级神经网络 API,它能够以 Tensorflow、CNTK或者 Theano作为后端运行。Keras 的开发重点是支持快速的实验。能够以最小的时延把你的想法转换为实验结果,是做好研究的关键。
【文档】:

https://keras.io/zh/

【特点】:
简单、灵活、强大

2、Caffe:https://github.com/BVLC/caffe

【简介】:
Caffe是一个比较老的模型训练和推理框架,在构建时考虑到表达、速度和模块化。它由Berkeley AI Research和社区贡献者开发。在深度学习刚兴起的时候,由于Caffe的高效性引起了工业级的大量关注,截止当前,工业界仍有一些公司在使用Caffe模型。
【文档】:
https://caffe.berkeleyvision.org/doxygen/index.html
【特点】:
高性能、易使用、维护力度小

原创 Luce AI产品汇

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/872419.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【算法部署】工具上篇

算法部署简介算法部署任务是将已开发的算法模型应用到实际场景中去的过程。这个过程通常需要在计算机、服务器或其它硬件设备上面运行算法模型,并编写一些代码来调用模型。任何模型其实都会涉及到模型部署任务,其实你在调用现成的API接口做推理的过程也可以叫做模型部署。模型…

行锁,如何减少锁对性能的影响

什么是行锁? MySQL 的行锁是在引擎层由各个引擎自己实现的。但并不是所有的引擎都支持行锁,比如MyISAM 引擎就不支持行锁。不支持行锁意味着并发控制只能使用表锁,对于这种引擎的表,同一张表上任何时刻只能有一个更新在执行,这就会影响到业务并发度。InnoDB 是支持行锁的,…

WHUWC 2025 游记

WHUWC 2025 游记 WHU 今年不知道为啥搞了个冬令营,我随手报了一发结果过了,看来真的是没什么人去。 不过感觉非常好啊!逃课+面积+旅游, WC 本身好像没那么重要。 不过这营只有一天,有点不牛。 Day -1 周六上完课,回家搞了几把 CS,被家长要求复健,但是我已经 AFO 一个多…

std::function 与 std::bind

函数封装与绑定 std::function 与 std::bind 封装 std::function 一个通用的多态函数封装器,它将一个可调用的对象函数指针 函数对象 Lammbda函数等 进行封装,方便在后续的代码中调用,先看下 function 类模板的定义函数返回类型:R 函数参数类型:Args绑定 std::bind

手机连接WiFi无线路由器,休眠后再打开,IPv6不工作。但同样路由下电脑IPv4,IPv6没有任何问题, 两种解决办法

1. 问题: 我的老旧的极路由4 B70是WiFi5,WiFi安全支持WPA2,不支持WPA3。我以前刷的是老毛子Pandavan。 WiFi5设备配合WPA2,如果手机是更新的WiFi6, 此时设备连接就会存在问题,就是一些WiFi6手机刚接入时一切正常,手机休眠后再次打开时IPv6不工作【连不通】,Ipv4正常。 断…

【模拟电子技术】08-MOS管的工作原理

【模拟电子技术】08-MOS管的工作原理 MOS管是双极型的器件,有少子参与导电,因此受到温度影响较大。注意两个N极周围的不是SiO2是PN结这里刚开始加UGS时,空穴往外排斥,再加电压,P区少子,即电子向栅极靠拢,因而形成通道 现在UGS已经可以控制电子通道大小,这可以看作是一个…

【Clickhouse】应用场景与原理剖析

ClickHouse起源于俄罗斯的Yandex公司。Yandex作为俄罗斯最大的搜索引擎公司,在处理和分析大规模用户行为数据、日志数据等方面积累了丰富的经验。为了满足自身对大数据分析和实时查询的需求,Yandex开发了ClickHouse这一在线分析处理(OLAP)的列式数据库管理系统。ClickHouse…

Unity使用Grpc

本文主要记录一下在使用unity接入grpc时的流程。开始之前说明一下环境:客户端:unity-2022.3,服务端:golang语言,go-zero框架。共分两步走,第一步实现protobuf的接入,第二步再接入grpc。 用到的demo.proto文件如下:点击查看代码 syntax = "proto3";package de…

python安装、vscode安装、conda安装:一文搞定Python的开发环境(史上最全)

本文原文链接 文章很长,且持续更新,建议收藏起来,慢慢读!疯狂创客圈总目录 博客园版 为您奉上珍贵的学习资源 : 免费赠送 :《尼恩Java面试宝典》 持续更新+ 史上最全 + 面试必备 2000页+ 面试必备 + 大厂必备 +涨薪必备 免费赠送 :《尼恩技术圣经+高并发系列PDF》 ,帮你 …

一文搭建本地镜像仓

一文搭建本地镜像仓 拉取registry镜像 docker pull registry:2运行registry容器 第1种方式:不加持久化 docker run -d -p 5000:5000 --restart=always --name=registry registry:2第2种方式:对初始化配置文件,加持久化 # 创建数据卷,用于挂载 docker create volume registr…

全局锁和表锁

根据加锁的范围可以将锁分为全局锁、表级锁和行锁三类 全局锁 顾名思义,全局锁就是对整个数据库实例加锁。MySQL 提供了一个加全局读锁的方法,命令是 Flush tables with read lock (FTWRL)。当你需要让整个库处于只读状态的时候,可以使用这个命令,之后其他线程的以下语句会…

使用 电报机器人 tele bot 下载视频资源到nas群晖上

本文章解决:通过tele 手机APP 远程执行群晖上的命令 、 tdl使用效果图步骤1.创建teleg 机器人,省略,自己去百度2.下载git项目 ,修改你的ADMIN_ID和token 并运行dockefile2.1 下载 https://github.com/aikunzhe/TeleShellBot2.2 获取ADMIN_ID,获取机器人token,修改conf…