技术简介 | 翼数联邦学习XFL发表时间:2022-07-27 17:04 #1 背景介绍 随着互联网、大数据技术的蓬勃发展,隐私保护日益成为社会所关注的热点问题。为了保护个人隐私数据,欧盟率先出台了一般数据保护条例GDPR,近年来国内也颁布了个人信息保护法等多个隐私保护法律法规。为了适应日益严格的安全法律法规和用户对个人隐私保护的迫切需求,联邦学习作为一种保护隐私的分布式机器学习解决方案受到越来越多的关注。翼方健数作为隐私安全计算的先行者,自主研发了联邦学习框架XFL,运用同态加密、差分隐私、多方安全计算等多种加密计算技术保护用户的原始数据不被泄漏,使用安全通信协议保护通信安全,使用户在合法合规的基础上开发人工智能模型,实现数据价值。 #2 XFL是什么 XFL是一个高性能、高灵活度、高适用性、轻量开放易用的工业级联邦学习开源框架,具有以下特点: 一、高性能的算法库 · 算法全面:支持多种主流横向联邦、纵向联邦算法 · 性能优异:大幅领先于信通院评测平均水平 · 网络优化:在弱网络、高延迟、大量丢包、较长时间断网的情况下依然可以完成训练任务 二、应用部署灵活 · 计算节点灵活:支持两方和多方计算节点部署 · 算力调配灵活:无论有无label,支持任何一方为发起方 · 安装部署灵活:支持CPU / GPU / 混合部署 三、轻量开放易用 · 轻量:对服务器性能要求低,部分算法可在性能较差的环境下运行 · 模型框架集成:支持PyTorch / TensorFlow · 自定义模型集成:横向联邦支持自定义深度学习模型,开发简单,对联邦初学者友好 XFL支持的功能有:
#3 XFL的原理和架构 ![]() 图1:XFL整体架构 整体架构分为五层,自下而上是支撑组件层、密码技术层、模型算法层、调度管理层和业务应用层。 一、支撑组件层 这一层是支撑XFL的功能组件层。采用了gRPC通信协议和TLS加密技术保证通信安全,支持HDFS、MySQL、Redis等多种存储方式。兼容主流的深度学习框架,同时也支持GPU等硬件加速方式。 二、密码技术层 密码技术是XFL的核心模块之一。这里支持和实现了多种加密方式(包括CKKS加密算法、Paillier加密算法、一次一密、差分隐私等),供上层根据不同的模型和场景开发高效的联邦算法。 三、模型算法层 XFL提供了丰富的模型算法,支持横向联邦、纵向联邦等多种联邦模型,覆盖了有监督学习和无监督学习的多种场景,同时提供了通用的深度神经网络模型框架,支持PyTorch和TensorFlow等主流深度学习框架。该层的模型算法不仅仅提供了联邦训练的接口,还支持了在线联邦推断,性能和稳定性均表现出色。 四、 调度管理层 该层支持联邦学习场景下的数据和模型管理,同时提供任务调度和监控,日志管理等功能。 五、业务应用层 最后一层是业务应用层,XFL目前支持了医疗、金融、营销、政务等多种业务场景,提供丰富的画布和应用。 以下是XFL的一些特性的介绍: 1. 支持横向、纵向联邦等多种联邦场景 每种模型均支持2个或多个的参与方,适应金融、医疗、营销、政务等多种联邦场景。其中横向联邦支持FedAvg等经典的联邦聚合方法,并提供便捷的扩展方式,方便开发人员和使用人员开发或自定义新模型,用户可通过预置的模板快速开发新模型,也可调用内置API开发自定义模型。纵向联邦模型支持特征工程、逻辑回归、XGBoost、K-means等主流模型,并且提供丰富的自定义参数、指标展示等功能。 2. 支持多种参与方组合 目前支持三种参与方:带标签的参与方,不带标签的参与方,以及辅助计算的可信第三方。在横向联邦中,支持多个带标签参与方和一个可信第三方;在纵向联邦中,支持带标签参与方和不带标签参与方的组合,也可以支持同时存在三种参与方的组合。系统不限制一定存在可信第三方,用户可以根据实际场景、安全模型来选择或开发合适的联邦算法。 ![]() 图2. 不同角色的参与方 3. 使用多种成熟的密码学技术来保证联邦过程的数据安全 在横向联邦中,采用安全密钥交换协议、安全伪随机生成器、一次一密等经典密码技术,在保证安全的前提下,来进行高效的模型参数聚合。在纵向联邦中,根据模型的特点,提供半同态加密Paillier、全同态加密CKKS等多种加密方式,保证中间参数的安全。所有密码算法均采用成熟的密码技术和安全的密钥参数,等效安全强度均大于等于112bit,部分密码安全强度大于等于128bit。此外,还支持MPC、差分隐私等其他安全技术,丰富联邦安全应用场景。 ![]() 图3:多种加密方式 4. gRPC通信协议 使用通用的gRPC通信协议,采用TLS加密,对联邦参与方的身份进行验证,对通信信道进行加密,保证通信信道安全。系统还提供封装好的联邦通信接口,用户只需定义好联邦通信的参与方,即可方便地进行安全数据传输。 5. 支持主流机器学习框架 系统主要使用Python语言进行开发,大部分模型支持使用PyTorch框架进行模型开发,大部分情况下用户只需对原始模型进行少量修改后即可在系统中进行训练。后续将支持JAX、PaddlePaddle等国内外主要机器学习框架,适应多样的开发环境。 6. 支持自定义执行计划 XFL使用有向无环图(DAG)生成执行计划,可以将多stage的任务串联,提供统一的配置文件对联邦各阶段模型的输入、输出、参数等进行配置,用户可以方便的创建或配置执行计划,系统将自动按照执行计划依次执行模型的训练任务。 7. 支持容器化部署方式 可适应不同的运行环境,既可部署在高安全可靠的自研XDP平台之上,也可部署于其他支持虚拟化的环境中。 8. 联邦算法优化 系统在保证安全的前提下,采用了高效的联邦算法,并进行了大量的优化。如Paillier算法对私钥加密的进一步加速,XGBoost使用明文打包、降采样、并行等技术,提高交互效率和降低内存消耗,逻辑回归采用CKKS替代Paillier来提高训练效率等。在信通院等机构组织的测评中,各项性能指标均处于行业前列。 ![]() 图4:信通院性能评测 写在最后: XFL是翼方健数自研的工业级联邦学习框架,使用安全通信协议保护通信安全,使用多种密码技术保护联邦过程的安全,与其他联邦产品相比,具有适用场景丰富,安全算法多样,性能高,轻量易于使用等特点。 开源发布第一天获 gitee 推荐,感谢 gitee 给予翼数联邦学习和翼数安全计算的支持与认可 ![]() |