国际顶会OSDI首度收录淘宝系统论文,端云协同智能获大会主旨演讲推荐

本文主要是介绍国际顶会OSDI首度收录淘宝系统论文,端云协同智能获大会主旨演讲推荐,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

e3fa32c03881ba504aa3f58902b798e3.gif

大淘宝技术团队论文入选计算机系统领域顶级国际学术会议OSDI,这是淘宝系统论文首次入选该国际顶会,论文详解了阿里历经四年、自主研发的首个端到端、通用型、规模化产业应用的端云协同机器学习系统“瓦力”——Walle。OSDI特别邀请到的David Tennenhouse在大会主旨演讲中专门推荐了Walle系统,对其技术先进性和应用落地效果赞誉有加。目前,Walle 作为阿里机器学习的基础设施支持 30+APP上 的300+个算法任务。

OSDI 会议

USENIX OSDI(Operating Systems Design and Implementation)是计算机系统领域最顶级的国际学术会议之一,被誉为操作系统领域的奥斯卡,拥有极高的学术地位和影响力,汇集了全球学术界和产业界系统领域专业人士的前沿思考和突破性成果。

今年OSDI大会特别邀请了David Tennenhouse作主旨演讲,他是IEEE Fellow,曾担任Intel、Amazon/A9.com、Microsoft、VMware等公司研究院和DARPA的首席/主管,也曾任教于MIT。David Tennenhouse在主旨演讲「1」中专门推荐了Walle系统,并在Walle talk的前后通过邮件和Slack等方式主动与作者们进行了交流。

939e1d297550c5b3fdf2a6463eb09661.png

Walle 系统命名由来

Walle(瓦力)来源于2008年电影“机器人总动员 WALL-E「2」”。在电影中,WALL-E 机器人负责对地球垃圾进行清理,变废为宝。Walle的架构者也秉持类似的初衷,希望所设计和搭建的端云协同机器学习系统能够像 WALL-E 机器人一样,有效利用数以十亿计移动端设备上的用户数据,充分释放其被忽视的价值,为用户提供更好的智能服务。

Walle 系统设计哲学

c10445e7af34593c82cb8ae3acd3ac87.png

图1: 机器学习任务开发者视角中的Walle工作流程

为了打破主流基于云服务器的机器学习框架延时高、开销成本大、服务器负载高、隐私安全风险高等瓶颈,Walle采用了端云协同机器学习新范式,以充分发挥移动端设备贴近用户和数据的天然优势,实现端云优势互补。不同于端云协同学习已有工作(主要在算法层面,并针对特定应用场景中特定的机器学习推理或训练任务),Walle是首个端到端、通用型、规模化产业应用的端云协同机器学习系统。Walle支持机器学习任务在任意阶段(前处理、模型训练与推理、后处理)在端和云之间交换任意必要的信息(例如数据、特征、样本、模型、模型更新、中间结果等)协同完成任务。Walle遵循端到端的架构设计,面向机器学习任务,从开发者视角出发,覆盖了机器学习任务的研发期、部署期和运行时,并支持端侧和云侧运行时的每个阶段。此外,Walle还遵循通用型的系统设计,而非集成大量面向特定应用、特定平台的定制方案。Walle向下磨平了端云设备软硬件的差异性并保证移动APP的轻量化,向上则支撑了多种类型机器学习任务的大规模产业化应用。

Walle 系统架构

62c555551986dce1cbd3e21fd974575c.png

图2: Walle 的整体架构

Walle 主要包含以下三个核心系统模块:

  1. 部署平台,管理大规模的机器学习任务并及时部署到亿级设备上;

  2. 数据管道,主要涉及机器学习任务的前处理阶段,为端侧和云侧提供任务输入;

  3. 计算容器,提供跨平台、高性能的机器学习任务执行环境,同时满足机器学习任务天级迭代的实际需求。

