联邦学习开源框架FATE架构fate资料存在着多处版本功能与发布的文档不匹配的情况,各个模块都有独立的文档,功能又有关联

fate资料存在着多处版本功能与发布的文档不匹配的情况,各个模块都有独立的文档,功能又有关联,坑比较多,首先要理清楚各概念、模块之间的关系。

1.概念解释:

RollSite是一个grpc通信组件,是eggroll引擎中的一个模块,相当于我们的grpc通信网关。

2.对比解读:

l网状架构相当于我们的一体化版本模式,但没有dop平台来维护网关,每方需要在配置文件里维护其他参与方的网关地址。

l星型架构的好处是只在Exchange方维护所有参与方的网关地址,前提是需要信任Exchange,并且流量全部都需要从Exchange方中转,相当于我们的中心化版本。但不支持证书。

3.Exchange配置

在Exchange上配置路由表:

在各party方配置默认路由指向exchange,不需要再配置每个party的地址。

FATE支持eggroll和spark两种计算引擎,搭配不同的通信组件,共五种组合,不同的通信模块不能兼容。

区别:

lRabbitMQ是一个简单易上手的MQ

lPulsar相比RabbitMQ,可以支持更大规模的集群化部署,也支持exchange模式的网络结构。

lSlimFATE相比其他模式,最大化减少集群所需的组件,可以使用在小规模联邦学习计算,IOT设备等情况。

Eggroll是FATE原生支持的计算存储引擎,包括以下三个组件:

lrollsite负责数据传输,以前的版本里叫Proxy+Federation

lnodemanager负责存储和计算

lclustermanager负责管理nodemanager

支持rabbitMQ替换pulsar

关联项目:

KubeFATEdocker和k8s的部署

FATE-Flow联合学习任务流水线管理模块,注册、管理和调度中心。

EggRoll第一代fate的计算引擎

FATE-Board联合学习过程可视化模块,目前只能查看一些记录

FATE-Cloud联邦学习云服务,类似于我们的dop平台,管理功能。

FedVision联邦学习支持的可视化对象检测平台

FATE-Builderfate编译工具

FedLCM新增的项目:创建FATE联邦并部署FATE实例。目前仅支持部署以Spark和Pulsar作为基础引擎,并使用Exchange实现互相连接的

FATEFlow是调度系统,根据用户提交的作业DSL,调度算法组件执行。

服务能力:

·数据接入

·任务组件注册中心

·多方资源协调

·数据流动追踪

·作业实时监测

·联合模型注册中心

·多方合作权限管理

·系统高可用

·CLI、RESTAPI、PythonAPI

旧版,图比较立体

·DSLParser:是调度的核心,通过DSLparser可以拿到上下游关系、依赖等。

·JobScheduler:是DAG层面的调度,把DAG作为一个Job,把DAG里面的节点run起来,就称为一个task。

·FederatedTaskScheduler:最小调度粒度就是task,需要调度多方运行同一个组件但参数算法不同的task,结束后,继续调度下一个组件,这里就会涉及到协同调度的问题。

·JobController:联邦任务控制器

·Executor:联邦任务执行节点,支持不同的Operator容器,现在支持Python和Script的Operator。Executor,在我们目前的应用中拉起FederatedML定义的一些组件,如dataio数据输入输出,特征选择等模块,每次调起一个组件去run,然后,这些组件会调用基础架构的API,如Storage和FederationService(API的抽象),再经过Proxy就可以和对端的FATE-Flow进行协同调度。

·TrackingManager:任务输入输出的实时追踪,包括每个task输出的data和model。

·ModelManager:联邦模型管理器

Job提交(并运行),停止,查询,更新,配置,列表,task查询

Tracking

Pipeline

Model

Table

1.联邦统计:包括隐私交集计算,并集计算,皮尔逊系数,PSI等

2.联邦特征工程:包括联邦采样,联邦特征分箱,联邦特征选择等。

3.联邦机器学习算法:包括横向和纵向的联邦LR,GBDT,DNN,迁移学习等

4.模型评估:提供对二分类,多分类,回归评估,聚类评估,联邦和单边对比评估

5.安全协议:提供了多种安全协议,以进行更安全的多方交互计算。

Figure1:FederatedMachineLearningFramework

