{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/190807873","title":"Federated Learning: Challenges, Methods, and Future Directions","arxiv_id":"1908.07873","date":"2019-08-21","proceeding":null,"authors":["Tian Li","Anit Kumar Sahu","Ameet Talwalkar","Virginia Smith"],"abstract":"Federated learning involves training statistical models over remote devices or siloed data centers, such as mobile phones or hospitals, while keeping data localized. Training in heterogeneous and potentially massive networks introduces novel challenges that require a fundamental departure from standard approaches for large-scale machine learning, distributed optimization, and privacy-preserving data analysis. In this article, we discuss the unique characteristics and challenges of federated learning, provide a broad overview of current approaches, and outline several directions of future work that are relevant to a wide range of research communities.","url_abs":"https://arxiv.org/abs/1908.07873v1","url_pdf":"https://arxiv.org/pdf/1908.07873v1.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"abstracts"},"code_links":[{"paper_slug":"190807873","repo_url":"https://github.com/AshwinRJ/Federated-Learning-PyTorch","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"190807873","repo_url":"https://github.com/BRAIN-chain/FRAIN","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"machine-learning","task_name":"BIG-bench Machine Learning"},{"task_slug":"distributed-optimization","task_name":"Distributed Optimization"},{"task_slug":"federated-learning","task_name":"Federated Learning"},{"task_slug":"privacy-preserving","task_name":"Privacy Preserving"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=1908.07873","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"1908.07873"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-24T18:15:14+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/BRAIN-chain/FRAIN","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/AshwinRJ/Federated-Learning-PyTorch","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran":4,"ran_draft_wrong":1,"unverified":6},"by_repo_kind":{"listed":{"samples":11,"ran":5,"repositories":2}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"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"},"n_pointer_only_for_licence":0,"samples":[{"code_sha256_prefix":"ab2485d028020739","entry":"average_weights","repo":"AshwinRJ/Federated-Learning-PyTorch","repo_kind":"listed","path":"src/utils.py","file_url":"https://github.com/AshwinRJ/Federated-Learning-PyTorch/blob/HEAD/src/utils.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"ab2485d028020739"}},{"code_sha256_prefix":"ec520ee882f0b378","entry":"batch_crop","repo":"BRAIN-chain/FRAIN","repo_kind":"listed","path":"src/airbench/dataloader.py","file_url":"https://github.com/BRAIN-chain/FRAIN/blob/HEAD/src/airbench/dataloader.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"ec520ee882f0b378"}},{"code_sha256_prefix":"edd47cb681681aaa","entry":"batch_flip_lr","repo":"BRAIN-chain/FRAIN","repo_kind":"listed","path":"src/airbench/dataloader.py","file_url":"https://github.com/BRAIN-chain/FRAIN/blob/HEAD/src/airbench/dataloader.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"edd47cb681681aaa"}},{"code_sha256_prefix":"d9107114749c3e49","entry":"mnist_iid","repo":"AshwinRJ/Federated-Learning-PyTorch","repo_kind":"listed","path":"src/sampling.py","file_url":"https://github.com/AshwinRJ/Federated-Learning-PyTorch/blob/HEAD/src/sampling.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"d9107114749c3e49"}},{"code_sha256_prefix":"1ac4b0319ab8b7e4","entry":"test_inference","repo":"AshwinRJ/Federated-Learning-PyTorch","repo_kind":"listed","path":"src/update.py","file_url":"https://github.com/AshwinRJ/Federated-Learning-PyTorch/blob/HEAD/src/update.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"1ac4b0319ab8b7e4"}},{"code_sha256_prefix":"0ebb87472156f31b","entry":"awe_interpolate","repo":"BRAIN-chain/FRAIN","repo_kind":"listed","path":"src/FedAWE.py","file_url":"https://github.com/BRAIN-chain/FRAIN/blob/HEAD/src/FedAWE.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"0ebb87472156f31b"}},{"code_sha256_prefix":"457a5df3cb0b6d9f","entry":"fedaam_predict_e","repo":"BRAIN-chain/FRAIN","repo_kind":"listed","path":"src/FedAAM.py","file_url":"https://github.com/BRAIN-chain/FRAIN/blob/HEAD/src/FedAAM.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"457a5df3cb0b6d9f"}},{"code_sha256_prefix":"2a40a9f5231eaa2c","entry":"lerp_state_dict","repo":"BRAIN-chain/FRAIN","repo_kind":"listed","path":"src/FedAAM.py","file_url":"https://github.com/BRAIN-chain/FRAIN/blob/HEAD/src/FedAAM.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"2a40a9f5231eaa2c"}},{"code_sha256_prefix":"7cd628afb2ceee6f","entry":"mnist_noniid","repo":"AshwinRJ/Federated-Learning-PyTorch","repo_kind":"listed","path":"src/sampling.py","file_url":"https://github.com/AshwinRJ/Federated-Learning-PyTorch/blob/HEAD/src/sampling.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"7cd628afb2ceee6f"}},{"code_sha256_prefix":"d2ebfb26fe107398","entry":"mnist_noniid_unequal","repo":"AshwinRJ/Federated-Learning-PyTorch","repo_kind":"listed","path":"src/sampling.py","file_url":"https://github.com/AshwinRJ/Federated-Learning-PyTorch/blob/HEAD/src/sampling.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"d2ebfb26fe107398"}},{"code_sha256_prefix":"cade6ac1d1e6cd2f","entry":"zeros_like_state_dict","repo":"BRAIN-chain/FRAIN","repo_kind":"listed","path":"src/FedAAM.py","file_url":"https://github.com/BRAIN-chain/FRAIN/blob/HEAD/src/FedAAM.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"cade6ac1d1e6cd2f"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}