本地搭建大模型:llama.cpp + GGUF 实战指南
这篇文章记录在本地(macOS)从零搭建一个大语言模型的完整过程:用 llama.cpp 作为推理引擎,下载 GGUF 格式的模型文件,通过一个启动脚本拉起本地服务,最后在浏览器里直接聊天。全程不依赖云端 API,数据不出本机,离线也能用。
核心概念先搞清楚
llama.cpp
llama.cpp 是一个用 C/C++ 实现的大模型推理引擎,也是目前本地部署大模型最主流的方案之一。它的特点是:
- 跨平台:macOS、Windows、Linux 都能跑,macOS 上自动走 Metal 加速,NVIDIA 显卡走 CUDA;
- 轻量高效:对内存和显存友好,普通消费级机器也能运行量化后的模型;
- 配套命令齐全:安装后提供
llama-server(HTTP 服务 + 自带网页聊天界面)、llama-cli(命令行对话)、llama-quantize(量化工具)等命令。
简单理解:llama 是加载大模型的引擎,模型文件本身(GGUF)是燃料,两者配合才能在本地跑起来。
GGUF 格式
GGUF(GPT-Generated Unified Format)是专为大语言模型设计的高效二进制文件格式,用于存储模型权重、元信息和配置,实现快速加载和本地部署。它是 llama.cpp 社区维护的标准格式,也是早期 GGML 格式的继任者,主要优势:
- 单文件分发:一个
.gguf文件包含权重、词表、超参数等全部内容,拷走就能用; - 原生支持量化:同一条模型可以发布 Q4_K_M、Q8_0 等多个量化版本,按机器配置选;
- 加载快:二进制布局为快速加载优化,启动速度远快于原始权重。
Hugging Face
Hugging Face 是一个以开源和社区为核心的 AI 平台与生态系统,致力于让机器学习,尤其是自然语言处理(NLP)、计算机视觉(CV)、语音识别等变得更开放、更便捷、更可复用。它的 Model Hub 是目前最大的开源模型仓库,绝大多数开源模型的 GGUF 版本都能在这里找到,页面会列出文件列表、说明文档和使用方式。
Qwen 与 35B-A3B
Qwen(通义千问)是阿里云开源的大模型系列。本文使用的 Qwen3.6-35B-A3B 采用 MoE(Mixture of Experts,混合专家) 架构:总参数量 35B,但每次推理只激活约 3B 参数,兼顾了模型能力和推理速度,本地部署的性价比很高。
文件名里的 Uncensored 表示这是社区作者(HauhauCS)在官方模型基础上微调的版本,移除了部分安全拒答限制(脚本标题里也标注了越狱版);Aggressive 是微调风格的代号。这类变体在合规与内容安全上需要自行评估,日常使用建议优先选择官方版本。
另外这个模型还支持多模态:配套的 mmproj-*.gguf 是视觉投影文件,让模型能看懂图片,启动时用 --mmproj 参数挂载。
量化等级怎么选
GGUF 文件名里的 Q4、Q2 表示权重量化到的比特数,数字越小体积越小、质量损失越大。常见的几档:
| 档位 | 含义 | 适用场景 |
|---|---|---|
| Q4_K_M | K 量化 4 bit,社区常用稳定版 | 显存/内存中等,追求稳妥 |
| Q4_K_P | K 量化 4 bit 的变体,质量优先 | 显存充足(脚本里标注 4090 推荐) |
| IQ4_NL | i-quant 4 bit,同位数下质量更高 | 显存中等,想压榨质量 |
| IQ2_M | i-quant 2 bit,体积最小 | 6G/8G 小显存或内存紧张 |
K 量化(Q4_K_*)是传统 k-quant 方案,i-quant(IQ*)利用重要性矩阵做量化,同比特数下通常质量更好,但加载稍慢。
安装 llama.cpp
macOS 上直接用 Homebrew 安装:
1 | brew install llama.cpp |
装完后就有了 llama-server、llama-cli 等命令。llama-server 会启动一个 HTTP 服务并自带网页聊天界面,是本地部署最方便的入口。
下载 GGUF 大模型文件
以 Qwen3.6-35B-A3B-Uncensored-HauhauCS-Aggressive 为例,在 Hugging Face 上找到对应的模型仓库,下载主模型 GGUF 和配套的多模态投影文件,放到同一个目录:
- 主模型:
Qwen3.6-35B-A3B-Uncensored-HauhauCS-Aggressive-Q4_K_M.gguf(按你的显存/内存选择量化档位,可下载多个档位随时切换); - 视觉投影:
mmproj-Qwen3.6-35B-A3B-Uncensored-HauhauCS-Aggressive-f16.gguf。
下载链接:
1 | https://huggingface.co/HauhauCS/Qwen3.6-35B-A3B-Uncensored-HauhauCS-Aggressive |
备用下载地址(夸克网盘):
1 | https://pan.quark.cn/s/d971b8a8b139#/list/share |
编写启动脚本
把下面的 start.sh 和下载好的模型文件放在同一个目录。脚本提供了 4 个量化档位的选择菜单,选完后用 llama-server 启动本地服务:
1 |
|
脚本里几个关键参数的含义:
| 参数 | 作用 |
|---|---|
-m |
指定主模型 GGUF 文件 |
--mmproj |
挂载多模态视觉投影文件,让模型支持图片输入 |
-ngl 999 |
把尽可能多的层放到 GPU(Metal/CUDA),999 约等于全部层 |
-c |
上下文长度,131072 即 128K tokens;IQ2_M 档位降到 8192 以省内存 |
-n |
单次生成的最大 token 数 |
--host / --port |
监听地址和端口,默认 127.0.0.1:8080 |
执行启动脚本
给脚本加执行权限后运行:
1 | ./start.sh |
看到下面几行输出就说明启动成功,浏览器访问 http://127.0.0.1:8080 即可使用:
1 | 0.02.185.889 I srv llama_server: model loaded |
model loaded 表示模型加载完成,listening on http://127.0.0.1:8080 表示服务已就绪;后面两条 W 是版本提示,可以忽略。
使用模型
在浏览器中打开 http://127.0.0.1:8080,就会进入 llama-server 自带的聊天界面,直接输入问题即可和模型对话:

这个界面和主流 AI 聊天工具类似,支持多轮对话;因为挂载了 --mmproj,部分界面还支持上传图片做多模态理解。服务只监听 127.0.0.1,只有本机能访问,数据不会上传到任何外部服务。
常见问题
- 找不到 llama-server:确认
llama-server与start.sh在同一目录,或者已经通过brew install llama.cpp加入 PATH; - 提示找不到模型文件:把对应档位的 GGUF 下载到脚本所在目录,文件名必须与脚本中的完全一致;
- 端口被占用:8080 被其他程序占用时,把脚本里的
--port 8080改成其他端口,访问地址同步修改; - 内存不够:选择 IQ2_M 档位(2 bit 量化),或把
-c上下文调小(如 8192),能显著降低内存占用; - 想要命令行体验:不用网页,直接用
llama-cli -m 模型文件.gguf进入终端对话。


