{"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/fl-2-overcoming-few-labels-in-federated-semi","title":"(FL)$^2$: Overcoming Few Labels in Federated Semi-Supervised Learning","arxiv_id":"2410.23227","date":"2024-10-30","proceeding":null,"authors":["SeungJoo Lee","Thanh-Long V. Le","Jaemin Shin","Sung-Ju Lee"],"abstract":"Federated Learning (FL) is a distributed machine learning framework that trains accurate global models while preserving clients' privacy-sensitive data. However, most FL approaches assume that clients possess labeled data, which is often not the case in practice. Federated Semi-Supervised Learning (FSSL) addresses this label deficiency problem, targeting situations where only the server has a small amount of labeled data while clients do not. However, a significant performance gap exists between Centralized Semi-Supervised Learning (SSL) and FSSL. This gap arises from confirmation bias, which is more pronounced in FSSL due to multiple local training epochs and the separation of labeled and unlabeled data. We propose $(FL)^2$, a robust training method for unlabeled clients using sharpness-aware consistency regularization. We show that regularizing the original pseudo-labeling loss is suboptimal, and hence we carefully select unlabeled samples for regularization. We further introduce client-specific adaptive thresholding and learning status-aware aggregation to adjust the training process based on the learning progress of each client. Our experiments on three benchmark datasets demonstrate that our approach significantly improves performance and bridges the gap with SSL, particularly in scenarios with scarce labeled data.","url_abs":"https://arxiv.org/abs/2410.23227v2","url_pdf":"https://arxiv.org/pdf/2410.23227v2.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":"fl-2-overcoming-few-labels-in-federated-semi","repo_url":"https://github.com/seungjoo-ai/FLFL-NeurIPS24","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"federated-learning","task_name":"Federated Learning"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/2410.23227","atlas_url":"https://app.syntology.ai/?focus=2410.23227","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2410.23227"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-25T09:33:49+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/seungjoo-ai/FLFL-NeurIPS24","reach":null}],"summary":{"ran":2,"ran_fixture":3,"ran_honours":1,"ran_draft_wrong":3,"unverified":9},"by_repo_kind":{"official":{"samples":16,"ran":8,"repositories":1},"community":{"samples":2,"ran":1,"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":"dafb8299d9942e92","entry":"ASAM","repo":"seungjoo-ai/FLFL-NeurIPS24","repo_kind":"official","path":"src/algorithm/flfl.py","file_url":"https://github.com/seungjoo-ai/FLFL-NeurIPS24/blob/HEAD/src/algorithm/flfl.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":"dafb8299d9942e92"}},{"code_sha256_prefix":"5937ee54bec0a47e","entry":"SAM","repo":"seungjoo-ai/FLFL-NeurIPS24","repo_kind":"official","path":"src/algorithm/flfl.py","file_url":"https://github.com/seungjoo-ai/FLFL-NeurIPS24/blob/HEAD/src/algorithm/flfl.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"5937ee54bec0a47e"}},{"code_sha256_prefix":"ac50b71552df6ea1","entry":"ce_loss","repo":"seungjoo-ai/FLFL-NeurIPS24","repo_kind":"official","path":"src/algorithm/flfl.py","file_url":"https://github.com/seungjoo-ai/FLFL-NeurIPS24/blob/HEAD/src/algorithm/flfl.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"ac50b71552df6ea1"}},{"code_sha256_prefix":"3b8a3109e8983ec9","entry":"compute_probs","repo":"seungjoo-ai/FLFL-NeurIPS24","repo_kind":"official","path":"src/algorithm/flfl.py","file_url":"https://github.com/seungjoo-ai/FLFL-NeurIPS24/blob/HEAD/src/algorithm/flfl.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"3b8a3109e8983ec9"}},{"code_sha256_prefix":"4cbb9c5dc8b55431","entry":"gen_ulb_targets","repo":"seungjoo-ai/FLFL-NeurIPS24","repo_kind":"official","path":"src/algorithm/flfl.py","file_url":"https://github.com/seungjoo-ai/FLFL-NeurIPS24/blob/HEAD/src/algorithm/flfl.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"4cbb9c5dc8b55431"}},{"code_sha256_prefix":"6a242dc4c1f7039f","entry":"kldiv_with_mask","repo":"seungjoo-ai/FLFL-NeurIPS24","repo_kind":"official","path":"src/algorithm/flfl.py","file_url":"https://github.com/seungjoo-ai/FLFL-NeurIPS24/blob/HEAD/src/algorithm/flfl.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"6a242dc4c1f7039f"}},{"code_sha256_prefix":"d817b1bf3eb37bf5","entry":"make_controls","repo":"diaoenmao/semifl-semi-supervised-federated-learning-for-unlabeled-clients-with-alternate-training","repo_kind":"community","path":"src/process.py","file_url":"https://github.com/diaoenmao/semifl-semi-supervised-federated-learning-for-unlabeled-clients-with-alternate-training/blob/HEAD/src/process.py","link_basis":"first_harvest_node","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":"d817b1bf3eb37bf5"}},{"code_sha256_prefix":"90f8ce204153de70","entry":"smooth_targets","repo":"seungjoo-ai/FLFL-NeurIPS24","repo_kind":"official","path":"src/algorithm/flfl.py","file_url":"https://github.com/seungjoo-ai/FLFL-NeurIPS24/blob/HEAD/src/algorithm/flfl.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"invariant","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"90f8ce204153de70"}},{"code_sha256_prefix":"7cebb43e567583f6","entry":"to_device","repo":"seungjoo-ai/FLFL-NeurIPS24","repo_kind":"official","path":"src/algorithm/flfl.py","file_url":"https://github.com/seungjoo-ai/FLFL-NeurIPS24/blob/HEAD/src/algorithm/flfl.py","link_basis":"first_harvest_node","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":"7cebb43e567583f6"}},{"code_sha256_prefix":"b9b91fbb32f08903","entry":"AlgorithmBase","repo":"seungjoo-ai/FLFL-NeurIPS24","repo_kind":"official","path":"src/algorithm/flfl.py","file_url":"https://github.com/seungjoo-ai/FLFL-NeurIPS24/blob/HEAD/src/algorithm/flfl.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":"b9b91fbb32f08903"}},{"code_sha256_prefix":"967d7bdbfda20315","entry":"FLFL","repo":"seungjoo-ai/FLFL-NeurIPS24","repo_kind":"official","path":"src/algorithm/flfl.py","file_url":"https://github.com/seungjoo-ai/FLFL-NeurIPS24/blob/HEAD/src/algorithm/flfl.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":"967d7bdbfda20315"}},{"code_sha256_prefix":"129da2b3defd51b4","entry":"consistency_loss","repo":"seungjoo-ai/FLFL-NeurIPS24","repo_kind":"official","path":"src/algorithm/flfl.py","file_url":"https://github.com/seungjoo-ai/FLFL-NeurIPS24/blob/HEAD/src/algorithm/flfl.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":"129da2b3defd51b4"}},{"code_sha256_prefix":"33d367de0331ee93","entry":"get_model","repo":"seungjoo-ai/FLFL-NeurIPS24","repo_kind":"official","path":"src/algorithm/flfl.py","file_url":"https://github.com/seungjoo-ai/FLFL-NeurIPS24/blob/HEAD/src/algorithm/flfl.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":"33d367de0331ee93"}},{"code_sha256_prefix":"2b9135b26d4bfac9","entry":"get_sam_optimizer","repo":"seungjoo-ai/FLFL-NeurIPS24","repo_kind":"official","path":"src/algorithm/flfl.py","file_url":"https://github.com/seungjoo-ai/FLFL-NeurIPS24/blob/HEAD/src/algorithm/flfl.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":"2b9135b26d4bfac9"}},{"code_sha256_prefix":"89204826fa1414cd","entry":"make_control_list","repo":"diaoenmao/semifl-semi-supervised-federated-learning-for-unlabeled-clients-with-alternate-training","repo_kind":"community","path":"src/process.py","file_url":"https://github.com/diaoenmao/semifl-semi-supervised-federated-learning-for-unlabeled-clients-with-alternate-training/blob/HEAD/src/process.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":"89204826fa1414cd"}},{"code_sha256_prefix":"3e5e0e1a3245fac2","entry":"make_data_loader","repo":"seungjoo-ai/FLFL-NeurIPS24","repo_kind":"official","path":"src/algorithm/flfl.py","file_url":"https://github.com/seungjoo-ai/FLFL-NeurIPS24/blob/HEAD/src/algorithm/flfl.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":"3e5e0e1a3245fac2"}},{"code_sha256_prefix":"882ae83b71de025e","entry":"recur","repo":"seungjoo-ai/FLFL-NeurIPS24","repo_kind":"official","path":"src/algorithm/flfl.py","file_url":"https://github.com/seungjoo-ai/FLFL-NeurIPS24/blob/HEAD/src/algorithm/flfl.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":"882ae83b71de025e"}},{"code_sha256_prefix":"5a53903788b0993f","entry":"seed_worker","repo":"seungjoo-ai/FLFL-NeurIPS24","repo_kind":"official","path":"src/algorithm/flfl.py","file_url":"https://github.com/seungjoo-ai/FLFL-NeurIPS24/blob/HEAD/src/algorithm/flfl.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":"5a53903788b0993f"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}