{"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/fedselect-personalized-federated-learning","title":"FedSelect: Personalized Federated Learning with Customized Selection of Parameters for Fine-Tuning","arxiv_id":"2404.02478","date":"2024-04-03","proceeding":"CVPR 2024 1","authors":["Rishub Tamirisa","Chulin Xie","Wenxuan Bao","Andy Zhou","Ron Arel","Aviv Shamsian"],"abstract":"Standard federated learning approaches suffer when client data distributions have sufficient heterogeneity. Recent methods addressed the client data heterogeneity issue via personalized federated learning (PFL) - a class of FL algorithms aiming to personalize learned global knowledge to better suit the clients' local data distributions. Existing PFL methods usually decouple global updates in deep neural networks by performing personalization on particular layers (i.e. classifier heads) and global aggregation for the rest of the network. However, preselecting network layers for personalization may result in suboptimal storage of global knowledge. In this work, we propose FedSelect, a novel PFL algorithm inspired by the iterative subnetwork discovery procedure used for the Lottery Ticket Hypothesis. FedSelect incrementally expands subnetworks to personalize client parameters, concurrently conducting global aggregations on the remaining parameters. This approach enables the personalization of both client parameters and subnetwork structure during the training process. Finally, we show that FedSelect outperforms recent state-of-the-art PFL algorithms under challenging client data heterogeneity settings and demonstrates robustness to various real-world distributional shifts. Our code is available at https://github.com/lapisrocks/fedselect.","url_abs":"https://arxiv.org/abs/2404.02478v1","url_pdf":"https://arxiv.org/pdf/2404.02478v1.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":"fedselect-personalized-federated-learning","repo_url":"https://github.com/lapisrocks/fedselect","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"federated-learning","task_name":"Federated Learning"},{"task_slug":"personalized-federated-learning","task_name":"Personalized Federated Learning"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2404.02478","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2404.02478"}},"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":"deterministic:regex_extraction","url":"https://github.com/lapisrocks/fedselect","reach":null}],"summary":{"ran":4,"ran_fixture":1,"ran_draft_wrong":9,"ran_honours":2,"unverified":3},"by_repo_kind":{"official":{"samples":19,"ran":16,"repositories":1}},"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":"b2313014ce8d5048","entry":"DatasetSplit","repo":"lapisrocks/fedselect","repo_kind":"official","path":"fedselect.py","file_url":"https://github.com/lapisrocks/fedselect/blob/HEAD/fedselect.py","link_basis":"first_harvest_node","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":"b2313014ce8d5048"}},{"code_sha256_prefix":"05acbeca87ff497d","entry":"MaskLocalAltSGD","repo":"lapisrocks/fedselect","repo_kind":"official","path":"fedselect.py","file_url":"https://github.com/lapisrocks/fedselect/blob/HEAD/fedselect.py","link_basis":"first_harvest_node","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":"05acbeca87ff497d"}},{"code_sha256_prefix":"d9a08753f47b4b11","entry":"_violates_bound","repo":"lapisrocks/fedselect","repo_kind":"official","path":"fedselect.py","file_url":"https://github.com/lapisrocks/fedselect/blob/HEAD/fedselect.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"d9a08753f47b4b11"}},{"code_sha256_prefix":"f2d184a11a427da7","entry":"add_masks","repo":"lapisrocks/fedselect","repo_kind":"official","path":"fedselect.py","file_url":"https://github.com/lapisrocks/fedselect/blob/HEAD/fedselect.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"f2d184a11a427da7"}},{"code_sha256_prefix":"e6e3c2c4cd5c033c","entry":"add_server_weights","repo":"lapisrocks/fedselect","repo_kind":"official","path":"fedselect.py","file_url":"https://github.com/lapisrocks/fedselect/blob/HEAD/fedselect.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"e6e3c2c4cd5c033c"}},{"code_sha256_prefix":"09941af00dbe7aa1","entry":"broadcast_server_to_client_initialization","repo":"lapisrocks/fedselect","repo_kind":"official","path":"fedselect.py","file_url":"https://github.com/lapisrocks/fedselect/blob/HEAD/fedselect.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"09941af00dbe7aa1"}},{"code_sha256_prefix":"948f6eaf9dbe70c8","entry":"cross_client_eval","repo":"lapisrocks/fedselect","repo_kind":"official","path":"fedselect.py","file_url":"https://github.com/lapisrocks/fedselect/blob/HEAD/fedselect.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"948f6eaf9dbe70c8"}},{"code_sha256_prefix":"56d8d20eb64efc68","entry":"delta_update","repo":"lapisrocks/fedselect","repo_kind":"official","path":"fedselect.py","file_url":"https://github.com/lapisrocks/fedselect/blob/HEAD/fedselect.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"56d8d20eb64efc68"}},{"code_sha256_prefix":"06848736b32a3ad6","entry":"div_server_weights","repo":"lapisrocks/fedselect","repo_kind":"official","path":"fedselect.py","file_url":"https://github.com/lapisrocks/fedselect/blob/HEAD/fedselect.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"06848736b32a3ad6"}},{"code_sha256_prefix":"111f70a6f268709f","entry":"eval_layer_sparsity","repo":"lapisrocks/fedselect","repo_kind":"official","path":"fedselect.py","file_url":"https://github.com/lapisrocks/fedselect/blob/HEAD/fedselect.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"111f70a6f268709f"}},{"code_sha256_prefix":"9af578129e5fbde5","entry":"evaluate","repo":"lapisrocks/fedselect","repo_kind":"official","path":"fedselect.py","file_url":"https://github.com/lapisrocks/fedselect/blob/HEAD/fedselect.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"9af578129e5fbde5"}},{"code_sha256_prefix":"71427e03a95c01eb","entry":"get_mask_from_delta","repo":"lapisrocks/fedselect","repo_kind":"official","path":"fedselect.py","file_url":"https://github.com/lapisrocks/fedselect/blob/HEAD/fedselect.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"71427e03a95c01eb"}},{"code_sha256_prefix":"23ec196a055705f6","entry":"init_mask_zeros","repo":"lapisrocks/fedselect","repo_kind":"official","path":"fedselect.py","file_url":"https://github.com/lapisrocks/fedselect/blob/HEAD/fedselect.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"23ec196a055705f6"}},{"code_sha256_prefix":"997128aa3682c39c","entry":"prepare_dataloaders","repo":"lapisrocks/fedselect","repo_kind":"official","path":"fedselect.py","file_url":"https://github.com/lapisrocks/fedselect/blob/HEAD/fedselect.py","link_basis":"first_harvest_node","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":"997128aa3682c39c"}},{"code_sha256_prefix":"396c8158b6badd56","entry":"print_nonzeros","repo":"lapisrocks/fedselect","repo_kind":"official","path":"fedselect.py","file_url":"https://github.com/lapisrocks/fedselect/blob/HEAD/fedselect.py","link_basis":"first_harvest_node","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":"396c8158b6badd56"}},{"code_sha256_prefix":"3341e398e8f8ec8a","entry":"train_personalized","repo":"lapisrocks/fedselect","repo_kind":"official","path":"fedselect.py","file_url":"https://github.com/lapisrocks/fedselect/blob/HEAD/fedselect.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"3341e398e8f8ec8a"}},{"code_sha256_prefix":"13b39ed7d451ca4d","entry":"fedselect_algorithm","repo":"lapisrocks/fedselect","repo_kind":"official","path":"fedselect.py","file_url":"https://github.com/lapisrocks/fedselect/blob/HEAD/fedselect.py","link_basis":"first_harvest_node","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":"13b39ed7d451ca4d"}},{"code_sha256_prefix":"7c4602b460e62e29","entry":"local_alt","repo":"lapisrocks/fedselect","repo_kind":"official","path":"fedselect.py","file_url":"https://github.com/lapisrocks/fedselect/blob/HEAD/fedselect.py","link_basis":"first_harvest_node","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":"7c4602b460e62e29"}},{"code_sha256_prefix":"22016817f52e1a70","entry":"print_lth_stats","repo":"lapisrocks/fedselect","repo_kind":"official","path":"fedselect.py","file_url":"https://github.com/lapisrocks/fedselect/blob/HEAD/fedselect.py","link_basis":"first_harvest_node","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":"22016817f52e1a70"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}