Adatptor:默认的情况使用系统自带的MockAdatptor,仅返回固定数据用于简单测试,实际生产环境中需要使用者需要自行开发并对接自己的业务系统。(这部分可以看看能不能对接咱们自己的在线预测系统。)

l支持使用rollsite/nginx/fateflow作为多方任务协调通信代理

lrollsite支持fateoneggroll的场景,仅支持grpc协议,支持P2P组网及星型组网模式

蓝色为guest集群,灰色代表host集群

1.通过fateflow建模2.分别部署guest方Fate-serving与host方Fate-serving

3.分别配置好guest方Fate-flow与guest方Fate-serving、host方Fate-flow与host方Fate-serving。

4.Fate-flow推送模型

5.Fate-flow将模型绑定serviceId

7.可以在serving-admin页面上测试调用(此步操作非必需)。

FATE-Serving之间的交互可以通过nginx反向代理转发grpc请求,以下几种场景配置如下:

·场景一:双方不配置TLS,通过nginx四层代理转发

·场景二:双方配置TLS,通过nginx四层代理转发,双方分别进行证书校验

·场景三:数据使用方配置Client端证书,Nginx配置Server端证书,Host不配置证书,通过nginx七层代理转发,由Client端和nginx进行证书校验

FATECloud由负责联邦站点管理的云管理端CloudManager和站点客户端管理端FATEManager组成,提供了联邦站点的注册与管理、集群自动化部署与升级、集群监控、集群权限控制等核心功能。

联邦云管理端(CloudManager)

联邦云管理端即联邦数据网络的管理中心,负责统一运营和管理FATEManager及各站点,监控站点的服务与联邦合作建模,执行联邦各权限控制,保证联邦数据合作网络的正常运作;

联邦站点管理端(FATEManager)

联邦站点管理端,负责管理和维护各自的联邦站点,为站点提供加入联邦组织、执行站点服务的自动化部署与升级,监控站点的联邦合作与集群服务,并管理站点用户角色与应用权限;

共有4类部署方式,单机的安装模式是只提供了单机的安装文档,也可以研究怎么扩展成集群模式。

||单机(不推荐生产用)|集群(生产推荐)||非容器|AllinOne|ansible||容器|dockercompose|k8s|

部署时会要求配置机器对应的角色,只能选host,guest和Exchange,其中host和guest并没有区别,实际运行联邦时还是在job的配置中去配置哪一方是guest,哪一方是host,任务只能在guest方提交。

手上没有k8s环境,暂未测试。

不同点如下:

下载镜像较慢,如果大批量部署,可以搭建内网镜像服务。

|Role|party-id|OS|IP|||host|20001|Centos7.6|11.50.52.81|8C64G||guest|20002|Centos7.6|11.50.52.62|8C64G||部署机||Centos7.6|11.50.52.40||

一开始我只部署了一台host,本来打算这2台做一个集群,后来发现文档里没提这种方式,只好先按文档实验一次,于是又部署了guest,这样在guest的配置里已经写好了host的地址,于是手动将配置更新到了host的/data/projects/fate/confs-20001/confs/eggroll/conf/route_table.json

发现不需要重启容器后续步骤也没报错,说明可以动态修改路由信息。

进入容器的时候,容器名包含的平台id需要修改成实际的。

fateflow/examples/lr/test_hetero_lr_job_conf.json中不同点,

修改对应的平台id

"initiator":{"role":"guest","party_id":20002},"role":{"guest":[20002],"host":[20001],"arbiter":[20001]},按文档写资源不够运行不了,需要修改如下

"job_parameters":{"common":{"task_parallelism":1,"computing_partitions":1,"task_cores":1}},不要修改fateflow/examples/lr/test_hetero_lr_job_dsl.json文件,文档中的配置是旧版本的,修改了就不能执行了,里面的DataIO组件已废弃。

运行测试后可以通过board查看,成功的id:202211031508511267810

#flowmodeldeploy--model-idarbiter-20001#guest-20002#host-20001#model--model-version202211031508511267810输出了产生的model_version是202211031811059832400

1.修改加载模型的配置

发送以下信息到"GUEST"方的推理服务"{SERVING_SERVICE_IP}:8059/federation/v1/inference"

本文旨在从宏观的角度分析FATE的源码分布、总体架构、主要功能及核心流程,尚有许多细节和功能未深入研究,欢迎大家留言,互相学习。

