{"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/deepretrieval-powerful-query-generation-for","title":"DeepRetrieval: Hacking Real Search Engines and Retrievers with Large Language Models via Reinforcement Learning","arxiv_id":"2503.00223","date":"2025-02-28","proceeding":null,"authors":["Pengcheng Jiang","Jiacheng Lin","Lang Cao","Runchu Tian","SeongKu Kang","Zifeng Wang","Jimeng Sun","Jiawei Han"],"abstract":"Information retrieval systems are crucial for enabling effective access to large document collections. Recent approaches have leveraged Large Language Models (LLMs) to enhance retrieval performance through query augmentation, but often rely on expensive supervised learning or distillation techniques that require significant computational resources and hand-labeled data. We introduce DeepRetrieval, a reinforcement learning (RL) approach that trains LLMs for query generation through trial and error without supervised data (reference query). Using retrieval metrics as rewards, our system generates queries that maximize retrieval performance. DeepRetrieval outperforms leading methods on literature search with 65.07% (vs. previous SOTA 24.68%) recall for publication search and 63.18% (vs. previous SOTA 32.11%) recall for trial search using real-world search engines. DeepRetrieval also dominates in evidence-seeking retrieval, classic information retrieval and SQL database search. With only 3B parameters, it outperforms industry-leading models like GPT-4o and Claude-3.5-Sonnet on 11/13 datasets. These results demonstrate that our RL approach offers a more efficient and effective paradigm for information retrieval. Our data and code are available at: https://github.com/pat-jj/DeepRetrieval.","url_abs":"https://arxiv.org/abs/2503.00223v3","url_pdf":"https://arxiv.org/pdf/2503.00223v3.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":"deepretrieval-powerful-query-generation-for","repo_url":"https://github.com/pat-jj/deepretrieval","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"information-retrieval","task_name":"Information Retrieval"},{"task_slug":"reinforcement-learning","task_name":"Reinforcement Learning"},{"task_slug":"reinforcement-learning-1","task_name":"Reinforcement Learning (RL)"},{"task_slug":"retrieval","task_name":"Retrieval"},{"task_slug":"reinforcement-learning-2","task_name":"reinforcement-learning"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2503.00223","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2503.00223"}},"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/pat-jj/deepretrieval","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran_draft_wrong":1,"unverified":24},"by_repo_kind":{"official":{"samples":25,"ran":1,"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":"08dfd0c28c8d8777","entry":"nice_look_table","repo":"pat-jj/deepretrieval","repo_kind":"official","path":"code/data_preprocess/bird.py","file_url":"https://github.com/pat-jj/deepretrieval/blob/HEAD/code/data_preprocess/bird.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"08dfd0c28c8d8777"}},{"code_sha256_prefix":"6e8ab81618f0098c","entry":"convert_dict_to_str","repo":"pat-jj/deepretrieval","repo_kind":"official","path":"code/data_preprocess/ctgov.py","file_url":"https://github.com/pat-jj/deepretrieval/blob/HEAD/code/data_preprocess/ctgov.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"6e8ab81618f0098c"}},{"code_sha256_prefix":"faed77b9c35affca","entry":"convert_dict_to_str","repo":"pat-jj/deepretrieval","repo_kind":"official","path":"code/data_preprocess/ctgov_32.py","file_url":"https://github.com/pat-jj/deepretrieval/blob/HEAD/code/data_preprocess/ctgov_32.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"faed77b9c35affca"}},{"code_sha256_prefix":"bc5d24e0433026c0","entry":"create_huggingface_repo","repo":"pat-jj/deepretrieval","repo_kind":"official","path":"code/upload_datasets.py","file_url":"https://github.com/pat-jj/deepretrieval/blob/HEAD/code/upload_datasets.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"bc5d24e0433026c0"}},{"code_sha256_prefix":"b2c496f92d26455f","entry":"extract_query","repo":"pat-jj/deepretrieval","repo_kind":"official","path":"query_rewrite.py","file_url":"https://github.com/pat-jj/deepretrieval/blob/HEAD/query_rewrite.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"b2c496f92d26455f"}},{"code_sha256_prefix":"b83cfc67f1280b1b","entry":"extract_query","repo":"pat-jj/deepretrieval","repo_kind":"official","path":"code/src/query_rewrite.py","file_url":"https://github.com/pat-jj/deepretrieval/blob/HEAD/code/src/query_rewrite.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"b83cfc67f1280b1b"}},{"code_sha256_prefix":"f4549a2164452ce1","entry":"format_prompt","repo":"pat-jj/deepretrieval","repo_kind":"official","path":"query_rewrite.py","file_url":"https://github.com/pat-jj/deepretrieval/blob/HEAD/query_rewrite.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"f4549a2164452ce1"}},{"code_sha256_prefix":"dbf81b46206bc092","entry":"format_prompt","repo":"pat-jj/deepretrieval","repo_kind":"official","path":"code/src/query_rewrite.py","file_url":"https://github.com/pat-jj/deepretrieval/blob/HEAD/code/src/query_rewrite.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"dbf81b46206bc092"}},{"code_sha256_prefix":"a59933530f0ecb8e","entry":"generate_schema_prompt","repo":"pat-jj/deepretrieval","repo_kind":"official","path":"code/data_preprocess/bird.py","file_url":"https://github.com/pat-jj/deepretrieval/blob/HEAD/code/data_preprocess/bird.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"a59933530f0ecb8e"}},{"code_sha256_prefix":"c6cc8b394729c034","entry":"get_upload_paths","repo":"pat-jj/deepretrieval","repo_kind":"official","path":"code/upload_datasets.py","file_url":"https://github.com/pat-jj/deepretrieval/blob/HEAD/code/upload_datasets.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"c6cc8b394729c034"}},{"code_sha256_prefix":"1f087e4914635b4b","entry":"group_files_by_category","repo":"pat-jj/deepretrieval","repo_kind":"official","path":"code/download_datasets.py","file_url":"https://github.com/pat-jj/deepretrieval/blob/HEAD/code/download_datasets.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"1f087e4914635b4b"}},{"code_sha256_prefix":"4db3d8f4262c757d","entry":"group_files_by_dataset","repo":"pat-jj/deepretrieval","repo_kind":"official","path":"code/download_datasets.py","file_url":"https://github.com/pat-jj/deepretrieval/blob/HEAD/code/download_datasets.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"4db3d8f4262c757d"}},{"code_sha256_prefix":"6f9a9a9fcea51423","entry":"list_available_files","repo":"pat-jj/deepretrieval","repo_kind":"official","path":"code/download_datasets.py","file_url":"https://github.com/pat-jj/deepretrieval/blob/HEAD/code/download_datasets.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"6f9a9a9fcea51423"}},{"code_sha256_prefix":"9d324a33882b374b","entry":"load_matching_dataset","repo":"pat-jj/deepretrieval","repo_kind":"official","path":"code/data_preprocess/msmarco_sub.py","file_url":"https://github.com/pat-jj/deepretrieval/blob/HEAD/code/data_preprocess/msmarco_sub.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"9d324a33882b374b"}},{"code_sha256_prefix":"49231bf0422fb2d5","entry":"make_prefix","repo":"pat-jj/deepretrieval","repo_kind":"official","path":"code/data_preprocess/bird.py","file_url":"https://github.com/pat-jj/deepretrieval/blob/HEAD/code/data_preprocess/bird.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"49231bf0422fb2d5"}},{"code_sha256_prefix":"bd162b7f6f193c7b","entry":"make_prefix","repo":"pat-jj/deepretrieval","repo_kind":"official","path":"code/data_preprocess/ctgov.py","file_url":"https://github.com/pat-jj/deepretrieval/blob/HEAD/code/data_preprocess/ctgov.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"bd162b7f6f193c7b"}},{"code_sha256_prefix":"bc592fb448c2d78d","entry":"make_prefix","repo":"pat-jj/deepretrieval","repo_kind":"official","path":"code/data_preprocess/fever.py","file_url":"https://github.com/pat-jj/deepretrieval/blob/HEAD/code/data_preprocess/fever.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"bc592fb448c2d78d"}},{"code_sha256_prefix":"606ffeb10da3d22e","entry":"make_prefix","repo":"pat-jj/deepretrieval","repo_kind":"official","path":"code/data_preprocess/fiqa.py","file_url":"https://github.com/pat-jj/deepretrieval/blob/HEAD/code/data_preprocess/fiqa.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"606ffeb10da3d22e"}},{"code_sha256_prefix":"545e19c701f43c85","entry":"make_prefix","repo":"pat-jj/deepretrieval","repo_kind":"official","path":"code/data_preprocess/hotpotqa.py","file_url":"https://github.com/pat-jj/deepretrieval/blob/HEAD/code/data_preprocess/hotpotqa.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"545e19c701f43c85"}},{"code_sha256_prefix":"1c8330e765ddfad8","entry":"make_prefix","repo":"pat-jj/deepretrieval","repo_kind":"official","path":"code/data_preprocess/msmarco_beir.py","file_url":"https://github.com/pat-jj/deepretrieval/blob/HEAD/code/data_preprocess/msmarco_beir.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"1c8330e765ddfad8"}},{"code_sha256_prefix":"f87645303568f144","entry":"make_prefix","repo":"pat-jj/deepretrieval","repo_kind":"official","path":"code/data_preprocess/msmarco_sub.py","file_url":"https://github.com/pat-jj/deepretrieval/blob/HEAD/code/data_preprocess/msmarco_sub.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"f87645303568f144"}},{"code_sha256_prefix":"a949969186799c79","entry":"make_prefix_llama_32_3b","repo":"pat-jj/deepretrieval","repo_kind":"official","path":"code/data_preprocess/ctgov_32.py","file_url":"https://github.com/pat-jj/deepretrieval/blob/HEAD/code/data_preprocess/ctgov_32.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"a949969186799c79"}},{"code_sha256_prefix":"ca7c915d51ff8962","entry":"parse_qrel","repo":"pat-jj/deepretrieval","repo_kind":"official","path":"code/data_preprocess/fever.py","file_url":"https://github.com/pat-jj/deepretrieval/blob/HEAD/code/data_preprocess/fever.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"ca7c915d51ff8962"}},{"code_sha256_prefix":"95a95645e65bef95","entry":"rewrite_query","repo":"pat-jj/deepretrieval","repo_kind":"official","path":"query_rewrite.py","file_url":"https://github.com/pat-jj/deepretrieval/blob/HEAD/query_rewrite.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"95a95645e65bef95"}},{"code_sha256_prefix":"8579366f86217f73","entry":"should_skip_path","repo":"pat-jj/deepretrieval","repo_kind":"official","path":"code/upload_datasets.py","file_url":"https://github.com/pat-jj/deepretrieval/blob/HEAD/code/upload_datasets.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"8579366f86217f73"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}