Papers › Communication-Efficient Learning of Deep Networks from Decentralized Data

Communication-Efficient Learning of Deep Networks from Decentralized Data

17 Feb 2016arXiv:1602.05629archive 2025-07-28

H. Brendan McMahan, Eider Moore, Daniel Ramage, Seth Hampson, Blaise Agüera y Arcas

Modern mobile devices have access to a wealth of data suitable for learning models, which in turn can greatly improve the user experience on the device. For example, language models can improve speech recognition and text entry, and image models can automatically select good photos. However, this rich data is often privacy sensitive, large in quantity, or both, which may preclude logging to the data center and training there using conventional approaches. We advocate an alternative that leaves the training data distributed on the mobile devices, and learns a shared model by aggregating locally-computed updates. We term this decentralized approach Federated Learning. We present a practical method for the federated learning of deep networks based on iterative model averaging, and conduct an extensive empirical evaluation, considering five different model architectures and four datasets. These experiments demonstrate the approach is robust to the unbalanced and non-IID data distributions that are a defining characteristic of this setting. Communication costs are the principal constraint, and we show a reduction in required communication rounds by 10-100x as compared to synchronized stochastic gradient descent.

PaperPDFCodeCode Syntology ran

In Syntology Open this paper in Syntology's Atlas, the map of the papers in Syntology's graph and their citations.

For agents, Syntology's MCP tool lists every function and class Syntology harvested from this paper and whether it ran (how to connect): get_harvested_code_for_paper(arxiv_id="1602.05629")

Code

Syntology Ran 40 of 77 code samples harvested from 19 repositories linked to this paper; 37 have no recorded run. Of those that ran: 2 ran · honoured contract; 19 ran · our draft was wrong; 1 ran · fixture could not drive it; 18 ran with no contract checked.

By repository: community (archive-listed): 73 samples from 19 repositories, 36 ran; 4 identical to code first harvested elsewhere. The run record, sample by sample. “Ran” means executed on a synthesized input, not that the code is correct or reproduces the paper.

41 repositories listed; official and paper-mentioned ones first.

AshwinRJ/Federated-Learning-PyTorch mentioned on GitHubpytorchMIT report
BRAIN-chain/FRAIN mentioned on GitHubpytorchMIT report
Koukyosyumei/NAIST-FedML-Experiments mentioned on GitHubpytorch report
Kylin824/AndroidFLServer mentioned on GitHub report
LeoSerena/MSThesis mentioned on GitHubpytorch report
Lyhao0212/FedAvg mentioned on GitHubpytorch report
TsingZ0/FL-IoT mentioned on GitHubpytorch report
TsingZ0/PFL-Non-IID mentioned on GitHubpytorch report
adap/flower mentioned on GitHubtf report
andrewkkan/fathom mentioned on GitHubjaxApache-2.0 report
carbonati/fl-zoo mentioned on GitHubpytorch report
flexible-fl/flex-nlp mentioned on GitHubAGPL-3.0 report
futabato/FutabatedLearning mentioned on GitHubpytorch report
google/fedjax mentioned on GitHubjaxApache-2.0 report
hongshenghu/source-inference-fl mentioned on GitHubpytorch report
intel/openfl mentioned on GitHubtf report
jaemin-shin/fedbalancer mentioned on GitHubpytorch report
jahanxb/flcode mentioned on GitHubpytorch report
khanhnguyen21006/fldocvqa mentioned on GitHubpytorch report
krishnap25/trfa mentioned on GitHubpytorch report
mohamad-m2/federated-learning mentioned on GitHubpytorch report
nadavlab/federatedbehrt mentioned on GitHubpytorchApache-2.0 report
nliulab/fl-benchmark mentioned on GitHubtf report
securefederatedai/openfl mentioned on GitHubjaxApache-2.0 report
siddarth-c/FedGMA mentioned on GitHubpytorch report
thejungwon/gc-fed mentioned on GitHubpytorch report
vaseline555/Federated-Learning-in-PyTorch mentioned on GitHubpytorchMIT report
vaseline555/superfed mentioned on GitHubpytorch report
yjlee22/FedShare mentioned on GitHubpytorch report
yuetan031/fedproto mentioned on GitHubpytorch report
zhuangdizhu/FedGen mentioned on GitHubpytorch report

