Ollama运行Qwen3.5
2026年初Qwen 3.5推出,作为多模态大模型,能够处理文本和图像,并且采用了最新的MoE(Mixture of Experts)架构优化。
我通过 ModelScope 从阿里的魔搭平台下载模型文件,尝试在Ollama中运行
模型下载和导入
下载模型文件:
# 下载 Qwen3.5-35B-A3B: 注意Qwen3.5是多模态模型,需要下载 .guff 文件配套的 mmproj 文件
# 视觉投影文件,通常文件名包含 mmproj 和 q8_0 或 f16,优先选择f16或q8_0版本,精度更高
modelscope download --model unsloth/Qwen3.5-35B-A3B-GGUF \
--include "Qwen3.5-35B-A3B-Q4_K_M.gguf mmproj-F16.guff" \
--local_dir ./Qwen3.5-35B-A3B
需要注意 :
Qwen3.5 这种多模态模型在 GGUF 格式下,通常是分体式的:
.gguf`文件:包含 LLM 的语言模型权重mmproj文件: 即Multi-Model Projector,专门负责将图片像素转为LLM能理解的Token
在 Modelfile 中必须同时导入 .gguf 文件和配套的 mmproj 文件(推荐采用fp16),这样才能让Ollama能够处理图片,否则就会报错 500: Failed to create new sequence: failed to process inputs: this model is missing data required for image input
编辑
Qwen3.5-35B-A3B.Modelfile
# 指向你下载的 GGUF 文件路径
FROM ./Qwen3.5-35B-A3B/Qwen3.5-35B-A3B-Q4_K_M.gguf
# 包含视觉投影文件
ADAPTER ./Qwen3.5-35B-A3B/mmproj-F16.gguf
# --- 硬件与资源优化参数 ---
# 强制所有模型层进入 GPU (双 A2 会自动平摊)
PARAMETER num_gpu 99
# 设置上下文窗口:针对 32GB 显存,建议初始设为 16384 (16k)
# 若后续处理长视频或大文档需更多空间,可调至 32768
PARAMETER num_ctx 16384
# 针对 A2 显存带宽优化的推理参数
PARAMETER temperature 0.7
PARAMETER top_p 0.8
PARAMETER repeat_penalty 1.1
# --- 多模态与对话模板 ---
# Qwen3.5 专用的 ChatML 模板
TEMPLATE """{{ if .System }}<|im_start|>system
{{ .System }}<|im_end|>
{{ end }}{{ if .Prompt }}<|im_start|>user
{{ .Prompt }}<|im_end|>
{{ end }}<|im_start|>assistant
{{ .Response }}<|im_end|>"""
# 停止词配置
PARAMETER stop "<|im_start|>"
PARAMETER stop "<|im_end|>"
# --- SRE 专家系统提示词 ---
SYSTEM """你是一个部署在私有云环境(双 Tesla A2)中的全能 AI 助手。
你不仅精通 Linux 服务器运维、Kubernetes 架构和 Rust/Go 开发,
还具备强大的多模态理解能力,能够分析用户提供的图片和视频文件。
在提供代码建议时,优先考虑性能优化和安全性。"""
执行导入:
# 导入 Qwen 3.5
docker exec -it ollama ollama create qwen3.5-35b-a3b-q4_k_m -f /root/.ollama/guff/Qwen3.5-35B-A3B.Modelfile
异常排查
当通过
qwen35moe 模型架构失败llama_model_load: error loading model: error loading model architecture: unknown model architecture: 'qwen35moe'
llama_model_load_from_file_impl: failed to load model
time=2026-03-19T11:51:03.469Z level=INFO source=sched.go:471 msg="NewLlamaServer failed" model=/root/.ollama/mode
ls/blobs/sha256-3b46d1066bc91cc2d613e3bc22ce691dd77e6f0d33c9060690d24ce6de494375 error="unable to load model: /ro
ot/.ollama/models/blobs/sha256-3b46d1066bc91cc2d613e3bc22ce691dd77e6f0d33c9060690d24ce6de494375"
从错误日志可以看到 Ollama 不能处理 qwen35moe 模型架构,这是因为我当前使用的Ollama镜像不是最新版本,无法识别 Qwen3.5 最新的 MoE (Mixture of Experts) 架构优化。
参考 qwen35/qwen35moe models downloaded from HuggingFace are unsupported. #14503 可以看到目前Ollama只支持 f32/f16/bf16/q8/q6/q4 tensors,而 llama.cpp 则支持更广泛的tensor量化类型。当在Ollama引擎上运行多模态,目前只支持safetensors导入并量化为包含上述量化类型的 单个GGUF文件 。而llama.cpp引擎运行多模态模型,从safetensors导入并量化为更多数据类型是, 权重会被拆分为两个文件 : 文本文件和视觉文件。此时拆分后的模型只能在 llama.cpp 引擎上运行。
需要等 Revert revert vendor update (Vendor Update to b8353)#14134 合并以后,Ollama才会同时支持融合模型(由Ollama从safetensors量化的模型)和 拆分模型 (由 llama.cpp 从safetensors量化的模型)
当前在 ollama Docker官方镜像 latest 刚推送的版本是 0.18.2 ,是大约16小时前更新的,所以通过以下方法尝试更新到最新版本:
docker stop ollama
docker rm ollama
# 更新最新版本
docker pull ollama/ollama:latest
然后再次以最新镜像再次创建ollama容器(见 在Docker中Ollama使用NVIDIA A2 GPU运行大模型 ):
export data_dir=/home/admin/docker
docker run -d --gpus=all \
--network ai-network \
-v $data_dir/ollama_data:/root/.ollama \
-p 11434:11434 \
--name ollama \
-e OLLAMA_HOST=0.0.0.0 \
-e OLLAMA_FLASH_ATTENTION=1 \
-e OLLAMA_KEEP_ALIVE=24h \
--restart always \
ollama/ollama
不过,实践发现这个问题尚未解决。目前还需要等待官方合并补丁以后更新镜像,待解决...