{"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/does-rag-introduce-unfairness-in-llms","title":"Does RAG Introduce Unfairness in LLMs? Evaluating Fairness in Retrieval-Augmented Generation Systems","arxiv_id":"2409.19804","date":"2024-09-29","proceeding":null,"authors":["Xuyang Wu","Shuowei Li","Hsin-Tai Wu","Zhiqiang Tao","Yi Fang"],"abstract":"Retrieval-Augmented Generation (RAG) has recently gained significant attention for its enhanced ability to integrate external knowledge sources into open-domain question answering (QA) tasks. However, it remains unclear how these models address fairness concerns, particularly with respect to sensitive attributes such as gender, geographic location, and other demographic factors. First, as language models evolve to prioritize utility, like improving exact match accuracy, fairness considerations may have been largely overlooked. Second, the complex, multi-component architecture of RAG methods poses challenges in identifying and mitigating biases, as each component is optimized for distinct objectives. In this paper, we aim to empirically evaluate fairness in several RAG methods. We propose a fairness evaluation framework tailored to RAG, using scenario-based questions and analyzing disparities across demographic attributes. Our experimental results indicate that, despite recent advances in utility-driven optimization, fairness issues persist in both the retrieval and generation stages. These findings underscore the need for targeted interventions to address fairness concerns throughout the RAG pipeline. The dataset and code used in this study are publicly available at this GitHub Repository https://github.com/elviswxy/RAG_fairness .","url_abs":"https://arxiv.org/abs/2409.19804v2","url_pdf":"https://arxiv.org/pdf/2409.19804v2.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":"does-rag-introduce-unfairness-in-llms","repo_url":"https://github.com/elviswxy/rag_fairness","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"pytorch","reach":{"status":"ok"}}],"tasks":[{"task_slug":"fairness","task_name":"Fairness"},{"task_slug":"open-domain-question-answering","task_name":"Open-Domain Question Answering"},{"task_slug":"question-answering","task_name":"Question Answering"},{"task_slug":"rag","task_name":"RAG"},{"task_slug":"retrieval","task_name":"Retrieval"},{"task_slug":"retrieval-augmented-generation","task_name":"Retrieval-augmented Generation"}],"methods":[{"method_slug":"adam","method_name":"Adam"},{"method_slug":"attention","method_name":"Attention"},{"method_slug":"attention-dropout","method_name":"Attention Dropout"},{"method_slug":"bart","method_name":"BART"},{"method_slug":"bert","method_name":"BERT"},{"method_slug":"bpe","method_name":"BPE"},{"method_slug":"dense-connections","method_name":"Dense Connections"},{"method_slug":"dropout","method_name":"Dropout"},{"method_slug":"layer-normalization","method_name":"Layer Normalization"},{"method_slug":"linear-layer","method_name":"Linear Layer"},{"method_slug":"linear-warmup-with-linear-decay","method_name":"Linear Warmup With Linear Decay"},{"method_slug":"multi-head-attention","method_name":"Multi-Head Attention"},{"method_slug":"rag","method_name":"RAG"},{"method_slug":"residual-connection","method_name":"Residual Connection"},{"method_slug":"softmax","method_name":"Softmax"},{"method_slug":"weight-decay","method_name":"Weight Decay"},{"method_slug":"wordpiece","method_name":"WordPiece"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2409.19804","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2409.19804"}},"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/elviswxy/rag_fairness","reach":{"status":"ok"}}],"summary":{"ran":6,"ran_fixture":1,"ran_draft_wrong":1,"unverified":2},"by_repo_kind":{"official":{"samples":10,"ran":8,"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":10,"samples":[{"code_sha256_prefix":"b645135617451850","entry":"basic_process","repo":"elviswxy/rag_fairness","repo_kind":"official","path":"preprocess_trec_wiki.py","file_url":"https://github.com/elviswxy/rag_fairness/blob/HEAD/preprocess_trec_wiki.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":"b645135617451850"}},{"code_sha256_prefix":"2dd8e40379d7bbb9","entry":"compute_bleu","repo":"elviswxy/rag_fairness","repo_kind":"official","path":"flashrag/evaluator/_bleu.py","file_url":"https://github.com/elviswxy/rag_fairness/blob/HEAD/flashrag/evaluator/_bleu.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":"2dd8e40379d7bbb9"}},{"code_sha256_prefix":"6bef6bdd6eb44070","entry":"cross_attention_forward","repo":"elviswxy/rag_fairness","repo_kind":"official","path":"flashrag/generator/fid.py","file_url":"https://github.com/elviswxy/rag_fairness/blob/HEAD/flashrag/generator/fid.py","link_basis":"plan_row","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"6bef6bdd6eb44070"}},{"code_sha256_prefix":"1c191093e712cd32","entry":"gender_random_all_irrelevant_pairs_by_q_text","repo":"elviswxy/rag_fairness","repo_kind":"official","path":"prepare_rag_fairness_data.py","file_url":"https://github.com/elviswxy/rag_fairness/blob/HEAD/prepare_rag_fairness_data.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":"1c191093e712cd32"}},{"code_sha256_prefix":"573b1bed7e8e5370","entry":"gender_random_all_relevant_pairs_by_q_text","repo":"elviswxy/rag_fairness","repo_kind":"official","path":"prepare_rag_fairness_data.py","file_url":"https://github.com/elviswxy/rag_fairness/blob/HEAD/prepare_rag_fairness_data.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":"573b1bed7e8e5370"}},{"code_sha256_prefix":"74ed96cc94ee5e21","entry":"gender_random_one_relevant_pairs_by_q_text","repo":"elviswxy/rag_fairness","repo_kind":"official","path":"prepare_rag_fairness_data.py","file_url":"https://github.com/elviswxy/rag_fairness/blob/HEAD/prepare_rag_fairness_data.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":"74ed96cc94ee5e21"}},{"code_sha256_prefix":"a0df218ea7171bde","entry":"get_existed_results","repo":"elviswxy/rag_fairness","repo_kind":"official","path":"offline_evaluation.py","file_url":"https://github.com/elviswxy/rag_fairness/blob/HEAD/offline_evaluation.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":"a0df218ea7171bde"}},{"code_sha256_prefix":"dae7ab386661a4f4","entry":"normalize_answer","repo":"elviswxy/rag_fairness","repo_kind":"official","path":"flashrag/evaluator/utils.py","file_url":"https://github.com/elviswxy/rag_fairness/blob/HEAD/flashrag/evaluator/utils.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"dae7ab386661a4f4"}},{"code_sha256_prefix":"71b1ede1102f38f1","entry":"create_segments","repo":"elviswxy/rag_fairness","repo_kind":"official","path":"preprocess_trec_wiki.py","file_url":"https://github.com/elviswxy/rag_fairness/blob/HEAD/preprocess_trec_wiki.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":"71b1ede1102f38f1"}},{"code_sha256_prefix":"7b7eafb43497dd26","entry":"load_corpus","repo":"elviswxy/rag_fairness","repo_kind":"official","path":"preprocess_trec_wiki.py","file_url":"https://github.com/elviswxy/rag_fairness/blob/HEAD/preprocess_trec_wiki.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":"7b7eafb43497dd26"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}