注2: 联邦学习服务提供者主要负责管理本方提供的能力,如服务管理、数据管理等。
5.3.3 活动
联邦学习参与方的主要活动包括:
a) 计算活动, 如发起建模、参与建模、发起预测、参与预测、接收安全加密计算协议、数据加密;
b) 模型管理, 如模型数据管理、模型元信息管理(版本、参与方、建模时间、有效时间等)、模
型发布、模型使用;
c) 服务管理, 如建模及预测能力、对用户提供的服务清单、服务接入、服务规划;
d) 数据服务, 包括发布数据元信息、发现网络中的数据、本方原始数据管理(包括但不限于存储
方式、使用方式、加密方式)、数据使用。
5.3.2 子角色
联邦学习参与方子角色包括:
a) 联邦学习计算参与者;
b) 联邦学习服务提供者。
注1:联邦学习计算参与者主要参与算法活动,如计算活动(建模、预测等)、模型管理;
注2: 联邦学习服务提供者主要负责管理本方提供的能力,如服务管理、数据管理等。
5.3.3 活动
联邦学习参与方的主要活动包括:
a) 计算活动, 如发起建模、参与建模、发起预测、参与预测、接收安全加密计算协议、数据加密;
b) 模型管理, 如模型数据管理、模型元信息管理(版本、参与方、建模时间、有效时间等)、模
型发布、模型使用;
c) 服务管理, 如建模及预测能力、对用户提供的服务清单、服务接入、服务规划;
d) 数据服务, 包括发布数据元信息、发现网络中的数据、本方原始数据管理(包括但不限于存储
方式、使用方式、加密方式)、数据使用。
5.4.1 概述
联邦学习协调方是为联邦学习参与方的活动提供支撑或辅助功能的参与方, 具备联邦学习参与方的职能, 承担部分联邦学习网络管理与仲裁之职责。
注1: 联邦学习协调方的联邦学习活动随着合作者的类型及其与联邦学习服务提供者和联邦学习服务客户之间关系的不同而变化;
注2: 联邦学习协调方宜为机构或组织。
与联邦学习协调方相关的联邦学习活动如图9所示:
5.4.2 子角色
联邦学习协调方子角色包括:
a) 联邦学习开发者,主要负责联邦学习的功能开发;
b) 联邦学习算法协调者,主要负责协调联邦学习算法运行过程中各参与方的计算行为;
c) 联邦学习参与方协调者,主要负责协调联邦学习参与方活动中的行为,同时也是联邦学习的元
数据提供方。
注: 典型场景如联邦学习参与方能力协调与数据管理。
5.4.3 活动
联邦学习协调方活动包括:
a) 联邦学习功能开发, 如算法开发、基础架构开发、服务开发;
b) 计算活动, 如发起建模、多方安全计算管理(约定安全协议、密钥生成、数据解密);
c) 模型管理, 如模型发现、模型元信息管理、模型密钥管理;
d) 服务能力协调, 如服务接入、服务能力发布、联邦学习网络中服务元信息管理、参与方元信息
管理;
e) 数据管理, 如数据元信息管理、数据元信息发布、数据元信息发现。
5.5.1 概述
共同关注点适用于 FLRA 描述范围内或与 FLRA 实例系统运营相关的多个元素。这些共同关注点在多个角色、活动和组件中共享。
联邦学习的共同关注点如图 10 所示。
针对共同关注点, 应定义一组联邦学习活动和组件。不同的角色和解决方案可能使用这些共同关注点的不同子集。
共同关注点包括:
a) 安全(见5.5.2);
b) 模块化(见5.5.3);
c) 互操作性(见5.5.4)。
5.5.2 安全
安全性是联邦学习的重要共同关注点,包括:
a) 数据安全。原始数据或能够推测出原始数据的数据,不应泄漏给其他参与方、协调方或用户;
b) 隐私保护。交互的数据不应包含以任何形式被够定位或被大致定位到个体的数据;
c) 传输安全。数据传输的协议及软硬件应安全可靠,能够防止被攻击。
5.5.3 模块化
为提高联邦学习功能的研发效率、可维护性和可移植性,联邦学习系统的构建应实现模块化、可配置和可扩展,以便快捷地复用,以构建上层应用。
5.5.4 互操作性
联邦学习语境下的互操作性包括联邦学习服务客户与联邦学习服务之间按照规定的方法交互和交换信息并获得可预测结果的能力。
实现联邦学习不同服务或组件间的互操作,各方应采用有效的通信协议、统一的API和数据格式。
=================================================================
6.1.1 分层框架
联邦学习功能架构用一组高层的功能组件来描述联邦学习。功能组件代表了为执行第5章描述的与联邦学习相关的各种角和子角色的联邦学习活动的功能集合。
功能架构通过分层框架来描述组件。在分层框架中,特定类型的功能被分组到各层中,相邻层次的组件之间通过接口交互。
FLRA的分层框架包括4层,以及一个跨越各层的跨层功能集合,如图11所示:
6.1.2 服务层
服务层实现联邦学习服务提供者提供的服务, 包含和控制实现服务所需的软件组件。
服务层使用算法层的组件,根据业务需求实现具体逻辑,为联邦学习用户提供服务。 服务层包括但不限于:
a) 将联邦学习服务能力通过一种或多种访问机制展现出来。在联邦学习上下文中,典型的服务能力例子包括进行分类、聚类、回归等基本服务,以及语音识别、生物特征识别、计算机视觉、NLP等各类具体应用服务;
b) 为联邦学习服务能力的访问提供合适的安全功能。服务层负责通过用户证书、用户的身份信息来验证用户请求,验证用户是否被授权使用特定的能力。服务层还负责在需要时进行加密处理,检查请求的完整性;
c) 对来自用户( 如服务请求)和流向用户层的( 如服务的输出)流量采取各种可行策略,以保障服务的高效与可用;
d) 基于核心层提供的各类算法进行各类任务的训练,最终形成上层服务层所需的联合模型;
e) 提供数据发布与发现服务,能够将本地数据发布到联邦学习网络,或从联邦学习网络中发现数据,供本地建模/预测使用。
6.1.3 算法层
算法层实现联邦学习的基本算法。算法层的实现应是通用的,不与具体业务耦合。
算法层使用算子层的组件,实现联邦学习算法的逻辑,为服务层提供支持。
算法层的功能包括但不限于:
a) 样本对齐;
b) 特征对齐;
c) 联合特征工程;
d) 领域自适应;
e) 通用联邦学习算法的实现;
f) 算法评估;
g) 加密建模与预测。
6.1.4 算子层
算子层包含实现联邦学习算法逻辑所需的高抽象通用组件。算子层提供的组件应是通用的,可被不同的联邦学习算法复用,不与具体联邦学习算法耦合。
算子层使用基础架构层提供的功能,向算法层提供高抽象的组件,使算法开发者可以基于这些算子,快速实现联邦学习算法。
算子层至少包含以下组件:
a) 多方安全计算算子;
b) 聚合算子;
c) 激活函数;
d) 正则化处理器;
e) 代价函数;
f) 优化方法;
g) 梯度处理器。
6.1.5 基础架构层
基础架构层为联邦学习服务提供运行时的基础架构。
基础架构层可视作联邦学习服务的基础支撑,向上提供通用的计算、存储、通信的能力。
基础架构层职责包括:
a) 提供编程接口,使得上层服务可以使用基础架构;
b) 提供计算力,运行建模或预测任务;
c) 提供存储机制,对产出模型与必要的数据进行存储,以及提供数据导入/导出的实用工具;
d) 提供资源调度与管理机制,跟踪与记录资源的状态;
e) 提供通信基础设施,在各参与方之间安全地传递信息。
6.1.6 跨层功能
跨层功能包括一系列功能组件。这些功能组件与上述四层的组件进行交互以提供支撑能力。
跨层能力包括但不限于:
a) 训练能力;
b) 运营能力;
c) 数据安全能力;
d) 监督和评估能力。
6.2.1 概述
本节从联邦学习服务功能组件通用集的角度描述了联邦学习参考架构。 功能组件是 FLRA 的功能元素,用来执行活动或活动的一部分。该功能组件在具体的参考架构实现中有相应的实现构件, 如软件组件、子系统或应用等。
6.2.2 服务层组件
常见的服务层功能组件应包括:
a) 用户服务组件;
b) 参与方协调服务组件;
c) 通用算法服务组件;
d) 场景服务组件;
e) 数据服务组件;
f) 任务管理组件。
6.2.2.1 用户服务组件
用户服务组件支持联邦学习服务用户访问和使用联邦学习服务(使用联邦学习服务活动)。 联邦学
习服务提供方可根据情况,提供合适的用户功能组件给客户使用。
典型用户服务组件的功能应包括:
a) 用户界面:联邦学习服务客户与联邦学习服务进行交互的功能,可以是命令行界面或图形用户接口以及 API 等形式;
b) 任务提交:将联邦学习服务客户的特定任务需求(建模、在线预测、离线预测等)提交到联邦学习网络;
c) 数据与模型的导入与导出工具:将数据、模型等导入到联邦学习服务,或从联邦学习服务中导出数据与模型;
d) 数据发布与发现:联邦学习的参与方可以将本方的数据发布,供其他参与方使用;联邦学习参与方也可以在网络中发现其他参与方已发布的数据,供本方使用。
6.2.2.2 参与方协调服务组件
参与方协调服务组件支持:联邦学习服务管理者的联邦学习活动,包括参与方身份和配置文件管理、对服务活动和服务使用的监控、事件处理和问题报告、安全管理服务。联邦学习协调能力只供联邦学习网络协调者使用,只能通过使用联邦学习服务来获取。
典型的参与方协调服务组件功能应包括:
a) 成员管理服务:为联邦学习服务客户提供身份管理、权限管理、数据保密以及可审计的服务;
b) 监控管理:为联邦学习服务客户提供故障监测和联邦学习网络运行状态的监控服务;
c) 事件管理:为联邦学习服务客户提供预定义或自定义事件的服务;
d) 问题管理:为联邦学习服务客户提供联邦学习网络问题跟踪、报告的服务;
e) 安全管理:确保联邦学习服务客户账号安全性的服务。
6.2.2.3 通用算法服务组件
通用算法服务组件提供通用的算法功能,使得算法可以应用到数据中。通用算法组件提供的能力与具体场景与业务耦合性不强。
常见的通用服务组件包括:
a) 分类:分类是一种监督式学习,即每个训练样本的数据对象已经有类标识,通过学习可以形成表达数据对象与类标识间对应的知识,目标就是根据样本数据形成的类知识并对源数据进行分类,进而也可以预测未来数据的归类;
b) 聚类:聚类是一种无监督学习任务,该算法基于数据的内部结构寻找观察样本的自然族群(即集群),聚类的结果将产生一组集合,集合中的对象与同集合中的对象彼此相似,与其他集合中的对象相异;
c) 回归:回归是一种对数值型连续随机变量进行预测和建模的监督学习算法。回归任务的特点是标注的数据集具有数值型的目标变量。也就是说,每一个观察样本都有一个数值型的标注真值以监督算法,预测产生的结果也一般是数值型的。
6.2.2.4 场景服务组件
场景服务组件提供与业务耦合性较强的功能组件。这层组件随着业务或联邦学习用户的需要而变更。
典型的应用场景包括:
a) 语音识别:机器通过识别和理解过程把语音信号转变为相应的文本或命令。语音识别涉及的技术主要包括语音特征提取技术、模式匹配准则及模型训练技术三个方面;
b) 生物特征识别:机器利用人体所固有的生理特征(指纹、虹膜、面相、 DNA等)或行为特征(步态、击键习惯等)来进行个人身份鉴定;
c) 计算机视觉:使用机器代替人眼对目标进行识别、跟踪和测量等,并进一步做图形处理,使目标成为更适合人眼观察或传送给仪器检测的图像;
d) 自然语言处理NLP:机器通能理解自然语言文本的含义、意图,也能以自然语言文本来表达给定的意图、思想等。
6.2.2.5 数据服务组件
数据服务组件包括:
a) 数据发布, 指参与方将本方拥有数据的元信息,通过安全方式告知协调方,以供其他联邦学习参与方进行联邦学习活动;
b) 数据发现,指参与方在协调方中寻找与发现其他联邦学习参与方已发布的数据元信息,供本方进行联邦学习活动。
数据发布与发现服务的功能包括:
a) 所有联邦学习参与方都应支持数据发布功能;
b) 需要建模/预测活动的参与方应支持数据发现功能;
c) 应具备明确的数据元信息管理方案,确保联邦学习活动正常进行。
6.2.2.6 任务管理组件
任务管理组件用于管理联邦学习活动中的建模与预测活动。
任务管理组件的功能包括但不限于:
a) 支持新建(即提交)联邦学习任务;
b) 支持查询联邦学习任务的状态与日志,包括正在运行的任务,以及已完成的任务;
c) 支持结束正在运行的联邦学习任务;
d) 宜提供机制,在可能的情况下让用户恢复部分失败的任务;
e) 宜提供API,提供联邦学习任务管理能力。
6.2.3 算法层组件
常见的算法层组件应包括:
a) 样本对齐组件;
b) 特征对齐组件;
c) 联合特征工程组件;
d) 领域自适应组件;
e) 通用联邦学习算法组件;
f) 算法评估组件。
6.2.3.1 样本对齐组件
样本对齐组件通常用于纵向联邦学习。样本对齐组件应保证以下两点:
a) 各方在不公开各自数据的前提下确认数据源的重叠样本;
b) 不暴露非重叠样本。
6.2.3.2 特征对齐组件
特征对齐组件通常用于恒向联邦学习, 应包括:
a) 各方在不公开各自数据的前提下确认数据源的重叠特征属性;
b) 不暴露非重叠特征属性。
6.2.3.3 联合特征工程组件
联合特征工程的功能应包括:
a) 联合特征使用方案;
b) 联合特征获取方案;
c) 联合特征处理;
d) 联合特征监控。
6.2.3.4 领域自适应组件
领域自适应组件的目标是把分布不同的源域和目标域的数据,映射到一个特征空间中,使其在该空间中的距离尽可能近。
注: 由于联邦迁移学习的核心是找到源领域与目标领域间的相似性,故此组件功能应围绕具体的需求定制。
6.2.3.5 通用联邦学习算法组件
通用联邦学习算法组件包含联邦学习针对不同的应用场景,不同的训练任务所需的各大类基础算法。常见算法包括:
a) 联邦学习的逻辑回归。典型算法包括纵向逻辑回归与横向逻辑回归;
b) 联邦学习的决策树。典型算法包括GBDT;
c) 联邦迁移学习;
d) 联邦深度学习。
6.2.3.6 算法评估组件
算法评估组件包含对联邦学习算法效果的评估, 包括:
a) 正确性评估;
b) 无损性评估;
c) 有效性评估;
d) 性能评估;
e) 安全性评估;
f) 参与方贡献评估。
6.2.4 算子层组件
常见的算子层组件包括:
a) 多方安全计算算子;
b) 联邦学习聚合算子;
c) 联邦学习激活函数;
d) 联邦学习正则化处理器;
e) 联邦学习代价函数;
f) 联邦学习优化方法;
g) 联邦学习梯度处理器。
6.2.4.1 多方安全计算算子
多方安全计算是联邦学习底层安全机制的核心。在联邦学习参与方在进行活动时,此组件对数据进行加密或脱敏,使得原数据不被泄漏。在典型场景中,联邦学习参与方在发送数据到另一参与方前,加密/脱敏组件即对本方数据进行处理。 包括:
a) 基本原则包括:
- 参与方的加密/脱敏组件使用其他参与方、协调方知道且支持的加密/脱敏算法,对数据进
行处理,移除与原数据直接有关的信息;
- 对数据的加密, 协调方中的加密组件使用密钥,对密文进行加密。
b) 实现方式包括:
-
同态加密( Homomorphic Encryption);
-
秘密共享( Secret Sharing);
-
遗忘传输( Oblivious Transfer);
-
混淆电路( Garbled Circuit);
-
RSA 加密算法,且密钥为 1024bit 或以上;
-
可信执行环境( Trusted Execution Environment, TEE)。
c) 常见算子包括:
-
四则运算算子;
-
大小比较算子;
-
逻辑与/或/非算子;
-
向量计算算子。
6.2.4.2 联邦学习聚合算子
联邦学习聚合算子是联邦学习特有的算子, 应根据聚合的策略、加密方式进行定制。常见的联邦学习聚合算子是基于随机数与多方安全协议进行变化。
6.2.4.3 联邦学习激活函数
联邦学习激活函数应包括但不限于:
a) 传统机器学习的激活函数,如sigmoid、 softmax、 tanh、 softsign;
b) 联邦学习的联合激活函数,如基于半同态加密的泰勒展开sigmoid、基于秘密共享的ReLU。
6.2.4.4 联邦学习正则化处理器
联邦学习正则化处理器应包括但不限于:
a) 传统机器学习的正则化处理器,如L1、 L2;
b) 联邦学习的联合正则化处理器,如基于半同态加密的泰勒展开L1、基于半同态加密的泰勒展开L2。
6.2.4.5 联邦学习代价函数
联邦学习代价函数应包括但不限于:
a) 传统机器学习的代价函数,如交叉熵( Cross Entropy)、均方误差( Mean Squared Error)、平均绝对误差( Mean Absolute Error);
b) 联邦学习的联合代价函数,如基于半同态加密的二分类交叉熵。
6.2.4.6 联邦学习优化方法
联邦学习优化方法应包括但不限于:
a) 传统机器学习的优化方法,如随机梯度下降( SGD)、 RMSProp、 AdaGrad、 Adam;
b) 联邦学习的联合优化方法。
6.2.4.7 联邦学习梯度处理器
联邦学习梯度处理器应包括但不限于:
a) 传统机器学习的梯度处理器;
b) 联邦学习的联合梯度处理器。
6.2.5 基础架构层组件
常见的基础架构层组件应包括:
a) 计算组件;
b) 存储组件;
c) 通信组件;
d) 资源调度与管理组件。
6.2.5.1 计算组件
计算框架包括但不限于:
a) 支持任务在单机上执行,宜支持分布式任务执行;
b) 应具备明确的任务元信息管理方案,确保联邦学习活动正常运行,任务信息在一定时间内可追溯;
c) 宜具备一定的容错性,如任务的失败与恢复功能;
d) 应提供API,以提供联邦学习算法开发能力。
6.2.5.2 存储组件
存储组件功能应包括但不限于:
a) 支持KV存储;
b) 支持其他存储系统到存储组件的数据导入与导出;
c) 支持数据存储的外部存储持久化;
d) 宜支持内存数据存储,以提升任务执行性能;
e) 宜支持数据的分布式存储,以提升数据读写性能;
f) 具备明确的数据元信息管理方案,确保联邦学习活动正常运行;
g) 提供API,提供存储组件访问能力;
h) 宜具备明确的数据可用性、可靠性策略与方案,以及存储丢失时的恢复方案。
6.2.5.3 通信组件
通信组件功能应包括但不限于:
a) 支持双向通信;
b) 支持跨集群及跨数据中心的通信;
c) 支持国际主流的安全通信方案,如HTTPS、 TLS/SSL;
d) 在参与方对外通信时,应使用安全通信方案,对通信进行加密;
e) 宜对发送(包括主动发送与被动应答)到其他联邦学习参与方或联邦学习协调方的内容保留审
计功能,以确保原始数据没有离开本方;
f) 提供API,以提供联邦学习算法开发能力。
6.2.5.4 资源调度与管理组件
资源调度与管理组件功能包括但不限于:
a) 对计算、存储、通信请求作出合理的资源分配;
b) 对硬件资源的变动进行记录与管理,并反馈到资源分配的策略上;
c) 宜提供机制,以便开发者对调度规则进行定制;
d) 提供API,以提供资源的实时使用情况。
6.2.6 跨层功能组件
跨层功能组件应包括:
a) 运营功能组件;
b) 数据安全功能组件;
c) 监管与审计功能组件。
6.2.6.1 运营功能组件
运营功能组件包括一组与操作有关的管理功能,这些功能用于管理和控制提供给用户使用的联邦学习服务。运营功能组件包括:
a) 服务目录。服务目录功能提供联邦学习系统的所有服务列表。服务列表包括进行联邦学习活动的各类服务,比如针对不同需求和场景的各类训练和预测服务以及其他支撑性服务;
b) 策略管理。策略管理功能提供联邦学习服务的定义、更新和访问策略及针对这些策略的管理。
这些策略包括用于联邦学习本身及其使用的业务、技术、安全、隐私和认证等策略;
c) 异常和问题管理。异常问题管理功能提供事故和问题报告的捕获能力,并通过分析来管理这些报告。事故和问题可由联邦学习服务提供方系统或联邦学习服务用户,即联邦学习各参与方检测和报告;
d) 服务交付管理。服务交付管理功能提供联邦学习服务交付的管理功能,比如交付的功能接口、SLA 等。同时,该功能提供必需的工作流,以确保这些服务元素以正确的顺序提供。
6.2.6.2 安全功能组件
安全功能组件主要为联邦学习各功能组件层、层间交互以及各参与方交互的所有数据提供保密性、
完整性、可用性和隐私保护等安全属性的保障。
数据安全功能组件功能应包括但不限于:
a) 账号管理。确保所有相关方都拥有账号;
b) 身份认证及管理。确保所有相关方在进行操作前是通过身份认证的;
c) 授权和安全策略管理。确保相关方只能对被授权的内容进行操作;
d) 数据完整性管理。通过完整性检测和各种规范要求,防止由于误操作,恶意破坏,格式不符合要求等造成的数据完整性丧失;
e) 数据销毁。提供各参与方在各类数据使用后的数据销毁功能,负责将数据彻底删除,并无法复原,以免造成信息泄露;
f) 隐私泄露防护。主要是保护联邦学习用户身份和事务处理等敏感信息不被泄露或非法获取,这些信息只有通过充分授权才能被访问。隐私泄露防护功能组件功能宜包括:
-
支持将数据的传输限制在特定授权节点间;
-
支持用加解密方法对用户数据的访问采用权限控制;
-
支持对联邦学习活动(任务)发起方/接收方的信息及事务信息本身进行信息隐藏;
-
支持采用例如零知识证明、同态加密等隐私保护算法,规避隐私暴露。
6.2.6.3 监管与审计功能组件
监管与审计功能组件根据联邦学习参与方的治理要求,使联邦学习服务符合可监管与可审计的特性,避免联邦学习违反相关法律法规的要求,没有实现真正意义的数据安全,泄露数据隐私;并作为权威方评估联邦学习训练预测过程以及最终模型的各方面指标是否满足要求。
监管与审计功能组件功能包括但不限于:
a) 应具备完善健全的监管治理体系.通过事前准入控制、事中权限控制、事后追溯等技术手段实现监管目标,保证记录不可篡改、可追溯与可稽核;
b) 宜实现监管机构作为联邦成员即时监管,可对数据完整性、有效性和流程合规性进行即时的审计与监督;监管干预活动相关的数据和证据应进行完整记录和保存;
c) 设置明确的监管治理规则。应同时支持由人参与监督管理的、无法用技术自动实现的规则,由组织机构或管理人员依据法律、行政法规、部门规章等进行监管治理的规则;
d) 保存与服务、资源、性能相关的审计信息。这些审计信息至少应包括协议所有相关方的活动和运营环境条件的记录和日志,并需要以安全的方式收集和维护。
最后
不知道你们用的什么环境,我一般都是用的Python3.6环境和pycharm解释器,没有软件,或者没有资料,没人解答问题,都可以免费领取(包括今天的代码),过几天我还会做个视频教程出来,有需要也可以领取~
给大家准备的学习资料包括但不限于:
Python 环境、pycharm编辑器/永久激活/翻译插件
python 零基础视频教程
Python 界面开发实战教程
Python 爬虫实战教程
Python 数据分析实战教程
python 游戏开发实战教程
Python 电子书100本
Python 学习路线规划
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!