00356 models - open-r1/OpenR1-Distill-7B


前言

模型地址:https://huggingface.co/open-r1/OpenR1-Distill-7B

模型摘要

OpenR1-Distill-7B 是 Qwen/Qwen2.5-Math-7B 在“思维混合”(Mixture-of-Thoughts)数据集上进行后训练的版本。该数据集是一个精心整理的、包含 35 万条经过验证的推理轨迹的数据集,这些轨迹是从 DeepSeek-R1 模型中蒸馏提取的。该数据集涵盖了数学、编程和科学领域的任务,旨在教导语言模型进行逐步推理。

OpenR1-Distill-7B 复现了 deepseek-ai/DeepSeek-R1-Distill-Qwen-7B 的推理能力,同时保持了完全的开放性和可复现性。它非常适用于关于推理时计算(inference-time compute)以及带有可验证奖励的强化学习(RLVR)的研究。

模型描述

  • 模型类型:一个拥有 70 亿参数的类 GPT 模型,在公开可用与合成的混合数据集上进行了后训练。
  • 语言:主要为英语
  • 许可证:Apache 2.0
  • 微调自模型:Qwen/Qwen2.5-Math-7B 的一个变体,该变体的 RoPE 基础频率被扩展至 300k,以支持在 32k token 上下文长度上的训练。

模型来源

用法

要与模型进行对话,请首先安装 🤗 Transformers:

pip install transformers>0.52

然后,按如下方式运行聊天命令行界面:

transformers chat open-r1/OpenR1-Distill-7B \
    max_new_tokens=2048 \
    do_sample=True \
    temperature=0.6 \
    top_p=0.95

或者,也可以使用 pipeline() 函数来运行该模型:

import torch
from transformers import pipeline

pipe = pipeline("text-generation", model="open-r1/OpenR1-Distill-7B", torch_dtype=torch.bfloat16, device_map="auto")

messages = [
    {"role": "user", "content": "Which number is larger, 9.9 or 9.11?"},
]
outputs = pipe(messages, max_new_tokens=2048, do_sample=True, temperature=0.6, top_p=0.95, return_full_text=False)
print(outputs[0]["generated_text"])

性能

我们使用 Lighteval 来在以下基准测试上评估模型:

Model AIME 2024 MATH-500 GPQA Diamond LiveCodeBench v5
OpenR1-Distill-7B 52.7 89.0 52.8 39.4
DeepSeek-R1-Distill-Qwen-7B 51.3 93.5 52.4 37.4

所有分数均表示 pass@1 准确率,并使用了 温度=0.6 和 top_p=0.95 的采样参数。DeepSeek-R1 的技术报告采用对每个查询生成 4 到 64 个响应的方式来估算 pass@1,但并未针对每个基准测试指定具体的响应数量。在上表中,我们通过以下每个查询所对应的响应数量来估算 pass@1 准确率:

Benchmark Number of responses per query
AIME 2024 64
MATH-500 4
GPQA Diamond 8
LiveCodeBench 16

请注意,对于像 AIME 2024 这样的基准测试,进行大量响应采样至关重要,因为它总共只有 30 道题目,这会导致在重复运行评估时产生很高的方差。每个提示需要采样多少次响应的选择,很可能解释了我们的评估结果与 DeepSeek 所报告结果之间的微小差异。请访问 open-r1 代码仓库以获取如何复现这些结果的说明。

训练方法论

OpenR1-Distill-7B 是通过在“思维混合”(Mixture-of-Thoughts)数据集上进行监督式微调来训练的。该数据集包含 35 万条从 DeepSeek-R1 中蒸馏出的推理轨迹。为了优化数据混合比例,我们遵循了 Phi-4-reasoning 技术报告中描述的相同方法论,即可以按领域独立地优化混合比例,然后再将它们组合成单一数据集。下图展示了我们在数学和代码领域进行实验的演进过程:

各个实验对应于以下内容:

  • 实验 1 - 3 (exp1 - exp3): 分别将模型的 RoPE 基础频率从 10k 扩展到 100k、300k 和 500k。我们发现这些缩放因子之间没有显著差异,因此在所有后续实验中均使用了 300k。

  • 实验 4 - 6 (exp4 - exp6): 分别将数学和代码混合数据集上的学习率从 1e-5 独立地缩放到 2e-5 和 4e-5。

  • 实验 7 - 8 (exp7 - exp8): 在数学混合数据集上,衡量序列打包”的影响(实验 7)与不进行打包”的影响(实验 8)。

  • 实验 9 - 10 (exp9 - exp10): 衡量在全部三种混合数据集(数学、代码和科学)上进行训练,与仅在数学和代码数据集上进行训练的影响。

在我们的消融实验中,我们使用 LiveCodeBench v4 来加速评估过程,因为它包含的问题数量大约是 v5 版本的一半,但仍然能够代表完整基准测试的水平。

训练超参数

训练期间使用了以下超参数:

  • num_epochs: 5.0
  • learning_rate: 4.0e-05
  • num_devices: 8
  • train_batch_size: 2
  • gradient_accumulation_steps: 8
  • total_train_batch_size: 2 * 8 * 8 = 128
  • seed: 42
  • distributed_type: DeepSpeed ZeRO-3
  • optimizer: Adam with betas=(0.9,0.999) and epsilon=1e-08
  • lr_scheduler_type: cosine_with_min_lr with min_lr_rate=0.1
  • lr_scheduler_warmup_ratio: 0.03
  • max_grad_norm: 0.2

训练结果

在训练过程中,我们每个 epoch 都会在 AIME 2024、GPQA Diamond 和 LiveCodeBench v4 这三个基准上监控模型的进展。下图展示了训练结果:

框架版本

  • Platform: Linux-5.15.0-1049-aws-x86_64-with-glibc2.31
  • Python version: 3.11.11
  • TRL version: 0.18.0.dev0
  • PyTorch version: 2.6.0
  • Transformers version: 4.52.0.dev0
  • Accelerate version: 1.4.0
  • Datasets version: 3.5.1
  • HF Hub version: 0.30.2
  • bitsandbytes version: 0.45.5
  • DeepSpeed version: 0.16.8
  • Liger-Kernel version: 0.5.9
  • OpenAI version: 1.76.2
  • vLLM version: 0.8.4

引用

如果您在自己的工作中发现该模型有用,请考虑按如下方式引用它:

@misc{openr1,
    title = {Open R1: A fully open reproduction of DeepSeek-R1},
    url = {https://github.com/huggingface/open-r1},
    author = {Hugging Face},
    month = {January},
    year = {2025}
}

结语

第三百五十六篇博文写完,开心!!!!

今天,也是充满希望的一天。


文章作者: LuYF-Lemon-love
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 LuYF-Lemon-love !
  目录