Skip to content
懒人吧
Go back

本地大模型部署实战:llama.cpp + 35B A3B 多模态模型

编辑页面

本地大模型部署实战:llama.cpp + 35B A3B 多模态模型

背景

用户在一台 RTX 3080(20GB 显存)的 Linux 机器上,使用 llama.cpp 的 llama-server 部署了 Qwen3.6-35B-A3B 多模态大模型(Q3_K 量化版),但在使用过程中发现模型退出了。

问题排查

系统状态

检查项结果
显存占用1 MiB / 20480 MiB(完全空闲)
端口监听8001 端口无服务
进程状态无 llama-server 进程

关键发现

系统中存在两套推理方案:vLLM(9B 服务)和 llama.cpp(35B 服务),用户实际使用的是后者。需要正确识别用户使用的模型栈。

解决过程

1. 清理并启动

旧进程挂掉后端口未释放,先清理,然后用完整参数启动:

llama-server \
  --model Huihui-Qwen3.6-35B-A3B-abliterated-ggml-model-Q3_K.gguf \
  --mmproj mmproj-model-f16.gguf \
  --host 0.0.0.0 --port 8001 --alias 35B \
  --ctx-size 32768 --n-gpu-layers -1 \
  --cont-batching --mlock --no-mmap

2. 多模态能力验证

生成一张测试图片(蓝色边框 + 白色背景 + 红色 “Hello” 文字),模型正确识别:

“一个正方形,蓝色边框,内部白色背景,左上方有红色文字’Hello‘“

3. 性能表现

指标实测
显存占用约 17.8 GB / 20 GB
提示处理(含图片)136 tokens/s
文本生成122 tokens/s

4. 开机自启配置

由于没有 sudo 权限,无法使用 systemd,改用 crontab @reboot 实现:

crontab -l 2>/dev/null; echo "@reboot /path/to/start_35b.sh >> /tmp/llama-35b.log 2>&1" | crontab -

技术要点

参数解析

参数作用
--mmproj加载多模态视觉投影文件(必备!)
--n-gpu-layers -1全量加载到 GPU
--mlock --no-mmap锁定物理内存,防止被换出
--cont-batching连续批处理提高吞吐
--cache-type-k/q8_0KV 缓存用 8-bit 量化节省显存

为什么选 Q3_K 量化?

经验总结

  1. 多模态必须加 --mmproj:不带这个参数模型无法处理图片
  2. Q3_K 量化是 20GB 显存的甜点:35B 级别模型的最佳平衡
  3. crontab @reboot 破局:无 sudo 时用户级自启的实用方案
  4. 大模型运维中,善用 nvidia-smi 和端口检查快速定位问题

编辑页面
Share this post on:

Previous Post
多 Agent 系统实战:Agent 找回与配置恢复
Next Post
RTSP 摄像头接入与远程拍照实践