万字整理联邦学习系统架构设计参考
引 言
联邦学习定义了一个机器学习框架,在这个框架下,不同的数据拥有方可以在不交换彼此数据的情\ 况下,建立一个虚拟的共有模型,这个虚拟模型的效果等同于各方把数据聚合在一起建立的最优模型。\ 这样,建好的模型在各自的区域仅为本地的目标服务。在这样一个联邦机制下,各个参与者的身份和地\ 位相同,而联邦系统帮助大家建立了“共同富裕”的策略。由于在建立虚拟模型的时候,数据本身不移\ 动,也不会泄露用户隐私或影响数据规范,因此,联邦学习是数据孤岛问题的一个可能的解决方案。\ 为了在保护数据隐私、满足合法合规要求的前提下继续进行机器学习,更好地运用联邦学习的方法\ 解决数据孤岛问题,特制定此标准。
1 范围
本标准规范了联邦学习参考架构( FLRA),包括 FLRA 概念、用户视图、功能视图以及他们之间的\ 关系。\ 本标准适用于:\ a) 计划使用联邦学习技术的组织选择和使用联邦学习服务;\ b) 计划使用联邦学习技术的组织建设联邦学习系统;\ c) 指导使用联邦学习技术的服务提供组织提供联邦学习服务。
2 术语、 定义和缩略语
2.1 术语和定义
ITU-T Y.3500|ISO/IEC 17788 界定的以及下列术语和定义适用于本文件。
2.1.1 架构 architecture
通过系统元素、元素间的关系,以及系统设计和进化原则体现出来的一个系统在其环境中的基本概\ 念或属性。\ [ISO/IEC/IEEE 42010:2011]
2.1.2 活动 activity
一组特定任务的集合。\ [GB/T 32399-2015]
2.1.3 加密 encipherment/encryption
对数据进行密码变换以产生密文的过程。一般包含一个变换集合,该变换使用一套算法和一套输入\ 参量。输入参量通常被称为密钥。\ [GB/T 25069-2010]
2.1.4 功能组件 functional component
参与活动(2.1.1)所需的,可实现的一个功能性基本构件块。\ [GB/T 32399-2015]
2.1.5 互操作 interoperability
a) 两个或多个系统或组件交换信息并相互使用已交换的信息的能力;\ b) 两个或两个以上系统可互相操作的能力。\ [GB/T 11457-2006]
2.1.6 模块化 modularization
把系统分成若干模块(模块变成元素)以便于设计和开发。\ [GB/T 11457-2006]
2.1.7 角色 role
一组服务于共同目的的活动(2.1.1)的集合。\ [GB/T 32399-2015]
2.1.8 子角色 sub-role
给定角色( 3.2.7)的活动( 3.2.1)的子集。
2.1.9 联邦学习 federated learning
一种多个参与方在各方数据不出本地的前提下共同完成某项机器学习任务的活动。
2.1.10 联邦学习服务 federated learning service
与一组商业条款一同被提供的一个联邦学习服务。\ 注: 商业条款包括定价、定级和服务水平。
2.1.11 联邦学习参与方 federated learning participant
参与到联邦学习网络的组织或机构,为其他一个或多个参与方提供联邦学习的数据,或作为及建模\ 的发起者。
2.2 缩略语
API 应用编程接口( Application Programming Interface)\ FLRA 联邦学习参考架构( Federated Learning Reference Architecture)\ CPU 中央处理单元( Central Processing Unit)\ FLS 联邦学习服务( Federated Learning Service)\ FLU 联邦学习用户( Federated Learning User)\ FLP 联邦学习参与方( Federated Learning Participant)\ FLC 联邦学习协调方( Federated Learning Coordinator)
3 概述
3.1 约定
本标准采用的约定包括:\ a) 采用图来帮助理解FLRA;\ b)对第二章中术语的引用采用粗体字标识。\ 图1给出了图中使用的图例。\
3.2 FLRA 的目的
联邦学习参考架构提供了一个体系框架,用于有效描述联邦学习角色、 子角色、 联邦学习活动、共同关注点、功能架构和联邦学习功能组件。\ FLRA的目的包括:\ a) 描述联邦学习的利益相关者群体;\ b) 描述联邦学习系统的基本特征;\ c) 规范基本的联邦学习活动和功能组件,描述它们之间的关系以及它们与环境之间的关系;\ d) 识别FLRA设计和改进的指导原则。
3.3 FLRA 的目标
FLRA的目标包括:\ a) 帮助制定一系列协调配套的联邦学习标准;\ b) 为定义联邦学习标准提供技术中立的参考点;\ c) 在识别联邦学习利益和风险时提倡开放性和透明性。
4 参考架构概念
4.1 联邦学习概述
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所示。\
根据数据分布形式,联邦学习可分为横向联邦学习、纵向联邦学习与联邦迁移学习。
4.2 参考架构概述
本标准定义的 FLRA 能作为联邦学习标准化的基本参考点,同时可为联邦学习系统的基本概念和原则提供总体框架。 FLRA 的架构视图\ 联邦学习系统能采用视图方法进行描述。\ FLRA可采用视图进行描述,包括:\ a) 用户视图;\ b) 功能视图;\ c) 实现视图;\ d) 部署视图。\ 不同视图的转换关系,如图5所示。\ \ 表1给出对每个视图的描述。\ 表1 FLRA视图
| FLRA视图 | 视图描述 | 范围 | | ------ | --------------------------- | --- | | 用户视图 | 系统环境、 参与方、 角色、 子角色和联邦学习活动 | 范围内 | | 功能视图 | 支撑联邦学习活动的所需功能 | 范围内 | | 实现视图 | 实现服务、基础设施部件内的联邦学习服务所需的功能 | 范围外 | | 部署视图 | 基于已有或新增的基础设施,对联邦学习服务功能的技术实现 | 范围外 |
注:虽然本标准包含了对用户视图和功能视图的详细描述,但并不包含对实现视图和部署视图的描述,\ 因为实现视图和部署视图与技术,以及供应者特定的联邦学习实现和部署方式相关。
4.3 联邦学习用户视图
用户视图涉及的联邦学习内容包括:\ a) 联邦学习活动;\ b) 角色和子角色;\ c) 参与方;\ d) 联邦学习服务;\ e) 共同关注点。
4.4 联邦学习功能视图
功能视图是构建联邦学习系统所必需功能的技术中立的视图。功能视图描述了支持联邦学习活动所必需功能的分布, 定义了功能之间的依赖关系。\ 功能视图涵盖的联邦学习内容包括:\ a) 功能组件;\ b) 功能层;\ c) 跨层功能。\ 图 6 展示了功能、层和功能组件的概念。\
4.5 用户视图与共同关注点以及功能视图与共同关注点之间关系
共同关注点适用于:\ a) 用户视图中的角色和子角色,并且直接或间接影响这些角色所执行的活动;\ b) 功能视图中的功能组件, 在执行用户视图所描述的活动时被使用。\ 共同关注点包括:\ a) 安全;\ b) 模块化;\ c) 互操作。
4.6 联邦学习实现视图
实现视图不在本标准的范围之内。
4.7 联邦学习部署视图
部署视图不在本标准的范围之内。
5 用户视图
5.1 角色、子角色和联邦学习活动概述
联邦学习的核心是分布式服务及服务交付。据此将所有联邦学习相关的活动包括使用服务的活动、提供服务的活动和支撑服务的活动。\ 联邦学习的角色包括:\ a) 服务用户;\ b) 参与方;\ c) 协调方。\ d) 注:在任意给定的时间点,一个参与方可承担多个角色。当承担一个角色时,参与方可限制其只承 担该角色的一个或多个子角色。对于给定角色,子角色是其联邦学习活动的子集。
5.2 联邦学习用户
5.2.1 概述
为使用联邦学习服务,联邦学习服务用户可与联邦学习服务提供者建立业务关系, 也可与联邦学习服务合作者建立业务关系。\ 注: 联邦学习用户可以是自然人, 或代表该自然人的实体(如参与机构或组织)。\ 与联邦学习用户及子角色相关的活动如图7所示。\
5.2.2 子角色
联邦学习用户子角色包括:\ a) 联邦学习服务用户。联邦学习服务用户的联邦学习活动主要有使用联邦学习服务;\ b) 联邦学习业务管理者。联邦学习业务管理者是一个机构或组织。它的主要活动包括发现数据的元数据、发现服务能力及提出服务需求;\ c) 联邦学习服务集成者是一个机构或组织。它的主要活动包括与现有系统集成。\ 5.2.3 活动\ 联邦学习服务的主要活动包括:\ a) 使用联邦学习服务;\ b) 从网络中发现数据的元数据;\ c) 从网络中发现服务能力;\ d) 提出服务需求。
5.3 联邦学习参与方
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 联邦学习协调方
5.4.1 概述
联邦学习协调方是为联邦学习参与方的活动提供支撑或辅助功能的参与方, 具备联邦学习参与方的职能, 承担部分联邦学习网络管理与仲裁之职责。\ 注1: 联邦学习协调方的联邦学习活动随着合作者的类型及其与联邦学习服务提供者和联邦学习服务客户之间关系的不同而变化;\ 注2: 联邦学习协调方宜为机构或组织。\ 与联邦学习协调方相关的联邦学习活动如图9所示:\
5.4.2 子角色
联邦学习协调方子角色包括:\ a) 联邦学习开发者,主要负责联邦学习的功能开发;\ b) 联邦学习算法协调者,主要负责协调联邦学习算法运行过程中各参与方的计算行为;\ c) 联邦学习参与方协调者,主要负责协调联邦学习参与方活动中的行为,同时也是联邦学习的元\ 数据提供方。\ 注: 典型场景如联邦学习参与方能力协调与数据管理。
5.4.3 活动
联邦学习协调方活动包括:\ a) 联邦学习功能开发, 如算法开发、基础架构开发、服务开发;\ b) 计算活动, 如发起建模、多方安全计算管理(约定安全协议、密钥生成、数据解密);\ c) 模型管理, 如模型发现、模型元信息管理、模型密钥管理;\ d) 服务能力协调, 如服务接入、服务能力发布、联邦学习网络中服务元信息管理、参与方元信息\ 管理;\ e) 数据管理, 如数据元信息管理、数据元信息发布、数据元信息发现。
5.5 共同关注点
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 功能视图
6.1 功能架构
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 功能组件
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) 保存与服务、资源、性能相关的审计信息。这些审计信息至少应包括协议所有相关方的活动和运营环境条件的记录和日志,并需要以安全的方式收集和维护。
7 用户视图与功能视图之间关系
7.1 概述
在第6章介绍联邦学习角色与活动的用户视图,第7章介绍包含功能组件的功能视图的基础上,本章描述角色和活动与功能组件之间的逻辑映射关系。
7.2 关系
标准中的映射关系可应用于:\ a) 明确信息流或其它类型互操作的程度;\ b) 确保指定的质量(例如安全或服务水平)。\ 本架构中定义的逻辑关系是确定FLRA及其行为的重要组成部分。该逻辑关系描述内容包括FLRA组件间交互所需的信息流。\ 图12展示了FLRA主要元素的常用配置,包括角色、联邦学习活动和组件。\
- YoloV5实战:手把手教物体检测——YoloV5
- 基于阿里Semantatic Human Matting算法,实现精细化人物抠图
- PPv3-OCR自定义数据从训练到部署
- 如何下载pytorch的历史版本?
- WinForm——Button总结
- WinForm——MDI窗体
- 升级 pip
- 将8位的tif图片改为png图片
- RepLKNet实战:使用RepLKNet实现对植物幼苗的分类(非官方)(二)
- 关于OpenCV imread和imdecode读取图片是BGR的证明
- opencv读取图片通道以及显示
- 万字整理联邦学习系统架构设计参考
- 编译器堆空间不足
- 【图像分类】实战——使用EfficientNetV2实现图像分类(Pytorch)
- MMDetection实战:MMDetection训练与测试
- UNet语义分割实战:使用UNet实现对人物的抠图
- MobileVIT实战:使用MobileVIT实现图像分类
- SwinIR实战:如何使用SwinIR和预训练模型实现图片的超分
- 【图像分类】手撕ResNet——复现ResNet(Pytorch)
- Deeplab实战:使用deeplabv3实现对人物的抠图