Giter VIP home page Giter VIP logo

shixiongqi / flame Goto Github PK

View Code? Open in Web Editor NEW

This project forked from cisco-open/flame

0.0 1.0 0.0 13.21 MB

flame is a federated learning system for edge with flexibility and scalability at the core of its design.

License: Apache License 2.0

Shell 2.58% Python 46.90% Go 32.31% Makefile 0.13% Dockerfile 0.11% Mustache 0.26% HTML 0.16% TypeScript 16.78% CSS 0.61% SCSS 0.04% JavaScript 0.13%

flame's Introduction

flame logo

๐Ÿ”ฅ Quickstart! (Ubuntu) ๐Ÿ”ฅ

๐Ÿ”ฅ Quickstart! (macOS) ๐Ÿ”ฅ

Flame is a platform that enables developers to compose and deploy federated learning (FL) training workloads easily. The system is comprised of a service (control plane) and a python library (data plane). The service manages machine learning workloads, while the python library facilitates composition of ML workloads. And the library is also responsible for executing FL workloads. With extensibility of its library, Flame can support various experimentations and use cases.

Prerequisites

The target runtime environment is Linux. Development has been mainly conducted under macOS environment. One should first set up a development environment. For more details, refer to here.

This repo has the following directory structure:

flame
 โ”œโ”€โ”€ CODE_OF_CONDUCT.md
 โ”œโ”€โ”€ CONTRIBUTING.md
 โ”œโ”€โ”€ LICENSE
 โ”œโ”€โ”€ Makefile -> build/Makefile
 โ”œโ”€โ”€ README.md
 โ”œโ”€โ”€ api (specification of REST API for flame apiserver)
 โ”œโ”€โ”€ build (configuration files for building flame binaries and container image)
 โ”œโ”€โ”€ cmd (source files for flame control plane)
 โ”œโ”€โ”€ docs (document folder)
 โ”œโ”€โ”€ examples (example folder)
 โ”œโ”€โ”€ fiab (dev/test env in a single box)
 โ”œโ”€โ”€ go.mod
 โ”œโ”€โ”€ go.sum
 โ”œโ”€โ”€ lib (python library for core flame data plane)
 โ”œโ”€โ”€ lint.sh
 โ”œโ”€โ”€ pkg (go packages for cmd)
 โ””โ”€โ”€ scripts (utility scripts)

Supported Algorithms/Mechanisms

Method Note
FedAvg https://arxiv.org/pdf/1602.05629.pdf
FedYogi https://arxiv.org/pdf/2003.00295.pdf
FedAdam https://arxiv.org/pdf/2003.00295.pdf
FedAdaGrad https://arxiv.org/pdf/2003.00295.pdf
FedProx https://arxiv.org/pdf/1812.06127.pdf
FedBuff Asynchronous FL (https://arxiv.org/pdf/2106.06639.pdf and https://arxiv.org/pdf/2111.04877.pdf); secure aggregation is excluded
FedDyn https://arxiv.org/pdf/2111.04263.pdf
OORT https://arxiv.org/pdf/2010.06081.pdf; client selection algorithm / mechanism; experimental release
Hierarchical FL https://arxiv.org/pdf/1905.06641.pdf; a simplified version where k2 = 1; support both synchronous and asynchronous FL
Hybrid FL A hybrid approach to combine federated learning with ring-reduce; topology motivated from https://openreview.net/pdf?id=H0oaWl6THa

Documentation

A full document can be found here. The document will be updated on a regular basis.

Support

We welcome feedback, questions, and issue reports.

Citation

@inproceedings{flame2023,
    author = {Harshit Daga and Jaemin Shin and Dhruv Garg and Ada Gavrilovska and Myungjin Lee and Ramana Rao Kompella},
    title = {Flame: Simplifying Topology Extension in Federated Learning},
    year = {2023},
    booktitle = {Proceedings of the 2023 ACM Symposium on Cloud Computing},
    keywords = {Federated Learning, Distributed Machine Learning},
    series = {SoCC '23}
}

flame's People

Contributors

myungjin avatar dependabot[bot] avatar dhruvsgarg avatar gustavbaumgart avatar gaoxiangluo avatar jaemin-shin avatar ravikhandavilli avatar openwithcode avatar raresgaia123 avatar lkurija1 avatar ritvik-verma avatar divlik avatar damarcil avatar justaugustus avatar alexandruubytex avatar sriaradhyula 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.