更新时间:2023-01-13 GMT+08:00
分享

开发AI应用

准备模型

AI应用开发的前序步骤是模型训练,因此开始进行AI应用开发时,您已经有训练优化好的可使用的模型了。当前ModelBox GPU镜像支持的模型类型有TensorRT和PyTorch模型,具体的版本号在您创建开发环境选择镜像时镜像名称中可以看到。

如果您的模型不是TensorRT和PyTorch模型,需要重新训练成这两种引擎的模型或者将模型转换后再继续,推荐使用TensorRT模型。TensorRT 7.1的模型转换请参考官方指导和样例

ModelArts训练平台的训练模型输出通常存放在OBS桶中,您可以将模型先从OBS下载到本地,然后再将本地模型文件拖拽到工程中对应的目录下,等待VSCode下方的上传进度执行完即可。

创建空模板

用户可以基于空模板进行实例应用的开发。

图1 创建工程

输入工程名称、工程路径以及选择工程模板,这里选择“empty”模板。点击“Confirm”开始创建。

开发流程图

流程图(Graph)是应用逻辑的表述,ModelBox将根据流程图构建应用的处理逻辑,因此在AI应用开发中,流程图的开发是首要进行的,流程图开发完毕后,才能明确需要开发的功能单元。图文件为graph目录下的toml文件。

流程图的格式如下,关于图的编写语法可以查看Graphviz DOT的指导。

[driver]
dir = ["build/drivers"]  #指定功能单元等驱动加载路径,可以指定多个,逗号分隔,编译后的功能单元位于build/drivers
[log]
level="INFO"
[flow]
desc = "example" 
[graph]
format = "graphviz"      #流程图的格式,目前仅支持graphviz
graphconf = '''digraph example {
          node [shape=Mrecord]
          queue_size = 32
          batch_size = 1
          # 在此处编写自己的流程图
        }'''

开发功能单元

功能单元的类型有三种:cpp/python/infer,分别对应c++开发的功能单元、python开发的功能单元、以及推理功能单元。

  • 新建推理功能单元

    右键工程列表中的当前工程,点击“Create Flowunit”,输入流单元名称,流单元类型选择“infer”。流单元目录使用默认的路径。

    图2 新建功能单元
    图3 新建功能单元
    在开发推理功能单元时,只需要提供独立的toml配置文件,指定推理功能单元的基本属性即可,其目录结构为:
    [some-flowunit]      
    |---[some-flowunit].toml  // 配置文件 
    |---[model].engine   // 模型文件
  • cpp/python功能单元

    这里以cpp功能单元为例,右键工程列表中的当前工程,点击“Create Flowunit”,输入流单元名称,流单元类型选择“cpp”。流单元目录使用默认的路径:

    编排好toml图后,单击“Run>Run Without Debugging”或者使用快捷键Ctrl+F5运行程序。:
    图4 运行程序

更多开发指导和ModelBox接口信息,请请参考ModelBox文档:开发ModelBox应用

分享:

    相关文档

    相关产品