蚂蚁端智能技术体系概览

1,497 阅读8分钟

1.端智能背景

什么是端智能

抛开复杂的技术概念,用一句话简单表达,我觉得就是让端具备思考决策能力。移动互联网时代,常见的业务模式是端负责内容呈现,云端进行推荐决策,作为客户端开发,更专注于渲染互动、跨平台、动态化等移动端技术。而端智能则是利用端侧的硬件资源,进行实时感知、计算、决策和干预,通过让端具备机器学习能力,带来用户体验与业务效果的提升。涉及到的技术包括端侧数据挖掘,端侧特征计算,端侧样本计算,端侧推理计算,端侧学习训练,端云协同提效等。 image.png

为啥要用端智能

涉及到端智能相关的文章都避免不了要说一说这块,不免俗,这里还是要提一下的。从端的特点来看,由于其具有天然的分布式且能实时感知用户的操作和时空行为,在端上进行AI方案的部署执行,在实时性、个性化、云端资源消耗和安全隐私上有明显的优势。比如,在端上进行实时决策,我们能对用户的操作进行ms级的响应,同时不受网络环境的影响,这就能很好的提升弱网环境下的用户体验。对于很多app,在大促活动中受限于服务器资源容量,会对部分功能进行降级,而把这部分功能涉及到的计算资源放到端侧,就能很好的解决此类问题。

端智能应用挑战

这么看端智能还是一个不错的技术领域,那为啥它没像云侧智能那样快速普及和发展呢?抛开应用场景、人员投入等因素,单看技术落地本身,端智能技术相对于云智能技术还面临着特定的挑战:

  • 包大小挑战,在端上进行AI工程技术,就涉及占用APP的安装包大小、存储资源,这对端计算引擎瘦身、端模型大小、端模型压缩、动态发布等能力都提出了较高的要求。
  • 性能挑战,由于使用移动设备的计算资源,要兼顾用户体验与计算效率的平衡,需要针对移动端设备CPU/GPU、内存、耗电、指令集、线程调度等进行持续优化。
  • 适配挑战,面对设备、系统版本的碎片化,端智能技术需要进行大量适配,确保运行时的稳定性与可用性。

此外,端智能与云智能本身就不是割裂的技术体系,不是非此即彼,而是相辅相成、互为补充。随着AI技术的深入发展,如何让两者更好的协同,将是未来更大的挑战。

2.蚂蚁端智能发展与应用

image.png 蚂蚁端智能在业界发展较早,在2017年“扫福”活动中,就提出了在端侧进行CV能力的诉求,当年8月我们上线了端侧深度学习推理引擎xNN,随后在新春扫五福、证件夹、生物识别、保险、扫一扫&AR等CV类场景取得了不错的进展,同时推动了扫一扫、生物识别引擎、多媒体引擎的落地。 时间来到2019年,随着搜索推荐、安全风控、体验优化等场景对端侧智能新的诉求,即基于端侧实时、丰富的数据进行智能的决策,这一阶段对于端侧计算调度、模型训练以及端到端工程能力提出了新的挑战,在技术能力上我们重点建设了端数据实时计算、端特征引擎、端决策引擎、端训练组件等,并通过端智能容器与研发平台,给算法提供完善的工程支撑。 image.png 从技术的发展脉络来看,蚂蚁端智能的应用场景主要有2个方向:认知智能与数据智能。 认知智能,比如传统的身份证、银行卡、人脸识别以及近些年短视频领域兴起的视觉互动技术,这个方向主要涉及图像视觉类算法,通过端视觉技术在准确性、时效性与稳定性上的优势,能很好的提升产品体验同时降低业务成本。 数据智能方向,基于业务的特点往往有不同的落地形式,比如feeds流场景的交互式推荐,云端对推荐内容进行召回,而端侧基于实时行为进行重排,抓住用户即时的兴趣爱好;再比如一些体验优化的场景,基于网络、设备和用户操作进行小程序资源的预加载,提升操作体验等。

3.蚂蚁端智能技术体系

我们在蚂蚁众多的业务场景,作了端智能大量的探索与实践,包括营销互动、搜推广、安全风控、IoT等,而在技术能力上,我们需要有一套完善的基础设施去支撑算法和工程同学快速进行方案研发与场景实验。 image.png

计算框架层,对于端智能研发的基础,我们首先要解决端上算法模型运行的问题并兼顾其在移动端性能、尺寸、功耗上的诉求,适配底层不同的操作系统与硬件芯片,因此我们建设了蚂蚁移动端的深度学习推理引擎xNN及其配套的算法研发框架。而在数据计算领域,数据特征作为关键输入决定了算法模型的上限,为了充分发挥端智能实效性高的优势,提升端计算的性能,我们自研了移动端的流式计算框架,在此基础上支持端数据的实时聚合、实时匹配、实时串联,给上层的端特征、端决策模块提供了丰富的计算能力,并确保高效的数据处理性能。此外,考虑到算法同学的研发语言以及算法方案的快速迭代部署,我们开发了一个小型的端侧Python虚拟机,在支持核心功能的同时,重点在性能、内存和包大小方面进行优化。

智能框架层,为端智能的算法与工程提供包装好的研发组件,屏蔽其对底层运行环境与原子计算能力的直接感知调用,提升研发效率与体验。在认知智能方向,基于应用范围和垂类场景的特性,我们建设了多媒体引擎、生物识别引擎,沉淀了OCR文字识别、人机交互等算法组件。数据智能方向,深耕端云实时用户理解,沉淀端特征中心,场景应用上,端实时决策框架支持重排、预测、打分等模版方案,研发时通过IDE、仿真/评测、灰度/AB等对齐云侧AI的研发配套。

image.png

端智能研发平台,为端智能算法同学提供一站式的研发支撑,其核心功能包括特征开发部署,模型训练部署以及监控与质量保障。特征方面,平台提供可视化特征配置与开发组件,重点建设低代码研发模式,并通过特征元数据与血缘保证准确性;模型方面,从轻量化建模到可伸缩性建模演进,充分挖掘碎片化的算力,同时沉淀可复用的算法模型,提升业务的接入效率;监控与质量保障方面,自动化的真机评测能力保证发布到用户手机侧的稳定与性能指标,同时提供多维度的任务监控,包括任务的功耗、内存、成功率等关键指标。

场景应用时,在研发流程上算法通过端特征进行模型训练,并通过移动端发部工程体系部署到端上;在用户手机运行时,端计算容器则提供特征、模型的运行环境,同时通过决策框架串联整个业务流程,实现端上的实时决策响应。

4.思考与展望

面向未来,端智能这个领域还有很多问题值得我们去思考和解决,简单抛一些想法: image.png 算力挖掘方向:端智能的本质实际上是将云端的部分算力分散到端侧执行,但是端侧的资源就是有限的,在低端机和端侧大模型部署上会受到限制,这一点有没有办法突破。 image.png 端云协同方向:虽然我们全篇提的都是端智能,但是端智能与云智能本身就不是割裂的技术体系,而是相辅相成,就像章鱼的大脑和触角,脑部和触角都有大量的神经元,彼此要协同合作才能更好的生存,目前业界主流的端云协同范式,是云侧训练+端侧推理,虽然我们也在部分场景探索过端训练,但整体来看端云协同还处于较初级的阶段,在协同训练和推理上,我们还要继续探索。