前言
越来越多的业务会用到AI相关的技术,大多数的AI模型是部署在云端使用的,毕竟服务端计算更快,管理也更容易。随着终端设备性能提升,在终端使用 AI 模型有了更大的价值,可以更好满足业务对响应实时性、数据隐私性的需求。滴滴出行的银行卡识别功能也打算部署在客户端,但是遇到的问题也不少:
- 模型升级困难,模型在终端的存在一般都是已应用软件为载体,用户可以选择是否对应用软件进行更新,导致模型版本会产生分化。
- 硬件适配问题,不同的终端设备因为厂商深度定制因素,会出现一些兼容问题
- 不同模型运行框架不同,对于客户端工程师不够友好。
针对这些问题滴滴的终端智能团队推出了AoE作为解决方案,设计之初就将多模型管理支持可能升级、多框架支持、模型加密等功能定为基础设施。
AoE是怎么做好模型管理的
我们针对遇到的问题,主要做了3部分工作:
- 尝试了多机型覆盖测试做好模型的验证
- 利用运行环境配制化来实现加载模型
- 通过动态更新来升级模型
下面针对这三项分别进行介绍。
运行环境配置化
AoE SDK将推理框架总结了5个过程,它们分别是初使化、前处理、执行推理、后处理、释放资源。对 AoE 集成运行环境来说,最基本的便是抽象推理操作,通过 依赖倒置 的设计,使得业务只依赖AoE的上层抽象,而不用关心具体推理框架的接入实现。这种设计带来的最大的好处是开发者随时可以添加新的推理框架,而不用修改框架实现,做