Skip to content

Repository files navigation

EAFL: Energy-Aware Federated Learning Framework on Battery-Powered Clients (Paper)

This repository contains scripts and instructions of running EAFL, a framework for experimenting with federated learning battery-powered clients. EAFL extends FedScale framework which provides a diverse set of challenging and realistic benchmark datasets to facilitate scalable, comprehensive, and reproducible federated learning (FL) research. FedScale datasets are large-scale, encompassing a diverse range of important FL tasks, such as image classification, object detection, language modeling, speech recognition, and reinforcement learning. For each dataset, we provide a unified evaluation protocol using realistic data splits and evaluation metrics. To meet the pressing need for reproducing realistic FL at scale. The framework leverages an efficient evaluation platform for automated runtime to simplify and standardize the process of FL experimental setup and model evaluation. Our evaluation platform provides flexible APIs to implement new FL algorithms and include new execution backends with minimal developer efforts.

EAFL is open-source with permissive licenses and actively maintained, and we welcome feedback and contributions from the community!

Overview

Getting Started

Our install.sh will install the following automatically:

  • Anaconda Package Manager
  • CUDA 10.2

Note: if you prefer different versions of conda and CUDA, please check comments in install.sh for details.

Run the following commands to install EAFL.

git clone https://github.com/SAYED-Sys-Lab/EAFL
cd EAFL
source install.sh 

Realistic FL Datasets

We are adding more datasets! Please feel free to contribute!

We provide real-world datasets for the federated learning community, and plan to release much more soon! Each is associated with its training, validation and testing dataset. A summary of statistics for training datasets can be found in Table, and you can refer to each folder for more details. Due to the super large scale of datasets, we are uploading these data and carefully validating their implementations to FAR. So we are actively making each dataset available for FAR experiments.

CV tasks:

DatasetData Type# of Clients# of SamplesExample Task
iNatureImage2,295193KClassification
FMNISTImage3,400640KClassification
OpenImageImage13,7711.3MClassification, Object detection
Google LandmarkImage43,4843.6MClassification
CharadesVideo26610KAction recognition
VLOGVideo4,9009.6kVideo classification, Object detection

NLP tasks:

DatasetData Type# of Clients# of SamplesExample Task
EuroparlText27,8351.2MText translation
Blog CorpusText19,320137MWord prediction
StackoverflowText342,477135MWord prediction, classification
RedditText1,660,820351MWord prediction
Amazon ReviewText1,822,925166MClassification, Word prediction
CoQAText7,189114KQuestion Answering
LibriTTSText2,45637KText to speech
Google SpeechAudio2,618105KSpeech recognition
Common VoiceAudio12,9761.1MSpeech recognition

Misc Applications:

DatasetData Type# of Clients# of SamplesExample Task
TaobaoText182,8060.9MRecommendation
Go datasetText150,3334.9MReinforcement learning

Note that no details were kept of any of the participants age, gender, or location, and random ids were assigned to each individual. In using these datasets, we will strictly obey to their licenses, and these datasets provided in this repo should be used for research purpose only.

Please go to ./dataset directory and follow the dataset README for more details.

Run Experiments

EAFL is an automated and easily-deployable evaluation platform, to simplify and standardize the FL experimental setup and model evaluation under a practical setting.

Automated emulation enables the developer to benchmark various FL efforts with practical FL data and metrics

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

Repo Structure

Repo Root
|---- dataset # Realistic datasets in EAFL
|---- core # Experiment platform of EAFL
|---- examples # Examples of new plugins
|---- evals # Backend of job submission

Notes

please consider to cite our paper if you use the code or data in your research project.

@inproceedings{eafl-arxiv,
title={EAFL: Towards Energy-Aware Federated Learning on Battery-Powered Edge Devices},
author={Amna Arouj and Ahmed M. Abdelmoniem},
booktitle={arXiv:2208.04505},
year={2021}
}

and

@inproceedings{eafl-fededge22,
title={Towards Energy-Aware Federated Learning on Battery-Powered Clients},
author={Amna Arouj and Ahmed M. Abdelmoniem},
booktitle={ACM FedEdge workshop - MobiCom},
year={2022}
}

Contact

Amna Arouj (amna.arouj@gmail.com), Ahmed M. Abdelmoniem (ahmedcs982@gmail.com)

About

Energy-Aware Federated Learning

Resources

Stars

9 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages