Ditto: Fair and Robust Federated Learning Through Personalization

Authors: Tian Li, Shengyuan Hu, Ahmad Beirami, Virginia Smith

ICML 2021 | Conference PDF | Archive PDF | Plain Text | LLM Run Details

Reproducibility Variable Result LLM Response
Research Type Experimental Empirically, across a suite of federated datasets, we show that Ditto not only achieves competitive performance relative to recent personalization methods, but also enables more accurate, robust, and fair models relative to state-of-the-art fair or robust baselines.
Researcher Affiliation Collaboration 1Carnegie Mellon University 2Facebook AI. Correspondence to: Tian Li <tianli@cmu.edu>.
Pseudocode Yes Algorithm 1: Ditto for Personalized FL
Open Source Code Yes Our code, data, and experiments are publicly available at github.com/litian96/ditto.
Open Datasets Yes We use datasets from common FL benchmarks (Caldas et al., 2018; Smith et al., 2017; TFF), which cover both vision and language tasks, and convex and non-convex models. Detailed datasets and models are provided in Table 4 in Appendix C.
Dataset Splits Yes We split local data on each device into train/test/validation sets randomly, and measure performance on the test data. For each device, we select λ locally based on its local validation data. We further assume the devices can make a binary decision on whether the attack is strong or not. For devices with very few validation samples (less than 4), we use a fixed small λ (λ=0.1) for strong attacks, and use a fixed relatively large λ (λ=1) for all other attacks. For devices with more than 5 validation data points, we let each select λ from {0.05, 0.1, 0.2} for strong attacks, and select λ from {0.1, 1, 2} for all other attacks.
Hardware Specification No The paper describes the datasets and models used, and provides details on the experimental setup, but does not explicitly mention any specific hardware specifications like GPU models, CPU models, or cloud resources used for running experiments.
Software Dependencies No The paper mentions using TensorFlow Federated, but it does not specify a version number for it or for any other key software components, libraries, or dependencies used in the experiments.
Experiment Setup Yes We split local data on each device into train/test/validation sets randomly, and measure performance on the test data. For each device, we select λ locally based on its local validation data. We further assume the devices can make a binary decision on whether the attack is strong or not. For devices with very few validation samples (less than 4), we use a fixed small λ (λ=0.1) for strong attacks, and use a fixed relatively large λ (λ=1) for all other attacks. For devices with more than 5 validation data points, we let each select λ from {0.05, 0.1, 0.2} for strong attacks, and select λ from {0.1, 1, 2} for all other attacks.