推理功能单元开发规范
推理功能单元适配的过程如图1所示
单个模型打包
推理功能单元的开发需要提供以下文件,文件结构如下:
[model-flowunit] |---[model-flowunit].toml |---[model].pb |---[plugin].so
表 1 开发文件说明
推理功能单元配置文件按照大类分为基础配置、输入端口描述、输出端口描述。基本配置包含了功能单元名称,运行的设备类型,版本号。描述信息,模型文件路径等。输入端口、输出端口描述则对应模型的输入输出。
正确完成配置文件后,推理的功能单元即开发完成,可以采用功能单元的通用测试框架进行功能验证。
模型组打包
在跨框架场景下,用户需要先准备好不同框架下的模型,并按照上文单个模型打包的方式将模型打包好形成不同的rpm包后,只需要确保这几个推理功能单元的名称是一致的,则在ModelBox中会认为这几个不同模型的功能单元的逻辑是一致的,只是不同平台的实现。
模型组导入
用户可以通过在图配置中将上述模型组放入扫描路径,或者在API中直接用scan接口扫描相应的文件路径即可以将模型组导入。
使用模型
在模型组导入后,用户即可以在图中直接使用相应名字的节点,可以通过配置来直接指定推理的引擎。也可以将推理类型指定为default,则ModelBox会根据机器中的环境配置自动的选择最合适的推理框架来执行推理。模型组在调用scan后,API会动态的增加相应推理名字的API,该推理API中可以使用推理类型指定推理的框架。设置为default后,框架也会自动选择最合适的推理功能单元来完成推理。