APPFL/APPFL

GitHub: APPFL/APPFL

APPFL是一个高级隐私保护联邦学习框架,用于在分布式环境中安全训练机器学习模型,解决数据隐私和集中化风险问题。

Stars: 176 | Forks: 37

APPFL logo

APPFL - 高级隐私保护联邦学习框架

discord DOI Doc Build pre-commit APPFL APPFL-Advance

APPFL,即高级隐私保护联邦学习,是一个开源且高度可扩展的软件框架。它使研究社群能够实现、测试和验证与隐私保护联邦学习相关的各种理念,并轻松安全地在分布式客户端之间部署真实的联邦学习实验,以训练更稳健的机器学习模型。借助此框架,开发者和用户可以轻松地: * 在去中心化数据上训练任何用户定义的机器学习模型,并可选地应用差分隐私和客户端认证。 * 在采用MPI的高性能计算架构上模拟各种同步和异步的隐私保护联邦学习算法。 * 以即插即用的方式对联邦学习的所有方面进行定制,包括聚合算法、服务器调度策略和客户端本地训练器。 [文档](http://appfl.rtfd.io/):请查阅我们的文档,其中包含教程、用户指南和开发者指南。 ## 目录 * [安装说明](#hammer_and_wrench-installation) * [技术组件](#bricks-technical-components) * [框架概述](#bulb-framework-overview) * [引用方式](#page_facing_up-citation) * [致谢](#trophy-acknowledgements) ## :hammer_and_wrench: 安装说明 我们强烈建议创建一个新的Conda虚拟环境并安装APPFL所需的包。 ``` conda create -n appfl python=3.10 conda activate appfl ``` ### 用户安装 对于大多数用户(如数据科学家),以下简单安装足以运行本软件包。 ``` pip install pip --upgrade pip install "appfl[examples,mpi]" ``` 💡 注意:如果您不需要使用MPI进行模拟,则可以不带 ``mpi`` 选项安装软件包:``pip install "appfl[examples]"``。 如果我们希望进一步减少软件包依赖的安装,可以跳过安装部分软件包(例如 `matplotlib` 和 `jupyter`): ``` pip install "appfl" ``` ### 开发者安装 ``` git clone --single-branch --branch main https://github.com/APPFL/APPFL.git cd APPFL pip install -e ".[mpi,dev,examples]" ``` 💡 注意:如果您不需要使用MPI进行模拟,则可以不带 ``mpi`` 选项安装软件包:``pip install -e ".[dev,examples]"``。 在Ubuntu上: 如果安装过程失败,您可以尝试: ``` sudo apt install libopenmpi-dev,libopenmpi-bin,libopenmpi-doc ``` ## :bricks: 技术组件 APPFL主要由以下六个技术组件构成: * **聚合器**:APPFL支持多种流行算法来聚合一个或多个客户端的本地模型。 * **调度器**:APPFL支持服务器端的多种同步和异步调度算法,以应对客户端本地模型的不同到达时间。 * **训练器**:APPFL支持多种客户端本地训练器,用于各种训练任务。 * **隐私保护**:APPFL支持多种全局/本地差分隐私方案。 * **通信器**:APPFL支持使用MPI进行单机/集群模拟,并支持带认证器的gRPC和Globus Compute以实现安全的分布式训练。 * **压缩器**:APPFL支持多种针对模型参数的有损压缩器,包括 [SZ2](https://github.com/szcompressor/SZ)、[SZ3](https://github.com/szcompressor/SZ3)、[ZFP](https://pypi.org/project/zfpy/) 和 [SZx](https://github.com/szcompressor/SZx)。 ## :bulb: 框架概述

在APPFL框架的设计中,我们本质上创建了服务器代理和客户端代理,将上述六个技术组件作为构建模块,分别代表联邦学习服务器和客户端来执行联邦学习实验。更多细节,请参阅我们的[文档](http://appfl.rtfd.io/)。 ## :page_facing_up: 引用方式 如果您发现APPFL对您的研究或开发有用,请考虑引用以下论文: ``` @inproceedings{li2025advances, title={Advances in APPFL: A comprehensive and extensible federated learning framework}, author={Li, Zilinghan and He, Shilan and Yang, Ze and Ryu, Minseok and Kim, Kibaek and Madduri, Ravi}, booktitle={2025 IEEE 25th International Symposium on Cluster, Cloud and Internet Computing (CCGrid)}, pages={01--11}, year={2025}, organization={IEEE} } @inproceedings{ryu2022appfl, title={APPFL: open-source software framework for privacy-preserving federated learning}, author={Ryu, Minseok and Kim, Youngdae and Kim, Kibaek and Madduri, Ravi K}, booktitle={2022 IEEE International Parallel and Distributed Processing Symposium Workshops (IPDPSW)}, pages={1074--1083}, year={2022}, organization={IEEE} } ``` ## :trophy: 致谢 本材料基于美国能源部科学办公室支持的工作,合同编号为DE-AC02-06CH11357。
标签:Apex, Python工具, 分布式系统, 分布式计算, 可扩展系统, 响应大小分析, 学术研究, 安全训练, 实验部署, 开源框架, 异常处理, 持续集成, 数据保密, 数据管道, 机器学习, 模型训练, 真实世界应用, 网络安全, 联邦学习, 软件工程, 逆向工具, 隐私保护, 高级隐私保护