This repository proposes a Data-Centric approach to Energy-Efficient Federated Learning, addressing the environmental footprint of Federated Learning while maintaining Machine Learning performances.
It borns to investigate the role of Data Quality measures at each network node and develop a methodology to optimize Data Selection in the Federated Learning training process, aiming to reduce the energy consumption and carbon emissions of AI training in a Federated environment.
The Eco Friendly Federated Learning Platform has been developed to support the research study 👉🏽 Read Paper
Experiment and run Federated Learning Simulations, powered by Flower.ai, on your local machine with your own datasets for Time Series Classification tasks
-
Dataset Partitions: Define the source Dataset for your training session and the number of Federated Learning clients
-
Data Quality Poisoning: Configure the Data Quality Dimensions measure of client data partitions
-
Training Strategy: Choose which node strategy selection suits best for your training session
-
Federated Configuration: Insert the Data Characteristic and the Energy Mix info required per each node of your Federated environment
-
Recommender Methodology: Select and test one of the Recommender Methodolgy proposed
-
Simulation: Test Federated Learning training with your optimized Configuration
- Clone the repository:
git clone https://github.com/POLIMIGreenISE/ecoFL.git- Install dependencies:
pip install -r requirements.txtNote: Requirements are optimized for MacOS. Adjust as needed for your operating system.
- Launch the application:
streamlit run frontend/main.py- Start simulating! 🚀
- Input datasets must be in
.txtformat and shoudl follow The UEA multivariate time series classification archive schema. - The research experiments results are stored in 'data_nodes' directory. The platform saves the simulation results with a new schema.
- Collect more experimental data points to improve the training of the reduction model used in the Recommender Methodologies
- Retrieve carbon intensity values of the nodes from the location throgh ElectricityMaps API
We welcome contributions! Feel free to submit pull requests or open issues to help improve the project.
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.