具体来说,

  1. 计算容器底层是 MNN 深度学习框架,包含高性能的张量计算引擎和标准数据处理与模型运行库,并通过改造的 Python 线程级虚拟机对外统一透出接口,以支持多种机器学习任务的全链路执行和多任务的并行。MNN 的核心技术创新点是几何计算和半自动搜索这两个新机制,其中几何计算主要通过形变算子的拆解,极大地降低了为十多种硬件后端手工优化上百个算子的工作量,而半自动搜索机制则进一步实现了在运行时快速搜索计算图的最优可用后端和执行方案。Python 线程级虚拟机则舍弃了 Global Interpreter Lock(GIL)并首次支持了多任务多线程的并行,进一步面向移动APP的实际业务需求,通过裁剪与改造首次移植到端上;

  2. 数据管道引入了全新的端侧流处理框架,遵循“单台资源受限移动端设备上针对无限数据流的有状态计算”这一基本原则,使得用户行为数据在近数据源处能够被高效处理,同时设计了基于字典树的任务触发管理机制,实现了端侧多个相关流处理任务的批量触发执行。另外,在端云之间搭建了实时传输通道,以支持数据百毫秒级的上传下达;

  3. 部署平台通过git机制实现细粒度的任务管理,并采用推拉结合、多批次任务发布的方式保证实效性和稳定性,同时支持统一和定制化的多粒度任务部署策略。

典型实际应用中的系统性能

5e5d86522b1dc4da8984262bf6654a53.png

图3: 电商直播场景下端云协同看点识别流程

在淘宝直播场景中,智能看点任务是指通过机器学习方法自动地定位出主播介绍讲解商品看点(即商品对买家有吸引力的信息)的时间点,从而提升用户体验。相比较于以前的纯云智能看点任务链路,引入Walle后的新端云协同链路,将平均生产每看点的云侧负载降低了 87%,将智能看点覆盖的主播数量提升了123%,并将单位云算力产出的看点量提升了 74%。真机测试显示,在华为 P50 Pro上平均每次看点任务的总耗时为130.97 ms,而在 iPhone 11 上的耗时为90.42 ms。上述结果凸显了及端云协同学习框架的实用性以及Walle计算容器的高性能。

bfba6f60804a57c335383724a6474cde.png

图4: 电商推荐场景下基于Walle数据管道的IPV特征生产流程

在电商推荐场景中,商品页面浏览(Item Page-View, IPV)特征主要记录了用户在某个特定商品的详情页上的行为(例如收藏、加购物车、购买下单等),该特征对于推荐模型起着十分重要的作用。云侧原有的 IPV 特征生产链路,产出一条特征的平均延迟为33.73 秒,同时消耗了大量的计算、通信、存储资源,并存在0.7%的错误率。相比之下,Walle全新的数据管道可以在端侧完成IPV特征生产过程,平均端侧延迟仅为44.16毫秒,同时削减了超过90%的数据量,并保证了特征的正确性。这些结果表明:相较于主流基于云的数据管道,Walle新数据管道大幅提升了特征生产和消费的时效性、高效性和正确性。

2e8e5c767287c1a58bfda34521d81145.png

图5: 某个线上随机挑选的机器学习任务的部署过程

为了测试Walle部署平台的时效性和规模化,随机挑选了一个线上的机器学习任务,并监控了其部署到目标设备群体的整个流程。在保证任务稳定性的前提下,Walle部署平台成功覆盖在线的700万移动端设备需要7分钟,而覆盖所有的2200万设备需要22分钟。

核心模块的Benchmark测试结果

f198bf7becf6a840d5873119b964f49d.png

图6: MNN vs. TensorFlow (Lite), PyTorch (Mobile)

在Android和iOS移动端设备以及Linux服务器的主流硬件后端上对MNN与TensorFlow (Lite)和PyTorch (Mobile)进行了对比测试。测试采用了视觉、自然语言理解、推荐领域中常用的7个模型。结果表明:MNN几乎在所有测试样例中的性能都超过其他的深度学习框架。除了高性能之外,MNN还能够支持所有移动端硬件后端上每个模型的运行,而TensorFlow Lite和PyTorch Mobile则无法支持某些硬件后端或模型,因此MNN的通用性更好。

