越来越多的业务会用到AI相关的技术,大多数的AI模型是部署在云端使用的,毕竟服务端计算更快,管理也更容易。随着终端设备性能提升,在终端使用 AI 模型有了更大的价值,可以更好满足业务对响应实时性、数据隐私性的需求。

前语

越来越多的事务会用到AI相关的技能,大多数的AI模型是布置在云端运用的,究竟服务端核算更快,办理也更简略。跟着终端设备功用提高,在终端运用 AI 模型有了更大的价值,能够更好满意事务对呼应实时性、数据隐私性的需求。滴滴出行的银行卡辨认功用也计划布置在客户端,可是遇到的问题也不少:

1.模型晋级困难,模型在终端的存在一般都是已应用软件为载体,用户能够挑选是否对应用软件进行更新,导致模型版别会发生分解。

2.硬件适配问题,不同的终端设备由于厂商深度定制要素,会呈现一些兼容问题

3.不同模型运转结构不同,关于客户端工程师不行友爱。

针对这些问题滴滴的终端智能团队推出了AoE作为解决方案,规划之初就将多模型办理支撑或许晋级、多结构支撑、模型加密等功用定为根底设施。

AoE是怎样做好模型办理的

咱们针对遇到的问题,首要做了3部分作业:

  1. 尝试了多机型掩盖测验做好模型的验证
  2. 运用运转环境制造化来完成加载模型
  3. 经过动态更新来晋级模型

下面针对这三项别离进行介绍。

运转环境装备化

AoE SDK将推理结构总结了5个进程,它们别离是初始化、前处理、履行推理、后处理、开释资源。对 AoE 集成运转环境来说,最基本的便是笼统推理操作,经过 依靠倒置 的规划,使得事务只依靠AoE的上层笼统,而不必关怀详细推理结构的接入完成。这种规划带来的最大的优点是开发者随时能够增加新的推理结构,而不必修正结构完成,做到了事务开发和 AoE SDK 开发彻底解耦。

用户只需求简略的描绘json文件即可完成对运转环境的装备,简化了用户的运用进程,更为简练高效。

简略的装备如下:

  1. {
  2. "version":"1.0.0",//版别号
  3. "tag":"tag_mnist",//差异事务场景
  4. "runtime":"tensorflow",//runtime类型
  5. "source":"installed",//装置源
  6. "modelDir":"mnist",//地点文件夹
  7. "modelName":"mnist_cnn_keras",//模型文件名
  8. "updateURL":"https://www.didiglobal.com"//晋级装备链接
  9. }

机型掩盖测验

针对硬件差异的问题,咱们在做模型验证期间尝试了多机型的掩盖测验,将模型在不同机型上的体现都记录下来反馈给模型出产团队,帮忙模型不断的晋级修正。

截取了部分测验时发生的耗时比照数据大致如下:

 黑科技:AoE-怎么管理好模型? 人工智能 AI 第1张

尽管模型不相同,运用指令或许不同,可是大致也能够了解到机器的功用,详细数值仅供参考。在这个进程中,沉积下来了benchmark东西来帮忙验证多机型的掩盖测验,将来这个东西也会是开源的一部分来帮忙咱们验证模型的可用性,以及树立有用的机型比较。

动态更新

AoE的模型办理模块将模型按分发方法分为两种:

  1. 本地模型,意为应用软件自带的模型
  2. 长途模型,则是经过战略装备,从服务器下载匹配模型到本地的模型

本地模型与长途模型最大的差异便是本地模型无法更改,只能跟从应用软件一同更新,而长途模型则是经过和本地模型作比较后更新的较新模型,模型与模型之间经过版别做比较。本地模型与长途模型二者能够共存,也能够独自存在,在最新版的滴滴出行中,为了削减包的巨细乃至没有本地模型,一切的模型都是来自远端下载。

之所以将模型分红两部分,是为了确保模型是可用的且牢靠的,为什么这么说?一般本地模型都是经过长期测验后才作为安稳版别跟从APP带到了线上,既能够作为最新版别,又能够作为后来的安稳版别:即便发现后来下载晋级的长途模型作用不抱负也能够经过灰度测验中止长途运用长途模型的运用,确保模型的高可用性。

长途模型的存在使事务模型具有了动态更新的才能,方便了产品的迭代,不再依靠客户端的发布周期。在动态开关的写帮忙下,乃至能够做到准确指定模型版别的加载。

全体模型办理的结构如下图:

 黑科技:AoE-怎么管理好模型? 人工智能 AI 第2张

模型加载怎样运用?

模型办理器是AoE的一个根底组件,以iOS为例,组件完成在Loader目录下。默许支撑的模型装备文件为json格局,运转环境装备化部分的代码就描绘了mnist demo的装备。

模型和模型装备文件名的格局装备以及长途版别寄存地址,都能够经过承继AoEModelConfig类来做修正,详细的运用方法能够参照squeezenet的实例

在现已开源的版别中,AoE还为咱们供给了单功用多模型的支撑,拿银行卡辨认来举例,整个进程分两步,一是找到卡片以及卡片上的数字区域,二是依据数字区域的图片辨认出卡号,所以整个进程需求两个模型。开源项目运用的模型装备的tag字段首要用来界说模型所属功用,结合dir字段,就能够定位到详细的模型。

写在最终

经过长途加载以及多维度的灰度测验装备是帮忙模型安稳安全运转的确保,尽管模型长途加载功用还没有在开源版别上线,可是现已安排在了日程中,估计在9月底就会上线。假如您对这个项目感兴趣,假如您在终端AI运转环境方面有主意,假如您在运用时有疑问,诚挚邀请您参加咱们。

项目链接:https://github.com/didi/AoE

转载请说明出处
知优网 » 黑科技:AoE-怎么管理好模型?

发表评论

您需要后才能发表评论