华为云AI开发平台ModelArtsModelBox基本概念_云淘科技

运行完第一个AI应用后,开发者已经对应用工程和运行方法有了初步的了解。如果您仅想了解开发到部署的端到端流程,可直接跳过此章节,进入应用发布。如果您需要开发自己的AI应用,则需要详细了解本章的内容。

当进行AI应用开发时,开发者可以使用当前的样例工程结构直接开发自己的业务逻辑,并在当前环境中进行代码调试。当进行AI应用开发时,开发者首先需要学习ModelBox框架的相关概念和接口,以便基于框架开发出高性能的AI应用。

本章介绍ModelBox的基本概念,帮助开发者为后续的AI应用开发做准备。

ModelBox解决的问题

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

GPU,NPU等复杂的API使用
多线程并发互斥
多种开发语言的配合
应用性能,质量不满足要求
服务化上线复杂

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

ModelBox的核心概念

开发者在使用ModelBox前,需要关注的基本核心概念包括:功能单元、流程图、接收数据处理请求和ModelBox执行引擎。

图1 ModelBox核心概念

功能单元

ModelBox将流程图中的顶点称为功能单元(FlowUnit)。功能单元是应用的基本组成部分,也是ModelBox的执行单元。在ModelBox中,内置了大量的基础功能单元,开发者可以将这些功能单元直接集成到应用流程图中,这也是基于流程图开发的一大好处。除内置功能单元外,ModelBox支持功能单元的自定义开发,支持的功能单元形式多样,如C/C++动态库、Python脚本、模型+Toml配置文件等。

流程图

ModelBox中用流程图(Graph)来表达应用逻辑。采用有向图的方式,将应用的执行逻辑表达为顶点和边,其中顶点表示了应用的某个数据处理逻辑单元,边则表示了逻辑单元之间的数据传递关系。在ModelBox中,针对流程图的开发,既可以使用文本方式直接编辑,也可以使用可视化的编辑器进行编辑。对于流程图的表述,ModelBox默认采用Graphviz进行解释,即图的表述需要满足Graphviz的语法要求。

接收数据处理请求

应用流程图构建完毕后,需要数据处理请求才能触发应用运行。ModelBox提供两种数据处理请求接收的方式:在flowunit中,通过在加载时调用API产生数据处理的请求,因为产生的请求是固定的,所以一般用于调试场景;标准使用方式是使用ModelBox提供的服务插件机制,在插件中接收外部请求,并调用任务相关的API来完成数据处理的请求。ModelBox提供了默认的服务插件可用于参考。

ModelBox

在应用构建完成后,结合ModelBox的框架才能形成完整可运行的应用。ModelBox作为应用入口,首先进行功能单元的扫描加载、应用流程图读取构建,然后接收数据处理请求,数据触发ModelBox中的执行引擎对功能单元进行调度,最终完成请求的数据处理任务。

更多ModelBox框架的相关知识,请访问https://modelbox-ai.com。

父主题: AI应用开发和调试

同意关联代理商云淘科技,购买华为云产品更优惠(QQ 78315851)

内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家