Windows 本地部署开源大模型:Qwen + llama.cpp 实战记录
这篇整理一下我在 Windows 本地部署开源大模型的完整流程。
目标很直接:不用复杂的服务端环境,也不折腾一堆框架,直接用 llama.cpp 在本机跑 Qwen / Qwen2.5 系列模型,能聊天、能走 WebUI,也能提供 OpenAI 兼容 API。
我这里主要以 Qwen3.8-27B、Qwen2.5、Qwen2.5-VL 这一类 GGUF 模型为例。具体模型版本和文件名可能会随着社区更新变化,但整体思路是通用的。

本地部署能做什么?
本地部署不只是为了“炫技”,它其实很适合学习和做一些低成本的小工具。
从学习角度看,本地部署可以帮你真正理解大模型是怎么跑起来的。比如模型文件为什么动不动十几 GB,什么是 GGUF,为什么有 Q4、Q5、Q8 这些量化版本,显存不够的时候为什么会变慢,-ngl 这种参数到底在控制什么。
这些东西只看文章容易云里雾里,但你自己跑一次、爆一次显存、调一次参数,就会清楚很多。
从实用角度看,本地模型也能做不少事:
- 离线写草稿、改文章、整理笔记。
- 分析代码、解释报错、辅助写脚本。
- 总结资料、提取结构、帮你把零散内容整理成文档。
- 在隐私敏感的场景下处理一些不方便丢到公网模型里的内容。
- 配合视觉模型处理截图、PDF 图片、扫描资料。
最后这一点我觉得挺有意思。比如一些 PDF 是扫描版,直接复制不出文字,或者资料里混着大量截图。这个时候可以把页面导成图片,再丢给本地小模型或视觉模型,让它帮你识别、归纳、分类,甚至整理成 Markdown。
它不一定比云端大模型更强,但胜在成本低、可反复试、数据也留在自己机器上。
先理解几个核心概念
本地跑大模型,最先遇到的不是代码,而是硬件资源。
GPU 显存,也就是 VRAM。
显存速度很快,模型权重能放进显存多少层,基本决定了你的推理速度。如果显存够,体验会很舒服;如果显存不够,就会把一部分计算放到内存和 CPU 上,能跑,但会慢。
CPU 内存,也就是 RAM。
显存不够时,剩下的模型层数会走内存。内存越大,能容纳的模型越大,但速度肯定比纯显存慢。
GGUF 格式。
GGUF 是现在 llama.cpp 生态里非常常见的模型格式,适合 CPU / GPU 混合推理,也方便在 Windows 上直接运行。
所以我们要做的事,本质上就是三步:
- 下载合适的
llama.cppWindows 运行包。 - 下载合适的 GGUF 模型文件。
- 根据自己的显存和内存,调整启动参数。
下载 llama.cpp 运行时
llama.cpp 的官方发布页在这里:
https://github.com/ggml-org/llama.cpp/releases
打开 Releases 页面后,你会看到很多压缩包。Windows 用户可以按下面这个思路选:
| 电脑硬件 | 推荐包 | 说明 |
|---|---|---|
| NVIDIA 显卡 | llama-bXXXX-bin-win-cuda-cu12.4-x64.zip |
推荐优先选 CUDA 版 |
| NVIDIA 显卡依赖 | cudart-llama-bin-win-cuda-cu12.4-x64.zip |
CUDA 版需要一起下载 DLL 依赖 |
| 纯 CPU / 无独显 | llama-bXXXX-bin-win-cpu-x64.zip |
能跑,但速度看 CPU |
| AMD 显卡 | Vulkan 或 ROCm 相关版本 | Windows 下 Vulkan 更常见 |
| Intel 核显 / 独显 | SYCL 或 OpenVINO 相关版本 | 需要配套驱动环境 |
如果你是 NVIDIA 显卡,重点记住一句话:主程序包和 CUDA DLL 依赖包要一起下载,并解压到同一个目录。
比如可以统一放到:
1 | E:\LLMWork\llama-bin\ |
里面应该能看到类似这些文件:
1 | llama-server.exe |
如果只解压了主程序,少了 CUDA 相关 DLL,很容易启动失败。
下载模型:先选量化版本
大模型原始权重通常很大,27B 级别的 FP16 / BF16 模型可能要 50GB 以上。普通电脑肯定吃不消,所以本地部署一般会用量化后的 GGUF 文件。
常见后缀大概可以这样理解:
| 量化后缀 | 体积和速度 | 智力保留 | 适合配置 |
|---|---|---|---|
IQ2_M |
体积很小,速度友好 | 有损较明显,但能用 | 6GB / 8GB 显卡想体验大参数模型 |
IQ4_XS |
比 Q4 更紧凑 | 效果不错 | 12GB 显卡或 32GB 内存 |
Q4_K_M |
平衡点 | 综合体验好 | 16GB / 24GB 显卡,或内存较大 |
Q5_K_M |
更高精度 | 效果更稳 | 24GB 显卡或 64GB 内存 |
Q8_0 |
接近无损,体积大 | 效果最好 | 多卡、工作站或服务器 |
我的理解是:
- 显存只有 6GB / 8GB,又想试 27B,可以先看
IQ2_M。 - 想要日常体验舒服,7B / 14B 的
Q4_K_M往往更实际。 - 24GB 显存以上,再考虑 27B 的
Q4_K_M/Q5_K_M。
不要一上来就追最大模型。能稳定跑起来,比参数大但卡到难受更重要。
视觉模型 mmproj 是什么?
如果你要用 Qwen2.5-VL 这类视觉模型处理图片,除了主模型 GGUF,通常还会遇到一个 mmproj 文件。
可以简单理解为:
- 主语言模型:负责理解文字、生成回答。
mmproj:负责把图片转成模型能理解的特征。
例如:
1 | Qwen2.5-VL-7B-Instruct-abliterated.Q4_K_M.gguf |
这两个要配套使用。
这里有个坑:不要跨型号、跨参数混用 mmproj。
比如 Qwen2.5 的 mmproj 不要拿去配 Qwen3.8,7B 的 mmproj 也不要拿去配 27B。混用很容易报 Dimension Mismatch 之类的错误。
推荐目录结构
为了后续移动、备份、写脚本都方便,我建议把本地大模型相关文件放在一个固定目录里。
比如:
1 | E:\LLMWork\ |
llama-bin 放运行时,models 放模型,脚本放根目录。这样脚本可以用相对路径扫描模型,不用每次改绝对路径。
不同配置怎么选模型?
下面是一个比较实用的参考,不需要完全照抄,重点看思路。
| 配置 | 推荐模型组合 | 推荐 -ngl |
适合场景 |
|---|---|---|---|
| RTX 3050 / 2060 6GB + 16GB/32GB 内存 | Qwen2.5-VL-7B Q4_K_M |
33 左右 |
日常对话、截图识别、文档整理 |
| RTX 3050 / 2060 6GB + 32GB 内存 | Qwen3.8-27B IQ2_M |
18 左右 |
尝鲜 27B,速度不会太快 |
| RTX 3060 / 4060 8GB + 32GB 内存 | Qwen3.8-27B IQ2_M |
24 左右 |
平衡体验和大模型能力 |
| RTX 3060 / 4070 12GB + 32GB 内存 | Qwen2.5-14B Q4_K_M |
48 左右 |
编程、写作、较流畅响应 |
| RTX 4070 Ti Super / 4080 16GB + 32GB/64GB 内存 | Qwen3.8-27B IQ4_XS / Q4_K_M |
40 左右 |
更强的综合生产力 |
| RTX 3090 / 4090 / 5090 24GB+ + 64GB 内存 | Qwen3.8-27B Q4_K_M / Q5_K_M |
99 |
更完整的本地大模型体验 |
-ngl 控制的是卸载到 GPU 的层数。层数越高,越吃显存,但速度也通常越快。遇到显存爆掉,就把它往下调。
一键启动脚本的思路
手动敲 llama-server 参数当然可以,但每次输入模型路径、端口、上下文长度、GPU 层数,其实挺烦。
所以更舒服的方式是写一个脚本:
- 自动扫描
models目录里的.gguf文件。 - 让你输入数字选择要启动的模型。
- 如果是视觉模型,自动找配套
mmproj。 - 根据模型类型给一个相对保守的
-ngl默认值。 - 启动
llama-server。 - 自动打开浏览器访问 WebUI。
实际启动后可以看到类似这样的确认信息:

启动成功后,llama-server 会监听本地端口,例如:
1 | http://127.0.0.1:8080 |
第一个是 WebUI,第二个是 OpenAI 兼容 API 地址。也就是说,后续你可以把一些支持自定义 OpenAI API 的工具接到本地模型上。
实际加载日志大概是这样:

常见问题
双击 bat 一闪而过
通常是脚本编码、PowerShell 调用方式、路径里有中文,或者环境变量有问题。
建议在 .bat 里调用 PowerShell,并在脚本里加上暂停逻辑。这样即使报错,窗口也不会直接消失,至少能看到错误信息。
CUDA out of memory
这是显存爆了。
最直接的办法就是把 -ngl 调低,比如从 33 降到 28,或者从 24 降到 18。如果还是不行,就换更小的量化版本,或者换 7B / 14B 模型。
图片上传后提示不是视觉模型
一般是两个原因:
- 没有放
mmproj文件。 mmproj和主模型不匹配。
先确认模型文件名和 mmproj 是同一个系列,再确认启动日志里有没有加载多模态模型。
生成速度很慢
如果只有 1 到 2 tokens/s,大概率是模型太大,很多层跑到了 CPU / 内存上。
这种情况不要硬撑。换小一点的模型,或者换更低量化版本,实际体验会好很多。
下载链接参考
下面这些链接以实际页面为准,社区模型更新比较快,下载前建议再看一下模型说明。
- llama.cpp Releases:
https://github.com/ggml-org/llama.cpp/releases - Qwen3.8-27B GGUF 示例:
https://huggingface.co/unsloth/Qwen3.8-27B-GGUF - 国内镜像示例,Qwen3.8-27B:
https://hf-mirror.com/bartowski/Qwen3.8-27B-GGUF - 国内镜像示例,Qwen2.5-VL-7B:
https://hf-mirror.com/mradermacher/Qwen2.5-VL-7B-Instruct-abliterated-GGUF - 国内镜像示例,Qwen2.5-14B:
https://hf-mirror.com/Qwen/Qwen2.5-14B-Instruct-GGUF
最后
本地部署开源大模型这件事,看起来步骤多,但拆开以后其实就是:下载运行时、下载模型、调整参数、启动服务。
它不一定适合所有人,也不一定能替代云端大模型。但对我来说,它最大的价值是把“能不能试试”这件事变便宜了。
想研究模型,就在本地折腾;想处理一些不方便上传的资料,也可以先用本地模型跑一遍。哪怕最后发现效果一般,这个试错成本也很低。
如果你也喜欢折腾 AI、自动化和一些奇奇怪怪的小工具,可以关注我的公众号,后面我会继续整理这些实践记录。



