{"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/routerdc-query-based-router-by-dual","title":"RouterDC: Query-Based Router by Dual Contrastive Learning for Assembling Large Language Models","arxiv_id":"2409.19886","date":"2024-09-30","proceeding":null,"authors":["Shuhao Chen","Weisen Jiang","Baijiong Lin","James T. Kwok","Yu Zhang"],"abstract":"Recent works show that assembling multiple off-the-shelf large language models (LLMs) can harness their complementary abilities. To achieve this, routing is a promising method, which learns a router to select the most suitable LLM for each query. However, existing routing models are ineffective when multiple LLMs perform well for a query. To address this problem, in this paper, we propose a method called query-based Router by Dual Contrastive learning (RouterDC). The RouterDC model consists of an encoder and LLM embeddings, and we propose two contrastive learning losses to train the RouterDC model. Experimental results show that RouterDC is effective in assembling LLMs and largely outperforms individual top-performing LLMs as well as existing routing methods on both in-distribution (+2.76\\%) and out-of-distribution (+1.90\\%) tasks. Source code is available at https://github.com/shuhao02/RouterDC.","url_abs":"https://arxiv.org/abs/2409.19886v1","url_pdf":"https://arxiv.org/pdf/2409.19886v1.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":"routerdc-query-based-router-by-dual","repo_url":"https://github.com/shuhao02/routerdc","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok"}}],"tasks":[{"task_slug":"contrastive-learning","task_name":"Contrastive Learning"}],"methods":[{"method_slug":"contrastive-learning","method_name":"Contrastive Learning"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2409.19886","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2409.19886"}},"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":"deterministic:regex_extraction","url":"https://github.com/shuhao02/RouterDC","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/shuhao02/routerdc","reach":{"status":"ok"}}],"summary":{"ran":1,"ran_fixture":1,"unverified":2},"by_repo_kind":{"official":{"samples":4,"ran":2,"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":4,"samples":[{"code_sha256_prefix":"8c520b5fdfbfa606","entry":"RouterModule","repo":"shuhao02/routerdc","repo_kind":"official","path":"train_router_mdeberta.py","file_url":"https://github.com/shuhao02/routerdc/blob/HEAD/train_router_mdeberta.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"8c520b5fdfbfa606"}},{"code_sha256_prefix":"17aeadd82099f0be","entry":"accuracy","repo":"shuhao02/RouterDC","repo_kind":"official","path":"utils/meters.py","file_url":"https://github.com/shuhao02/RouterDC/blob/HEAD/utils/meters.py","link_basis":"plan_row","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"17aeadd82099f0be"}},{"code_sha256_prefix":"f2bce34f97bf32be","entry":"evaluation","repo":"shuhao02/RouterDC","repo_kind":"official","path":"train_router_mdeberta.py","file_url":"https://github.com/shuhao02/RouterDC/blob/HEAD/train_router_mdeberta.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":"f2bce34f97bf32be"}},{"code_sha256_prefix":"686862d6e6432442","entry":"evaluation","repo":"shuhao02/RouterDC","repo_kind":"official","path":"train_router_mdeberta_routerbench.py","file_url":"https://github.com/shuhao02/RouterDC/blob/HEAD/train_router_mdeberta_routerbench.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":"686862d6e6432442"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}