手机网站模板制作,北京网站建设策划排名,品划网络做营销型网站,国家信用信息企业公示系统原文作者#xff1a;上海交通大学 吴帆
0 引言
目前#xff0c;许多智能技术已经走入人们的日常生活#xff0c;例如交互式商品推荐、人脸识别、语音识别、体征观测、疾病诊断、智能决策等#xff0c;这些智能技术在为我们生活带来极大便利的同时#xff0c;也深刻改变了…原文作者上海交通大学 吴帆
0 引言
目前许多智能技术已经走入人们的日常生活例如交互式商品推荐、人脸识别、语音识别、体征观测、疾病诊断、智能决策等这些智能技术在为我们生活带来极大便利的同时也深刻改变了产业形态推动零售、家居、交通、医疗、战备等传统行业向智能化转型。
在传统基于云服务的框架下终端上传用户的原始数据云服务器维持机器学习模型得到用户输入数据后进行模型推理然后返回推理结果给用户。用户终端就是起到采集数据和展示结果的作用。然而传统的基于云智能的服务框架存在多种问题首先用户数据上传到云服务器存在泄露用户隐私的风险其次数据上传、推理结果回传都会带来通信延时影响服务响应的实时性再有云侧可能需要同时运行上千种不同的机器学习任务响应亿级端设备的请求形成了高负载服务的瓶颈。
为了突破上述云智能的瓶颈端云协同智能新范式应运而生。端云协同智能就是力图通过将部分智能推理任务或智能推理任务的部分阶段卸载到端侧进行处理利用端侧本地即时处理的优势削减响应延时降低云服务器负载同时用户原始数据不离开本地数据安全隐私可以得到良好的保障。
端云协同不仅是一种智能推理的模式更是一种模型进化的革新范式。阿里巴巴达摩院发布的 2022年十大科技趋势之一就是云上大模型与端侧小模型的协同进化。其指出超大规模预训练模型是从弱人工智能向通用人工智能的突破性探索但其性能与能耗提升不成比例的效率问题限制了参数规模的持续扩张。所以人工智能研究的一个未来出路就是从大模型参数的竞赛走向大小模型协同进化。一方面大模型可以向边端的小模型输出模型能力另一方面小模型负责实际的推理与执行任务同时小模型可以再向大模型反馈模型执行成效和端侧新知识让大模型的能力得以持续进化从而形成一个有机演进的智能体系。中国工程院院刊也专门围绕大小模型端云协同进化举办了名为“须弥纳于芥子”的前沿论坛引起了产业界和学术界的广泛关注。
1 大规模端云协同学习
大规模端云协同学习从本质上讲是一种分布式机器学习范式然而又有别于传统分布式机器学习。主要区别在于传统分布式机器学习所使用的训练服务器性能明显强于用户终端设备而且训练数据集经过有机切分满足独立同分布的性质保证分布式训练的收敛性。
传统分布式机器学习主要采用数据并行和模型并行两种方式见图 1。对于数据量巨大的机器学习任务可以采用数据并行的模式加速学习。
如图 1a所示数据集被拆分为若干个数据子集存放在不同服务器上同时每个服务器下载一份模型副本。各服务器基于本地数据子集训练模型并将模型更新汇聚到参数服务器参数服务器再周期性地重新分发最新的聚合模型从而加速训练过程。而对于模型规模巨大、难以由单一训练服务器完成的任务可以采用模型并行的模式来分担运算量。
如图 1b所示每个训练服务器仅存放完整模型的一部分。数据则以数据流的形式在各个训练服务器间进行流转从而逐步更新各模型的组成部分。
但是在云上分布式机器学习中对数据集和模型的拆分通常是随机的。这样的随机拆分在端智能场景下并不适用。
图1 传统分布式机器学习方案有机切分数据/模型 美国谷歌公司率先将数据并行分布式训练的想法拓展应用到资源受限的移动端设备场景提出了Federated Learning 联合学习框架也译作“联邦学习”。在谷歌的联合学习框架下见图 2用户数据遵循自然切分驻留在用户设备本地并简单借用数据并行的思想分布式训练机器学习模型。这种方法仅适用于模型规模小的应用场景所以谷歌利用它优化安卓键盘输入法 Gboard 的单词推荐功能取得了不错的效果。考虑到一种语言的常用单词量大概是 1 万个左右针对 1 万个单词嵌入向量的语言模型大小约为 1.4 MB从而可以轻松地在端设备侧完成训练和推理。
图 2 谷歌数据并行联合学习框架 然而当模型的特征规模进一步扩大时基于完整模型的联合学习框架将无法适用。我们在与阿里巴巴手机淘宝部门合作过程中发现在产业级的推荐场景中要面向10亿移动终端用户从20亿候选商品中为其做出个性化最优推荐。支持此应用的云侧机器学习模型叫做深度兴趣网络。这个模型嵌入了 20 亿个商品标识其规模超过 100 GB。显然完整的深度学习网络模型无法直接部署到端侧设备上进行训练所以简单地沿用谷歌的数据并行联合学习框架不可行。
我们团队与阿里手机淘宝部门合作的 MobiCom工作考虑了移动端超大规模联合学习。这个工作具体考虑了一个 10 亿移动终端用户、20 亿候选商品超大规模的产业级场景而手机淘宝应用的运行内存上限为 200 MB。
考虑到云侧模型巨大要想在端侧进行推理必须想办法把大模型变小。如图 3 所示我们首先尝试了既有的模型压缩方法包括模型剪枝、量化、知识蒸馏等方法。
模型剪枝就是通过分析评估原始模型中各个参数对于最终结果的作用和贡献删除贡献小的、重要性低的节点与边实现模型参数量的减少。 模型量化则是通过降低模型参数的精度让每个参数占据的比特数更少从而减少模型整体占用的空间。 知识蒸馏则是重新构建一个结构更加简单的学生模型以原始的复杂模型为老师模型通过训练让学生模型模仿老师模型的输出从而实现模型的简化。
图 3 既有压缩模型 上述方法得到的压缩模型的准确性都没有达到预期效果。究其原因是因为单一压缩模型无法充分刻画海量端侧设备的个性化数据特征。端侧推理都做不好更不用说在端侧做训练了。
2 大小模型端云协同联合学习
为了解决上述问题我们深入分析了端侧的个性化数据特征并提出了一套大小模型端云协同的联合学习框架。
如图 4 所示我们观察到一个终端的数据往往只涉及到完整特征空间的一个子空间因此该终端只需要获取其本地数据特征对应的部分模型参数我们称之为“子模型”就可以满足本地需求。也就是说利用终端本地数据进行训练后只有其映射的子模型部分的参数才会被更新。从模型切分角度来看子模型是基于特征的模型切分。 图 4 子模型——基于特征的模型切分 基于上述思路我们根据终端本地数据特征从参数服务器拉取其映射的子模型每个终端仅需要使用其本地数据训练拉取的子模型并提交子模型参数更新就可以参与到端云协同模型联合学习过程从而摆脱了对完整模型的依赖。
我们提出的子模型拆分联合学习框架采用了自然的数据集切分和基于特征的模型切分同时实现了数据并行和模型并行。根据数据分析平均每个手机淘宝用户每月关注的商品数量约为 300 个嵌入 300 个商品标识的深度兴趣网络子模型大小仅有 0.27 MB子模型压缩比达到了 50 万分之一远超过任何一种模型压缩算法因此子模型可以在移动端设备上高效地训练和执行推理任务。
此外如果当每个终端使用完整模型而非特征对应的子模型联合子模型框架将会退化到传统的联合学习因此此框架更为一般化。一般化意味用于提升联合学习效率的方案也可以应用到联合子模型学习例如前面提到的模型压缩不仅可以压缩全局模型也可以压缩子模型以进一步削减开销。
考虑到子模型直接加权聚合会导致模型聚合偏差所以我们还提出了细粒度子模型加权聚合算法其核心思想是通过特征相关的数据量加权子模型更新从而消除不同终端子模型错位和数据分布不均造成的聚合偏差保证全局模型的收敛性。
此外终端下载子模型和上传子模型更新会向不可信的协调服务器泄露其子模型位置即泄露其数据隐私违背了联合学习的初衷。为此我们设计了一个子模型隐私保护机制有机结合了安全多方并集计算、随机回答和安全聚合从而赋予了终端对于其子模型真实位置的混淆能力实现在不暴露子模型位置的情况下拉取和汇聚子模型。为了保护终端在子模型框架下的隐私设计了基于安全多方集合并集计算、随机回答和安全聚合的安全协议赋予了终端对于其子模型真实位置的抵赖性从而保护数据隐私。其中抵赖性的强度可以用本地差分隐私进行精确地度量。此外终端本地可以通过设置随机回答中的参数来调整隐私保护程度从而取得隐私和效用之间良好的平衡。
我们的子模型拆分联合学习方法得到了同行的高度关注24 位顶尖大学的教授在共同撰写的综述中表示此方法是一个富有前景的研究方向详细内容参见文章“Advances and Open Problems in Federated Learning”中的 4.4.4 小节。
前面的研究成果开启了一个研究方向的大门随之而来还有一系列问题需要解决。首当其冲的是联合学习中本地数据并不满足独立同分布的性质。各终端的模型更新会偏向各自的本地最优导致模型聚合结果偏离全局的最优。针对这个问题谷歌研究院的研究员 Mehryar Mohri 提出了随机受控联合均值算法参见文章“ICML’19SCAFFOLD:Stochastic Controlled Averaging for Federated Learning”使用上轮梯度估计全局方向并对本地更新进行矫正从而保障模型的收敛性。
我们进一步考虑移动终端设备间断在线带来的数据可用性差异提出了名为联合最新均值的算法来避免全局模型聚合偏向高可用终端。核心思想是让每个终端都有一定概率被选中参与每轮联合训练并优先选取最长时间未参与的终端当选到的终端不在线时则复用它最近一次提交的梯度。这个方法通过模拟异步梯度聚合消除终端间断在线造成的模型聚合偏差。对于每一轮中未参与的终端我们会复用它们最近一次提交的梯度。这一更新形式避免了全局模型的更新偏移。我们在每轮中会优先选取最长时间未参与的终端从而使它们的陈旧梯度得到更新。本质上来讲此方法通过模拟异步梯度聚合消除终端设备动态可用造成的偏差。同时从理论上证明了联合最新均值算法在非独立同分布数据集和动态可用性下的收敛性。实验结果表明相比于联合均值算法我们的算法将模型准确率提高了 5%见图 5。
图 5 模型准确率 我们还想知道每个终端对联合学习模型训练的贡献度从而增强联合学习系统的透明性和可解释性。这里采用 leave-one-out 的思想度量终端对全局模型的影响即有无某个终端参与时全局模型性能的差异。考虑到 leave-one-out 需要重新训练模型产生难以承受的开销我们提出了基于一阶近似和链式求导法则的估计方法规避了重新训练同时设计了基于费希尔信息Fisher information的海森矩阵Hessian matrix近似算法进一步削减计算开销。此外为了削减面向非突学习任务的估计误差还提出了层次化的模型参数数值检查与截断方法降低面向非凸优化目标的估计误差。有了贡献度量可以根据终端的贡献度动态调整其模型聚合权重。比如提高高贡献终端的权重降低低贡献终端的权重甚至剔除搞破坏的终端。实验结果表明本方法可以有效提升全局模型的准确率见图 6。
图 6 全局模型的准确率 另外一个影响端侧训练的问题是端侧样本量少容易产生小样本过拟合的问题。我们可以发挥端云协同的优势以云为协调服务器通过域迁移为终端本地增广数据特征分布相似的数据集从而在保有终端本地模型个性化特征的前提下规避小样本过拟合问题。
具体解决的基本思路是针对每个终端从云上全局数据集中筛选出与其本地数据分布相似的样本扩充本地数据集。在具体的技术路线方面主要采用了域迁移domain adaption的思想。首先以指定终端的本地数据集为目标域云上其他终端的数据集为源域然后用源域数据增量式训练模型并用目标域评估模型准确率选取使得模型准确率提升的样本用于扩充本地数据最后终端利用本地扩充数据训练模型。相比于基于云服务的机器学习基于域迁移的数据增强方案能够降低训练数据与测试数据之间的分布偏差相比于端上仅用本地数据训练新方案通过扩充相似样本能够有效降低泛化误差。
3 端云协同智能系统
近年我们和阿里巴巴手机淘宝团队紧密合作将上述算法集成落地到其端云协同智能系统 Walle中。Walle 这个名字来源于同名电影角色希望能够将散布在端上的海量数据利用起来挖掘其中埋藏的瑰宝为用户提供更高质量的服务。 Walle 端云协同智能系统支撑了阿里数十种业务高峰时每天被调用超 2 000 亿次。系统主要包括计算容器、数据管道和部署平台以支持端和云在机器学习算法任务的各个阶段前处理、模型运行、后处理密切协同。其中计算容器为移动设备和云服务器提供跨平台、高性能的任务执行环境并支持机器学习任务在移动 APP 上的快速迭代演进数据管道主要涉及前处理阶段为机器学习任务提供特征或样本输入并支持数据在端云之间无缝流转部署平台主要负责协调任务至端侧和云侧保证任务的及时部署和完成。
2019 年“双十一”期间Walle 端智能系统在手机淘宝大规模落地覆盖主搜、信息流推荐、云主题、会场、智能 Push、红包雨、促升、直播等场景当日共执行了 2 235 亿次调用在大幅提升成交量总额GMV的同时也为用户带来了更好的交互体验。除了手机淘宝外目前Walle端智能系统也已在闲鱼、优酷、猫客、AE、CBU、零售通等 App 有成熟方案落地。
目前我们在已有的 Walle 系统框架中主要增加了三组模块见图 7。即云上用户粒度的样本和任务管理模块个性化样本下发和任务发布通道端侧样本筛选和生命周期管理以及模型训练、模型推断、模型版本控制模块。从而搭建了以数据和模型管理、云上样本下发、端上训练为核心的端云协同链路实现了数据采集、数据增强、个性化训练三个主要功能从根本上支撑了千人千模思想的落地应用。 图 7 端 - 通道 - 云系统模块 进一步我们还把子模型拆分联合学习技术实现到低功耗嵌入式设备上包括树莓派和 Nvidia Jetson Nano、TX2这些设备可以搭载到无人车、无人机、无人艇等设备上实现大规模分布式边缘学习。
结束语
上述是我们在端云协同联合学习方面的初步探索后续还有很多亟待解决的挑战问题。
第一如何设计弹性模型结构动态适应异构终端设备的运行时环境 第二如何设计分布式优化算法更好地消除数据异质性带来的模型聚合偏差 第三如何抵御恶意终端的攻击保障端云协同进化稳定可靠进行 第四期待自主可控且开源的开发环境以促进端云协同智能系统的快速开发和大规模部署。
作者吴帆
上海交通大学计算机科学与工程系主任、特聘教授承担科技创新 2030-“新一代人工智能”重大项目、国家重点研发计划课题、国家自然科学基金、上海市科委项目等 20 余项发表学术论文 200 余篇。曾获教育部自然科学一等奖、中国计算机学会科技进步一等奖、上海市计算机学会自然科学一等奖、ACM 中国新星奖、CCF-IEEE 青年科学家奖以及7次国际学术会议论文奖。
选自《中国人工智能学会通讯》
2024年第14卷第2期
科技前沿专题