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.
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.
- Python 3
- Numpy
- Seaborn and Matplotlib
- Node.js and npm
- Download code.
- Install required libraries and tools by running
bash init.sh
in a terminal. - Start API using
node app.js
. - Open http://localhost:8080/ in your browser.
- In a terminal
cd public/data
. - Use
bash start-experiments.sh
to run the code.
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}
}
Sotirios Tzamaras | Radu Ciucanu | Marta Soare | Sihem Amer-Yahia |