🚀 AceReason-Nemotron:通过强化学习提升数学与代码推理能力
AceReason-Nemotron-14B 是一款基于强化学习(RL)训练的数学与代码推理模型,它以 DeepSeek-R1-Distilled-Qwen-14B 为基础进行训练。该模型表现出色,在 AIME 2024 测试中达到 78.6%(提升 8.9%),在 AIME 2025 测试中达到 67.4%(提升 17.4%),在 LiveCodeBench v5 测试中达到 61.1%(提升 8%),在 LiveCodeBench v6 测试中达到 54.9%(提升 7%),在 2024 年 Codeforces 测试中提升 543 分。通过大量实验,我们系统地研究了强化学习的训练过程,并提出了一种简单有效的方法:先对纯数学提示进行强化学习训练,再对纯代码提示进行强化学习训练。值得注意的是,仅针对数学的强化学习不仅显著提升了强大的蒸馏模型在数学基准测试中的性能,还提升了代码推理任务的性能。此外,扩展的仅针对代码的强化学习进一步提高了代码基准测试的性能,同时对数学测试结果的影响极小。我们发现,强化学习不仅能激发模型在预训练和监督微调(如蒸馏)过程中获得的基础推理能力,还能突破模型推理能力的极限,使其能够解决以前无法解决的问题。
我们在 技术报告 中分享了训练方法和训练日志。
✨ 主要特性
- 强化学习训练:完全通过强化学习进行训练,提升模型的推理能力。
- 多领域表现出色:在数学和代码推理任务中均取得了优异的成绩。
- 有效训练方法:提出先数学后代码的强化学习训练方法。
📦 安装指南
文档未提供安装步骤,跳过该章节。
💻 使用示例
基础用法
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
model_name = 'nvidia/AceReason-Nemotron-14B'
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name, torch_dtype="auto", device_map="auto")
prompt = "Jen enters a lottery by picking $4$ distinct numbers from $S=\\{1,2,3,\\cdots,9,10\\}.$ $4$ numbers are randomly chosen from $S.$ She wins a prize if at least two of her numbers were $2$ of the randomly chosen numbers, and wins the grand prize if all four of her numbers were the randomly chosen numbers. The probability of her winning the grand prize given that she won a prize is $\\tfrac{m}{n}$ where $m$ and $n$ are relatively prime positive integers. Find $m+n$."
messages = [{"role": "user", "content": prompt}]
text = tokenizer.apply_chat_template(
messages,
tokenize=False,
add_generation_prompt=True
)
model_inputs = tokenizer([text], return_tensors="pt").to("cuda")
generated_ids = model.generate(
**model_inputs,
max_new_tokens=32768,
temperature=0.6,
top_p=0.95
)
generated_ids = [
output_ids[len(input_ids):] for input_ids, output_ids in zip(model_inputs.input_ids, generated_ids)
]
response = tokenizer.batch_decode(generated_ids, skip_special_tokens=True)[0]
📚 详细文档
结果展示
我们在 AIME 2024、AIME 2025、LiveCodeBench v5(2024/08/01 - 2025/02/01)和 LiveCodeBench v6(2025/02/01 - 2025/05/01)上,将我们的模型与 Qwen2.5 和 Llama3.1 模型家族中规模相当的竞争推理模型进行了评估。更多评估结果可在 技术报告 中找到。
模型 |
AIME 2024 (avg@64) |
AIME 2025 (avg@64) |
LCB v5 (avg@8) |
LCB v6 (avg@8) |
QwQ - 32B |
79.5 |
65.8 |
63.4 |
- |
DeepSeek - R1 - 671B |
79.8 |
70.0 |
65.9 |
- |
Llama - Nemotron - Ultra - 253B |
80.8 |
72.5 |
66.3 |
- |
o3 - mini (medium) |
79.6 |
76.7 |
67.4 |
- |
Light - R1 - 14B |
74 |
60.2 |
57.9 |
51.5 |
DeepCoder - 14B (32K Inference) |
71 |
56.1 |
57.9 |
50.4 |
OpenMath - Nemotron - 14B |
76.3 |
63.0 |
- |
- |
OpenCodeReasoning - Nemotron - 14B |
- |
- |
59.4 |
54.1 |
Llama - Nemotron - Super - 49B - v1 |
67.5 |
60.0 |
45.5 |
- |
DeepSeek - R1 - Distilled - Qwen - 14B |
69.7 |
50.2 |
53.1 |
47.9 |
DeepSeek - R1 - Distilled - Qwen - 32B |
72.6 |
54.9 |
57.2 |
- |
AceReason - Nemotron - 14B 🤖 |
78.6 |
67.4 |
61.1 |
54.9 |
使用建议
- 不要包含系统提示,而是将所有指令直接放在用户提示中。
- 对于数学问题,建议使用以下指令:请逐步推理,并将最终答案放在 \boxed{} 内。
- 对于代码问题,建议使用以下指令:
question = ""
starter_code = ""
code_instruction_nostartercode = """编写 Python 代码来解决问题。请将解决方案代码放在以下格式中:
```python
# 你的解决方案代码
```"""
code_instruction_hasstartercode = """请将解决方案代码放在以下格式中:
```python
# 你的解决方案代码
```"""
if starter_code != "":
question += "\n\n" + "从提供的函数头开始解决问题。\n\n函数头:\n" + "```\n" + starter_code + "\n```"
question += "\n\n" + code_instruction_hasstartercode
else:
question += "\n\n" + code_instruction_nostartercode
final_prompt = "<|User|>" + question + "<|Assistant|><think>\n"
- 我们用于评估的推理引擎是 vLLM==0.7.3,使用 top - p = 0.95,temperature = 0.6,max_tokens = 32768。
- 我们使用 AceMath 评分器 进行数学评估,使用 LiveCodeBench 官方脚本 进行代码评估。
联系方式
- Yang Chen (yachen@nvidia.com)
- Zhuolin Yang (zhuoliny@nvidia.com)
- Zihan Liu (zihanl@nvidia.com)
- Chankyu Lee (chankyul@nvidia.com)
- Wei Ping (wping@nvidia.com)
📄 许可证
你对该模型的使用受 NVIDIA 开放模型许可证 约束。
🔧 技术细节
文档未提供技术细节,跳过该章节。
📖 引用格式
@article{acereason2025,
title={AceReason-Nemotron: Advancing Math and Code Reasoning through Reinforcement Learning},
author={Chen, Yang and Yang, Zhuolin and Liu, Zihan and Lee, Chankyu and Shoeybi, Mohammad and Catanzaro, Bryan and Ping, Wei},
journal={arXiv preprint},
year={2025}
}