FLWR Federated Learning Simulation Project

Job ID: 39542890

Budget: $10 – $30 USD

Create a complete Flower (flwr) federated learning simulation project to analyze and compare the performance of different federated learning algorithms. The project should include:

PROJECT STRUCTURE:

- Complete pyproject.toml configuration (hyper paraeters , like i should choose how uch clients .... )

- Client implementation with multiple FL algorithms

- Server implementation with different aggregation strategies

- Performance analysis and visualization tools

- Dataset handling (CIFAR-10 , MNIST, cifar 100, shacspire, femnist, ...)

- Comprehensive logging and metrics collection

REQUIREMENTS:

1. ALGORITHMS TO IMPLEMENT:

- FedAvg (Federated Averaging)

- FedProx (Federated Proximal)

- FedAdam (Federated Adam optimizer)

- fed yogi , scaffold, coop 2. CLIENT FEATURES:

- Configurable model architectures (CNN, ResNet and much more)

- Data partitioning (IID and non-IID scenarios)

- Local training with different optimizers

- Client dropout simulation

- Heterogeneous client capabilities

3. SERVER FEATURES:

- Multiple aggregation strategies

- Adaptive learning rates

- Client selection mechanisms

- Round-based training control

- Convergence detection

4. PERFORMANCE METRICS:

- Training/validation accuracy over rounds

- Communication costs (bytes transferred)

- Training time per round

- Model convergence speed

- Fairness metrics across clients

- Resource utilization

5. ANALYSIS TOOLS:

- Real-time plotting of metrics

- Comparative analysis between algorithms in term of handling heterogeniety, communication and privacy

- Statistical significance testing

- Export results to CSV/JSON

- Generate performance reports, accuracy, loss, model drift, communication cost, convergence,

6. CONFIGURATION:

- YAML/TOML config files for hyperparameters

- Experiment reproducibility (seeds)

- Scalable client numbers (2-20 clients)

- Different data distribution scenarios

7. FILES TO CREATE:

- pyproject.toml (Flower configuration)

- client_app.py (client logic)

- server_app.py (server logic)

- strategy.py (custom strategies)

- models.py (neural network architectures)

- utils.py (helper functions)

- data_utils.py (dataset handling)

- analysis.py (performance analysis)

- visualization.py (plotting and reports)

- config.yaml (experiment parameters)

- requirements.txt (dependencies)

8. SIMULATION SCENARIOS:

- IID data distribution

- Non-IID data distribution (label skew)

- System heterogeneity simulation

- Network latency simulation

- Client availability patterns

TECHNICAL SPECIFICATIONS:

- Use PyTorch for models

- Support both CPU and GPU training

- Implement proper error handling

- Include comprehensive docstrings

- Add type hints throughout

- Create unit tests for key components

- Support Windows, Linux, macOS

DELIVERABLES:

- Working flwr simulation that runs with flwr run .

- Automated experiment runner

- Performance comparison dashboard

- Detailed README with setup instructions

- Example configuration files

- Sample results and analysis

Make the code modular, well-documented, and production-ready. Include example experiments that demonstrate the performance differences between federated learning algorithms under various conditions.