cc583d55cf7949a35028560c3ea0c7a2.png

eea80aea5051aca4be583d1ceb32b3ab.png

图7: MNN vs. TVM

此外还进行了MNN和TVM的对比测试,其中TVM自动调优和编译的主机是MacBook Pro 2019和NVIDIA GeForce RTX 2080 Ti。一方面,TVM的自动调优和编译大约耗时几千秒,而MNN在运行时的半自动搜索仅需要几百毫秒。进一步结合MNN和TVM在设计和实际部署上的区别(尤其是TVM在iOS设备上模型动态部署能力欠缺,详见PPT和论文),可以得出:MNN能够支持涉及大规模异构硬件后端并需要任务频繁快速迭代的产业界场景,而TVM则不可行。另一方面,在每个硬件后端上每个模型的推理时间方面,MNN也低于TVM,尤其是在GPU服务器上,这主要由于MNN中手工算子优化。

fb3362f0f63e10c5f82ed347057e0b63.png

图8:Python线程级虚拟机 vs. CPython(基于线上3000万次机器学习任务执行的统计分析)

最后还对Python线程级虚拟机和CPython进行了性能对比测试。结果表明:在涉及不同计算量的3种任务类型上,Python线程级虚拟机性能大幅提升,主要原因在于解除了GIL并支持任务级的多线程并发。

业务落地情况

目前,Walle 作为阿里巴巴集团机器学习的基础设施,每天被调用超过千亿次,支持着 30 多个移动 APP(包括手机淘宝、饿了么、速卖通、菜鸟裹裹等)上 300 多个视觉、推荐等任务。此外,MNN「3」已在GitHub开源,目前获得 6.8k stars和 1.4k forks,同时入选了 2021 年“科创中国”开源创新榜单,并已在 10 多个其他公司商业化应用。

论文作者及引用信息

Chengfei Lv, Chaoyue Niu, Renjie Gu, Xiaotang Jiang, Zhaode Wang, Bin Liu, Ziqi Wu, Qiulin Yao, Congyu Huang, Panos Huang, Tao Huang, Hui Shu, Jinde Song, Bin zou, Peng Lan, Guohuan Xu, Fei Wu, Shaojie Tang, Fan Wu, and Guihai Chen, Walle: An End-to-End, General-Purpose, and Large-Scale Production System for Device-Cloud Collaborative Machine Learning, in Proceedings of the 16th USENIX Symposium on Operating Systems Design and Implementation  (OSDI), Pages 249-265, Carlsbad, CA, USA, Jul. 11 - 13, 2022. https://www.usenix.org/conference/osdi22/presentation/lv

论文相关资料

aeb1a6a927934f3a932efe1bff7e69b5.png

「1」主旨演讲:

https://www.usenix.org/conference/atc22/presentation/mon-keynote

「2」WALL-E:

https://movie.douban.com/subject/2131459/

「3」MNN:

https://github.com/alibaba/MNN

团队介绍

大淘宝技术Meta团队,目前负责面向消费场景的3D/XR基础技术建设和创新应用探索,创造以手机及XR 新设备为载体的消费购物新体验。团队在端智能、端云协同、商品三维重建、3D引擎、XR引擎等方面有着深厚的技术积累,先后发布深度学习引擎MNN、端侧实时视觉算法库PixelAI、商品三维重建工具Object Drawer、端云协同系统Walle等。团队在OSDI、MLSys、CVPR、ICCV、NeurIPS、TPAMI等顶级学术会议和期刊上发表多篇论文。欢迎视觉算法、3D/XR引擎、深度学习引擎研发、终端研发等领域的优秀人才加入,共同走进3D数字新时代。简历请投递至: chengfei.lcf@alibaba-inc.com

✿  拓展阅读

16991a314ec1e6d0653972a817dcaba5.jpeg

编辑|橙子君

3c466c68888fa6ba57fc29b615c81de9.png

这篇关于国际顶会OSDI首度收录淘宝系统论文,端云协同智能获大会主旨演讲推荐的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/685716

相关文章

JWT + 拦截器实现无状态登录系统

