FLEX is a flexible federated learning (FL) framework designed to provide maximum flexibility in FL research experiments. It addresses the key challenges in simulating FL, including modeling decentralized data sources, heterogeneous FL nodes, and customized FL flows.
The framework is divided into three main modules:
Data module: Handles the partition of data among nodes and implements popular FL datasets. It allows simulating diverse data distributions, including horizontal, vertical, and federated transfer learning scenarios.
Actor module: Defines the architecture of the simulated FL scenario, with roles such as client, aggregator, and server. It supports various FL architectures, including client-server and peer-to-peer.
Pool module: Models the FL flow and the ML model of each actor. It provides low-level communication tools, as well as higher-level abstractions (decorators and primitives) to enable framework-agnostic and ML framework-specific implementations of FL flows.
FLEX is published alongside several companion libraries that extend its capabilities to specific ML domains, such as anomaly detection, blockchain, adversarial attacks and defenses, natural language processing, and decision trees. These libraries further enhance the versatility and applicability of FLEX in various research areas.
The framework's modular design, flexibility, and support for popular ML frameworks make it a valuable tool for researchers to innovate and develop novel FL techniques, fine-tune existing ones, and adapt FL to specific use cases.
לשפה אחרת
מתוכן המקור
arxiv.org
שאלות מעמיקות