b)对第二章中术语的引用采用粗体字标识。
图1给出了图中使用的图例。
联邦学习参考架构提供了一个体系框架,用于有效描述联邦学习角色、 子角色、 联邦学习活动、共同关注点、功能架构和联邦学习功能组件。
FLRA的目的包括:
a) 描述联邦学习的利益相关者群体;
b) 描述联邦学习系统的基本特征;
c) 规范基本的联邦学习活动和功能组件,描述它们之间的关系以及它们与环境之间的关系;
d) 识别FLRA设计和改进的指导原则。
FLRA的目标包括:
a) 帮助制定一系列协调配套的联邦学习标准;
b) 为定义联邦学习标准提供技术中立的参考点;
c) 在识别联邦学习利益和风险时提倡开放性和透明性。
===================================================================
4.1.1 内涵
为得到更优的机器学习模型,各参与方需借助其他方数据进行联合建模。 各方无需共享数据资源,即数据不出本地的情况下,进行数据联合训练,建立机器学习模型的框架。
联邦学习系统的约束条件为:
其中, VFED指联邦学习模型的效果, VSUM指传统方法(即,数据聚合方法)所建模型的效果, δ 为有
界正数。
4.1.2 分类
以包含两个参与方的联邦学习为例,双方各自拥有一个数据集,数据集的分布可分为:
a) 两个数据集的样本特征( X1,X2,… )重叠部分较大,而样本ID(U1, U2…)重叠部分较小,如图
2所示;
b) 两个数据集的样本ID(U1, U2…)重叠部分较大,而样本特征( X1,X2,…)重叠部分较小,如图
3所示;
c) 两个数据集的样本ID(U1, U2…)与样本特征重叠( X1,X2,… )部分都比较小或没有重叠部分,
如图4所示。
根据数据分布形式,联邦学习可分为横向联邦学习、纵向联邦学习与联邦迁移学习。
本标准定义的 FLRA 能作为联邦学习标准化的基本参考点,同时可为联邦学习系统的基本概念和原则提供总体框架。 FLRA 的架构视图
联邦学习系统能采用视图方法进行描述。
FLRA可采用视图进行描述,包括:
a) 用户视图;
b) 功能视图;
c) 实现视图;
d) 部署视图。
不同视图的转换关系,如图5所示。
表1给出对每个视图的描述。
表1 FLRA视图
| FLRA视图 | 视图描述 | 范围 |
| — | — | — |
| 用户视图 | 系统环境、 参与方、 角色、 子角色和联邦学习活动 | 范围内 |
| 功能视图 | 支撑联邦学习活动的所需功能 | 范围内 |
| 实现视图 | 实现服务、基础设施部件内的联邦学习服务所需的功能 | 范围外 |
| 部署视图 | 基于已有或新增的基础设施,对联邦学习服务功能的技术实现 | 范围外 |
**注:虽然本标准包含了对用户视图和功能视图的详细描述,但并不包含对实现视图和部署视图的描述,
因为实现视图和部署视图与技术,以及供应者特定的联邦学习实现和部署方式相关。**
用户视图涉及的联邦学习内容包括:
a) 联邦学习活动;
b) 角色和子角色;
c) 参与方;
d) 联邦学习服务;
e) 共同关注点。
功能视图是构建联邦学习系统所必需功能的技术中立的视图。功能视图描述了支持联邦学习活动所必需功能的分布, 定义了功能之间的依赖关系。
功能视图涵盖的联邦学习内容包括:
a) 功能组件;
b) 功能层;
c) 跨层功能。
图 6 展示了功能、层和功能组件的概念。
4.5 用户视图与共同关注点以及功能视图与共同关注点之间关系
共同关注点适用于:
a) 用户视图中的角色和子角色,并且直接或间接影响这些角色所执行的活动;
b) 功能视图中的功能组件, 在执行用户视图所描述的活动时被使用。
共同关注点包括:
a) 安全;
b) 模块化;
c) 互操作。
实现视图不在本标准的范围之内。
部署视图不在本标准的范围之内。
=================================================================
联邦学习的核心是分布式服务及服务交付。据此将所有联邦学习相关的活动包括使用服务的活动、提供服务的活动和支撑服务的活动。
联邦学习的角色包括:
a) 服务用户;
b) 参与方;
c) 协调方。
d) 注:在任意给定的时间点,一个参与方可承担多个角色。当承担一个角色时,参与方可限制其只承 担该角色的一个或多个子角色。对于给定角色,子角色是其联邦学习活动的子集。
5.2.1 概述
为使用联邦学习服务,联邦学习服务用户可与联邦学习服务提供者建立业务关系, 也可与联邦学习服务合作者建立业务关系。
注: 联邦学习用户可以是自然人, 或代表该自然人的实体(如参与机构或组织)。
与联邦学习用户及子角色相关的活动如图7所示。
5.2.2 子角色
联邦学习用户子角色包括:
a) 联邦学习服务用户。联邦学习服务用户的联邦学习活动主要有使用联邦学习服务;
b) 联邦学习业务管理者。联邦学习业务管理者是一个机构或组织。它的主要活动包括发现数据的元数据、发现服务能力及提出服务需求;
c) 联邦学习服务集成者是一个机构或组织。它的主要活动包括与现有系统集成。
5.2.3 活动
联邦学习服务的主要活动包括:
a) 使用联邦学习服务;
b) 从网络中发现数据的元数据;
c) 从网络中发现服务能力;
d) 提出服务需求。
5.3.1 概述
联邦学习参与方主要参与联邦学习的计算,以及对其他联邦学习参与方或联邦学习服务用户提供服务。
联邦学习参与方为联邦学习系统中共同参与机器学习过程的自然人, 或代表该自然人的实体(如参
与机构或组织)。
与联邦学习参与方的子角色相关的联邦学习活动如图8所示。
5.3.2 子角色
联邦学习参与方子角色包括:
a) 联邦学习计算参与者;
b) 联邦学习服务提供者。
注1:联邦学习计算参与者主要参与算法活动,如计算活动(建模、预测等)、模型管理;
注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 领域自适应组件
最后
🍅 硬核资料:关注即可领取PPT模板、简历模板、行业经典书籍PDF。
🍅 技术互助:技术群大佬指点迷津,你的问题可能不是问题,求资源在群里喊一声。
🍅 面试题库:由技术群里的小伙伴们共同投稿,热乎的大厂面试真题,持续更新中。
🍅 知识体系:含编程语言、算法、大数据生态圈组件(Mysql、Hive、Spark、Flink)、数据仓库、Python、前端等等。
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!