{"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/serl-self-play-reinforcement-learning-for","title":"SeRL: Self-Play Reinforcement Learning for Large Language Models with Limited Data","arxiv_id":"2505.20347","date":"2025-05-25","proceeding":null,"authors":["Wenkai Fang","Shunyu Liu","Yang Zhou","Kongcheng Zhang","Tongya Zheng","KaiXuan Chen","Mingli Song","DaCheng Tao"],"abstract":"Recent advances have demonstrated the effectiveness of Reinforcement Learning (RL) in improving the reasoning capabilities of Large Language Models (LLMs). However, existing works inevitably rely on high-quality instructions and verifiable rewards for effective training, both of which are often difficult to obtain in specialized domains. In this paper, we propose Self-play Reinforcement Learning(SeRL) to bootstrap LLM training with limited initial data. Specifically, SeRL comprises two complementary modules: self-instruction and self-rewarding. The former module generates additional instructions based on the available data at each training step, employing robust online filtering strategies to ensure instruction quality, diversity, and difficulty. The latter module introduces a simple yet effective majority-voting mechanism to estimate response rewards for additional instructions, eliminating the need for external annotations. Finally, SeRL performs conventional RL based on the generated data, facilitating iterative self-play learning. Extensive experiments on various reasoning benchmarks and across different LLM backbones demonstrate that the proposed SeRL yields results superior to its counterparts and achieves performance on par with those obtained by high-quality data with verifiable rewards. Our code is available at https://github.com/wantbook-book/SeRL.","url_abs":"https://arxiv.org/abs/2505.20347v1","url_pdf":"https://arxiv.org/pdf/2505.20347v1.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":"serl-self-play-reinforcement-learning-for","repo_url":"https://github.com/wantbook-book/serl","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"reinforcement-learning","task_name":"Reinforcement Learning"},{"task_slug":"reinforcement-learning-1","task_name":"Reinforcement Learning (RL)"},{"task_slug":"reinforcement-learning-2","task_name":"reinforcement-learning"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":null,"atlas_url":"https://app.syntology.ai/?focus=2505.20347","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2505.20347"}},"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/wantbook-book/serl","reach":null}],"summary":{"ran_violates":1,"ran_draft_wrong":2,"unverified":3},"by_repo_kind":{"official":{"samples":6,"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":"662b87687f2f200a","entry":"compare_answers","repo":"wantbook-book/serl","repo_kind":"official","path":"evaluation/Math-Benchmarks/evaluate_outputs.py","file_url":"https://github.com/wantbook-book/serl/blob/HEAD/evaluation/Math-Benchmarks/evaluate_outputs.py","link_basis":"first_harvest_node","language":"python","status":"ran_violates","verification_level":1,"contract_check":"VIOLATES","metamorphic_tier":"deterministic","behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"662b87687f2f200a"}},{"code_sha256_prefix":"7e22a383e9fd48c5","entry":"load_csv_data","repo":"wantbook-book/serl","repo_kind":"official","path":"evaluation/Math-Benchmarks/evaluate_outputs.py","file_url":"https://github.com/wantbook-book/serl/blob/HEAD/evaluation/Math-Benchmarks/evaluate_outputs.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"7e22a383e9fd48c5"}},{"code_sha256_prefix":"56207677bc00b645","entry":"serialize_sympy_object","repo":"wantbook-book/serl","repo_kind":"official","path":"evaluation/Math-Benchmarks/evaluate_outputs.py","file_url":"https://github.com/wantbook-book/serl/blob/HEAD/evaluation/Math-Benchmarks/evaluate_outputs.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"56207677bc00b645"}},{"code_sha256_prefix":"9675ce6b40daf814","entry":"convert_expr","repo":"wantbook-book/serl","repo_kind":"official","path":"openrlhf/evaluation/latex2sympy/latex2sympy2.py","file_url":"https://github.com/wantbook-book/serl/blob/HEAD/openrlhf/evaluation/latex2sympy/latex2sympy2.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":"9675ce6b40daf814"}},{"code_sha256_prefix":"d3b7a1bd2b1b514a","entry":"convert_relation","repo":"wantbook-book/serl","repo_kind":"official","path":"openrlhf/evaluation/latex2sympy/latex2sympy2.py","file_url":"https://github.com/wantbook-book/serl/blob/HEAD/openrlhf/evaluation/latex2sympy/latex2sympy2.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":"d3b7a1bd2b1b514a"}},{"code_sha256_prefix":"699bf6581fe5aa36","entry":"latex2sympy","repo":"wantbook-book/serl","repo_kind":"official","path":"openrlhf/evaluation/latex2sympy/latex2sympy2.py","file_url":"https://github.com/wantbook-book/serl/blob/HEAD/openrlhf/evaluation/latex2sympy/latex2sympy2.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":"699bf6581fe5aa36"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}