🌠Qwen3-VL:如何运行指南

了解如何使用 Unsloth 在本地微调并运行 Qwen3-VL。

Qwen3-VL 是 Qwen 的新视觉模型,具有 指导(instruct)思考(thinking) 版本。2B、4B、8B 和 32B 模型为密集模型,而 30B 和 235B 为 MoE。235B thinking 大规模语言模型在视觉和编码性能上达到了与 GPT-5(高)和 Gemini 2.5 Pro 竞争的 SOTA 水平。 Qwen3-VL 具有视觉、视频和 OCR 能力,并支持 256K 上下文(可扩展到 1M)。 Unslotharrow-up-right 支持 Qwen3-VL 的微调和 强化学习(RL)。使用我们的 笔记本(notebooks)可免费训练 Qwen3-VL(8B).

运行 Qwen3-VL微调 Qwen3-VL

🖥️ 运行 Qwen3-VL

要在 llama.cpp、vLLM、Ollama 等中运行该模型,以下是推荐设置:

⚙️ 推荐设置

Qwen 为两种模型都推荐了这些设置(Instruct 和 Thinking 有些不同):

Instruct 设置:
Thinking 设置:

Temperature = 0.7

Temperature = 1.0

Top_P = 0.8

Top_P = 0.95

presence_penalty = 1.5

presence_penalty = 0.0

输出长度 = 32768(最高可达 256K)

输出长度 = 40960(最高可达 256K)

Top_K = 20

Top_K = 20

Qwen3-VL 在其基准测试中也使用了下面的设置,如在 GitHub 上所述arrow-up-right.

Instruct 设置:

export greedy='false'
export seed=3407
export top_p=0.8
export top_k=20
export temperature=0.7
export repetition_penalty=1.0
export presence_penalty=1.5
export out_seq_length=32768

Thinking 设置:

export greedy='false'
export seed=1234
export top_p=0.95
export top_k=20
export temperature=1.0
export repetition_penalty=1.0
export presence_penalty=0.0
export out_seq_length=40960

🐛聊天模板错误修复

在 Unsloth,我们最关心准确性,因此我们调查了为什么在运行 Thinking 模型的第二轮对话后,llama.cpp 会崩溃,情况如下所示:

错误代码:

terminate called after throwing an instance of 'std::runtime_error'
  what():  Value is not callable: null at row 63, column 78:
            {%- if '</think>' in content %}
                {%- set reasoning_content = ((content.split('</think>')|first).rstrip('\n').split('<think>')|last).lstrip('\n') %}
                                                                             ^

我们已成功修复了 VL 模型的 Thinking 聊天模板,因此我们重新上传了所有 Thinking 量化文件和 Unsloth 的量化文件。它们现在在第二次对话后都应能正常工作 - 其他量化文件在第二次对话后将无法加载。

Qwen3-VL Unsloth 上传内容:

自 2025 年 10 月 30 日起,llama.cpp 已支持 Qwen3-VL 的 GGUF,因此您可以在本地运行它们!

📖 Llama.cpp:运行 Qwen3-VL 教程

  1. 获取最新的 llama.cpp此处的 GitHubarrow-up-right。您也可以按照下面的构建说明进行操作。将 -DGGML_CUDA=ON 更改为 -DGGML_CUDA=OFF 如果您没有 GPU 或只想使用 CPU 推理。 对于 Apple Mac / Metal 设备,设置 -DGGML_CUDA=OFF 然后照常继续 - Metal 支持默认启用。

  1. 先获取一张图片吧! 您也可以上传图片。我们将使用 https://raw.githubusercontent.com/unslothai/unsloth/refs/heads/main/images/unsloth%20made%20with%20love.pngarrow-up-right,这只是我们的迷你徽标,展示了 finetune 如何使用 Unsloth 制作:

  1. 让我们下载这张图片

  1. 然后,使用 llama.cpp 的自动模型下载功能,试试下面针对 8B Instruct 模型的命令:

  1. 进入后,您将看到下面的界面:

  1. 通过以下命令加载图片: /image PATH 例如 /image unsloth.png 然后按 ENTER

  1. 当您按下 ENTER 时,会显示“unsloth.png image loaded”

  1. 现在我们可以问一个问题,例如 “这张图片是什么?”:

  1. 现在通过以下命令加载第二张图片: /image picture.png 然后按 ENTER 并询问 “这张图片是什么?”

  1. 最后,我们来问两张图片之间的关系(它是可以的!)

  1. 您也可以通过以下方式下载模型(在安装 pip install huggingface_hub hf_transfer )之后使用 HuggingFace 的 snapshot_download ,这对于大型模型下载很有用, 因为 llama.cpp 的自动下载器有时可能会滞后。 您可以选择 Q4_K_M 或其他量化版本。

  1. 运行模型并尝试任意提示词。 对于 Instruct:

  1. 对于 Thinking:

🪄运行 Qwen3-VL-235B-A22B 和 Qwen3-VL-30B-A3B

对于 Qwen3-VL-235B-A22B,我们将使用 llama.cpp 进行优化推理并提供大量选项。

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

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

  3. 运行模型并尝试提示。为 Thinking 与 Instruct 设置正确的参数。

Instruct:

Thinking:

  1. 编辑, --ctx-size 16384 用于上下文长度, --n-gpu-layers 99 用于 GPU 卸载的层数。若 GPU 出现内存不足,请尝试调整该值。如仅使用 CPU 推理,则移除该设置。

circle-check

🐋 Docker:运行 Qwen3-VL

如果您已安装 Docker Desktop,要从 Hugging Face 运行 Unsloth 的模型,只需运行以下命令即可:

或者您也可以运行 Docker 上传的 Qwen3-VL 模型:

🦥 微调 Qwen3-VL

Unsloth 支持对 Qwen3-VL(包括更大的 32B 和 235B 模型)进行微调和强化学习(RL)。这包括对视频和目标检测的微调支持。如往常一样,Unsloth 使 Qwen3-VL 模型训练速度提升 1.7 倍,显存降低 60%,并在不降低准确性的情况下实现 8 倍更长的上下文长度。 我们制作了两个 Qwen3-VL(8B)训练笔记本,您可以在 Colab 上免费训练:

circle-check

GRPO 笔记本的目标是使视觉语言模型通过 RL 在给定如下图像输入的情况下解决数学问题:

该 Qwen3-VL 支持还集成了我们最新的更新,以实现更省内存且更快速的 RL,包括我们的 待机(Standby)功能,该功能在与其他实现相比时,能独特地限制速度退化。您可以阅读更多关于如何使用 RL 训练视觉 LLM 的内容,详见我们的 VLM GRPO 指南.

多图像训练

为了对 Qwen3-VL 进行多图像微调或训练,最直接的更改是将

替换为:

使用 map 会触发数据集标准化和 Arrow 处理规则,这些规则可能更严格且更复杂以定义。

最后更新于

这有帮助吗?