Repository list and official/mentioned flags are the archive's, frozen 2025-07-28. Reachability, where shown, is from one Syntology probe window (2026-09-16 to 2026-09-18); repositories not probed show nothing. GitHub stars are not tracked.

Code Syntology ran Syntology

77 samples harvested; 40 ran; 2 honoured the contract we drafted; 37 have no recorded run. Read from Syntology's graph 2026-09-24; that is when this build read the record, not when the samples ran.

2ran · honoured contract
19ran · our draft was wrong
1ran · fixture could not drive it
18ran
37unverified

Licence: 50 of the 77 samples are pointer only, meaning Syntology does not serve that copy's text. This page shows no code text for any sample; each one links to its file in the repository.

Harvested from 19 repositories linked to this paper, official or community; each sample names its own and says which. Some samples are identical code Syntology first harvested from another repository; for those, this paper's copy is not located and its licence is not recorded. “Ran” means the sample executed on a synthesized input. It does not mean the output is correct, and nothing here reproduces the paper's results. “Honoured” and “violated” refer to a contract Syntology drafted from the code itself; “our draft was wrong” and “fixture could not drive it” are failures of Syntology's instrument, not of the code.

Each sample ends with its code_sha256, Syntology's identity for that exact code. An agent fetches the stored sample with Syntology's MCP tool get_code(code_sha256="…") (how to connect); click an identity to copy that call.

Repository labels, per sample. official repository: The archive marks this repository official for the paper. named in the paper: The archive records that the paper mentions this repository; it is not marked official. community (archive-listed): In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper. found in paper text by Syntology: Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted. community: Not in the archive's code links for this paper; a community repository Syntology harvested. Samples from a repository marked official are listed first. Licence labels name the repository's licence as recorded at harvest. “Pointer only” means Syntology does not serve that copy's text, for one of four reasons: no licence file was found; the licence was not identified; the licence is recorded as permissive but that copy's record is not marked cleared; or the licence is outside the permissive list Syntology serves text under (MIT, Apache-2.0, BSD and similar). Some licences outside that list permit redistribution, such as WTFPL, and GPL-3.0 under its conditions; they are simply not on the list. Hover a licence label for the reason. File links open the file on GitHub at the default branch, which may have changed since the harvest.

