{"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/praffl-a-preference-aware-scheme-in-fair","title":"PraFFL: A Preference-Aware Scheme in Fair Federated Learning","arxiv_id":"2404.08973","date":"2024-04-13","proceeding":null,"authors":["Rongguang Ye","Wei-Bin Kou","Ming Tang"],"abstract":"Fairness in federated learning has emerged as a critical concern, aiming to develop an unbiased model among groups (e.g., male or female) of diverse sensitive features. However, there is a trade-off between model performance and fairness, i.e., improving model fairness will decrease model performance. Existing approaches have characterized such a trade-off by introducing hyperparameters to quantify client's preferences for model fairness and model performance. Nevertheless, these approaches are limited to scenarios where each client has only a single pre-defined preference, and fail to work in practical systems where each client generally has multiple preferences. To this end, we propose a Preference-aware scheme in Fair Federated Learning (called PraFFL) to generate preference-specific models in real time. PraFFL can adaptively adjust the model based on each client's preferences to meet their needs. We theoretically prove that PraFFL can offer the optimal model tailored to an arbitrary preference of each client, and show its linear convergence. Experimental results show that our proposed PraFFL outperforms six fair federated learning algorithms in terms of the model's capability of adapting to clients' different preferences. Our implementation is available at https://github.com/rG223/PraFFL.","url_abs":"https://arxiv.org/abs/2404.08973v3","url_pdf":"https://arxiv.org/pdf/2404.08973v3.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":"praffl-a-preference-aware-scheme-in-fair","repo_url":"https://github.com/rg223/praffl","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok"}}],"tasks":[{"task_slug":"fairness","task_name":"Fairness"},{"task_slug":"federated-learning","task_name":"Federated Learning"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2404.08973","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2404.08973"}},"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/rg223/praffl","reach":{"status":"ok"}}],"summary":{"ran":5,"unverified":1},"by_repo_kind":{"official":{"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":"d58e104f92c4e0d1","entry":"count","repo":"rg223/praffl","repo_kind":"official","path":"compas/truth_tables.py","file_url":"https://github.com/rg223/praffl/blob/HEAD/compas/truth_tables.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"d58e104f92c4e0d1"}},{"code_sha256_prefix":"942a3f67860b9ab0","entry":"is_race","repo":"rg223/praffl","repo_kind":"official","path":"compas/truth_tables.py","file_url":"https://github.com/rg223/praffl/blob/HEAD/compas/truth_tables.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"942a3f67860b9ab0"}},{"code_sha256_prefix":"73f8423aeebe8c11","entry":"logit_compute","repo":"rg223/praffl","repo_kind":"official","path":"utils.py","file_url":"https://github.com/rg223/praffl/blob/HEAD/utils.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":"73f8423aeebe8c11"}},{"code_sha256_prefix":"af5a95d369cd77ad","entry":"pRule","repo":"rg223/praffl","repo_kind":"official","path":"utils.py","file_url":"https://github.com/rg223/praffl/blob/HEAD/utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"af5a95d369cd77ad"}},{"code_sha256_prefix":"2b59a02ac41136e9","entry":"riskDifference","repo":"rg223/praffl","repo_kind":"official","path":"utils.py","file_url":"https://github.com/rg223/praffl/blob/HEAD/utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"2b59a02ac41136e9"}},{"code_sha256_prefix":"647d3d12398266bc","entry":"run_dp","repo":"rg223/praffl","repo_kind":"official","path":"DP_run.py","file_url":"https://github.com/rg223/praffl/blob/HEAD/DP_run.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":"647d3d12398266bc"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}