> ## Content Index
> Fetch the complete content index at: https://www.hubwiz.com/blog/llms.txt
> Use this file to discover other available public pages before exploring further.

# 用Unsloth训练自己的R1推理模型
- URL: https://www.hubwiz.com/blog/train-your-own-r1-reasoning-model-with-unsloth/
- Published: 2025-02-08T04:30:15.000Z
- Updated: 2025-02-08T04:30:15.000Z
- Description: DeepSeek 的 R1 研究揭示了一个“顿悟时刻”，其中 R1-Zero 通过使用群组相对策略优化 (GRPO) 自主学习分配更多思考时间而无需人工反馈。你就可以使用 Unsloth和Qwen2.5 (1.5B) 在仅 7GB 的 VRAM 上重现 R1-Zero 的“顿悟时刻”。
- Author: admin
- Tags: TOOL, UNSLOTH, DEEPSEEKR1, GRPO, QWEN2.5, TINY-ZERO, #Import 2026-10-14 14:41

今天，我们很高兴在 Unsloth 中引入推理功能！DeepSeek 的 R1 研究揭示了一个“顿悟时刻”，其中 R1-Zero 通过使用群组相对策略优化 (GRPO) 自主学习分配更多思考时间而无需人工反馈。

我们增强了整个 GRPO 流程，使其使用的 VRAM 比 Hugging Face + FA2 少 80%。这样你就可以使用 Qwen2.5 (1.5B) 在仅 7GB 的 VRAM 上重现 R1-Zero 的“顿悟时刻”。