Aggregation TinfoilHat0/Defending-Against-Backdoors-with-Robust-Learning-Rate/src/aggregation.py community (archive-listed) ran MIT (permissive) · 27387c8ca3db36f7 · report
CNN_CIFAR TinfoilHat0/Defending-Against-Backdoors-with-Robust-Learning-Rate/src/aggregation.py community (archive-listed) ran MIT (permissive) · 27acc6a286937512 · report
CNN_MNIST TinfoilHat0/Defending-Against-Backdoors-with-Robust-Learning-Rate/src/aggregation.py community (archive-listed) ran MIT (permissive) · 90b6212457a2eeac · report
CalibrationError vaseline555/superfed/src/algorithm.py community (archive-listed) ran · metamorphic tier: deterministic no licence file found · pointer only · 30399e1931903438 · report
Client TsingZ0/PFL-Non-IID/system/flcore/servers/serveravg.py community (archive-listed) ran Apache-2.0 (permissive) · 94a806a7b827ab03 · report
DLG TsingZ0/PFL-Non-IID/system/flcore/servers/serveravg.py community (archive-listed) ran · honoured contract Apache-2.0 (permissive) · 8bc43a565d54b3b7 · report
DatasetSplit yuetan031/fedproto/lib/update.py community (archive-listed) ran no licence file found · pointer only · c78fddd166ce8803 · report
DiversityLoss zhuangdizhu/FedGen/FLAlgorithms/servers/serverpFedGen.py community (archive-listed) ran fingerprinted no licence file found · pointer only · 9002f2f24f643954 · report
FedAvg hongshenghu/source-inference-fl/models/Fed.py community (archive-listed) ran · our draft was wrong no licence file found · pointer only · f9964d719c5cb8f4 · report
FedAvg HongshengHu/SIAs-Beyond_MIAs_in_Federated_Learning/FedAvg-SIAs/models/Fed.py community (archive-listed) ran · our draft was wrong no licence file found · pointer only · 5719ee7d03438fcb · report
GaussianMomentsAccountant michelle0924hhx/DiffPrivate_FedLearning/DiffPrivate_FedLearning.py community (archive-listed) ran no licence file found · pointer only · 3068c1c62cfc8856 · report
GenerateBinomialTable michelle0924hhx/DiffPrivate_FedLearning/DiffPrivate_FedLearning.py community (archive-listed) ran · honoured contract fingerprinted no licence file found · pointer only · f80efcf932ec4fc9 · report
GenerateModels siddarth-c/FedGMA/FedGMA.py community (archive-listed) ran no licence file found · pointer only · ba03b24a1c116ca5 · report
Generator zhuangdizhu/FedGen/FLAlgorithms/servers/serverpFedGen.py community (archive-listed) ran no licence file found · pointer only · 3bb64f6c7b4918a8 · report
LocalUpdate yuetan031/fedproto/lib/update.py community (archive-listed) ran no licence file found · pointer only · cbaf694f21e1aee7 · report
MomentsAccountant michelle0924hhx/DiffPrivate_FedLearning/DiffPrivate_FedLearning.py community (archive-listed) ran no licence file found · pointer only · 3a4c930f37c98bb3 · report
PrivAgent michelle0924hhx/DiffPrivate_FedLearning/DiffPrivate_FedLearning.py community (archive-listed) ran no licence file found · pointer only · b7721a7ba8bc78a8 · report
Server krishnap25/trfa/models/server.py community (archive-listed) ran BSD-2-Clause (permissive) · 97fedffecec3aab4 · report
Server zhuangdizhu/FedGen/FLAlgorithms/servers/serverpFedGen.py community (archive-listed) ran no licence file found · pointer only · 1289a4420bf541e2 · report
User zhuangdizhu/FedGen/FLAlgorithms/servers/serverpFedGen.py community (archive-listed) ran no licence file found · pointer only · 7f0a553d7972e0f1 · report
aggregate_data_ zhuangdizhu/FedGen/FLAlgorithms/servers/serverpFedGen.py community (archive-listed) ran · our draft was wrong no licence file found · pointer only · e1a5ca9193a358f7 · report
aggregate_user_data zhuangdizhu/FedGen/FLAlgorithms/servers/serverpFedGen.py community (archive-listed) ran · our draft was wrong no licence file found · pointer only · 7661927a759ac10e · report
aggregation_avg jahanxb/flcode/utils/aggregation.py community (archive-listed) ran · our draft was wrong no licence file found · pointer only · 149a5f07c19c3bc1 · report
average_weights futabato/FutabatedLearning/src/federatedlearning/server/aggregations/aggregators.py community (archive-listed) ran · our draft was wrong MIT (permissive) · 0964f793bbd43856 · report
check_validaity_of_FLAGS michelle0924hhx/DiffPrivate_FedLearning/DiffPrivate_FedLearning.py community (archive-listed) ran · our draft was wrong no licence file found · pointer only · 613879cfff5654f0 · report
clientAVG TsingZ0/PFL-Non-IID/system/flcore/servers/serveravg.py community (archive-listed) ran Apache-2.0 (permissive) · 3bc02616a0c2f3c0 · report
convert_data zhuangdizhu/FedGen/FLAlgorithms/servers/serverpFedGen.py community (archive-listed) ran · our draft was wrong fingerprinted no licence file found · pointer only · 6f6629dd2979fc07 · report
get_accuracy vaseline555/superfed/src/algorithm.py community (archive-listed) ran · fixture could not drive it no licence file found · pointer only · a8ce655aa6965797 · report
get_data_dir zhuangdizhu/FedGen/FLAlgorithms/servers/serverpFedGen.py community (archive-listed) ran · our draft was wrong no licence file found · pointer only · f494d00eb5149c70 · report
get_dataset_name zhuangdizhu/FedGen/FLAlgorithms/servers/serverpFedGen.py community (archive-listed) ran · our draft was wrong no licence file found · pointer only · 363b0a1f2289036b · report
get_log_path zhuangdizhu/FedGen/FLAlgorithms/servers/serverpFedGen.py community (archive-listed) ran · our draft was wrong no licence file found · pointer only · 5c4ddcb24259e62c · report
get_model TinfoilHat0/Defending-Against-Backdoors-with-Robust-Learning-Rate/src/aggregation.py community (archive-listed) ran · our draft was wrong MIT (permissive) · 4472f07d6a8fd2f2 · report
pFedIBOptimizer zhuangdizhu/FedGen/FLAlgorithms/servers/serverpFedGen.py community (archive-listed) ran no licence file found · pointer only · 01a2c86decde069b · report
read_client_data TsingZ0/FL-IoT/system/flcore/servers/serverbase.py community (archive-listed) ran · our draft was wrong MIT (permissive) · f417998fde6fd19a · report
read_client_data_text TsingZ0/FL-IoT/system/flcore/servers/serverbase.py community (archive-listed) ran · our draft was wrong MIT (permissive) · a5adfb5eb99305a0 · report
read_user_data zhuangdizhu/FedGen/FLAlgorithms/servers/serverpFedGen.py community (archive-listed) ran · our draft was wrong no licence file found · pointer only · 42e1737bd4ec3392 · report
BaseFederater carbonati/fl-zoo/fl_zoo/optimizers/fed_avg.py community (archive-listed) unverified no licence file found · pointer only · 3b5b02a898d9474a · report
FedAvg carbonati/fl-zoo/fl_zoo/optimizers/fed_avg.py community (archive-listed) unverified no licence file found · pointer only · ace0580d4c7a8494 · report
FedAvg TsingZ0/PFL-Non-IID/system/flcore/servers/serveravg.py community (archive-listed) unverified Apache-2.0 (permissive) · 01b0d50f47833fc2 · report
FedAvg thejungwon/gc-fed/algorithms/fedavg.py community (archive-listed) unverified no licence file found · pointer only · 32845aa08d8061c2 · report
FedAvgClient thejungwon/gc-fed/algorithms/fedavg.py community (archive-listed) unverified no licence file found · pointer only · f23e66c3c788f6d3 · report
FedGMA siddarth-c/FedGMA/FedGMA.py community (archive-listed) unverified no licence file found · pointer only · d3598b24ac0de8b1 · report
FedGen zhuangdizhu/FedGen/FLAlgorithms/servers/serverpFedGen.py community (archive-listed) unverified no licence file found · pointer only · 145ea8a36102e663 · report
Flag michelle0924hhx/DiffPrivate_FedLearning/DiffPrivate_FedLearning.py community (archive-listed) unverified no licence file found · pointer only · 4593abf3a327baff · report
MNISTtier siddarth-c/FedGMA/FedGMA.py community (archive-listed) unverified no licence file found · pointer only · d741d8a02d52077a · report
PerturbedGradientDescent jaemin-shin/fedbalancer/models/fedprox.py community (archive-listed) unverified BSD-2-Clause (permissive) · 1bf34112ce4681b0 · report
Server TsingZ0/PFL-Non-IID/system/flcore/servers/serveravg.py community (archive-listed) unverified Apache-2.0 (permissive) · 4a872374dd01c93c · report
Server TsingZ0/FL-IoT/system/flcore/servers/serverbase.py community (archive-listed) unverified MIT (permissive) · 1ec6ded80631df99 · report
UserpFedGen zhuangdizhu/FedGen/FLAlgorithms/servers/serverpFedGen.py community (archive-listed) unverified no licence file found · pointer only · 8e4739acd40f3d69 · report
WeightsAccountant michelle0924hhx/DiffPrivate_FedLearning/DiffPrivate_FedLearning.py community (archive-listed) unverified no licence file found · pointer only · 93ea07af87ba7658 · report
basic_update vaseline555/superfed/src/algorithm.py community (archive-listed) unverified no licence file found · pointer only · e2fccae0b0de2c93 · report
bring_Accountant_up_to_date michelle0924hhx/DiffPrivate_FedLearning/DiffPrivate_FedLearning.py community (archive-listed) unverified no licence file found · pointer only · a7f11a62bc15ac32 · report
concat_examples google/fedjax/fedjax/core/client_datasets.py community (archive-listed) unverified Apache-2.0 (permissive) · cb706aa8e56ba095 · report
create_generative_model zhuangdizhu/FedGen/FLAlgorithms/servers/serverpFedGen.py community (archive-listed) unverified no licence file found · pointer only · 64c46ba1e1f82f7e · report
dataclass google/fedjax/fedjax/core/dataclasses.py community (archive-listed) unverified Apache-2.0 (permissive) · a36088e67fbe174c · report
f google/fedjax/fedjax/core/client_datasets_benchmark.py community (archive-listed) unverified Apache-2.0 (permissive) · dcee316376a55eb4 · report
get_pseudo_random_state google/fedjax/fedjax/core/client_samplers.py community (archive-listed) unverified Apache-2.0 (permissive) · 3ee7d7048f08a521 · report
global_step_creator michelle0924hhx/DiffPrivate_FedLearning/DiffPrivate_FedLearning.py community (archive-listed) unverified no licence file found · pointer only · b39d33cd042fdb29 · report
init_net nadavlab/federatedbehrt/src/utils.py community (archive-listed) unverified Apache-2.0 (permissive) · 6e22953f199abc82 · report
initiate_model vaseline555/superfed/src/algorithm.py community (archive-listed) unverified no licence file found · pointer only · 11ed58b6be97110c · report
interpolate_params google/fedjax/fedjax/algorithms/apfl.py community (archive-listed) unverified Apache-2.0 (permissive) · 2602483010db71c1 · report
interpolation_grad_fn google/fedjax/fedjax/algorithms/apfl.py community (archive-listed) unverified Apache-2.0 (permissive) · b30e159a1a359cb7 · report
launch_tensor_board nadavlab/federatedbehrt/src/utils.py community (archive-listed) unverified Apache-2.0 (permissive) · a7ec603ffc6341e9 · report
load_from_directory_or_initialize michelle0924hhx/DiffPrivate_FedLearning/DiffPrivate_FedLearning.py community (archive-listed) unverified no licence file found · pointer only · e3197a91e56e1d29 · report
num_examples google/fedjax/fedjax/core/client_datasets.py community (archive-listed) unverified Apache-2.0 (permissive) · 502c0dd72f65b76b · report
print_loss_and_accuracy michelle0924hhx/DiffPrivate_FedLearning/DiffPrivate_FedLearning.py community (archive-listed) unverified no licence file found · pointer only · 4ed5df8adc24ce03 · report
print_new_comm_round michelle0924hhx/DiffPrivate_FedLearning/DiffPrivate_FedLearning.py community (archive-listed) unverified no licence file found · pointer only · 971f2e53c3ea8040 · report
read_data zhuangdizhu/FedGen/FLAlgorithms/servers/serverpFedGen.py community (archive-listed) unverified no licence file found · pointer only · 84a910b186221aee · report
read_data TsingZ0/FL-IoT/system/flcore/servers/serverbase.py community (archive-listed) unverified MIT (permissive) · 1689826ac99c2f30 · report
run_differentially_private_federated_averaging michelle0924hhx/DiffPrivate_FedLearning/DiffPrivate_FedLearning.py community (archive-listed) unverified no licence file found · pointer only · e5893d26b59ab8d7 · report
save_progress michelle0924hhx/DiffPrivate_FedLearning/DiffPrivate_FedLearning.py community (archive-listed) unverified no licence file found · pointer only · 481ec0c09590a06c · report
slice_examples google/fedjax/fedjax/core/client_datasets.py community (archive-listed) unverified Apache-2.0 (permissive) · a6e676db5d309765 · report
train willyfh/federated-learning-tensorflow/federated_train.py community (archive-listed) unverified MIT (permissive) · f457743261fa931b · report
FedAvg identical code first harvested elsewhere ran · our draft was wrong licence of this copy not recorded · 75d8463105db0e97 · report
Vname_to_FeedPname identical code first harvested elsewhere ran · our draft was wrong licence of this copy not recorded · 4b5f34895003fc5f · report
Vname_to_Pname identical code first harvested elsewhere ran · our draft was wrong licence of this copy not recorded · 96ac62e9e705aa09 · report
create_save_dir identical code first harvested elsewhere ran · our draft was wrong licence of this copy not recorded · f466d758bb1dc678 · report

Tasks

Federated LearningSpeech Recognition

Results from the paper archive 2025-07-28

No leaderboard rows for this paper in the archive.

Report a problem or propose a change · a person checks every report against the paper or source before anything changes; decisions are listed on /corrections