🌠Qwen3 - 如何运行与微调

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

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

circle-check

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

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

Unslotharrow-up-right 现在也支持微调和 强化学习(RL) Qwen3 和 Qwen3 MOE 模型 — 速度提升 2 倍,显存减少 70%,上下文长度延长 8 倍。使用我们的免费资源可对 Qwen3 (14B) 进行微调, 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 将跳过所有思考步骤,表现得像普通的 LLM。

此模式将直接提供最终回答——没有 <think> 块,也没有思路链(chain-of-thought)。

🦙 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. 运行模型并尝试任何提示(prompt)。

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

运行 Qwen3-235B-A22B

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

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

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

  3. 运行模型并尝试任何提示(prompt)。

  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 的开放数学推理数据集和 25% Maxime 的 FineTome 数据集(非推理)的组合。以下是用于微调 Qwen3 的免费 Unsloth Colab 笔记本:

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

Qwen3 MOE 模型微调

微调支持包括 MOE 模型:30B-A3B 和 235B-A22B。Qwen3-30B-A3B 在 Unsloth 下可在仅 17.5GB 显存上运行。对于微调 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-bit 量化,在 16GB GPU 上进行微调时将内存使用减少 4 倍。

  • 对于 完全微调 - 设置 full_finetuning = True8-bit 微调 - 设置 load_in_8bit = True

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

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

使用 Qwen3 的 GRPO

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

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

学习内容:

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

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

  • 通过新的正则匹配改进评估准确性

  • 自定义 GRPO 模板,不仅限于 'think',例如 <start_working_out></end_working_out>

  • 基于接近度的评分:更好的答案获得更多分数(例如,预测 9 而答案是 10)并对离群值施加惩罚

最后更新于

这有帮助吗?