嘉宾:季爱军
编辑:李慧文
在移动设备硬件能力不断升级的时代下,我们见证了端侧技术日新月异的迭代。现在,我们不仅能在传统 iOS、安卓技术体系下开发移动 App,还能在端智能、AR/VR、音视频、跨端等技术方向上不断优化 App 产品。2021 年得物 App 依托丰富的业务场景,不断进行技术创新,在端侧智能上取得了不错的业务结果,因此我们邀请了得物 App 无线技术总监 季爱军(Alpha),他也是 ArchSummit 全球架构师峰会(上海)【移动端开发技术实践】专题的出品人,请他分享得物 App 端侧智能化的经验。
InfoQ:先和大家聊聊您现在的工作的主要内容吧?得物 App 为什么要做端智能?
季爱军:在得物 App 我主要负责整个移动端技术团队的建设工作和社区和增长投放业务线的技术支持工作,也负责带领团队进行了 3D、AR、游戏、音视频、端智能等方向的技术创新探索工作。
其中端智能一直是我的工作重点之一。端智能指利用端侧算力部署机器学习算法模型和推理从而在端侧完成过去只能在云端完成的一些业务能力,在实时性、隐私保护、离线场景等方面具有得天独厚的优势。在过去两年中我们依赖端智能能力完成了 3D 商品数字化展示功能、AR 商品试穿功能、自研 AR 尺码测量功能等等创新实践。
得物做端智能核心目标在业务层面主要还是满足业务场景需要和用户需求,给用户带来更好的体验。得物的业务本身涉及了移动互联网最受欢迎的两个场景社区和电商,在社区中我们用端智能能力给用户带来更好的视效体验,在电商业务中给业务数据带来正向提升。另外在其他业务中我们使用端智能技术来给用户提供更多创新的体验服务,比如 3D 鉴别卡、节日活动、趣味玩法等。
技术层面上我们也会使用端智能解决过去传统方案比较难处理或者处理起来性能比较差的问题,比如在二维码扫描、白屏检测、身份证认证等。但总体来说端智能对于得物来说只是一种技术解决方案,因为对业务对用户有利,所以得物选择了它。
InfoQ:去年得物 App 在端智能化取得了突出进展,作为该项目的技术负责人,能否请您回顾一下,得物 App 端智能化的建设过程,这个过程中是否有哪些架构演进,演进的背景是怎样?
季爱军:得物的端智能建设过程我觉得是一个一步步积累的过程,我们在架构设计技术方案选择上都是相对比较谨慎的,而且也充分参考了同学在过去工作经历中的经验。
首先说最基础的是引擎层推理能力。支持端侧推理的优秀引擎框架已有很多,比如手淘的 MNN、Tensorflow Lite、苹果 MLKit 等。我们主要的工作是选型:MNN 和 TS 都支持跨平台,相比起来,MNN 支持开源性能更加优秀,而 MLKit 由系统提供拥有无需占用 App 包体的优势。
在早期得物 App 优先选择的是系统提供的引擎框架,团队更多的精力放在了引擎能力之上的工程落地部分,最近在 AR 尺码测量技术方案中我们开始使用了 MNN,方便跨平台的实现和优化算法模型。
再说模型训练环节。这个环节,样本数据平台和模型训练的部分是相对比较通用的,一些简单的算法场景比如一些分类模型、识别模型等上述的引擎框架提供了非常便捷的工具给端侧的同学来使用,而一些人脸识别、脚部识别模型的开发工作还是会交给更重要的算法同学来进行。另外还有一个比较重要的是模型的下发平台,负责管理和更新相关算法能力模型,与端侧 App 进行交互。
端智能框架体系中所涉及的技术链路中最为宽泛的其实是围绕着 AI 算法能力之上的工程能力,将端智能架构体系包括 AI 算法上的工程能力完整落地到业务场景中知易行难,关键在于不断积累技术能力,在积累的技术能力基础上,来陆续搭建和丰富整体框架能力:比如视频超分能力需要前期自研视频播放器,商品 3D 展示、AR 试穿效果能力建立在自研渲染引擎自研基础上,AR 尺码测量推荐建立在高精度的脚部建模基础上等等。这个过程得物 App 用了两年。
得物 App 端智能框架体系
InfoQ:完成了端智能化的得物 App ,解决了业务的哪些问题呢?
季爱军:前面也提到得物的业务场景是比较丰富的。首先我们有潮流社区服务,其次我们的交易服务也是目前国内非常受欢迎的平台。在这两个业务场景中端智能的落地场景非常多。我们熟悉的社区内容发布工具中就非常依赖图像算法能力,另外在交易业务中不管是端侧推荐优化以及商品图搜能力等都依赖端智能能力。端智能给用户带来的业务体验,包括很多实时的智能化服务在过去是无法实现的。
目前得物重点在音视频特效、AR 试穿、图搜、数字化商品、虚拟人等场景下使用了端智能能力。这里可以重点介绍下得物的 AR 试穿。
AR 试穿虽然已经是一个业内比较普及的功能,但在过去很多电商平台期望通过 AR 能力提升商品的交易转化率但并不成功。得物却在 AR 试穿上能够在用户体验和业务数据指标上都拿到了结果。
在这里其实得物有几个业务优势:首先得物的用户都是年轻人,他们非常有个性,追求体验,富有好奇心,接受新事物能力强,其次得物的商品都是大家特别喜爱的尖货潮品,购买决策较长,对于购买链路的辅助工具和信息的需求大。目前在购买用户中 AR 试穿的使用渗透率是非常高的,商品的收藏率和转化率也有成倍增加。
另外相对其他平台得物还有一个有非常大的优势,得物的平台交易模式要求每一件商品都需要开箱查验,这个特点使得我们是唯一一个能够接触到所有商品实物的电商平台,这意味着我们不需要进行采购就能够覆盖大部分的商品 3D 数字化,能够建设生产自己的流水线并进行严格的品控。从拍摄采集到数字化到局部调整都是得物 App 自建的技术和团队,相比其他平台可控性更高。此外,在客户端的展示和试穿技术方案实现上,我们也配合生产定制化地去优化了效果。这也是为什么众多友商和得物的商品数量和精度效果都相差很多的原因。
目前得物已经建设了能够批量生产的 3D 数字商品生产流水线。我们的流水线覆盖了近 2W+ 双球鞋,其中 1W+ 双支持试穿,这是全球规模最大精度最高的试穿服务。
当然,在其他业务场景下得物端智能也取得了不错的结果,比如上面提到的画质增强服务。大部分视频画质增强服务都是在云端离线处理完之后进行统一分发的,但在直播场景下云端的离线服务并不能满足这个要求。我们使用了画质增强后,带宽消耗和观感上都有了不错的优化。
另外目前我们还在开发 AR 尺码测量技术,能够利用 AR 技术高精度的测量用户的脚部数据以帮助用户选择更合脚的鞋款,这个方向的努力我认为是能真正帮助到用户和我们自己的业务的,也是我认为技术特别有价值的地方。
InfoQ:相比云侧,端侧存在计算资源少、数据量少、数据孤岛等问题,得物 App 是怎么解决这些问题的呢?
季爱军:端侧计算资源始终是局限端智能落地场景的重要问题,算法模型的选择、剪裁和优化都至关重要,适当地根据业务场景需要调整精度要求降低一定的技术指标也是可取的。另外可以根据用户不同的设备硬件条件下发不同大小的算法模型以实现不同机型上的流畅运行,选择能充分利用 NPU 等硬件元件的引擎。
实际上,得物 App 还调研过边缘计算,但因为边缘计算成本太高不适合业务场景落地而暂时没有部署起来。
而数据量少和数据孤岛的问题我感觉问题不大:目前 4G/5G 下网速已经不是问题,Wi-Fi 覆盖情况也理想,端云数据交互通畅。
畅通的数据交互将会持续赋能端智能的发展。现阶段的大部分端智能是建立在端侧推理的基础上的,其实端侧距用户更近,可获取更多用户个性化的数据,也是可以承担模型增量训练优化的任务的。而在更实时和大数据的端云交互后这样的业务场景落地会越来越多,比如说商品个性化推荐。
InfoQ:得物 App 在端侧是如何选择算法的? 如何建设端侧引擎的?
季爱军:在端侧选择算法模型不得不重点关注性能因素。复杂的算法模型在端侧无法运行,耗电、耗时等资源消耗问题大,也难以满足业务需求。比如 AR 试穿以及在 AR 尺码测量中的脚部关键点识别和姿态预估算法,都需要保证在 20ms 甚至更短的时间内完成每一帧图像的识别计算,否则就会影响每秒 30 帧的体验。
而在引擎的建设上我们在系统提供的 MLKit 框架之上,最近也引入了三方 MNN 的推理引擎来结合业务特点部署算法模型,包括人脸识别、背景分割、NLP 等等。这些模型能力构建了我们端智能核心算法能力层,它们会在不同的场景下排列组合支持业务需求。而且它们也是动态下发的,在用户没有进入特定场景下不会占用用户资源。
目前得物已经有超过 15 个端侧模型能力,包括通用型的人脸识别、背景分割、OCR 等,也包括特定业务场景定制的白屏检测、鉴别卡检测等,在不同的业务场景共同运行以支持特定需求。
另外在选择合适的算法模型之后,客户端的工程同学也需要根据算法的特点以及业务场景的情况调整调用频率和输入数据以提高计算性能,达到效果和体验的平衡。
InfoQ:得物 App 端智能化有什么经验可以分享吗?
季爱军:得物端智能化的过程是非常谨慎的,在做新的尝试时总会充分考虑技术方案落地在业务中所带来的价值,并没有去做太多高风险研究项目,而是一步步地去尝试通过努力可以拿到结果的小项目。
比如最早我们在尝试某些端智能场景落地时会外采一些技术方案。该方案可能不能完全满足我们的业务需求但是不影响我们去测试业务价值。确认了业务价值,累积了技术力量后,我们会再逐渐将其修改为自研的方案。比如我们最近自研的 AR 尺码测量就是如此。
事实上,我觉得在端智能化过程中,要坚持去做技术积累去尝试自研创新,但切忌憋大招。
InfoQ:可否分享一下未来得物 App 在端上的规划?
季爱军:未来,得物的端侧会继续把重心放在比如说 AR 试穿、AR 尺码测量等方向上,将会构建最完整的潮流尖货 3D 数字商品库,也会提供最高精度的在线试穿试戴服务。
此外得物还凭借着用户和商品内容、技术基础的优势,率先尝试了虚拟穿搭方向 App 奇遇世界,它具备了角色捏脸、扮演以及服饰穿搭的能力,但与穿搭游戏的区别是它的所有的虚拟商品都是 1:1 真实还原现实商品的,为未来技术方向发展做准备,感兴趣的同学也可以去体验一下。
InfoQ:从您的经验来看,端侧智能化架构设计核心需要关注的方面?
季爱军:端侧智能化需要关注的方面可以分几个阶段来说:
首先是基础链路构建部署阶段,将云端的样本数据管理、模型训练压缩剪裁能力构建起来,在这个阶段可以寻找相对通用的算法能力,比如人脸识别、商品分类等等,也可以寻找一些简单场景的算法能力。此时需要关注的端侧模型推理部署的性能及效果指标,尤其是在模型压缩剪裁前后的影响,另外也有团队会更加深入的去研究如何利用硬件能力或设计自定义算子提升模型推理性能等,总结而言这个阶段如何保证模型稳定高效的在端侧运行起来是最重要的。
其次是工程化阶段,这个阶段所要涉及的技术方向就比较多,常见的有渲染引擎、音视频、图形学算法等等。这个阶段需要关注更加专业的细节,比如我们常见的人脸美颜能力,基础的算法模型仅仅提供了人脸关键点能力并不会直接输出美颜结果,而美颜处理需要的能力包括了基于关键点的磨皮算法、图像变形算法、颜色滤镜算法等等,甚至想要更好的效果还需要对面部进行 3D 建模和特效渲染能力等,在很多端智能场景中算法模型能力提供基础数据能力,而工程化落地过程同样重要且复杂,工作量和专业度往往也是非常大,需要中长期建设相关技术能力,这个阶段更需要关注的是基于算法模型的团队工程能力。
最后是业务创新实践阶段,端智能的价值一定需要合适的业务场景来承接,一个好的业务创新实践是技术价值得到充分体现,同时业务效果上也都到大家的认可。这个阶段考验的是团队对业务的理解和对技术方案的把控,如我们正在研发的 AR 尺码推荐能力,在技术层面实现 AR 测量和尺码推荐能力之后,如何冷启动这个服务其实花了我们更多的时间来讨论和思考,这里面其实有非常多的策略和逻辑,且这些策略逻辑也会直接影响你的技术实现方案。总结来说这个阶段需要更多的思考业务和技术的结合点。
InfoQ:随着移动设备硬件能力的不断进化升级,端侧技术迭代日新月异,您认为在端侧未来有哪些值得关注的技术方向呢?未来的移动端开发者们需要哪些必不可少的能力呢?
季爱军:端侧硬件能力的提升使得过去我们在端上不能做的事情都有了可能性,我认为除了端智能之外未来还会有越来越重端侧的技术方案落地,比如去中心化趋势下的一些热门技术方向都非常重端侧。这些技术落地都需要移动端的研发同学即具备基础的工程开发能力,又有一些的算法基础,还需要对 3D 渲染、音视频、游戏等技术方向有所了解,三板斧都得硬。
此外,前些年有人说移动端会越来越薄,也有人说某个跨端技术方案会一统天下。我认为这里说的可能都只是传统的 App 开发,但未来的端应用必然会越来越复杂越来越强大越来越智能,充分利用端侧硬件的计算能力,所以移动端的开发者一定需要保持持续学习的技术心态,不断寻找技术实践的机会成长。
嘉宾介绍
季爱军(Alpha),得物 App 无线技术总监。2012 年加入百度,一直从事移动端相关技术创新工作,擅长 iOS/Android、Flutter、音视频、AR/VR 等技术方向;2019 年加入得物 App,任职无线平台技术负责人,负责移动端基础能力建设,并担任社区及增长业务线技术 PM 职责。
在得物 App 两年多时间组建了超 200 人的移动端职能团队,完成了移动研发平台建设、APM 监控体系打造、容器化工程架构演进等基础工作,并带领团队在 3D 商品、AR 试穿、AR 尺码测量、虚拟 IP 等创新体验方向大胆实践,塑造了用户得物 Z 世代技术体验前沿形象。
活动推荐
在 ArchSummit 全球架构师峰会即将落地上海,季爱军(Alpha)担当专题【移动端开发技术实践】的出品人,该专题下会邀请一线技术专家来聊聊在移动端的研发技术实践,例如跨端、客户端、AR、VR 等细分领域里的实践思考和结果收益,扫描下方二维码即可了解更多。
评论