联邦学习开源框架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.《机器学习实战指南:CSDN经验集成》腾讯云开发者社区数据收集:在机器学习实战中,数据收集是至关重要的第一步。可以通过多种方式获取数据,例如从数据库中提取已有的结构化数据,利用API从外部数据源获取特定格式的数据,或者使用爬虫技术从网页上抓取所需的数据。数据库提供了稳定且结构化的数据来源,适合大规模数据的存储和检索。API 则允许我们与各种在线服务进行交互,获取https://cloud.tencent.com/developer/article/2478542
2.人工智能机器学习讲义经管文库(原现金交易版人工智能机器学习讲义 https://bbs.pinggu.org/thread-13322427-1-1.html
3.西安工业大学《机器学习》2022那么,下列关于机器学习在自然语言处理中的说法错误的是()A.词袋模型将文本表示为词的集合,忽略了词的顺序和语法结构B.TF-IDF可以衡量一个词在文档中的重要性C.深度学习模型在自然语言处理中表现出色,但需要大量的训练数据和计算资源D.机器学习在自然语言处理中的应用已经非常成熟,不需要进一步的研究和发展4、在一https://www.renrendoc.com/paper/369858944.html
4.机器学习特征工程,全面指南!51CTO博客特征机器学习特征工程和选择是将数据转化为最佳表示的艺术,以大大提升机器学习的效果。本指南是初学者的简明参考,提供了最简单但广泛使用的特征工程和选择技术。 1 基本概念 1.1 什么是机器学习 机器学习是让计算机在没有明确编程的情况下进行操作的学科——阿瑟·塞缪尔 机器学习是一种数据科学技术,它帮助计算机从https://blog.51cto.com/u_15671528/12853750
5.[笔记]人工智能系统——第9章易用性不仅是文档的问题,更多的是工具中各级用户接口的设计 在自动机器学习中,易用性主要关注两类使用场景 一是用户已经有了初步的模型,如何利用工具快速调优模型至满足应用需求 二是用户没有模型,仅有应用需求和数据,工具如何协助用户获得满足需求的模型 灵活性是指用户不仅可以利用工具提供的算法快速得到效果不错的https://zhuanlan.zhihu.com/p/12741560089
6.练习:训练机器学习模型使用Model Builder 选择场景、加载数据、训练机器学习模型进行预测性维护并评估模型的性能。https://learn.microsoft.com/zh-cn/training/modules/predictive-maintenance-model-builder/5-exercise-train-model-builder/
7.机器学习中文版.pdf文档全文免费预览想预览更多内容,点击免费在线预览全文 免费在线预览全文 第一章让计算机从数据中学习将数据转化为知识三类机器学习算法第二章训练机器学习分类算法透过人 VIP免费下载 下载文档 收藏 分享赏 0 下载提示 1、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。 https://max.book118.com/html/2019/1026/6052110033002120.shtm
8.机器学习服务在线文本翻译 在线语种检测 文本类 语音语言类 文本识别 文档识别 优势 覆盖机型广 支持90%以上的ARM架构机型。 快速接入 通过ML Kit的SDK快速使用AI能力。 全球覆盖 服务可在全球范围内使用。 资源中心 开发指南 浏览最新开发指南,快速接入机器学习服务。 https://developer.huawei.com/consumer/cn/hms/huawei-mlkit
9.机器学习中文参考手册机器学习中文文档机器学习库(MLL)是一些用于分类、回归和数据聚类的类和函数。 大部分分类和回归算法是用C++类来实现。尽管这些算法有一些不同的特性(像处理missing measurements的能力,或者categorical input variables等),这些类之间有一些相同之处。这些相同之处在类 CvStatModel 中被定义,其他 ML 类都是从这个类中继承。 [ 编辑https://blog.csdn.net/Liuqz2009/article/details/47625143
10.《动手学深度学习》在线文档morein2008《动手学深度学习》在线文档 《动手学深度学习》在线文档,numpy版本:https://zh.d2l.ai/chapter_preface/preface.htmlhttps://www.cnblogs.com/aaronhoo/p/12165262.html
11.使用文档机器学习平台火山引擎官方文档中心,产品文档、快速入门、用户指南等内容,你关心的都在这里,包含火山引擎主要产品的使用手册、API或SDK手册、常见问题等必备资料,我们会不断优化,为用户带来更好的使用体验https://www.volcengine.com/docs/6459/72394
12.基于机器学习的恶意文档识别工具设计与实现恶意文档 机器学习 特征向量 虚拟沙箱https://www.cnki.com.cn/Article/CJFDTotal-XXAQ201808003.htm
13.近200篇机器学习&深度学习资料分享(含各种文档,视频,源码等)编者按:本文收集了百来篇关于机器学习和深度学习的资料,含各种文档,视频,源码等。而且原文也会不定期的更新,望看到文章的朋友能够学到更多。 《Brief History of Machine Learning》 介绍:这是一篇介绍机器学习历史的文章,介绍很全面,从感知机、神经网络、决策树、SVM、Adaboost 到随机森林、Deep Learning. https://www.open-open.com/news/view/1621439
14.机器学习找不到创新点?三种特征选择的方法包你拿下顶会!最近特征选择特别火!多次荣登各大期刊会议,例如登上Nature子刊bGGO、计算效率狂提98%的FSFS……妥妥的机器学习领域热门创新点! 通过从原始特征集中精心挑选出最相关、最有用的特征,能够显著提高模型的准确性,大大减少了过拟合的风险,降低了计算成本。 特征选择的主流策略涵盖了过滤法、包裹法、嵌入法等多种方法。为https://www.bilibili.com/read/cv40067807
15.科学计算库)第2篇:机器学习概述,学习目标附代码文档了解机器学习中模型评估的方法 知道过拟合、欠拟合发生情况 模型评估是模型开发过程不可或缺的一部分。它有助于发现表达数据的最佳模型和所选模型将来工作的性能如何。 按照数据集的目标值不同,可以把模型评估分为分类模型评估和回归模型评估。 1 分类模型评估 https://www.jianshu.com/p/f82881b822e6
16.在线word文档–简便高效的在线文档编辑工具随着技术的不断进步,在线word文档将更加智能、便捷和高效。未来,它可能会加入更多的机器学习和自然语言处理功能,提供更智能的文档编辑和管理体验。 结论 在线word文档是一款强大且易用的在线文档编辑工具。它提供了丰富的编辑功能、便捷的访问和共享、自动保存和版本控制等特点。使用在线word文档,您可以更高效地创建、编https://www.huoban.com/news/post/145103.html
17.在线文档盘:在线办公文档管理的便捷之道四、在线文档盘的未来发展趋势 智能化与自动化 随着人工智能和机器学习技术的不断发展,在线文档盘将逐渐实现智能化和自动化。例如,通过智能算法实现文档的自动分类、标签推荐和智能搜索,用户可以更快速地找到所需的文档。同时,自动生成文档摘要、智能提醒和任务分配等功能也将逐渐应用到在线文档盘中,提高工作效率和协同https://box.lenovo.com/news/detail/b464a132f41e67accb5ea3c0e984ccc0.html
18.你需要的ScikitScikit-learn 中文文档已经由 ApacheCN 完成校对,这对于国内机器学习用户有非常大的帮助。该文档自 2017 年 11 月初步完成校对,目前很多细节都已经得到完善。该中文文档包含了分类、回归、聚类和降维等经典机器学习任务,并提供了完整的使用教程与 API 注释。入门读者也可以借此文档与教程从实践出发进入数据科学与机器学https://www.jiqizhixin.com/articles/2018-04-06-3
19.第二十五课:深度学习机器学习原理开发文档能用机器学习解决的task有: Classi?cation, Classi?cation with missing inputs, Regression,Transcription(例如光学字符识别),Machine translation,Structured output(例如语法分析,Anomaly detection,Synthesis and sampling,Imputation of missing values,Denoising(去噪声),Density estimation or probability mass functionhttps://www.wenjiangs.com/?p=99642
20.在线文档翻译Ai工具箱吱意是一款可以适用于图片翻译、文档翻译,视频翻译等场景的在线工具。同时,吱意还提供多模态翻译和智能配音,AI写作,AI成画等AIGC人工智能创作等服务。 百度翻译·AI同传 网课/在线会议实时翻译工具 火山翻译 字节跳动旗下机器翻译品牌 Sonix 一个自动转录、翻译和字幕平台,快速、准确、实惠。它可以将音频和视频转换为https://tools.aiydn.com/aitag/%E5%9C%A8%E7%BA%BF%E6%96%87%E6%A1%A3%E7%BF%BB%E8%AF%91.html
21.资源帖丨字节跳动技术Leader们推荐的学习资源英文原版:http://incompleteideas.net/book/the-book.html相关课程:http://www.davidsilver.uk/teaching/UC伯克利CS285:Deep Reinforcement Learning主讲:Sergey Levine这套课程包含23节课程和5个课后作业,适合对强化学习、机器学习有一定了解的人。链接:http://rail.eecs.berkeley.edu/deeprlcourse/斯坦福CS 330:https://maimai.cn/article/detail?fid=1589935106&efid=ROE93ZNmM8sYE6S4rjpy5w
22.pytorch开源机器学习框架中文文档 Docs and tutorials in Chinese, translated by the community. (PyTorch) Tutorials in Korean, translated by the community. 日本語(PyTorch) Tutorials in Japanese, translated by the community. Maintainers Learn about the PyTorch core and module maintainers. https://pytorch.org/
23.易转换在机器学习中,您可以使用易转换来处理不同数据集的特征,并尝试找到最佳的特征组合以提高模型的准确率和泛化能力。 在数据挖掘中,您可以使用易转换来改善数据分布、缩减特征空间、增加特征的可解释性等。 在工业、通信系统、医疗电子、航空航天等领域,您可以使用易转换来实现高精度、高速的模拟信号转换,例如使用pipelinehttps://pidoutv.com/sites/11612.html
24.deeply翻译器官网,在线网页版,电脑版app下载,文档翻译神器deeply翻译器官网,在线网页版,电脑版app下载,文档翻译神器 什么是deeply? DeepL(deeply是错误的写法哈)是一家德国公司开发的机器翻译工具,被认为是全球最准确的翻译软件之一。它利用深度学习和人工智能技术来提供高质量、准确性极高的翻译服务。DeepL能够处理多种语言之间的翻译,包括但不限于英语、法语、德语、西班牙语https://feizhuke.com/sites/deeply-fanyi.html
25.OpenMLDB:OpenMLDB是一个开源机器学习数据库,面向机器学习应用OpenMLDB 文档 Roadmap 社区贡献 加入社区 学术论文 用户列表 OpenMLDB 是一个开源机器学习数据库,提供线上线下一致的生产级特征平台。 1. 设计理念 在人工智能工程化落地过程中,企业的数据和工程化团队 95% 的时间精力会被数据处理、数据校验等相关工作所消耗。为了解决该痛点,头部企业会花费上千小时自研构建数据与https://gitee.com/paradigm4/OpenMLDB
26.免费在线OCR免费在线OCR服务允许您将PDF文档转换为MS Word文件,扫描图像为可编辑的文本格式,并从JPEG / TIFF / BMP文件中提取文本https://www.onlineocr.net/zh_hans/
27.最大的在线天然产物数据库:Coconut数据库尽管付出很多努力,但NP结构说明的原始出版物与其参考文献,来源生物及其地理位置之间的大多数联系仍然缺失。解决这些空白的方法是手动管理,但即使使用了此方法,COCONUT中的数据量也很少。另一个解决方案是无监督机器学习,解析现代同行评审的文献和书籍,以重新建立NP结构与其出处之间的联系。https://www.douban.com/note/785568836/
28.文字识别的机器学习模型研究与应用该技术可以应用于在线文档的生成和在线文档的检索。 (三)语音转文字 语音转文字技术是指将语音内容转化为文字内容以便于电子文本的存储和处理。这一技术适用于录音的文档转录和对话的文字转换。 四、结论 本文介绍了机器学习在文字识别技术中的重要性、神经网络算法的应用和调优策略,以及文字识别技术在智能搜索、数字化https://wenku.baidu.com/view/904bf6580366f5335a8102d276a20029bc64635b.html
29.scikitScikit-learn(以前称为scikits.learn,也称为sklearn)是针对Python 编程语言的免费软件机器学习库。它具有各种分类,回归和聚类算法,包括支持向量机,随机森林,梯度提升,k均值和DBSCAN。Scikit-learn 中文文档由CDA数据科学研究院翻译,扫码关注获取更多信息。http://www.scikit-learn.org.cn/