【云驻共创】AI推理应用框架ModelBox,帮助您的算法快速产品化

红目香薰 发表于 2022/06/22 20:21:18 2022/06/22
【摘要】 本文主要展现AI推理应用框架ModelBox,帮助您的算法快速产品化。Modelbox的特点归结为这六点:易于开发、易于集成、高性能与高可靠、软硬件异构、全场景、易于维护。

1、AI应用开发的挑战

AI现阶段主要应用的场景千行百业,例如:智慧城市、智慧工业、智慧医疗、智慧交通等等。问题是AI硬件和基础框架种类繁多,格式与接口不统一,无法在端云统一部署管理。

2、ModelBox

ModelBox是一个适用于端边云场景的AI推理应用开发框架,提供了基于Pipeline的并行执行流程,能帮助AI应用开发者较快的开发出高效,高性能,以及支持软硬协同优化的AI应用。

ModelBox为开发者,研究人,学生(也就是有一定编程基础的人)提供的一个易于使用,高效,高扩展的AI推理开发框架,可以帮助开发者快速完成AI推理应用的开发和上线工作。
包括了一套端边云AI应用开发运行的统一运行框架,该运行框架提供了一系列预置能力,目的在于统一端边云开发流程,简化AI应用开发者开发、部署、运维工作,提供了从开发到部署再到运维端到端的能力。
在云上推理的时候,可以跟cuda,昇腾芯片(也称D芯片,因为采用的是达芬奇架构,所以简称为D),mindspore相结合,也可以和其他多种推理引擎结合。

2.1、ModelBox特点

  • 特点一:屏蔽底层软硬件差异,大大降低定制-重复开发工作量

  • 特点二:智能调度,保证极致AI推理运行性能

  • 特点三:全场景灵活开发模式,可视化图编排和API开发

2.2、ModelBox解决的问题

目前AI应用开发时,训练完成模型后,需要将多个模型和应用逻辑串联在一起组成AI应用,并上线发布成为服务或应用。在整个过程中,需要面临复杂的应用编程问题:

问题 问题说明
需要开发AI应用的周边功能 比如AI应用编译工程,应用初始化,配置管理接口,日志管理口,应用故障监控等功能。
需要开发AI常见的前后处理 音视频加解码,图像转换处理,推理前处理,后处理YOLO等开发。
需要开发和云服务对接的周边功能 比如HTTP服务开发,云存储,大数据服务,视频采集服务对接开发。
需要开发出高性能的推理应用 需要基于多线程,内存池化,显存池化,多GPU加速卡,模型batch批处理,调用硬件卡的API等手段开发应用。
需要开发验证docker镜像 需要开发docker镜像,集成必要的ffmpeg,opencv软件,CUDA, MindSpore,TensorFlow等软件,并做集成测试验证。
多种AI业务,需要共享代码,降低维护工作 需要复用不同组件的代码,包括AI前后处理代码,AI应用管理代码,底层内存,线程管理代码等。
模型开发者,验证模型功能比较复杂 模型开发者完成模型训练后,需要编写python代码验证,之后,再转成生产代码;在高性能,高可靠场景改造工作量大。

ModelBox的目标是解决AI开发者在开发AI应用时的编程复杂度,降低AI应用的开发难度,将复杂的数据处理,并发互斥,多设备协同,组件复用,数据通信,交由ModelBox处理。开发者主要聚焦业务逻辑本身,而不是软件细节。 在提高AI推理开发的效率同时,保证软件的性能,可靠性,安全性等属性。

2.3、使用ModelBox开发AI应用流程样例

ModelBox概念介绍:流程图(Graph)

ModelBox概念介绍:流单元(FlowUnit)

流单元(FlowUnit) :是完成了指定功能的代码程序,它主要关注对输入数据的处理,并产生输出数据,在ModelBox框架中,对数据的输入和输出进行了约定。

ModelBox概念介绍:流单元(FlowUnit) ——Python流单元

ModelBox概念介绍:流单元(FlowUnit) ——推理流单元

2.4、ModelBox概念介绍: Buffer

  • Buffer:是ModelBox中流单元之间传递数据的唯一载体。
  • Data:数据处理对象,如图片、http请求体等。存放在不同的设备中,如Host内存,GPU显存,Ascend内存等。
  • Meta:元信息,- -般用于存放Data描述信息,如图片长宽、格式等。

2.5、ModelBox概念介绍:调试定位一代码调试

2.6、ModelBox概念介绍:调试定位——日志系统

ModelBox提供了运行日志,对应的组件在运行时会输出相关的日志信息。由ModelBox的Logger将数据发送到Appender,Appender可注册不同的类型。

2.7、ModelBox概念介绍:调试定位——性能调优

性能调优流程:


3、ModelBox使用

ModelBox支持两种方式运行,一种是服务化,一种是SDK,开发者可以按照下表选择相关的开发模式。

开发模式 开发模式适用场景
服务化 ModelBox为独立的服务,适合云服务,端侧服务的AI推理开发场景,包括了后台服务,运维工具,docker镜像等服务化组件
SDK ModelBox提供了ModelBox开发库,使用于扩展现有应用支持高性能AI推理,专注AI推理业务,支持c++,Python集成

提供地址:https://hub.docker.com/u/modelbox

打开项目可以进行测试操作

3.1、ModelBox应用案例

Modelbox应用场景相当广泛。比如智慧城市、智慧园区、智慧工地等等。
借助modelbox平台,将推理后的模型集成到端边云上,来达成不同的业务需求。就比如说,通过modelbox推理,后可以部署在这个高清摄像头,智能摄像头,服务器,ivs等等上,实现AI应用轻松落地。

出行疲劳驾驶&分神驾驶检测

加速行业AI应用落地,服务千行百业


Modelbox主页:https://modelbox-ai.com/

github地址:https://github.com/modelbox-ai/modelbox

总结:

综上所述,Modelbox的特点归结为这六点:

  1. 易于开发
    AI推理业务可视化编排开发,功能模块化,丰富组件库;c++,python多语言支持。

  2. 易于集成
    集成云上对接的组件,云上对接更容易。

  3. 高性能,高可靠
    pipeline并发运行,数据计算智能调度,资源管理调度精细化,业务运行更高效。

  4. 软硬件异构
    CPU,GPU,NPU多异构硬件支持,资源利用更便捷高效。

  5. 全场景
    视频,语音,文本,NLP全场景,专为服务化定制,云上集成更容易,端边云数据无缝交换。

  6. 易于维护
    服务运行状态可视化,应用,组件性能实时监控,优化更容易。

期望Modelbox可以为您创造更高的价值。

本文参与华为云社区【内容共创】活动第17期。

https://bbs.huaweicloud.com/blogs/358780

任务20:AI推理应用框架ModelBox,帮助您的算法快速产品化

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区),文章链接,文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:cloudbbs@huaweicloud.com进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。