🌠Qwen3 - 如何运行与微调

学习如何使用 Unsloth 以及我们的 Dynamic 2.0 量化在本地运行与微调 Qwen3。

Qwen 的全新 Qwen3 模型在推理、遵循指令、代理能力和多语言支持方面实现了最先进的进步。

circle-check

所有上传均使用 Unsloth Dynamic 2.0 用于在 5-shot MMLU 和 KL 散度上达到 SOTA 性能,这意味着您可以以极小的精度损失运行并微调量化的 Qwen 大语言模型。

我们还上传了具有原生 128K 上下文长度的 Qwen3。Qwen 通过使用 YaRN 将其原始 40K 窗口扩展到 128K 来实现这一点。

Unslotharrow-up-right 现在也支持微调和 强化学习 (RL) 针对 Qwen3 和 Qwen3 MOE 模型——速度提升 2 倍,显存减少 70%,上下文长度增加 8 倍。使用我们的免费 Colab 笔记本arrow-up-right

运行 Qwen3 教程 微调 Qwen3

Qwen3 - Unsloth Dynamic 2.0 与最佳配置:

🖥️ 运行 Qwen3

要实现每秒 6+ 令牌的推理速度,我们建议可用内存应与您使用的模型大小相匹配或更大。例如,30GB 的 1-bit 量化模型至少需要 150GB 的内存。Q2_K_XL 量化模型为 180GB,将至少需要 180GB 的统一内存 (显存 + 内存)或 180GB 的内存 以获得最佳性能。

注意: 可以用 少于模型大小的总内存 (即更少的显存、更少的内存或较低的合计总量)来运行模型。然而,这会导致推理速度变慢。只有在您希望最大化吞吐量并实现最快推理时间时,才需要足够的内存。

⚙️ 官方推荐设置

根据 Qwen,这些是推理的推荐设置:

非思考模式设置:
思考模式设置:

Temperature = 0.7

Temperature = 0.6

Min_P = 0.0(可选,但 0.01 表现良好,llama.cpp 默认为 0.1)

Min_P = 0.0

Top_P = 0.8

Top_P = 0.95

TopK = 20

TopK = 20

聊天模板/提示格式:

circle-check
circle-exclamation

在思考模式和非思考模式之间切换

Qwen3 模型内置“思考模式”以增强推理并改善响应质量——类似于 QwQ-32B 的工作原理。切换说明将根据您使用的推理引擎而有所不同,请确保使用正确的说明。

llama.cpp 与 Ollama 的说明:

您可以添加 /think/no_think 到用户提示或系统消息中,以在每轮之间切换模型的思考模式。模型将在多轮对话中遵循最近的指令。

这里有一个多轮对话示例:

transformers 与 vLLM 的说明:

思考模式:

enable_thinking=True

默认情况下,Qwen3 已启用思考。当您调用 tokenizer.apply_chat_template时, 您不需要手动设置任何内容。

在思考模式中,模型将在最终答案之前生成一个额外的 <think>...</think> 块——这使其能够“计划”并优化回答。

非思考模式:

enable_thinking=False

启用非思考将使 Qwen3 跳过所有思考步骤,表现得像普通的大语言模型。

此模式将直接提供最终响应——没有 <think> 块,也没有链式思维。

🦙 Ollama:运行 Qwen3 教程

  1. 安装 ollama 如果您还没有安装!您只能运行最大到 32B 的模型。要运行完整的 235B-A22B 模型, 请参见此处.

  1. 运行模型!注意如果失败,您可以在另一个终端中调用 ollama serve!我们在 Hugging Face 上传中包含了所有修复和建议参数(温度等)在 params 中!

  1. 要禁用思考,请使用(或者您可以在系统提示中设置):

circle-exclamation

📖 Llama.cpp:运行 Qwen3 教程

  1. 获取最新的 llama.cppGitHub 这里arrow-up-right。您也可以按照下面的构建说明进行操作。若您没有 GPU 或仅想进行 CPU 推理,请将 -DGGML_CUDA=ON 改为 -DGGML_CUDA=OFF

  1. 通过以下方式下载模型(在安装 pip install huggingface_hub hf_transfer 之后)。您可以选择 Q4_K_M 或其他量化版本。

  1. 运行模型并尝试任意提示。

要禁用思考,请使用(或者您可以在系统提示中设置):

运行 Qwen3-235B-A22B

