教程 | 将 Qwen2.5-VL-3B-Instruct 的非量化模型(.safetensors)转换为 Ollama 支持的 GGUF 格式

近期阿里发布了多模态开源模型 Qwen2.5-VL-3B-Instruct,支持视觉和语言输入,并提供了 safetensors 格式的非量化权重文件。但如果我们想在 Ollama 中使用该模型,就必须将其转换为 GGUF 格式。

本文将手把手教你如何完成 Qwen2.5-VL-3B-Instruct 模型的转换和部署。


一、准备环境

确保你的系统满足以下条件:

  • 操作系统:推荐 Linux 或 WSL 环境

  • Python:建议 Python 3.10+

  • 依赖库

    pip install -U transformers accelerate sentencepiece einops
    

二、获取模型文件

从 HuggingFace 下载 Qwen2.5-VL-3B-Instruct 模型(非量化 safetensors 版本):

git lfs install
git clone https://huggingface.co/Qwen/Qwen2.5-VL-3B-Instruct

三、转换为 GGUF 格式

我们需要使用 llama.cpp 提供的 convert.py 脚本完成 GGUF 格式的转换。

1. 克隆 llama.cpp 并编译

git clone https://github.com/ggerganov/llama.cpp
cd llama.cpp
make

2. 执行模型转换

python3 convert.py \
  --outfile qwen2.5-vl-3b.gguf \
  --outtype f16 \
  --model-dir /路径/到/Qwen2.5-VL-3B-Instruct \
  --model-type qwen2.5-vl

参数说明:

  • --outfile: 输出 GGUF 文件名

  • --outtype f16: 使用 float16 精度(可选 q4, q5, q8 等)

  • --model-dir: 模型所在目录

  • --model-type: 需要设置为 qwen2.5-vl

转换完成后,qwen2.5-vl-3b.gguf 就是 Ollama 可用的模型文件。


四、在 Ollama 中部署模型

创建一个名为 Modelfile 的配置文件:

FROM llama3
PARAMETER temperature 0.7
PARAMETER top_p 0.9
PARAMETER num_ctx 4096
PARAMETER stop "<|im_end|>"

# 自定义模型路径
MODEL qwen2.5-vl-3b.gguf

然后使用以下命令添加模型到 Ollama:

ollama create qwen2.5-vl-3b -f Modelfile

启动模型:

ollama run qwen2.5-vl-3b

五、注意事项

  • 如果转换失败,请检查 llama.cpp 是否为最新版本。

  • 对于多模态输入,Ollama 当前尚不完全支持图片输入,但 GGUF 转换仍有助于未来集成。

  • 你也可以尝试 quantize.py 实现量化版本,例如 Q4_0、Q5_K 等。


六、结语

通过本文的步骤,我们成功将 Qwen2.5-VL-3B-Instruct 从 .safetensors 转换为 GGUF 格式,并部署到 Ollama 中。随着开源社区的发展,多模态模型的使用将越来越普遍,而 GGUF 格式作为高效部署的桥梁,越来越显示出其重要性。

如果你在部署过程中遇到任何问题,欢迎评论交流或私信我,一起探索更多大模型实战技巧!

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