XAIN是一个用于联合学习的开源框架。
xain-fl的Python项目详细描述
免责声明:这是正在进行的工作,尚未准备好生产,预计会发生错误!使用风险自负!请勿用于任何与安全相关的问题!
赛因
XAIN项目正在为机器学习构建一个隐私层,以便AI项目能够满足诸如 GDPR和CCPA。该方法依赖于联合学习作为支持技术,允许生产人工智能 应用程序完全符合隐私要求。在
联合学习还支持与隐私无关的不同用例,例如连接数据 在不平衡的数据集中达到更高的模型性能,并在边缘使用人工智能模型。在
此存储库包含运行协调器的源代码。协调器是联邦的组件 选择参与者进行培训并使用联邦平均法聚合模型的学习。在
参与者在与协调器不同的环境中运行,并使用SDK连接到它。您可以找到here的源代码。在
快速入门
XAIN需要Python 3.6.4+。要安装xain-fl
包,只需运行:
$ python -m pip install xain-fl
从源安装
克隆此存储库:
^{pr2}$使用dev
配置文件(NOTE:它是
建议在虚拟环境中安装项目):
cd xain-fl pip install -e '.[dev]'
通过运行测试验证安装
pytest
构建文档
项目文档位于docs/
下。构建文档
运行:
$ cd docs/
$ make docs
生成的文档将位于docs/_build/html/
下。你可以打开
在您的
收藏夹浏览器或只需运行以下命令:
$ make show
在本地运行协调器
要在本地计算机上运行协调器,可以使用
example-config.toml
文件:
# If you have installed the xain_fl package,# the `coordinator` command should be directly available coordinator --config configs/example-config.toml # otherwise the coordinator can be started by executing the# `xain_fl` package: python xain_fl --config configs/example-config.toml
从Docker映像运行协调器
有两个docker compose文件,一个用于开发,一个用于发布。在
发展形象
要运行协调器的开发映像,请首先构建Docker映像:
$ docker build -t xain-fl-dev -f Dockerfile.dev .
然后运行映像,将目录装载为Docker卷:
$ docker run -v $(pwd):/app -v '/app/xain_fl.egg-info' xain-fl-dev coordinator
上面的命令使用默认配置,但您也可以使用 自定义配置文件:
例如,如果您有一个./custom_config.toml
文件
喜欢使用,您可以将其装入容器并运行协调器
有:
docker run \ -v $(pwd)/custom_config.toml:/custom_config.toml \ -v $(pwd):/app \ -v '/app/xain_fl.egg-info'\ xain-fl-dev \ coordinator --config /custom_config.toml
发布图像
要运行协调器的发布映像,请先构建它:
$ docker build -t xain-fl .
然后运行它(本例假设您希望使用默认端口):
$ docker run -p 50051:50051 xain-fl
Docker撰写
协调器需要一个提供aws3的存储服务
应用程序编程接口。为了开发,我们使用minio
。我们提供docker-compose
启动协调器容器和minio
容器的文件,
并预先填充适当的存储桶。在
开发
要同时启动协调器和minio
服务,请使用:
docker-compose -f docker-compose-dev.yml up
也可以只启动存储服务:
docker-compose -f docker-compose-dev.yml up minio-dev initial-buckets
释放
$ docker-compose up
相关论文和文章
- An introduction to XAIN’s GDPR-compliance Layer for Machine Learning
- Communication-Efficient Learning of Deep Networks from Decentralized Data
- Analyzing Federated Learning through an Adversarial Lens
- Towards Federated Learning at Scale: System Design
- 项目
标签: