Table of Contents
Fetching ...

fluke: Federated Learning Utility frameworK for Experimentation and research

Mirko Polato

TL;DR

The paper tackles the need for rapid prototyping in Federated Learning by introducing fluke, a lightweight, open-source framework that simulates centralized FL on a single machine. It provides a modular architecture with datasets, client/server bases, a simulated communication channel, algorithm templates, and evaluation tools to accelerate development and benchmarking. Key contributions include an architecture blueprint, a command-line interface for experiment execution and config templating, and practical guidance for implementing new algorithms via Client/Server templates and a CentralizedFL entry point. By prioritizing reproducibility and extensibility, fluke aims to streamline FL research, enabling quick comparisons of methods such as $FedAvg$, $FedProx$, and related techniques while remaining open-source and actively updated.

Abstract

Since its inception in 2016, Federated Learning (FL) has been gaining tremendous popularity in the machine learning community. Several frameworks have been proposed to facilitate the development of FL algorithms, but researchers often resort to implementing their algorithms from scratch, including all baselines and experiments. This is because existing frameworks are not flexible enough to support their needs or the learning curve to extend them is too steep. In this paper, we present \fluke, a Python package designed to simplify the development of new FL algorithms. fluke is specifically designed for prototyping purposes and is meant for researchers or practitioners focusing on the learning components of a federated system. fluke is open-source, and it can be either used out of the box or extended with new algorithms with minimal overhead.

fluke: Federated Learning Utility frameworK for Experimentation and research

TL;DR

The paper tackles the need for rapid prototyping in Federated Learning by introducing fluke, a lightweight, open-source framework that simulates centralized FL on a single machine. It provides a modular architecture with datasets, client/server bases, a simulated communication channel, algorithm templates, and evaluation tools to accelerate development and benchmarking. Key contributions include an architecture blueprint, a command-line interface for experiment execution and config templating, and practical guidance for implementing new algorithms via Client/Server templates and a CentralizedFL entry point. By prioritizing reproducibility and extensibility, fluke aims to streamline FL research, enabling quick comparisons of methods such as , , and related techniques while remaining open-source and actively updated.

Abstract

Since its inception in 2016, Federated Learning (FL) has been gaining tremendous popularity in the machine learning community. Several frameworks have been proposed to facilitate the development of FL algorithms, but researchers often resort to implementing their algorithms from scratch, including all baselines and experiments. This is because existing frameworks are not flexible enough to support their needs or the learning curve to extend them is too steep. In this paper, we present \fluke, a Python package designed to simplify the development of new FL algorithms. fluke is specifically designed for prototyping purposes and is meant for researchers or practitioners focusing on the learning components of a federated system. fluke is open-source, and it can be either used out of the box or extended with new algorithms with minimal overhead.

Paper Structure

This paper contains 15 sections, 2 figures, 1 algorithm.

Figures (2)

  • Figure 1: Overview of the fluke's architecture with the interactions between the submodules.
  • Figure 2: Example of algorithms' performance with fluke.