🌠Qwen3-VL:如何运行指南

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

Qwen3-VL 是 Qwen 的新视觉模型,具有 指令式思考式 版本。2B、4B、8B 和 32B 模型是密集型,而 30B 和 235B 是 MoE。235B 思考型大模型在视觉和编码性能上达到了与 GPT-5(高)和 Gemini 2.5 Pro 相媲美的 SOTA 水平。 Qwen3-VL 拥有视觉、视频和 OCR 能力,并支持 256K 上下文(可扩展到 1M)。 Unslotharrow-up-right 支持 Qwen3-VL 的微调以及 强化学习。使用我们的 笔记本.

运行 Qwen3-VL微调 Qwen3-VL

🖥️ 运行 Qwen3-VL

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

⚙️ 推荐设置

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

指令式 设置:
思考式 设置:

温度 = 0.7

温度 = 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.

指令式 设置:

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

思考式 设置:

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 会出现故障,情况如下所示:

错误代码:

在抛出 'std::runtime_error' 实例后终止
  what():  值不可调用:在第 63 行,第 78 列的 null:
            {%- 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.cppGitHub 这里arrow-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,这只是我们的迷你徽标,展示了使用 Unsloth 制作微调的方式:

  1. 让我们下载这张图片

  1. 然后,使用 llama.cpp 的自动模型下载功能,尝试为 8B 指令式模型运行以下命令:

  1. 进入后,你会看到以下屏幕:

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

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

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

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

  1. 最后让我们问这两张图片之间有何关联(它能做到!)

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

  1. 运行模型并尝试任意提示。 对于指令式:

  1. 对于思考式:

🪄运行 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 设置正确的参数。

指令式:

思考式:

  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 笔记本的目标是使视觉语言模型通过强化学习在给定类似下面的图像输入时解决数学问题:

此 Qwen3-VL 支持还集成了我们最新的更新,以实现更节省内存且更快的强化学习,包括我们的 待机 特性,该特性在速度退化方面独树一帜,优于其他实现。你可以在我们的 VLM GRPO 指南.

多图像训练

为了用多图像微调或训练 Qwen3-VL,最直接的修改是将

替换为:

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

最后更新于

这有帮助吗?