{"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/controlling-risk-of-retrieval-augmented","title":"Controlling Risk of Retrieval-augmented Generation: A Counterfactual Prompting Framework","arxiv_id":"2409.16146","date":"2024-09-24","proceeding":null,"authors":["Lu Chen","Ruqing Zhang","Jiafeng Guo","Yixing Fan","Xueqi Cheng"],"abstract":"Retrieval-augmented generation (RAG) has emerged as a popular solution to mitigate the hallucination issues of large language models. However, existing studies on RAG seldom address the issue of predictive uncertainty, i.e., how likely it is that a RAG model's prediction is incorrect, resulting in uncontrollable risks in real-world applications. In this work, we emphasize the importance of risk control, ensuring that RAG models proactively refuse to answer questions with low confidence. Our research identifies two critical latent factors affecting RAG's confidence in its predictions: the quality of the retrieved results and the manner in which these results are utilized. To guide RAG models in assessing their own confidence based on these two latent factors, we develop a counterfactual prompting framework that induces the models to alter these factors and analyzes the effect on their answers. We also introduce a benchmarking procedure to collect answers with the option to abstain, facilitating a series of experiments. For evaluation, we introduce several risk-related metrics and the experimental results demonstrate the effectiveness of our approach. Our code and benchmark dataset are available at https://github.com/ict-bigdatalab/RC-RAG.","url_abs":"https://arxiv.org/abs/2409.16146v2","url_pdf":"https://arxiv.org/pdf/2409.16146v2.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":"controlling-risk-of-retrieval-augmented","repo_url":"https://github.com/ict-bigdatalab/rc-rag","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"none","reach":{"status":"ok"}}],"tasks":[{"task_slug":"benchmarking","task_name":"Benchmarking"},{"task_slug":"hallucination","task_name":"Hallucination"},{"task_slug":"rag","task_name":"RAG"},{"task_slug":"retrieval","task_name":"Retrieval"},{"task_slug":"retrieval-augmented-generation","task_name":"Retrieval-augmented Generation"},{"task_slug":null,"task_name":"counterfactual"}],"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":{"syntology_url":"https://syntology.ai/paper/2409.16146","atlas_url":"https://app.syntology.ai/?focus=2409.16146","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2409.16146"}},"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":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/ict-bigdatalab/rc-rag","reach":{"status":"ok"}}],"summary":{"ran":5,"unverified":3},"by_repo_kind":{"official":{"samples":8,"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":8,"samples":[{"code_sha256_prefix":"a8a8836d932ec18f","entry":"count_fold","repo":"ict-bigdatalab/rc-rag","repo_kind":"official","path":"code/our_method.py","file_url":"https://github.com/ict-bigdatalab/rc-rag/blob/HEAD/code/our_method.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":"a8a8836d932ec18f"}},{"code_sha256_prefix":"d6996f6829d28ba0","entry":"extract_ans_evi","repo":"ict-bigdatalab/rc-rag","repo_kind":"official","path":"code/utils.py","file_url":"https://github.com/ict-bigdatalab/rc-rag/blob/HEAD/code/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":"d6996f6829d28ba0"}},{"code_sha256_prefix":"7aecd499e2dfa745","entry":"get_init_message","repo":"ict-bigdatalab/rc-rag","repo_kind":"official","path":"code/llm_ours.py","file_url":"https://github.com/ict-bigdatalab/rc-rag/blob/HEAD/code/llm_ours.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":"7aecd499e2dfa745"}},{"code_sha256_prefix":"72c89a81b7984d11","entry":"get_new_message","repo":"ict-bigdatalab/rc-rag","repo_kind":"official","path":"code/llm_ours.py","file_url":"https://github.com/ict-bigdatalab/rc-rag/blob/HEAD/code/llm_ours.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":"72c89a81b7984d11"}},{"code_sha256_prefix":"3edffed8712da81b","entry":"get_single_prompt","repo":"ict-bigdatalab/rc-rag","repo_kind":"official","path":"code/prompt.py","file_url":"https://github.com/ict-bigdatalab/rc-rag/blob/HEAD/code/prompt.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":"3edffed8712da81b"}},{"code_sha256_prefix":"e98c8fc431c41f5d","entry":"deal_prediction_with_evidence","repo":"ict-bigdatalab/rc-rag","repo_kind":"official","path":"code/utils.py","file_url":"https://github.com/ict-bigdatalab/rc-rag/blob/HEAD/code/utils.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":"e98c8fc431c41f5d"}},{"code_sha256_prefix":"6d1b76b609c84a4a","entry":"get_llm_result","repo":"ict-bigdatalab/rc-rag","repo_kind":"official","path":"code/llm_ours.py","file_url":"https://github.com/ict-bigdatalab/rc-rag/blob/HEAD/code/llm_ours.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":"6d1b76b609c84a4a"}},{"code_sha256_prefix":"485983d5215ab6e1","entry":"has_answer","repo":"ict-bigdatalab/rc-rag","repo_kind":"official","path":"code/utils.py","file_url":"https://github.com/ict-bigdatalab/rc-rag/blob/HEAD/code/utils.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":"485983d5215ab6e1"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}