{"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/arxiv-2602-01126","title":"WinFLoRA: Incentivizing Client-Adaptive Aggregation in Federated LoRA under Privacy Heterogeneity","arxiv_id":"2602.01126","date":"2026-02-01","proceeding":null,"authors":["Mengsha Kou","Xiaoyu Xia","Ziqi Wang","Ibrahim Khalil","Runkun Luo","Jingwen Zhou","Minhui Xue"],"abstract":"Large Language Models (LLMs) increasingly underpin intelligent web applications, from chatbots to search and recommendation, where efficient specialization is essential. Low-Rank Adaptation (LoRA) enables such adaptation with minimal overhead, while federated LoRA allows web service providers to fine-tune shared models without data sharing. However, in privacy-sensitive deployments, clients inject varying levels of differential privacy (DP) noise, creating privacy heterogeneity that misaligns individual incentives and global performance. In this paper, we propose WinFLoRA, a privacy-heterogeneous federated LoRA that utilizes aggregation weights as incentives with noise awareness. Specifically, the noises from clients are estimated based on the uploaded LoRA adapters. A larger weight indicates greater influence on the global model and better downstream task performance, rewarding lower-noise contributions. By up-weighting low-noise updates, WinFLoRA improves global accuracy while accommodating clients' heterogeneous privacy requirements. Consequently, WinFLoRA aligns heterogeneous client utility in terms of privacy and downstream performance with global model objectives without third-party involvement. Extensive evaluations demonstrate that across multiple LLMs and datasets, WinFLoRA achieves up to 52.58% higher global accuracy and up to 2.56x client utility than state-of-the-art benchmarks. Source code is publicly available at https://github.com/koums24/WinFLoRA.git.","url_abs":"https://arxiv.org/abs/2602.01126","url_pdf":"https://arxiv.org/pdf/2602.01126","source":{"archive":null,"snapshot":"2025-07-28","note":"not in the Papers with Code archive (frozen at the snapshot)","row_kind":"graph","title_abstract_authors_date":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license)"},"code_links":[],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2602.01126","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2602.01126"}},"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":[{"mentioned_in_github":null,"is_official":null,"provenance":"deterministic:regex_extraction","mentioned_in_paper":null,"url":"https://github.com/koums24/WinFLoRA","reach":null}],"summary":{"ran":1,"ran_draft_wrong":1,"ran_honours":3,"unverified":1},"by_repo_kind":{"found_in_text":{"samples":6,"ran":5,"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":6,"samples":[{"code_sha256_prefix":"5fd7ca07588c9dc9","entry":"RPCA","repo":"koums24/WinFLoRA","repo_kind":"found_in_text","path":"Src/rpca.py","file_url":"https://github.com/koums24/WinFLoRA/blob/HEAD/Src/rpca.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"5fd7ca07588c9dc9"}},{"code_sha256_prefix":"56741d554036032d","entry":"_nat_key","repo":"koums24/WinFLoRA","repo_kind":"found_in_text","path":"Src/rpca.py","file_url":"https://github.com/koums24/WinFLoRA/blob/HEAD/Src/rpca.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"56741d554036032d"}},{"code_sha256_prefix":"399d2092b1acf1af","entry":"_to_numpy","repo":"koums24/WinFLoRA","repo_kind":"found_in_text","path":"Src/rpca.py","file_url":"https://github.com/koums24/WinFLoRA/blob/HEAD/Src/rpca.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"399d2092b1acf1af"}},{"code_sha256_prefix":"84acad9ac6c7de20","entry":"build_rpca_M_from_A","repo":"koums24/WinFLoRA","repo_kind":"found_in_text","path":"Src/rpca.py","file_url":"https://github.com/koums24/WinFLoRA/blob/HEAD/Src/rpca.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"84acad9ac6c7de20"}},{"code_sha256_prefix":"e8c787292cd6416a","entry":"build_rpca_M_from_B","repo":"koums24/WinFLoRA","repo_kind":"found_in_text","path":"Src/rpca.py","file_url":"https://github.com/koums24/WinFLoRA/blob/HEAD/Src/rpca.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"e8c787292cd6416a"}},{"code_sha256_prefix":"7aa19f5c8266032d","entry":"RPCA_weights","repo":"koums24/WinFLoRA","repo_kind":"found_in_text","path":"Src/rpca.py","file_url":"https://github.com/koums24/WinFLoRA/blob/HEAD/Src/rpca.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"7aa19f5c8266032d"}}]},"arxiv_metadata":{"licence":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license)","fields":["title","abstract","authors","date"],"primary_category":"cs.LG","source":"arxiv_2026.jsonl"},"syntology_extracted_results":null}