对于 Qwen3-235B-A22B,我们将专门使用 Llama.cpp 以获得优化的推理和大量选项。

  1. 我们遵循与上述类似的步骤,但这次由于模型非常大,还需要执行额外的步骤。

  2. 通过以下方式下载模型(在安装 pip install huggingface_hub hf_transfer )。您可以选择 UD-Q2_K_XL 或其他量化版本。

  3. 运行模型并尝试任意提示。

  4. 编辑 --threads 32 以设置 CPU 线程数量, --ctx-size 16384 以设置上下文长度, --n-gpu-layers 99 以设置用于 GPU 卸载的层数。如果您的 GPU 出现显存不足,请尝试调整它。若仅使用 CPU 推理,请移除此项。

circle-check

🦥 使用 Unsloth 微调 Qwen3

Unsloth 使 Qwen3 的微调速度提高 2 倍,使用 70% 更少的显存并支持 8 倍更长的上下文长度。Qwen3(14B)可在 Google Colab 的 16GB VRAM Tesla T4 GPU 上舒适运行。

由于 Qwen3 同时支持有推理与无推理行为,您可以使用无推理的数据集对其进行微调,但这可能会影响其推理能力。如果您希望保持其推理能力(可选),可以在数据集中混合直接回答与链式思维示例。使用 75% 推理25% 无推理 在您的数据集中以使模型保留其推理能力。

我们的对话笔记本使用 75% NVIDIA 的 open-math-reasoning 数据集和 25% Maxime 的 FineTome 数据集(无推理)的组合。以下是用于微调 Qwen3 的免费 Unsloth Colab 笔记本:

如果您有旧版本的 Unsloth 和/或在本地进行微调,请安装最新版本的 Unsloth:

Qwen3 MOE 模型微调

微调支持包括 MOE 模型:30B-A3B 和 235B-A22B。借助 Unsloth,Qwen3-30B-A3B 在仅 17.5GB VRAM 上可运行。对于微调 MoE —— 通常不建议微调路由器层,因此我们默认将其禁用。

30B-A3B 可在 17.5GB 显存中运行,但您可能缺少内存或磁盘空间,因为完整的 16-bit 模型必须下载并在运行时转换为 4-bit 以用于 QLoRA 微调。这是由于无法直接导入 4-bit BnB MOE 模型的问题。此问题仅影响 MOE 模型。

笔记本指南:

要使用这些笔记本,只需点击 Runtime,然后 Run all。您可以在笔记本中将设置更改为所需内容。我们默认已自动设置。将模型名称更改为您在 Hugging Face 上的模型名称,例如 'unsloth/Qwen3-8B' 或 'unsloth/Qwen3-0.6B-unsloth-bnb-4bit'。

还有其他可以切换的设置:

  • max_seq_length = 2048 – 控制上下文长度。虽然 Qwen3 支持 40960,但我们建议测试时使用 2048。Unsloth 支持 8 倍更长的上下文微调。

  • load_in_4bit = True – 启用 4 位量化,在 16GB GPU 上微调时将内存使用减少 4 倍。

  • 对于 完全微调 – 设置 full_finetuning = True8 位微调 – 设置 load_in_8bit = True

如果您想查看关于如何使用 Unsloth 笔记本进行端到端微调或仅了解微调、创建 数据集 等的完整指南,请查看我们的 完整指南在此:

🧬Fine-tuning Guidechevron-right📈数据集指南chevron-right

GRPO 与 Qwen3

我们为 Qwen3 制作了一个新的高级 GRPO 笔记本以进行微调。学习使用我们基于接近度的奖励函数(越接近的答案 = 越多奖励)以及 Hugging Face 的 Open-R1 数学数据集。 Unsloth 现在还有更好的评估并使用最新版本的 vLLM。

Qwen3(4B)arrow-up-right 笔记本 - 高级 GRPO LoRA

了解以下内容:

  • 在 Qwen3(基础)中启用推理并引导其执行特定任务

  • 预微调以绕过 GRPO 易于学习格式化的倾向

  • 通过新的正则匹配提升评估准确性

  • 超出仅使用 'think' 的自定义 GRPO 模板,例如 <start_working_out></end_working_out>

  • 基于接近度的评分:更好的答案获得更多分数(例如,预测 9 而正确答案为 10)并对异常值进行惩罚

最后更新于

这有帮助吗?