Coder Social home page Coder Social logo

sansangela / fedscale Goto Github PK

View Code? Open in Web Editor NEW

This project forked from symbioticlab/fedscale

0.0 0.0 0.0 63.9 MB

FedScale is a scalable and extensible open-source federated learning (FL) engine and benchmark.

Home Page: http://fedscale.ai

License: Apache License 2.0

Shell 1.62% C++ 1.80% Python 72.10% C 7.97% MATLAB 0.22% Cuda 8.58% Jupyter Notebook 5.97% Cython 1.73%

fedscale's Introduction

FedScale

FedScale is a scalable and extensible open-source federated learning (FL) engine. It provides high-level APIs to implement FL algorithms, deploy them at scale across diverse hardware and software backends, and evaluate them at scale. FedScale also includes the largest FL benchmark that contains FL tasks ranging from image classification and object detection to language modeling and speech recognition. Moreover, it provides datasets to faithfully emulate FL training environments where FL will realistically be deployed.

http://fedscale.ai

Getting Started

Installing From Source

FedScale requires Python 3.7 or better. We use Anaconda environments to manage its dependencies.

Once you have Anaconda installed, here are the instructions assuming that the current directory is where you have cloned FedScale to.

export FEDSCALE_HOME=$PWD

conda init bash
. ~/.bash_profile
conda env create -f environment.yml
conda activate fedscale

Finally, install NVIDIA CUDA 10.2 or above if you want to use FedScale with GPU support.

Quick installation on Linux

You can simply run install.sh without CUDA.

source install.sh  
pip install -e .

You can add --cuda if you want CUDA 10.2.

source install.sh --cuda
pip install -e .

Update install.sh if you prefer different versions of conda and/or CUDA.

Tutorials

Now that you have FedScale installed, you can start exploring FedScale following one of these introductory tutorials.

  1. Explore FedScale datasets
  2. Deploy your FL experiment
  3. Implement an FL algorithm

FedScale Datasets

We are adding more datasets! Please contribute!

FedScale consists of 20+ large-scale, heterogeneous FL datasets covering computer vision (CV), natural language processing (NLP), and miscellanious tasks. Each one is associated with its training, validation, and testing datasets. Please go to the ./dataset directory and follow the dataset README for more details.

FedScale Runtime

FedScale Runtime is an scalable and extensible deployment as well as evaluation platform to simplify and standardize FL experimental setup and model evaluation. It evolved from our prior system, Oort, which has been shown to scale well and can emulate FL training of thousands of clients in each round.

Please go to ./core directory and follow the README to set up FL training scripts.

Repo Structure

Repo Root
|---- dataset     # FedScale benchmarking datasets
|---- fedscale    # FedScale source code
  |---- core      # Experiment platform of FedScale
|---- examples    # Examples of new plugins
|---- evals       # Backend for FL job submission
    

References

Please read and/or cite as appropriate to use FedScale code or data or learn more about FedScale.

@inproceedings{fedscale-icml,
  title={FedScale: Benchmarking Model and System Performance of Federated Learning at Scale},
  author={Fan Lai and Yinwei Dai and Sanjay S. Singapuram and Jiachen Liu and Xiangfeng Zhu and Harsha V. Madhyastha and Mosharaf Chowdhury},
  booktitle={ICML},
  year={2022}
}

and

@inproceedings{oort-osdi21,
  title={Oort: Efficient Federated Learning via Guided Participant Selection},
  author={Fan Lai and Xiangfeng Zhu and Harsha V. Madhyastha and Mosharaf Chowdhury},
  booktitle={USENIX Symposium on Operating Systems Design and Implementation (OSDI)},
  year={2021}
}

Contributions and Communication

Please submit issues or pull requests as you find bugs or improve FedScale.

If you have any questions or comments, please join our Slack channel, or email us ([email protected]).

fedscale's People

Contributors

fanlai0990 avatar dywsjtu avatar amberljc avatar samuelgong avatar romero027 avatar yuxuan18 avatar xsh-sh avatar mosharaf avatar singam-sanjay avatar etesami avatar chuheng001 avatar qinyeli avatar xuyangm 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.