⏶2
R1-代码解释器:通过监督学习和强化学习训练大型语言模型进行代码推理
发表
由
Yongchao Chen 提交
作者:
Yongchao Chen, Yueying Liu, Junwei Zhou,
Yilun Hao, Jingquan Wang, Yang Zhang, Chuchu Fan
摘要
尽管R1类模型在推理和规划方面取得了进展,但大型语言模型(LLMs)在需要精确计算、符号操作、优化和算法推理的任务上仍然面临困难,在这些任务中,文本推理缺乏代码执行的严谨性。一个关键挑战是让LLM决定何时使用文本推理,何时使用代码生成。尽管OpenAI训练模型以在需要时调用代码解释器,但公开研究缺乏关于如何调整预训练LLM以有效利用代码并在各种任务中进行泛化的指导。我们提出了R1-Code-Interpreter,这是一个文本专用LLM的扩展,通过多轮监督微调(SFT)和强化学习(RL)进行训练,以在逐步推理过程中自主生成多个代码查询。我们整理了144个推理和规划任务(107个用于训练,37个用于测试),每个任务包含200多个不同问题。我们使用各种SFT和RL策略对Qwen-2.5模型(3B/7B/14B)进行微调,研究了不同的答案格式、推理与非推理模型、冷启动与热启动、GRPO与PPO,以及掩码与非掩码代码输出。与之前在狭窄领域进行的RL工作不同,我们发现代码解释器训练由于任务多样性高和代码执行成本昂贵而显著更难,这突出了SFT阶段的关键作用。我们的最终模型R1-CI-14B将37个测试任务的平均准确率从44.0\%提高到64.1\%,超过了GPT-4o(纯文本:58.6\%),并接近带有代码解释器的GPT-4o(70.9\%),同时通过代码生成展现了涌现的自检行为。数据集、代码和模型可在<a href="https://github.com/yongchao98/R1-Code-Interpreter">https://github.com/yongchao98/R1-Code-Interpreter</a>和<a href="https://huggingface.co/yongchao98">https://huggingface.co/yongchao98</a>获取。
我们提出了一个框架,该框架利用监督学习和强化学习将代码解释器集成到LLM的推理和规划中。我们微调后的模型R1-CI-14B,在没有代码解释器的情况下表现优于GPT-4o,并且在有代码解释器的情况下接近其性能。虽然采用GRPO可以提升能力,但其影响受限于任务多样性,这凸显了强大基础模型和监督微调的重要性。据我们所知,这是首个使用这些方法训练的开源通用代码解释器。