Coder Social home page Coder Social logo

liuyuqinggg / fedlab Goto Github PK

View Code? Open in Web Editor NEW

This project forked from smilelab-fl/fedlab

0.0 1.0 0.0 42.83 MB

A flexible Federated Learning Framework based on PyTorch, simplifying your Federated Learning research.

Home Page: https://fedlab.readthedocs.io

License: Apache License 2.0

Shell 0.10% Python 2.84% Jupyter Notebook 97.05% Dockerfile 0.01%

fedlab's Introduction

FedLab: A Flexible Federated Learning Framework

GH Actions Tests Documentation Status License codecov arXiv Pyversions

Federated learning (FL), proposed by Google at the very beginning, is recently a burgeoning research area of machine learning, which aims to protect individual data privacy in distributed machine learning process, especially in finance, smart healthcare and edge computing. Different from traditional data-centered distributed machine learning, participants in FL setting utilize localized data to train local model, then leverages specific strategies with other participants to acquire the final model collaboratively, avoiding direct data sharing behavior.

To relieve the burden of researchers in implementing FL algorithms and emancipate FL scientists from repetitive implementation of basic FL setting, we introduce highly customizable framework FedLab in this work. FedLab provides the necessary modules for FL simulation, including communication, compression, model optimization, data partition and other functional modules. Users can build FL simulation environment with custom modules like playing with LEGO bricks. For better understanding and easy usage, FL algorithm benchmark implemented in FedLab are also presented.

Content of Documentations

Quick start

  1. Please read our tutorials in jupyter notebook.

  2. Run our quick start examples of different scenarios with partitioned MNIST dataset.

# example of standalone
$ cd ./examples/standalone/
$ bash python standalone.py --total_client 100 --com_round 3 --sample_ratio 0.1 --batch_size 100 --epochs 5 --lr 0.02

Baselines

We provide the reproduction of baseline federated algorthms for users in this repo.

Method Type Paper Publication Official code
FedAvg Optim. Communication-Efficient Learning of Deep Networks from Decentralized Data AISTATS'2017
FedProx Optim. Federated Optimization in Heterogeneous Networks MLSys' 2020 Code
FedDyn Optim. Federated Learning Based on Dynamic Regularization ICLR' 2021 Code
q-FFL Optim. Fair Resource Allocation in Federated Learning ICLR' 2020 Code
FedNova Optim. Tackling the Objective Inconsistency Problem in Heterogeneous Federated Optimization NeurIPS'2020 Code
IFCA Optim. An Efficient Framework for Clustered Federated Learning NeurIPS'2020 Code
Ditto Optim. Ditto: Fair and Robust Federated Learning Through Personalization ICML'2021 Code
Power-of-choice Client Selection in Federated Learning: Convergence Analysis and Power-of-Choice Selection Strategies Pre-print
SCAFFOLD Optim. SCAFFOLD: Stochastic Controlled Averaging for Federated Learning ICML'2020
Personalized-FedAvg Improving Federated Learning Personalization via Model Agnostic Meta Learning
QSGD Com QSGD: Communication-Efficient SGD via Gradient Quantization and Encoding NeurIPS'2017
NIID-Bench Data. Federated Learning on Non-IID Data Silos: An Experimental Study Pre-print Code
LEAF Data. LEAF: A Benchmark for Federated Settings Pre-print Code

Performance

TODO

Data Partition

TODO

Citation

Please cite FedLab in your publications if it helps your research:

@article{smile2021fedlab,  
    title={FedLab: A Flexible Federated Learning Framework},  
    author={Dun Zeng, Siqi Liang, Xiangjing Hu, Hui Wang and Zenglin Xu},  
    journal={arXiv preprint arXiv:2107.11621},  
    year={2021}
}

Contact

Project Investigator: Prof. Zenglin Xu ([email protected]).

For technical issues reated to FedLab development, please contact our development team through Github issues or email:

fedlab's People

Contributors

agentds avatar dunzeng avatar jacazjx avatar starry-hu avatar yang7296 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.