《JWT+拦截器实现无状态登录系统》JWT(JSONWebToken)提供了一种无状态的解决方案:用户登录后,服务器返回一个Token,后续请求携带该Token即可完成身份验证,无需服务器存储会话... 目录✅ 引言 一、JWT 是什么? 二、技术选型 三、项目结构 四、核心代码实现4.1 添加依赖(pom

基于Python实现自动化邮件发送系统的完整指南

《基于Python实现自动化邮件发送系统的完整指南》在现代软件开发和自动化流程中,邮件通知是一个常见且实用的功能,无论是用于发送报告、告警信息还是用户提醒,通过Python实现自动化的邮件发送功能都能... 目录一、前言:二、项目概述三、配置文件 `.env` 解析四、代码结构解析1. 导入模块2. 加载环

linux系统上安装JDK8全过程

《linux系统上安装JDK8全过程》文章介绍安装JDK的必要性及Linux下JDK8的安装步骤,包括卸载旧版本、下载解压、配置环境变量等,强调开发需JDK,运行可选JRE,现JDK已集成JRE... 目录为什么要安装jdk?1.查看linux系统是否有自带的jdk:2.下载jdk压缩包2.解压3.配置环境

Linux查询服务器系统版本号的多种方法

《Linux查询服务器系统版本号的多种方法》在Linux系统管理和维护工作中,了解当前操作系统的版本信息是最基础也是最重要的操作之一,系统版本不仅关系到软件兼容性、安全更新策略,还直接影响到故障排查和... 目录一、引言:系统版本查询的重要性二、基础命令解析:cat /etc/Centos-release详

更改linux系统的默认Python版本方式

《更改linux系统的默认Python版本方式》通过删除原Python软链接并创建指向python3.6的新链接,可切换系统默认Python版本,需注意版本冲突、环境混乱及维护问题,建议使用pyenv... 目录更改系统的默认python版本软链接软链接的特点创建软链接的命令使用场景注意事项总结更改系统的默

在Linux系统上连接GitHub的方法步骤(适用2025年)

《在Linux系统上连接GitHub的方法步骤(适用2025年)》在2025年,使用Linux系统连接GitHub的推荐方式是通过SSH(SecureShell)协议进行身份验证,这种方式不仅安全,还... 目录步骤一:检查并安装 Git步骤二:生成 SSH 密钥步骤三:将 SSH 公钥添加到 github

使用Python构建智能BAT文件生成器的完美解决方案

《使用Python构建智能BAT文件生成器的完美解决方案》这篇文章主要为大家详细介绍了如何使用wxPython构建一个智能的BAT文件生成器,它不仅能够为Python脚本生成启动脚本,还提供了完整的文... 目录引言运行效果图项目背景与需求分析核心需求技术选型核心功能实现1. 数据库设计2. 界面布局设计3

Linux系统中查询JDK安装目录的几种常用方法

《Linux系统中查询JDK安装目录的几种常用方法》:本文主要介绍Linux系统中查询JDK安装目录的几种常用方法,方法分别是通过update-alternatives、Java命令、环境变量及目... 目录方法 1:通过update-alternatives查询(推荐)方法 2:检查所有已安装的 JDK方

Linux系统之lvcreate命令使用解读

《Linux系统之lvcreate命令使用解读》lvcreate是LVM中创建逻辑卷的核心命令,支持线性、条带化、RAID、镜像、快照、瘦池和缓存池等多种类型,实现灵活存储资源管理,需注意空间分配、R... 目录lvcreate命令详解一、命令概述二、语法格式三、核心功能四、选项详解五、使用示例1. 创建逻

使用Python构建一个高效的日志处理系统

《使用Python构建一个高效的日志处理系统》这篇文章主要为大家详细讲解了如何使用Python开发一个专业的日志分析工具,能够自动化处理、分析和可视化各类日志文件,大幅提升运维效率,需要的可以了解下... 目录环境准备工具功能概述完整代码实现代码深度解析1. 类设计与初始化2. 日志解析核心逻辑3. 文件处