DeltaML/federated-learning-poc
GitHub: DeltaML/federated-learning-poc
一个隐私保护的联邦学习框架概念验证,允许多方在不共享数据的情况下协作训练机器学习模型。
Stars: 14 | Forks: 2
# DeltaML/联邦学习-概念验证
[](https://travis-ci.com/DeltaML/federated-learning-poc)
[](https://coveralls.io/github/DeltaML/federated-learning-poc?branch=master)
此仓库包含一个联邦学习框架实现的概念验证。
## **重要提示:**
**本仓库中的代码已被分割并迁移至多个独立仓库**,每个仓库对应平台中的一个组件。该平台利用联邦学习训练模型以保护隐私,采用同态加密来保障模型安全,并使用智能合约向每位平台参与者支付其完成的工作报酬,而无需依赖第三方。
完整项目的详细说明可参见:
**当前相关仓库如下:**
- **模型购买方:**
- API:[https://github.com/DeltaML/model-buyer](https://github.com/DeltaML/model-buyer)
- 用户界面:[https://github.com/DeltaML/model-buyer-ui](https://github.com/DeltaML/model-buyer-ui)
- **数据所有者:**
- API:[https://github.com/DeltaML/data-owner](https://github.com/DeltaML/data-owner)
- 用户界面:[https://github.com/DeltaML/data-owner-ui](https://github.com/DeltaML/data-owner-ui)
- **联邦聚合器:**
- API:[https://github.com/DeltaML/federated-aggregator](https://github.com/DeltaML/federated-aggregator)
- **智能合约:**
- [https://github.com/DeltaML/contract](https://github.com/DeltaML/contract)
## **快速入门**
以下说明将指导您在本地机器上获取并运行此项目的副本,以用于开发和测试目的。关于如何在实际生产环境中部署项目,请参阅部署章节。
### **前置条件**
- [Python3](https://www.python.org/download/releases/3.0/)
- [Docker](https://www.docker.com/)
- [Docker Compose](https://docs.docker.com/compose/)
您可以在 [联邦训练器](https://github.com/DeltaML/federated-learning-poc/blob/master/federated_trainer/README.md) 中查看联邦训练器的说明文档。
**数据所有者的使用与配置**
您可以在 [数据所有者](https://github.com/DeltaML/federated-learning-poc/blob/master/data_owner/README.md) 中查看数据所有者的说明文档。
**模型购买方的使用与配置**
您可以在 [模型购买方](https://github.com/DeltaML/federated-learning-poc/blob/master/model_buyer/README.md) 中查看模型购买方的说明文档。
## **部署**
## **使用 docker-compose**
首先构建
```
docker-compose build
```
然后运行
```
docker-compose up
```
运行并扩展数据所有者实例
```
docker-compose up --scale cte_data_owner=
```
## **使用 Pycharm**
### **模型购买方**
```
Script Path: .../model_buyer/virtualenv/bin/gunicorn
Parameters: -b "0.0.0.0:9090" wsgi:app --preload
Working directory: ../model_buyer
```
### **联邦训练器**
```
Script Path: .../federated_trainer/virtualenv/bin/gunicorn
Parameters: -b "0.0.0.0:8080" wsgi:app --preload
Working directory: ../federated_trainer
```
### **数据所有者**
```
Script Path: .../data_owner/virtualenv/bin/gunicorn
Parameters: -b "0.0.0.0:5000" wsgi:app --preload
Working directory: ../data_owner
```
## **版本控制**
我们使用 [语义化版本控制](http://semver.org/) 进行版本管理。您可以查看此仓库的 [版本标签](https://github.com/DeltaML/federated-learning-poc/tags) 来了解可用版本。
## **作者**
* **Fabrizio Graffe** - *开发者* - [GFibrizo](https://github.com/GFibrizo)
* **Agustin Rojas** - *开发者* - [agrojas](https://github.com/agrojas)
另请参阅参与此项目的 [贡献者](https://github.com/DeltaML/federated-learning-poc/graphs/contributors) 列表。
## **许可证**
本项目采用 MIT 许可证 - 详情请查阅 [LICENSE.md](LICENSE.md) 文件。
标签:Apex, API开发, Docker, 人工智能, 代码覆盖, 分布式系统, 加密技术, 区块链, 区块链支付, 去中心化, 同态加密, 响应大小分析, 安全计算, 安全防御评估, 开源, 开源框架, 持续集成, 数据所有者, 智能合约, 机器学习, 概念验证, 模型买家, 模型训练, 版权保护, 用户模式Hook绕过, 用户界面, 网络安全, 联邦学习, 联邦聚合器, 请求拦截, 逆向工具, 隐私保护, 隐私机器学习