All Projects → mc2-project → federated-xgboost

mc2-project / federated-xgboost

Licence: other
Federated gradient boosted decision tree learning

Programming Languages

C++
36643 projects - #6 most used programming language
Cuda
1817 projects
python
139335 projects - #7 most used programming language
CMake
9771 projects
Makefile
30231 projects
c
50402 projects - #5 most used programming language
shell
77523 projects

Projects that are alternatives of or similar to federated-xgboost

Federated-Learning-and-Split-Learning-with-raspberry-pi
SRDS 2020: End-to-End Evaluation of Federated Learning and Split Learning for Internet of Things
Stars: ✭ 54 (+38.46%)
Mutual labels:  federated-learning
FedReID
Implementation of Federated Learning to Person Re-identification (Code for ACMMM 2020 paper)
Stars: ✭ 68 (+74.36%)
Mutual labels:  federated-learning
Federated-Learning-Mini-Framework
Federated Learning mini-framework with Keras
Stars: ✭ 38 (-2.56%)
Mutual labels:  federated-learning
communication-in-cross-silo-fl
Official code for "Throughput-Optimal Topology Design for Cross-Silo Federated Learning" (NeurIPS'20)
Stars: ✭ 19 (-51.28%)
Mutual labels:  federated-learning
substra
Substra is a framework for traceable ML orchestration on decentralized sensitive data.
Stars: ✭ 143 (+266.67%)
Mutual labels:  federated-learning
KD3A
Here is the official implementation of the model KD3A in paper "KD3A: Unsupervised Multi-Source Decentralized Domain Adaptation via Knowledge Distillation".
Stars: ✭ 63 (+61.54%)
Mutual labels:  federated-learning
PyVertical
Privacy Preserving Vertical Federated Learning
Stars: ✭ 133 (+241.03%)
Mutual labels:  federated-learning
Awesome-Federated-Machine-Learning
Everything about federated learning, including research papers, books, codes, tutorials, videos and beyond
Stars: ✭ 190 (+387.18%)
Mutual labels:  federated-learning
fedpa
Federated posterior averaging implemented in JAX
Stars: ✭ 38 (-2.56%)
Mutual labels:  federated-learning
PFL-Non-IID
The origin of the Non-IID phenomenon is the personalization of users, who generate the Non-IID data. With Non-IID (Not Independent and Identically Distributed) issues existing in the federated learning setting, a myriad of approaches has been proposed to crack this hard nut. In contrast, the personalized federated learning may take the advantage…
Stars: ✭ 58 (+48.72%)
Mutual labels:  federated-learning
decentralized-ml
Full stack service enabling decentralized machine learning on private data
Stars: ✭ 50 (+28.21%)
Mutual labels:  federated-learning
pFedMe
Personalized Federated Learning with Moreau Envelopes (pFedMe) using Pytorch (NeurIPS 2020)
Stars: ✭ 196 (+402.56%)
Mutual labels:  federated-learning
backdoors101
Backdoors Framework for Deep Learning and Federated Learning. A light-weight tool to conduct your research on backdoors.
Stars: ✭ 181 (+364.1%)
Mutual labels:  federated-learning
federated-learning-poc
Proof of Concept of a Federated Learning framework that maintains the privacy of the participants involved.
Stars: ✭ 13 (-66.67%)
Mutual labels:  federated-learning
easyFL
An experimental platform to quickly realize and compare with popular centralized federated learning algorithms. A realization of federated learning algorithm on fairness (FedFV, Federated Learning with Fair Averaging, https://fanxlxmu.github.io/publication/ijcai2021/) was accepted by IJCAI-21 (https://www.ijcai.org/proceedings/2021/223).
Stars: ✭ 104 (+166.67%)
Mutual labels:  federated-learning
srijan-gsoc-2020
Healthcare-Researcher-Connector Package: Federated Learning tool for bridging the gap between Healthcare providers and researchers
Stars: ✭ 17 (-56.41%)
Mutual labels:  federated-learning
MOON
Model-Contrastive Federated Learning (CVPR 2021)
Stars: ✭ 93 (+138.46%)
Mutual labels:  federated-learning
Front-End
Federated Learning based Deep Learning. Docs: https://fets-ai.github.io/Front-End/
Stars: ✭ 35 (-10.26%)
Mutual labels:  federated-learning
FATE-Serving
A scalable, high-performance serving system for federated learning models
Stars: ✭ 107 (+174.36%)
Mutual labels:  federated-learning
FedLab-benchmarks
Standard federated learning implementations in FedLab and FL benchmarks.
Stars: ✭ 49 (+25.64%)
Mutual labels:  federated-learning

Federated XGBoost

Introduction

Federated XGBoost is a gradient boosting library for the federated setting, based off the popular XGBoost project. In addition to offering the same efficiency, flexibility, and portability that vanilla XGBoost provides, Federated XGBoost enables multiple parties to jointly compute a model while keeping their data on site, avoiding the need for a central data storage.

This project is currently under development as part of the broader mc2 effort (i.e., Multiparty Collaboration and Coopetition) by the UC Berkeley RISE Lab.

Please feel free to reach out to us if you would like to use Federated XGBoost for your applications. We also welcome contributions to our work!

Installation

  1. Clone this repository and its submodules.
git clone --recursive https://github.com/mc2-project/federated-xgboost.git
  1. Install Federated XGBoost dependencies.
sudo apt-get install cmake libmbedtls-dev
pip3 install numpy grpcio grpcio-tools
  1. Build Federated XGBoost.
cd federated-xgboost
mkdir build
cd build
cmake ..
make
  1. Install the Python package.
cd python-package
sudo python3 setup.py install

Quickstart

This quickstart uses the tutorial located in demo/basic. In this tutorial, each of the two parties in the federation starts an RPC server on port 50051 to listen for the aggregator. The aggregator sends invitations to all parties to join the computation. Once all parties have accepted the invitation, training commences -- the training script demo.py is run.

The implementation currently requires that each party's training data be at the same location, i.e., have the same path, and that the aggregator also have training data.

  1. Modify hosts.config to contain the IP addresses of all parties in the federation. Each line in hosts.config follows the following format:
<ip_addr>:<port>

For the purposes of this demo, <port> should be 50051.

  1. This demo uses data from the Higgs boson dataset. The demo/data/ directory contains 4 files of training data: hb_train_1.csv, hb_train_2.csv, hb_train_3.csv, and hb_train_4.csv. At each party, change the name of a different training data file to hb_train.csv.

  2. Start the RPC server at each party.

python3 serve.py
  1. At the aggregator, send invitations to all parties.
dmlc-core/tracker/dmlc-submit --cluster rpc --num-workers 2 --host-file hosts.config  --worker-memory 4g /path/to/federated-xgboost/demo/basic/demo.py

Each party should receive an invitation through their console:

Request from aggregator [ipv4:172.31.27.60:50432] to start federated training session:
Please enter 'Y' to confirm or 'N' to reject.
Join session? [Y/N]:
  1. Once all parties submit Y, training begins.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].