试用我们的免费 G​​RPO 笔记本：[Colab 上的 Llama 3.1 (8B)](https://colab.research.google.com/github/unslothai/notebooks/blob/main/nb/Llama3.1%5F%288B%29-GRPO.ipynb?ref=hubwiz.com) 。对于具有其他模型（如 Phi-4）的 GRPO 笔记本，请访问[我们的文档](https://docs.unsloth.ai/get-started/unsloth-notebooks?ref=hubwiz.com)

## 1、主要细节

- 借助 15GB VRAM，Unsloth 可让你将任何高达 15B 参数的模型（如 Llama 3.1 (8B)、Phi-4 (14B)、Mistral (7B) 或 Qwen2.5 (7B)）转换为推理模型
- 最低要求：仅 7GB VRAM 就足以在本地训练你自己的推理模型。
- [Tiny-Zero ](https://x.com/jiayi%5Fpirate/status/1882839370505621655?ref=hubwiz.com)的优秀团队证明，你可以使用 Qwen2.5 (1.5B) 实现自己的“啊哈”时刻 - 但它需要 2xA100 GPU（160GB VRAM）。现在，使用 Unsloth，你只需使用单个 7GB VRAM GPU 即可实现相同的“顿悟”时刻
- 以前，GRPO 仅支持完全微调，但我们已使其与 QLoRA 和 LoRA 配合使用
- 请注意，这不是对 DeepSeek 的 R1 蒸馏模型进行微调，也不是使用 Unsloth 已经支持的 R1 蒸馏数据进行调整。这是使用 GRPO 将标准模型转换为成熟的推理模型。
- GRPO 的用例包括：如果你想制作带有奖励的定制模型（例如法律、医学等），那么 GRPO 可以提供帮助。

如果你有输入和输出数据（如问题和答案），但没有思路或推理过程，GRPO 可以神奇地为你创建推理过程！+ 更多

## 2、GRPO +“顿悟”时刻

DeepSeek 的研究人员在使用纯强化学习 (RL) 训练 R1-Zero 时观察到了“顿悟”时刻。该模型学会了通过重新评估其初始方法来延长其思考时间，而无需任何人工指导或预定义指令。

在一个测试示例中，尽管我们仅使用 GRPO 训练了 100 步的 Phi-4，但结果已经很明显了。没有 GRPO 的模型没有思考标记，而使用 GRPO 训练的模型有思考标记并且也有正确答案。

![](https://www.hubwiz.com/blog/content/images/2025/02/image-228.png)

这种魔力可以通过 GRPO 重现，GRPO 是一种 RL 算法，可以有效地优化响应而无需价值函数，而不像依赖价值函数的近端策略优化 (PPO)。在我们的笔记本中，我们使用 GRPO 训练模型，旨在让它自主开发自己的自我验证和搜索能力 - 创造一个迷你“顿悟时刻”。

工作原理：

- 模型生成响应组。
- 每个响应都根据正确性或由某些设置奖励函数（而不是 LLM 奖励模型）创建的另一个指标进行评分。
- 计算组的平均分数。
- 每个响应的分数与组平均值进行比较。
- 模型得到强化，以支持得分更高的响应。

例如，假设我们想要一个模型来解决：

- 1+1 等于多少？>> 思维链/计算 >> 答案是 2。
- 2+2 等于多少？>> 思维链/计算 >> 答案是 4。

最初，人们必须收集大量数据来填充计算/思路过程。但 GRPO（DeepSeek 使用的算法）或其他 RL 算法可以引导模型自动展示推理能力并创建推理轨迹。相反，我们需要创建良好的奖励函数或验证器。例如，如果它得到了正确的答案，就给它 1 分。如果某些单词拼写错误，则减 0.1。等等！我们可以提供许多函数来奖励这个过程。

## 3、Unsloth 中的 GRPO

如果在本地将 GRPO 与 Unsloth 一起使用，请 `pip install diffusers`，因为它是一个依赖项。

等待至少 300 步，奖励才会真正增加，请使用最新版本的 vLLM。请记住，我们在 Colab 上的示例只训练了一个小时，因此结果低于标准。为了获得良好的结果，你需要训练至少 12 个小时（这就是 GRPO 的工作原理），但请记住这不是强制性的，因为你可以随时停止。

[建议](https://x.com/jiayi%5Fpirate/status/1882839487417561307/photo/1?ref=hubwiz.com)将 GRPO 应用于参数至少为 1.5B 的模型，以正确生成思考令牌，因为较小的模型可能无法做到这一点。如果你使用的是基础模型，请确保有一个聊天模板。GRPO 的训练损失跟踪现在直接内置在 Unsloth 中，无需使用 wandb 等外部工具。

![](https://www.hubwiz.com/blog/content/images/2025/02/image-229.png)

除了添加 GRPO 支持外，我们随后还支持在线 DPO、PPO 和 RLOO！更多详细信息可以在[ Keith 的帖子](https://www.linkedin.com/feed/update/urn:li:activity:7290108099607097344/?ref=hubwiz.com)和[博客](https://substack.com/home/post/p-154490380?ref=hubwiz.com)中看到，其中包括有关他如何让在线 DPO 工作的 Github fork。 [Joey 的推文](https://x.com/shxf0072/status/1886085377146180091?ref=hubwiz.com)中也可以看到 Google Colab 上 GRPO 更改的初稿！他们的贡献让我们也能够支持其他基于生成的 RL 方法。请参见下面的图表比较 Unsloth 的在线 DPO VRAM 消耗与标准 Hugging Face + FA2。

![](https://www.hubwiz.com/blog/content/images/2025/02/image-230.png)

## 4、Unsloth x vLLM

20 倍吞吐量，50% VRAM 节省。

你现在可以在微调栈中直接使用 vLLM，这允许更大的吞吐量，并允许你同时对模型进行微调和推理！在 1x A100 40GB 上，使用 Unsloth 的 Llama 3.2 3B Instruct 的动态 4 位量化，预计每秒 4000 个令牌左右。在 16GB Tesla T4（免费 Colab GPU）上，你可以获得 300 个令牌/秒。

我们还神奇地消除了同时加载 vLLM 和 Unsloth 时的双倍内存使用量，从而为 Llama 3.1 8B 节省了 5GB 左右，为 Llama 3.2 3B 节省了 3GB（感谢 [Boris ](https://github.com/borisshapa?ref=hubwiz.com)的启发）。 Unsloth 最初可以在 1x 48GB GPU 中微调 Llama 3.3 70B 指令，其中 Llama 3.3 70B 权重占用 40GB VRAM。如果我们不消除双倍内存使用量，那么在同时加载 Unsloth 和 vLLM 时，我们将需要 >= 80GB 的 VRAM。

但使用 Unsloth，你仍然可以在不到 48GB 的​​ VRAM 中微调并获得快速推理的好处！要使用快速推理，首先安装 vllm，并使用 fast\_inference 实例化 Unsloth：

```
pip install unsloth vllm
from unsloth import FastLanguageModel
model, tokenizer = FastLanguageModel.from_pretrained(
    model_name = "unsloth/Llama-3.2-3B-Instruct",
    fast_inference = True,
)
model.fast_generate(["Hello!"])
```

## 5、Unsloth 中的 vLLM 发现

- vLLM 现在可以加载 Unsloth 动态 4 位量化。就像我们的 1.58 位动态 R1 GGUF 一样，我们表明，将某些层动态量化为 4 位，将某些层量化为 16 位可以显著提高准确性，同时保持模型较小。
- 我们自动选择多个参数来考虑 RAM、VRAM 效率和最大吞吐量（例如分块预填充令牌的数量、最大序列数量等）。我们默认在 vLLM 中启用 -O3 并启用前缀缓存。我们发现旧 GPU 上的 Flashinfer 实际上慢了 10%。FP8 KV 缓存使速度慢了 10%，但吞吐量潜力增加了一倍。
- 我们允许通过解析状态字典而不是从磁盘加载在 vLLM 中加载 LoRA - 这可以使您的 GRPO 训练运行速度提高 1.5 倍。一个活跃的研究领域是以某种方式直接编辑 vLLM 中的 LoRA 适配器（我还不确定如何操作）。这可以大大提高速度，因为我们现在正在进行不必要的 GPU 数据移动。
- vLLM 会出现奇怪的随机 VRAM 峰值，尤其是在批量生成期间。我们添加了批量生成功能以减少内存峰值。

---

原文链接：[Train your own R1 reasoning model with Unsloth](https://unsloth.ai/blog/r1-reasoning?ref=hubwiz.com)

汇智网翻译整理，转载请标明出处