{"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/arxiv-2603-02215","title":"RxnNano:Training Compact LLMs for Chemical Reaction and Retrosynthesis Prediction via Hierarchical Curriculum Learning","arxiv_id":"2603.02215","date":"2026-02-10","proceeding":null,"authors":["Ran Li","Shimin Di","Haowei LI","Luanshi Bu","Jiachuan Wang","Wangze Ni","Lei Chen"],"abstract":"Chemical reaction prediction is pivotal for accelerating drug discovery and synthesis planning. Despite advances in data-driven models, current approaches are hindered by an overemphasis on parameter and dataset scaling. Some methods coupled with evaluation techniques that bypass fundamental challenges in reaction representation and fail to capture deep chemical intuition like reaction common sense and {topological atom mapping logic}. We argue that the core challenge lies in instilling these knowledge into the models. To this end, we propose a unified framework that prioritizes chemical understanding over scale through three key innovations: (1) a {Latent Chemical Consistency} objective that models reactions as movements on a continuous chemical manifold, ensuring reversible and physically plausible transformations; (2) a {Hierarchical Cognitive Curriculum} that trains the model through progressive stages, from syntax mastery to semantic reasoning, building robust chemical intuition; (3) {Atom-Map Permutation Invariance (AMPI)}, which force the model to learn invariant relational topology and balance multi-task learning. (4)and structured plan-based reasoning to improve the performance of the LLMs. Our compact {0.5B-parameter model}, \\textbf{RxnNano} significantly outperforms fine-tuned LLMs ten times larger (>7B) and all the domain baselines, achieving a 23.5\\% Top-1 accuracy improvement on rigorous benchmarks without test-time augmentation. https://github.com/rlisml/RxnNano.","url_abs":"https://arxiv.org/abs/2603.02215","url_pdf":"https://arxiv.org/pdf/2603.02215","source":{"archive":null,"snapshot":"2025-07-28","note":"not in the Papers with Code archive (frozen at the snapshot)","row_kind":"graph","title_abstract_authors_date":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license)"},"code_links":[],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/2603.02215","atlas_url":"https://app.syntology.ai/?focus=2603.02215","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2603.02215"}},"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":[{"mentioned_in_github":null,"is_official":null,"provenance":"deterministic:regex_extraction","mentioned_in_paper":null,"url":"https://github.com/rlisml/RxnNano","reach":null}],"summary":{"unverified":9},"by_repo_kind":{"found_in_text":{"samples":9,"ran":0,"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":"697299f1698779c5","entry":"extract_xml_answer","repo":"rlisml/RxnNano","repo_kind":"found_in_text","path":"src/evaluation/metrics.py","file_url":"https://github.com/rlisml/RxnNano/blob/HEAD/src/evaluation/metrics.py","link_basis":"first_harvest_node","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":"697299f1698779c5"}},{"code_sha256_prefix":"d94252f4313ad6f5","entry":"extract_xml_think","repo":"rlisml/RxnNano","repo_kind":"found_in_text","path":"src/evaluation/metrics.py","file_url":"https://github.com/rlisml/RxnNano/blob/HEAD/src/evaluation/metrics.py","link_basis":"first_harvest_node","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":"d94252f4313ad6f5"}},{"code_sha256_prefix":"2da18d96fac26140","entry":"format_forward_prediction_prompt","repo":"rlisml/RxnNano","repo_kind":"found_in_text","path":"src/evaluation/prompt_formatters.py","file_url":"https://github.com/rlisml/RxnNano/blob/HEAD/src/evaluation/prompt_formatters.py","link_basis":"first_harvest_node","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":"2da18d96fac26140"}},{"code_sha256_prefix":"95b985f0d0f23cdb","entry":"format_retrosynthesis_class_prompt","repo":"rlisml/RxnNano","repo_kind":"found_in_text","path":"src/train/prompts.py","file_url":"https://github.com/rlisml/RxnNano/blob/HEAD/src/train/prompts.py","link_basis":"first_harvest_node","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":"95b985f0d0f23cdb"}},{"code_sha256_prefix":"fceff4a42399383b","entry":"format_retrosynthesis_prompt","repo":"rlisml/RxnNano","repo_kind":"found_in_text","path":"src/evaluation/prompt_formatters.py","file_url":"https://github.com/rlisml/RxnNano/blob/HEAD/src/evaluation/prompt_formatters.py","link_basis":"first_harvest_node","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":"fceff4a42399383b"}},{"code_sha256_prefix":"81b9ce93e87e4851","entry":"get_dataset_suffix","repo":"rlisml/RxnNano","repo_kind":"found_in_text","path":"src/train/dataset.py","file_url":"https://github.com/rlisml/RxnNano/blob/HEAD/src/train/dataset.py","link_basis":"first_harvest_node","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":"81b9ce93e87e4851"}},{"code_sha256_prefix":"53c12de50a01ee84","entry":"get_prompt_formatter","repo":"rlisml/RxnNano","repo_kind":"found_in_text","path":"src/evaluation/prompt_formatters.py","file_url":"https://github.com/rlisml/RxnNano/blob/HEAD/src/evaluation/prompt_formatters.py","link_basis":"first_harvest_node","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":"53c12de50a01ee84"}},{"code_sha256_prefix":"6d32fa4e45923284","entry":"get_system_prompt","repo":"rlisml/RxnNano","repo_kind":"found_in_text","path":"src/config/prompts.py","file_url":"https://github.com/rlisml/RxnNano/blob/HEAD/src/config/prompts.py","link_basis":"first_harvest_node","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":"6d32fa4e45923284"}},{"code_sha256_prefix":"1fbd49dc8520706d","entry":"normalize_smiles","repo":"rlisml/RxnNano","repo_kind":"found_in_text","path":"src/evaluation/metrics.py","file_url":"https://github.com/rlisml/RxnNano/blob/HEAD/src/evaluation/metrics.py","link_basis":"first_harvest_node","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":"1fbd49dc8520706d"}}]},"arxiv_metadata":{"licence":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license)","fields":["title","abstract","authors","date"],"primary_category":"cs.LG","source":"arxiv_2026.jsonl"},"syntology_extracted_results":null}