导读 本文将介绍阿里巴巴手机淘宝 Meta 技术团队历经四年研发的端到端、通用型、规模化产业应用的端云协同机器学习系统 Walle。Walle 的名字来源于电影《机器人总动员》。电影中 Walle 作为地球上最后一个机器人,负责对地球上的垃圾进行清理、变废为宝。我们的系统设计也秉持着相似的初衷,希望所设计和搭建的端云协同系统能够有效地利用数以十亿计移动端设备上的数据,充分释放其被忽略的价值,为用户提供更好、更便捷的智能化服务。
文章将包含以下几大部分:
1. Background & Motivation
2. Overall Goal & Architecture
3. Walle – Compute Container
4. Walle – Data Pipeline
5. Walle – Deployment Platform
6. Evaluation Results
7. Summary
8. Q&A
分享嘉宾|牛超越博士 阿里巴巴 学术合作实习生
编辑整理|晏世千
出品社区|DataFun
02
计算容器为具有标准输入的多种机器学习任务提供了跨平台、高性能和轻量化的执行环境,同时支持机器学习算法频繁的实验和部署,从而满足实际任务“天”级迭代的实际需求。 数据管道,涉及到机器学习的前处理阶段,为端侧和云侧提供任务输入。Walle 主要关注了用户与移动端 APP 交互过程中产生的用户行为数据,包括时间和页面事件的行为序列。用户行为数据无法被数据管道中的数据库直接处理。 部署平台主要是面向亿级的移动端设备,以时效性和鲁棒性强的方式进行发布管理,并部署到大规模的机器学习任务。同时兼顾机器学习的一些需求,设备资源可用性的一些特点,以及任务失败的一些案例。
1. 计算容器的设计挑战和细节
Python Thread-Level VM
Data Processing & Model Execution Libraries
Tensor Compute Engine
首先是移动设备和 APP 的间断可用性。移动设备通常采用无线连接,并且只允许前台运行一个 APP,而用户会喜欢频繁的切换不同的 APP,因此从 APP 角度看,每台移动端设备的可用性是动态的。这也意味着传统的基于推拉的部署方式无法保证良好的时效性,并会在云上产生较高的负载。 其次是潜在的任务失败。一个移动 APP 是以单进程来运行的,一个任务的失败会影响整个 APP 的运行,严重影响用户体验。由于大规模机器学习部署需求,在所有机型测试每一个预发任务是不现实不可行的。
Walle 是第一个端到端、通用型、规模化产业应用的端云协同系统。 计算容器包括 MNN 深度学习框架,它引入几何计算以大幅减人工优化的工作量,以及半自动搜索以确定运行时优化的最佳后端;还包括 Python 虚拟机,它是第一个解除 GIL 限制,并支持任务级多线程的虚拟机,也是第一个移植到移动设备的虚拟机。 Walle 新的数据管道,通过引入全新的端侧流处理框架,并且通过基于 trie 的任务触发管理机制,实现了端侧多个流处理任务的批量触发。我们还在端云之间建立了实时的传输通道,以支持数据百毫秒级别的上传下载。 Walle 部署平台支持细粒度、分布式的任务管理,采取推拉结合、多批次任务发布的方式,保证了时效性和稳定性。同时支持统一和定制化的多粒度任务部署策略。 通过电商直播和推荐场景的实测,以及广泛的基准测试,证明了 Walle 的优越性。 Walle 一直在阿里巴巴大规模使用,并且 MNN 已经开源并在社区中具有广泛影响。
分享嘉宾
INTRODUCTION
牛超越 博士
阿里巴巴
淘宝Meta技术团队 学术合作实习生
牛超越于2021年在上海交通大学计算机科学与工程系取得博士学位,曾获中国计算机学会(CCF)优秀博士学位论文奖,目前担任博士后研究员。同时,自2018年起在阿里巴巴淘宝Meta技术团队做学术合作实习生,作为team leader承担了联邦学习、端云协同学习、移动端个性化推荐系统等项目。
网友评论已有0条评论, 我也要评论