THE END
1.基于云平台的企业在线学习系统设计与实现本文的研究内容具体可以分为如下几个方面:(1)首先对基于云计算企业在线学习系统的实现背景以及发展状况等进行分析与总结,并介绍了本系统开发的相关技术以及难点问题。(2)其次根据基于云计算企业在线学习系统的相关流程进行了需求分析,明确了系统需要实现的功能;通过时序图的方式对设备的业务流程进行了描述;设计并完成了https://wap.cnki.net/lunwen-1019625279.html
2.商家收款码怎么开通腾讯云开发者社区UML时序图(Sequence Diagram)学习笔记 认识时序图六种元素我们来使用Visio2016来画一个用户打开微信扫描二维码支付流程时序图,通过这个时序图来认识刚刚介绍的6种时序图元素。时序图解释: 1,用户输入手机密码 2,打开手机 3,打开微信扫一扫 4,返回微信扫一扫界面 5.1 扫描商家收款码 5.2 商家生成收款二维码 5.3 https://cloud.tencent.com/developer/information/%E5%95%86%E5%AE%B6%E6%94%B6%E6%AC%BE%E7%A0%81%E6%80%8E%E4%B9%88%E5%BC%80%E9%80%9A
3.[UML]时序图介绍——程序员(灵魂画手)必备画图技能之一动态模型:展现系统的内部行为。包括序列图,活动图,状态图。 ? ? ? ? ——本文将主要针对时序图进行讲解 https://blog.csdn.net/sinat_25207295/article/details/116061033
4.AI苏格拉底课堂数据评估报告简介学术发表图4:科技(信息技术)互动时序图 当需要更精确地研讨课堂中师生互动历程时,可以打开“AI苏格拉底时间轴”视窗,根据时间推移来呈现多种课堂数据,包含专家观课标记、课堂逐字稿、师生互动历程等完整数据。 (二)、P教法应用指数 P教法应用指数有六个分项指数,包括P1小组学习、P2全班互动、P3生本决策、P4全班测验、P5个人https://www.habook.com.cn/academic.php?act=view&id=107
5.系统分析师(高级)学习资料.pdf系统分析师(高级)学习资料.pdf,上学吧 进度控制的概念和一般原则 1.进度控制的概念 项目计划从付诸实施开始,便一直处于动态的变化调整之中,会遇到各种意外情况,使项目 不能按照计划轨道进行而出现偏差。 信息工程监理的进度控制监视和测量项目实际进展,若发现实施过程https://max.book118.com/html/2022/0421/5114012330004214.shtm
6.ICLR2023负责任的人工智能,守护机器学习的进阶思考对于理解预测的基本原理以及模型特性而言,人工智能的可解释性至关重要。当时序图模型应用于高风险场景时,如金融系统中的欺诈检测和医疗健康中的疾病进展预测,解释器都可以增加信任和可靠性。此外,解释器还有助于检查和减轻现实世界应用中的隐私、公平和安全问题。https://www.msra.cn/zh-cn/news/features/iclr-2023-responsible-ai
7.课程设计时序图12.教材:选用权威、实用的教材,为学生提供系统的学习材料。 13.参考书:提供相关学科的参考书籍,丰富学生的知识体系。 14.多媒体资料:制作精美的PPT、教学视频等,增强课堂教学的趣味性,提高学生的学习兴趣。 15.实验设备:准备充足的实验设备,保证学生实验的顺利进行,培养学生的实践能力。 五、教学评估 本课程的评估https://wenku.baidu.com/view/f7dfb7434593daef5ef7ba0d4a7302768f996f74.html
8.2023LinuxC/C++全栈开发知识技术合集(基础入门到高级进阶)本文介绍下Linux C/C++开发(后端/音视频/游戏/嵌入式/高性能网络/存储/基础架构/安全)从入门到高级进阶的学习路线,整个学习路线,直接对标腾讯c++后台开发岗位,知识点包括C/C++,Linux,Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,TCP/IP,协程,DPDK等等 。其次你把整个内容,全部消化https://www.360doc.cn/mip/1098689094.html
9.最新单片机实习报告范文(精选7篇)单片机属于数字电路,其概念、术语、硬件结构和原理都源自数字电路,如果数字电路基础扎实,对复杂的单片机硬件结构和原理就能容易理解,所以在学习单片机的时候我们也同时去重温了数字电路,搞清楚触发器、寄存器、门电路、COMS电路、时序逻辑和时序图、进制转换等理论知识。所以单片机的学习也能使我们对数字电路的学习有了更进https://www.ruiwen.com/word/zuixinchanpianjishixibaogaofanwen.html
10.计算机工作总结(精选11篇)就比如在我们在做一个简单的登录页面,所用到的工具有绘图、eclipse开发工具、wps工具等,其中画时序图时就要先在eclipse建一个过程,之后才在过程中画图,并且一步一步怎么实现的流程都要写清楚,所以所做的工作多的多,而我们所学到的东西就是画个时序图、并且注明内容流程就行,简简单单的几句话,在现实实践中就要https://www.yjbys.com/zongjie/gerenzongjie/765862.html
11.在线课程学习时序图流程图模板在线课程学习时序图展示了学生在使用在线学习平台进行课程学习的过程。首先,学生通过登录账户进入平台,然后选择自己想要学习的课程。接着,学生可以浏览课程目录并选择具体的学习单元或课程章节。一旦选择了学习内容,学生可以开始观看视频讲座、阅读教材或其他学习资源。在学习过程中,学生可以进行笔记记录、提问问题或参与讨论https://www.processon.com/view/5861406ae4b02e6c0aeb265e
12.SuperMapiDesktopX11i(2022)产品介绍SuperMap iDesktopX 是基于 SuperMap iObjects Java,通过 Java 语言开发的插件式、跨平台GIS应用软件,提供了数据管理、数据处理、空间分析、地图制图出图、处理自动化、三维等功能,并且结合Spark、AI等新技术,提供了分布式数据管理与分析、流数据管理、视频地图与分析、地图大屏、机器学习、Python等新功能,以及国产化https://help.supermap.com/iDesktopX/1101/zh/guides/getting-started
13.将R与机器学习Studio配合使用(经典版)本教程介绍如何使用机器学习工作室(经典版)创建、测试和执行 R 代码。 最后,你将获得完整的预测解决方案。创建用于数据清理和转换的代码。 分析数据集中多个变量之间的相关性。 为牛奶生产创建季节性时序预测模型。机器学习 Studio(经典版)包含许多功能强大的机器学习和数据操作模块。 借助 R 编程语言,此组合提供可https://learn.microsoft.com/zh-cn/previous-versions/azure/machine-learning/classic/r-get-started
14.STM32CubeMX学习笔记(39)——FSMC接口使用(TFTLCD屏触摸)观察时序图,我们设置 tdst数据设置时间 为1HCLK(13.8>10)就能满足数据设置最小时间的要求,我们不需要考虑tdht数据保持时间(看上面模式B时序图,NWE变成高电平后,会持续1HCLK=13.8ns,默认满足tdht了)。 故我们只需考虑数据建立周期 DATAST 要大于10ns就行。 https://www.jianshu.com/p/39aad41a3f16
15.AndroidFramework如何学习,如何从应用深入到Framework?几乎所有代码or模块or系统的开发初衷,都是为了解决某一问题。如果你光看源码,哦这个是干嘛的,那里调用https://www.zhihu.com/question/46486807
16.STM32F10x模拟I2C读写EEPROM时序图: 发送一位“高”数据流程: SCL_LOW时钟低-> SDA_HIGH数据-> SCL_HIGH时钟高 3.应答位信息 I2C是以字节(8位)的方式进行传输,总线上每传输完1字节之后会有一个应答信号,主器件(主机)需要产生对应的一个额外时钟。 应答位产生及接收: 1.在(主机)写数据的时候是从机应答(给主机),主机检测; https://www.elecfans.com/d/1153794.html
17.软件测试学习笔记丨业务架构分析工具plantumlUML:统一建模语言 plantuml:第三方插件工具 plantuml 官网:https://plantuml.com/zh/ plantuml 中文文档:https://ceshiren.com/t/topic/4530 plantuml 在线绘图地址:https://plantuml.ceshiren.com/ 时序图@startumlAlice -> Bob: Hi BobBob --> Alice: Hi AliceAlice -> Bob: how are you?Alice <--https://maimai.cn/article/detail?fid=1830519689&efid=L7RiiJCLn_g2foQ5dvMv_w