隐私计算FATE-核心概念与单机部署
一、说明
Fate
是一个工业级联邦学习框架,所谓联邦学习指的就是可以联合多方的数据,共同构建一个模型;
与传统数据使用方式相比,它不需要聚合各方数据搭建 数据仓库,联邦学习在联合计算建模的过程中,多方机构之间的数据是不会进行共享的,实现数据的 可用不可见;本文主要分享隐私计算平台 Fate
的相关基本概念,以及基于 Docker 的单机部署。
二、隐私计算
隐私计算
是指在保护数据本身不对外泄露的前提下实现数据分析计算的技术集合,实现数据的 可用不可见 的目的;在充分保护数据和隐私安全的前提下,实现数据价值的转化和释放。
图灵奖得主姚期智院士在1982年提出的 百万富翁
问题:
假设有两个百万富翁,都想比较谁更富有,但是他们都想保护自己的 隐私 不愿意让对方或者任何第三方知道自己真正拥有多少钱。如何在保护双方隐私的情况下,计算出谁更有钱呢?
此问题开创了安全多方计算领域,在如今以区块链为先导的一系列可信架构中,多方计算问题是建立机器信任的关键技术之一。
目前实现隐私计算的主流技术主要分为三大方向:第一类是以 多方安全计算
为代表的基于密码学的隐私计算技术;第二类是以 联邦学习
为代表的人工智能与隐私保护技术融合衍生的技术;第三类是以 可信执行环境
为代表的基于可信硬件的隐私计算技术。
不同技术往往可以 组合 使用,在保证原始数据安全和隐私性的同时,完成对数据的计算和分析任务。
三、联邦学习
在联邦学习当中主要有两种模式:
横向联邦
指的是在联合的多方当中,特征 是相同的,但是 用户 不一样;那么通过联合呢,就可以在训练模型时 扩展样本数量;
例如:有两家不同地区银行(北京与广州)由于银行间的业务相似,所以数据的特征(字段)大概率是相同的;但是它们的用户群体分别来自北京与广州的居住人口,用户的交集相对较小;这种场景就比较适合使用 横向联邦 用于增加模型训练的用户数据 扩展数据量。
纵向联邦
指的是在联合的多方当中,各方的 用户 重叠较多,但是它们的 特征 是不一样的,那么通过联合呢,就可以在训练模型时 扩展特征维度;
例如:同一地区的商场与银行,它们的用户群体很有可能包含该地的大部分居民,用户的交集可能较大;由于银行记录的都是用户的收支行为与信用评级,而商场则保有用户的购买历史,因此它们的用户特征交集较小;这种场景就比较适合使用 纵向联邦 用于增加模型训练的特征数量 扩展模型能力。
四、Fate
FATE
(Federated AI Technology Enabler)是微众银行人工智能团队自研的全球首个联邦学习工业级开源框架,它提供一种基于数据隐私保护的安全计算框架,为机器学习、深度学习、迁移学习算法提供强有力的安全计算支持。并内置保护线性模型,树模型以及神经网络在内的多种机器学习算法。
github地址:https://github.com/FederatedAI/FATE
在 Fate 里面存在以下三种角色:
Guest
为数据的应用方,指的是在实际的建模场景中有业务需求去应用这些数据;并且在纵向算法中,Guest 往往是有标签 y 的一方。
Host
为数据的提供方,通常它只是一个合作的机构负责提供数据来辅助 guest 完成这个建模,只是帮助提升训练效果。
Arbiter
为第三方协作者,用来辅助多方完成联合建模的,不提供数据主要是负责发放公钥,加解密,还有聚合模型等功能。
五、部署
5.1. 安装镜像
首先设置环境变量 version
用于后面指定 Fate
的版本,执行以下命令:
export version=1.8.0
使用的是当前最新版本,可按需修改。
镜像有 两种安装 方式,选其一即可;
方式一 如果服务器能访问公网的话,可直接拉取腾讯云容器镜像:
docker pull federatedai/standalone_fate:${version} docker tag ccr.ccs.tencentyun.com/federatedai/standalone_fate:${version} federatedai/standalone_fate:${version}
方式二 如果服务器没有公网,则可以通过下载镜像然后导入的方式: 在有网络的机器上下载镜像包:
wget https://webank-ai-1251170195.cos.ap-guangzhou.myqcloud.com/fate/${version}/release/standalone_fate_docker_image_${version}_release.tar.gz
在目标机器导入镜像:
docker load -i standalone_fate_docker_image_${version}_release.tar.gz
查看已安装的镜像:
docker images | grep federatedai/standalone_fate
5.2. 启动容器
执行以下命令启动:
docker run -d --name standalone_fate -p 8080:8080 federatedai/standalone_fate:${version};
六、测试
Fate 里面自带了测试任务;
首先执行以下命令,进入 Fate 的容器中:
docker exec -it $(docker ps -aqf "name=standalone_fate") bash
执行以下命令,启动 toy 测试:
flow test toy -gid 10000 -hid 10000
成功后显示以下内容:
success to calculate secure_sum, it is 2000.0
七、图形化界面
FATE Board
是 Fate 里面负责可视化的服务组件,在单机版容器中已经集成了该服务,可以通过 8080
端口访问:
账号和密码都是
admin
通过右上角的 JOBS
按钮可以查看我们 Toy测试
所运行的任务:
因为是联邦学习所以看到 guest 和 host 两方角色的任务。
扫码关注有惊喜!
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
GitHub 官方大动作频频「GitHub 热点速览 v.22.24」
本周 GitHub 官方 Blog 很是热闹,GitHub 官方大动作频频也带来了 GitHub Blog 的频繁更新,除了本周 News 快读收录的 GitHub 新徽章和 Atom 被“停用”新闻之外,GitHub Action 的工作流也有新的 Changelog 以及 GitHub 安全策略也有所更新。GitHub Skills 这个新项目则带 GitHub 新人们快速入门 GitHub,项目提供了 GitHub 相关教程。 相较于 GitHub 官方的大动作,本周的开源项目就比较 Tiny,比如用在命令行等小地方的 Go 编译器 TinyGo、dalle-playground 则是知名项目 DALL-E 的在线试玩版,nginxconfig.io 也只是“小小”地帮你配制下 Nginx,MarkovJunior 也就小小地开发了一门概率编程语言。 以下内容摘录自微博@HelloGitHub 的 GitHub Trending 及 Hacker News 热帖(简称 HN 热帖),选项标准:新发布 | 实用 | 有趣,根据项目 release 时间分类,发布时间不超过 14 d...
- 下一篇
消息中间件应用的常见问题与方案|得物技术
原创 李苏醒 得物技术 1. 引言 消息队列(MQ)中间件已经普及很多年了,在互联网应用中,通常稍大一些的应用,我们都可以见到MQ的身影。当前市面上有很多中消息中间件,包括但不限于RabbitMQ、RocketMQ、ActiveMQ、Kafka(流处理中间件) 等。很多开发人员已经熟练地掌握了一个或者多个消息中间件的使用。但是仍然有一些小伙伴们对消息中间件不是特别熟悉,因为各种原因不能深入地去学习了解个中原理和细节,导致使用的时候可能出现这样那样的问题。在这里,我们就针对消息队列中间件使用中的典型问题作一番分析(包括顺序消息、可靠性保证、消息幂等、延时消息等),并提供一些解决方案。 2. 消息中间件应用背景 2.1 消息中间件基本思想 我们在单个系统中,一些业务处理可以顺序依次进行。而涉及到跨系统(有时候系统内部亦然)的时候,会产生比较复杂数据交互(也可以理解为消息传递)的需求,这些数据的交互传递方式,可以是同步也可以是异步的。在异步传递数据的情况下,往往需要一个载体,来临时存储与分发消息。在此基础上,专门针对消息接收、存储、转发而设计与开发出来的专业应用程序,都可以理解为消息队列中间...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- 设置Eclipse缩进为4个空格,增强代码规范
- CentOS8安装Docker,最新的服务器搭配容器使用
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS8编译安装MySQL8.0.19
- SpringBoot2整合Redis,开启缓存,提高访问速度
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Hadoop3单机部署,实现最简伪集群
- CentOS7,CentOS8安装Elasticsearch6.8.6