让数百万台手机训练同一个模型?Google把这套框架开源了
作者 | 琥珀
出品 | AI科技大本营(公众号id:rgznai100)
【导语】据了解,全球有 30 亿台智能手机和 70 亿台边缘设备。每天,这些电话与设备之间的交互不断产生新的数据。传统的数据分析和机器学习模式,都需要在处理数据之前集中收集数据至服务器,然后进行机器学习训练并得到模型参数,最终获得更好的产品。
但如果这些需要聚合的数据敏感且昂贵的话,那么这种中心化的数据收集手段可能就不太适用了。
去掉这一步骤,直接在生成数据的边缘设备上进行数据分析和机器学习训练呢?
近日,Google 开源了一款名为 TensorFlow Federated (TFF)的框架,可用于去中心化(decentralized)数据的机器学习及运算实验。它实现了一种称为联邦学习(Federated Learning,FL)的方法,将为开发者提供分布式机器学习,以便在没有数据离开设备的情况下,便可在多种设备上训练共享的 ML 模型。其中,通过加密方式提供多一层的隐私保护,并且设备上模型训练的权重与用于连续学习的中心模型共享。
传送门:https://www.tensorflow.org/federated/
实际上,早在 2017 年 4 月,Google AI 团队就推出了联邦学习的概念。这种被称为联邦学习的框架目前已应用在 Google 内部用于训练神经网络模型,例如智能手机中虚拟键盘的下一词预测和音乐识别搜索功能。
图注:每台手机都在本地训练模型(A);将用户更新信息聚合(B);然后形成改进的共享模型(C)。
DeepMind 研究员 Andrew Trask 随后发推称赞:“Google 已经开源了 Federated Learning……可在数以百万计的智能手机上共享模型训练!”
让我们一起来看看使用教程:
从一个著名的图像数据集 MNIST 开始。MNIST 的原始数据集为 NIST,其中包含 81 万张手写的数字,由 3600 个志愿者提供,目标是建立一个识别数字的 ML 模型。
传统手段是立即将 ML 算法应用于整个数据集。但实际上,如果数据提供者不愿意将原始数据上传到中央服务器,就无法将所有数据聚合在一起。
TFF 的优势就在于,可以先选择一个 ML 模型架构,然后输入数据进行训练,同时保持每个数据提供者的数据是独立且保存在本地。
下面显示的是通过调用 TFF 的 FL API,使用已由 GitHub 上的“Leaf”项目处理的 NIST 数据集版本来分隔每个数据提供者所写的数字:
GitHub 传送链接:https://github.com/TalwalkarLab/leaf
# Load simulation data.source, _ = tff.simulation.datasets.emnist.load_data()def client_data(n): dataset = source.create_tf_dataset_for_client(source.client_ids[n]) return mnist.keras_dataset_from_emnist(dataset).repeat(10).batch(20)
# Wrap a Keras model for use with TFF.def model_fn(): return tff.learning.from_compiled_keras_model( mnist.create_simple_keras_model(), sample_batch)
# Simulate a few rounds of training with the selected client devices.trainer = tff.learning.build_federated_averaging_process(model_fn)state = trainer.initialize()for _ in range(5): state, metrics = trainer.next(state, train_data) print (metrics.loss)
除了可调用 FL API 外,TFF 还带有一组较低级的原语(primitive),称之为 Federated Core (FC) API。这个 API 支持在去中心化的数据集上表达各种计算。
使用 FL 进行机器学习模型训练仅是第一步;其次,我们还需要对这些数据进行评估,这时就需要 FC API 了。
假设我们有一系列传感器可用于捕获温度读数,并希望无需上传数据便可计算除这些传感器上的平均温度。调用 FC 的 API,就可以表达一种新的数据类型,例如指出 tf.float32,该数据位于分布式的客户端上。
READINGS_TYPE = tff.FederatedType(tf.float32, tff.CLIENTS)
然后在该类型的数据上定义联邦平均数。
@tff.federated_computation(READINGS_TYPE)def get_average_temperature(sensor_readings): return tff.federated_average(sensor_readings)
之后,TFF 就可以在去中心化的数据环境中运行。从开发者的角度来讲,FL 算法可以看做是一个普通的函数,它恰好具有驻留在不同位置(分别在各个客户端和协调服务中的)输入和输出。
例如,使用了 TFF 之后,联邦平均算法的一种变体:
参考链接:https://arxiv.org/abs/1602.05629
@tff.federated_computation( tff.FederatedType(DATASET_TYPE, tff.CLIENTS), tff.FederatedType(MODEL_TYPE, tff.SERVER, all_equal=True), tff.FederatedType(tf.float32, tff.SERVER, all_equal=True))def federated_train(client_data, server_model, learning_rate): return tff.federated_average( tff.federated_map(local_train, [ client_data, tff.federated_broadcast(server_model), tff.federated_broadcast(learning_rate)]))
目前已开放教程,可以先在模型上试验现有的 FL 算法,也可以为 TFF 库提供新的联邦数据集和模型,还可以添加新的 FL 算法实现,或者扩展现有 FL 算法的新功能。
据了解,在 FL 推出之前,Google 还推出了 TensorFlow Privacy,一个机器学习框架库,旨在让开发者更容易训练具有强大隐私保障的 AI 模型。目前二者可以集成,在差异性保护用户隐私的基础上,还能通过联邦学习(FL)技术快速训练模型。
最后附上 TF Dev Summit’19 上,TensorFlow Federated (TFF)的发布会现场视频:
参考链接:https://medium.com/tensorflow/introducing-tensorflow-federated-a4147aa20041
(本文为 AI科技大本营原创文章,转载请微信联系 1092722531)
4 月13日-4 月14日,CSDN 将在北京主办“Python 开发者日( 2019 )”,汇聚十余位来自阿里巴巴、IBM、英伟达等国内外一线科技公司的Python技术专家,还有数百位来自各行业领域的Python开发者。目前购票通道已开启,早鸟票限量发售中,3 月15日之前可享受优惠价 299 元(售完即止)。
推荐阅读:
300道Python面试题,备战春招!
2018中国开发者真实现状:40岁不做开发,算法工程师最稀缺!
人生苦短,Python之父要解开这个困惑
从起源、变体到评价指标,一文解读NLP的注意力机制
女子偷师男子学校,变身区块链开发工程师,却说: “这次女人不会再缺席了!”
云漫圈 | 如何给女朋友解释什么是HTTP
从程序媛到全球研发副总裁,技术女神进击史!
杨超越杯编程大赛上热搜:不懂技术真不敢追星女子偷师男子学校,变身区块链开发工程师,却说: “这次女人不会再缺席了!”
为啥程序员下班后只关显示器从不关电脑?
❤点击“阅读原文”,查看历史精彩文章。
让数百万台手机训练同一个模型?Google把这套框架开源了相关推荐
- 全球数百万台 Mac 疑似因 Big Sur 更新险酿计算灾难,苹果官方回应来了!
整理 | 夕颜 出品 | CSDN(ID:CSDNnews) 近日,苹果在发布会上推出了数款专用芯片M1支持的Mac新品,包括Mac book.MacBook Pro和Mac mini系列.随之一起重 ...
- 这个路由器漏洞已存在12年,可影响全球数百万台设备引发供应链攻击
聚焦源代码安全,网罗国内外最新资讯! 编译:奇安信代码卫士 专栏·供应链安全 数字化时代,软件无处不在.软件如同社会中的"虚拟人",已经成为支撑社会正常运转的最基本元素之一,软件 ...
- 开源的 DNS 转发软件 Dnsmasq 被曝7个漏洞,可劫持数百万台设备
聚焦源代码安全,网罗国内外最新资讯! 编译:奇安信代码卫士团队 以色列安全咨询公司 JSOF 披露了 Dnsmasq 中的被统称为"DNSpooq" 的7个漏洞,可被用于针对数百 ...
- 新的 OpenWrt RCE 漏洞曝光,影响数百万台网络设备
执行摘要 随着物联网的不断发展,物联网安全也越来越受到关注.自 2016 年下半年的 Mirai 僵尸网络攻击 事件之后,物联网相关的威胁层出不穷,多个在野漏洞被攻击者所利用,多个僵尸网络相继被研究人 ...
- 恶意软件“EXPENSIVEWALL”感染数百万台安卓设备
Check Point发现一款Android恶意软件"ExpensiveWall",该名称根据其用来传播的应用程序中的其中一款命名,这款应用为墙纸应用"Lovely Wa ...
- KCdoes NetUSB 严重漏洞影响多家厂商的数百万台路由器
聚焦源代码安全,网罗国内外最新资讯! 编译:代码卫士 SentinelOne 公司的网络安全研究员发现,KCodes NetUSB 组件中存在一个高危漏洞 (CVE-2021-45608),影响网件 ...
- 一窥谷歌神经机器翻译模型真面貌 其底层框架开源
去年,谷歌发布了 Google Neural Machine Translation (GNMT),即谷歌神经机器翻译,一个 sequence-to-sequence ("seq2seq&q ...
- 联想曝新型UEFI漏洞,影响70款数百万台笔记本电脑
7月13日消息,联想公司生产的超70款笔记本电脑正受三个 UEFI 固件缓冲区溢出漏洞的影响,即CVE-2022-1890.CVE-2022-1891 和 CVE-2022-1892,这些漏洞能让攻击 ...
- 单张GPU搞定GPT-3超参数!先训练小模型,再“一键迁移” | 已开源
点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 丰色 发自 凹非寺 量子位 | 公众号 QbitAI "一 ...
最新文章
- Oracle中Hint深入理解(原创)
- 使用SVG中的Symbol元素制作Icon
- dz seo插件_河北seo优化网络推广报价单
- linux inode100%
- 用installshield打包的asp.net程序
- ACM程序设计选修课——1036: Hungar的菜鸟赛季(YY)
- scala-jdbc-scalike操作jdbc数据库
- 使用adb命令启动APK方法
- 阿里巴巴矢量图标引入方法
- IIS:CS0016: 未能写入输出文件
- 按步搭建简单IoT微服务(3)
- @CacheEvict
- linux 拍照软件有哪些,六款基于Linux的开源照片管理软件推荐
- Photoshop从入门到精通所有视频教程(43G)以及素材资料免费拿
- 图像识别技术发展趋势分析
- 中国的南方人和北方人有什么区别?总算说透了!
- 实现QQ音乐项目的一些技术点jQuery,html5
- 新闻稿发布中没题材咋办?
- 抽象代数 04.05 群的直积
- 【Leetcode】487. Max Consecutive Ones II
热门文章
- Exchange Server 2013 安装完成后配置外部URL
- 思科生成树命令之debug spanning-tree(本文转载自:www.91ccie.coml
- 回到未来 – 大胆畅想如何追赶并超越腾讯模式
- ICRA2021 SLAM方向论文汇总
- php定时刷新token,PHP 定时任务获取微信access_token的简单示例
- 论文: Generating Software Test Data by Evolution---自己觉得很好的句子----(1)introduction
- 【转】ubuntu下实用的三款录屏软件
- ActivityRouter 框架简单实用
- ROW_NUMBER() OVER函数的基本用法
- Win10命令行激活 电脑组装