Skip to content

A high performance, high expansion, easy to use framework for AI application. 为AI应用的开发者提供一套统一的高性能、易用的编程框架,快速基于AI全栈服务、开发跨端边云的AI行业应用。

License

Notifications You must be signed in to change notification settings

Dream-Runner-Yu/modelbox

This branch is 1 commit ahead of, 4 commits behind modelbox-ai/modelbox:main.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

a0bd295 · Sep 11, 2023
May 18, 2023
Nov 30, 2022
Jan 9, 2023
Feb 24, 2022
Dec 9, 2022
Nov 9, 2022
Sep 11, 2023
Jul 25, 2023
Aug 16, 2023
Nov 27, 2021
Sep 7, 2022
Nov 27, 2021
Nov 30, 2022
Nov 27, 2021
Nov 27, 2021
Sep 7, 2022
Sep 7, 2022
Nov 27, 2021

Repository files navigation

ModelBox

daily building

English

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

ModelBox特点

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

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

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

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

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

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

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推理开发的效率同时,保证软件的性能,可靠性,安全性等属性。

开始使用

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

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

在开发AI推理应用时,可以按照第一个应用的流程开发AI应用。

About

A high performance, high expansion, easy to use framework for AI application. 为AI应用的开发者提供一套统一的高性能、易用的编程框架,快速基于AI全栈服务、开发跨端边云的AI行业应用。

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 85.5%
  • CMake 8.5%
  • C 2.0%
  • Java 1.6%
  • Python 1.5%
  • Shell 0.7%
  • Other 0.2%