推理功能单元开发规范

推理功能单元适配的过程如图1所示

图 1 推理功能单元适配过程

  1. 单个模型打包

    推理功能单元的开发需要提供以下文件,文件结构如下:

    [model-flowunit]
    |---[model-flowunit].toml
    |---[model].pb
    |---[plugin].so
    

    表 1 开发文件说明

    文件

    名称

    功能

    [model-flowunit].toml

    配置文件

    描述功能单元的名称、推理框架、硬件、输入输出端口等属性

    [model].pb

    模型文件

    开发者提供的模型文件

    [plugin].so

    推理功能单元插件

    支持用户自定制推理引擎插件,可选

    推理功能单元配置文件按照大类分为基础配置、输入端口描述、输出端口描述。基本配置包含了功能单元名称,运行的设备类型,版本号。描述信息,模型文件路径等。输入端口、输出端口描述则对应模型的输入输出。

    正确完成配置文件后,推理的功能单元即开发完成,可以采用功能单元的通用测试框架进行功能验证。

  2. 模型组打包

    在跨框架场景下,用户需要先准备好不同框架下的模型,并按照上文单个模型打包的方式将模型打包好形成不同的rpm包后,只需要确保这几个推理功能单元的名称是一致的,则在ModelBox中会认为这几个不同模型的功能单元的逻辑是一致的,只是不同平台的实现。

  3. 模型组导入

    用户可以通过在图配置中将上述模型组放入扫描路径,或者在API中直接用scan接口扫描相应的文件路径即可以将模型组导入。

  4. 使用模型

    在模型组导入后,用户即可以在图中直接使用相应名字的节点,可以通过配置来直接指定推理的引擎。也可以将推理类型指定为default,则ModelBox会根据机器中的环境配置自动的选择最合适的推理框架来执行推理。模型组在调用scan后,API会动态的增加相应推理名字的API,该推理API中可以使用推理类型指定推理的框架。设置为default后,框架也会自动选择最合适的推理功能单元来完成推理。

results matching ""

    No results matching ""