{"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/ragchecker-a-fine-grained-framework-for","title":"RAGChecker: A Fine-grained Framework for Diagnosing Retrieval-Augmented Generation","arxiv_id":"2408.08067","date":"2024-08-15","proceeding":null,"authors":["Dongyu Ru","Lin Qiu","Xiangkun Hu","Tianhang Zhang","Peng Shi","Shuaichen Chang","Cheng Jiayang","Cunxiang Wang","Shichao Sun","Huanyu Li","Zizhao Zhang","Binjie Wang","Jiarong Jiang","Tong He","Zhiguo Wang","PengFei Liu","Yue Zhang","Zheng Zhang"],"abstract":"Despite Retrieval-Augmented Generation (RAG) showing promising capability in leveraging external knowledge, a comprehensive evaluation of RAG systems is still challenging due to the modular nature of RAG, evaluation of long-form responses and reliability of measurements. In this paper, we propose a fine-grained evaluation framework, RAGChecker, that incorporates a suite of diagnostic metrics for both the retrieval and generation modules. Meta evaluation verifies that RAGChecker has significantly better correlations with human judgments than other evaluation metrics. Using RAGChecker, we evaluate 8 RAG systems and conduct an in-depth analysis of their performance, revealing insightful patterns and trade-offs in the design choices of RAG architectures. The metrics of RAGChecker can guide researchers and practitioners in developing more effective RAG systems. This work has been open sourced at https://github.com/amazon-science/RAGChecker.","url_abs":"https://arxiv.org/abs/2408.08067v2","url_pdf":"https://arxiv.org/pdf/2408.08067v2.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":"ragchecker-a-fine-grained-framework-for","repo_url":"https://github.com/amazon-science/ragchecker","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"none","reach":{"status":"ok","spdx":"Apache-2.0"}}],"tasks":[{"task_slug":"diagnostic","task_name":"Diagnostic"},{"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=2408.08067","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2408.08067"}},"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/amazon-science/ragchecker","reach":{"status":"ok","spdx":"Apache-2.0"}}],"summary":{"ran":3,"unverified":2},"by_repo_kind":{"official":{"samples":5,"ran":3,"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":"405c910ceee3d396","entry":"format_response","repo":"amazon-science/ragchecker","repo_kind":"official","path":"rag_baselines/generation.py","file_url":"https://github.com/amazon-science/ragchecker/blob/HEAD/rag_baselines/generation.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"405c910ceee3d396"}},{"code_sha256_prefix":"ff81b5723118624d","entry":"get_messages","repo":"amazon-science/ragchecker","repo_kind":"official","path":"rag_baselines/generation.py","file_url":"https://github.com/amazon-science/ragchecker/blob/HEAD/rag_baselines/generation.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"ff81b5723118624d"}},{"code_sha256_prefix":"14128cf28501c01b","entry":"to_bool","repo":"amazon-science/ragchecker","repo_kind":"official","path":"ragchecker/computation.py","file_url":"https://github.com/amazon-science/ragchecker/blob/HEAD/ragchecker/computation.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"14128cf28501c01b"}},{"code_sha256_prefix":"b470e78e9edb3ebc","entry":"call_completion","repo":"amazon-science/ragchecker","repo_kind":"official","path":"rag_baselines/generation.py","file_url":"https://github.com/amazon-science/ragchecker/blob/HEAD/rag_baselines/generation.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"b470e78e9edb3ebc"}},{"code_sha256_prefix":"ad05949a96877c52","entry":"process_line","repo":"amazon-science/ragchecker","repo_kind":"official","path":"rag_baselines/chunking.py","file_url":"https://github.com/amazon-science/ragchecker/blob/HEAD/rag_baselines/chunking.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"ad05949a96877c52"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}