标准机器学习方法需要将训练数据集中在一台机器或一个数据中心。为了处理这些数据并改进我们的服务,Google构建了最安全和最大的可用云基础架构。我们现在介绍一种额外的方法来学习通过用户-移动交互训练的模型:联邦学习。通过联合学习,手机可以协作学习共享预测模型,同时将所有训练数据保存在设备上,从而无需将数据存储在云端即可实现机器学习。同时,通过将模型训练带到设备端,超越了以往使用本地模型预测移动设备的模式(如MobileVisionAPI和设备端智能回复)。它是这样工作的:您的设备下载当前模型,通过从手机中的数据中学习来改进它,然后在小更新中汇总更改。只有对该模型的更新才会通过加密通信发送到云端,在那里它们会立即与其他用户更新进行平均以改进共享模型。所有训练数据都保留在您的设备上,没有个人用户更新存储在云端。▲您的手机会根据您的使用情况在本地构建个性化模型(A)。然后聚合来自许多用户的更新(B)以形成对共享模型(C)的一致更新,然后重复该过程。联邦学习构建更智能的模型,减少延迟和功耗,同时保持隐私。这种方法的另一个直接好处是,除了为共享模型提供更新之外,手机中的改进模型可以立即使用,从而根据您使用手机的方式提供个性化体验。我们目前正在Android版Gboard(又名Google键盘)中测试联合学习。当Gboard显示建议的查询时,您的手机会在本地存储有关当前上下文以及您是否点击了建议的信息。联合学习处理设备上的历史记录,为Gboard的查询建议模型的后续迭代提出改进建议。要实现联邦学习,我们必须克服许多算法和技术挑战。在典型的机器学习系统中,对大型数据集执行随机梯度下降(SGD)等优化算法会将数据集均匀分布在云中的不同服务器上。这种高度迭代的算法需要与训练数据的低延迟、高吞吐量连接。然而,在联邦学习环境中,数据在数百万台设备上分布不均。此外,相比之下,与这些设备的连接具有更高的延迟和更低的吞吐量,并且只能间歇性地用于训练。这些带宽和延迟限制导致我们设计了一种联合平均算法,该算法使用不到原始联合版本SGD的1/10-1/100的通信资源来训练深度网络。关键是利用现代移动设备中强大的处理器来计算比简单梯度方法更高质量的更新。由于生成适当模型所需的高质量更新迭代次数较少,因此训练使用的通信资源明显减少。由于上传速度通常远低于下载速度,我们还开发了一种新方法,通过使用随机旋转和量化来压缩更新,将上传通信开销减少多达1/100。这些方法主要用于深度网络训练,我们也针对多维稀疏凸集模型设计了多种算法,擅长解决点击率预测等问题。将这项技术部署到数百万部运行Gboard的手机需要一套复杂的技能。设备端训练使用迷你版的TensorFlow。仔细计划以确保仅在设备空闲、开机并使用免费无线连接时进行培训,以免影响手机的性能。▲只有在不干扰您体验的情况下,才允许您的手机参与联邦学习。然后,系统需要以安全、高效、可扩展和容错的方式传输和聚合模型更新。只有将研究与此基础架构相结合,您才能从联邦学习中受益。联邦学习无需将用户数据存储在云端即可工作,但我们并没有就此止步。我们开发了一种使用密码学的安全聚合协议,以便协调服务器仅在100或1000名用户参与时才解密平均更新,而无需在平均更新之前检查任何手机的更新。它是同类协议中第一个可用于解决深层网络级问题和现实世界连接限制的协议。我们设计联邦平均算法使得协调服务器只需要对更新进行平均,因此可以使用安全聚合协议;然而,这个协议是通用的,也可以用来解决其他问题。我们正在努力将该协议投入生产,并希望在不久的将来将其部署到联邦学习应用程序中。在探索潜在应用领域方面,我们的工作目前处于早期阶段。联邦学习不能解决所有的机器学习问题(例如,通过训练识别仔细标记的图例来学习识别不同的狗品种),而对于许多其他模型,必要的训练数据已经存储在云端(例如Gmail垃圾邮件过滤器训练)。因此,谷歌将继续推进最新的基于云的机器学习技术,同时,我们将继续研究联邦学习技术,以解决更多问题。例如,除了Gboard的查询建议,我们还想改进语言模型,根据您在手机上实际键入的内容改进键盘(具有自定义独特键盘样式的能力),并根据用户查看、分享或删除的照片类型。照片排名。应用联邦学习需要机器学习从业者采用新工具和新思维方式:模型开发、训练和评估无需直接访问或标记原始数据,其中通信开销是一个限制因素。我们相信联邦学习会让用户受益,我们攻克技术难关也是值得的,发这篇博文的目的就是希望联邦学习能够在机器学习社区得到广泛的讨论。【本文为栏目组织《GoogleDevelopers》原创稿件,转载请联系原作者(微信公众号:Google_Developers)】点此查看更多本作者好文
