【云驻共创】AI推理应用框架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的特点归结为这六点:
-
易于开发
AI推理业务可视化编排开发,功能模块化,丰富组件库;c++,python多语言支持。 -
易于集成
集成云上对接的组件,云上对接更容易。 -
高性能,高可靠
pipeline并发运行,数据计算智能调度,资源管理调度精细化,业务运行更高效。 -
软硬件异构
CPU,GPU,NPU多异构硬件支持,资源利用更便捷高效。 -
全场景
视频,语音,文本,NLP全场景,专为服务化定制,云上集成更容易,端边云数据无缝交换。 -
易于维护
服务运行状态可视化,应用,组件性能实时监控,优化更容易。
期望Modelbox可以为您创造更高的价值。
本文参与华为云社区【内容共创】活动第17期。
- 点赞
- 收藏
- 关注作者
评论(0)