Skip to content

AndrewKim1997/gcfl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

38 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Journal: Transactions on Machine Learning Research arXiv: 2509.02391 Google Colab Python 3.10+ License

GCFL: Reproducibility Code

Quick startReproduceColabNotesCite

This repository reproduces the paper’s core tables for Gaming and Cooperation in Federated Learning, which studies federated learning as a strategic, governed system: clients may game metrics, free-ride, collude, or attack, and these behaviors can distort reported progress and reduce welfare.

The paper proposes monitoring- and audit-oriented diagnostics (e.g., manipulability / price-of-gaming / price-of-cooperation style indices) to separate welfare-improving updates from strategic ones, and evaluates them in stylized simulations and modern FL benchmarks.

Each notebook in this repo is standalone and prints only the corresponding paper table (minimal logs) for reproducibility.

  • Paper: Gaming and Cooperation in Federated Learning: What Can Happen and How to Monitor It
  • What this repo provides: table-reproduction notebooks that print only the corresponding table to the console (no noisy intermediate logs).
  • Supplementary notebook (original): notebooks/original/GCFL_main.ipynb is the original supplementary material notebook uploaded to OpenReview (kept here for reference).

⚡ Quick start

Setup

pip install -r requirements.txt

Run a notebook from the terminal (recommended)

Notebooks are executed by converting to a temporary Python script and piping to python, so printed tables appear in your terminal:

jupyter nbconvert --to python --stdout "notebooks/Table_4(real_world_FL).ipynb" | python -

Note: filenames include parentheses, so quotes are required in most shells.


⟲ Reproduce paper tables

Each notebook is standalone and prints only its table.

# Tables 1–3 (stylized simulation)
jupyter nbconvert --to python --stdout "notebooks/Table_1_3(stylized_simulation).ipynb" | python -

# Table 4 (Fashion-MNIST FL: head metric vs tail welfare)
jupyter nbconvert --to python --stdout "notebooks/Table_4(real_world_FL).ipynb" | python -

# Table 5 (E1: estimator reliability under audits)
jupyter nbconvert --to python --stdout "notebooks/Table_5(estimator_reliability).ipynb" | python -

# Table 6 (E2: noise/privacy trade-off)
jupyter nbconvert --to python --stdout "notebooks/Table_6(noise_and_auditability).ipynb" | python -

# Table 7 (E3: high-alignment metric sweep)
jupyter nbconvert --to python --stdout "notebooks/Table_7(high_alignment_metrics).ipynb" | python -

# Table 8 (E4: FEMNIST modern attack–defense replication)
jupyter nbconvert --to python --stdout "notebooks/Table_8(modern_attack).ipynb" | python -

Notes

  • Tables 1–7 use Fashion-MNIST or stylized simulations and should run after installing requirements.txt.
  • Table 8 additionally downloads FEMNIST via flwr-datasets / datasets at runtime.

☁ Running on Google Colab (optional)

You can also run the notebooks on Google Colab after downloading/cloning this repository.

  1. Clone (or upload) this repository into your Colab environment.
  2. Install dependencies.
  3. Open any notebook under notebooks/ and run all cells.

Minimal Colab setup cell

# In a Colab notebook cell
!git clone https://github.com/AndrewKim1997/gcfl.git
%cd gcfl
!pip install -q -r requirements.txt

We do not provide a hosted Colab runtime; the notebooks run in your own Colab environment after cloning/downloading this repo.


✎ Reproducibility notes

  • Random seeds are fixed inside each notebook (see the seed field in the config).
  • Notebooks are designed to avoid noisy intermediate logs and print table-ready summaries only.
  • Large artifacts (raw datasets, checkpoints, long histories) are not committed to the repository.

▦ Repository structure (typical)

├── notebooks/
│   ├── Table_1_3(stylized_simulation).ipynb
│   ├── Table_4(real_world_FL).ipynb
│   ├── Table_5(estimator_reliability).ipynb
│   ├── Table_6(noise_and_auditability).ipynb
│   ├── Table_7(high_alignment_metrics).ipynb
│   ├── Table_8(modern_attack).ipynb
│   └── original/
│       └── GCFL_main.ipynb
├── requirements.txt
├── CITATION.cff
└── LICENSE

❖ Citation

If you use this code, please cite the paper and this repository.

@article{
kim2026gaming,
title={Gaming and Cooperation in Federated Learning: What Can Happen and How to Monitor It},
author={Dongseok Kim and Hyoungsun Choi and Mohamed Jismy Aashik Rasool and Gisung Oh},
journal={Transactions on Machine Learning Research},
issn={2835-8856},
year={2026},
url={https://openreview.net/forum?id=Ck3q5YdWIv},
note={}
}
  • See CITATION.cff for citation metadata.

⚖ License

This project is released under the terms of the license in LICENSE.

About

Official code release for reproducing experiments in "Gaming and Cooperation in Federated Learning: What Can Happen and How to Monitor It".

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors