Skip to content

FeReD is a system that contrasts the performance of cross-device federation using Q-learning, a popular reinforcement learning algorithm.

Notifications You must be signed in to change notification settings

sotostzam/FeReD

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FeReD

fered

This repository contains code for FeReD, a system that contrasts the performance of cross-device federation using Q-learning, a popular reinforcement learning algorithm. FeReD offers step-by-step guidance for in-DBMS SQLite implementation challenges for both horizontal and vertical data partitioning. FeReD also allows to contrast the Q-learning implementations in SQLite vs a standard Python implementation, by highlighting their learning performance, computational efficiency, succinctness and expressiveness.

Structure

FeRed is a web interface that allows a user to perform experiments with various parameters using Q-learning. The root folder contains code the back-end NodeJS codebase. The folder /public/ contains the files related to the web interface, while /public/data contains the code specific to the implementation of Q-learning algorithms in both Python and SQLite.

The most notable files are the following:

  • /app.js contains the code for the Node.js back-end server.
  • /public/data/start-api.sh contains the logic to run models in horizontal/vertical data partitioning.
  • /public/data/start-experiments.sh contains code to run automated experiments with various configurations.
  • /public/data/q-learning.py and /public/data/q-learning.py contain the Q-learning algorithms.

Requirements

  1. Python 3
  2. Numpy
  3. Seaborn and Matplotlib
  4. Node.js and npm

Usage

  1. Download code.
  2. Install required libraries and tools by running bash init.sh in a terminal.
  3. Start API using node app.js.
  4. Open http://localhost:8080/ in your browser.

In order to run the automated experiments

  1. In a terminal cd public/data.
  2. Use bash start-experiments.sh to run the code.

Citation

If you are using this source code in your research please cite:

  • Sotirios Tzamaras, Radu Ciucanu, Marta Soare, Sihem Amer-Yahia. FeReD: Federated Reinforcement Learning in the DBMS. Proceedings of the 31st ACM International Conference on Information and Knowledge Management (CIKM).

[video]

@inproceedings{TzamarasCSA22,
author    = {Tzamaras, S. and Ciucanu, R. and Soare, M. and {Amer-Yahia}, S.},
title     = {{FeReD: Federated Reinforcement Learning in the DBMS}},
booktitle = {{Proceedings of the 31st ACM International Conference on Information and Knowledge Management (CIKM), Demo Track, to appear}},
year      = {2022}
}

Team

sotiris radu marta sihem
Sotirios Tzamaras Radu Ciucanu Marta Soare Sihem Amer-Yahia

About

FeReD is a system that contrasts the performance of cross-device federation using Q-learning, a popular reinforcement learning algorithm.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages