llama.cpp + GGUF:Operit 加载通用格式本地模型
llama.cpp 是什么
llama.cpp 是社区最流行的通用 LLM 推理引擎——用 C++ 实现的轻量级推理库,原生支持 GGUF 格式模型文件,可在几乎任何平台上跑本地模型(CPU、GPU、Apple Silicon、Android ARM……)。
Operit v1.8 起内置 llama.cpp 引擎,配合 GGUF 模型文件,生态最丰富、选择最多的本地推理路线。
为什么选 GGUF
GGUF 是 llama.cpp 采用的模型文件格式,特点:
- 通用:几乎所有主流 LLM 都有 GGUF 转换版本(Meta Llama、Qwen、Mistral、Gemma……)
- 量化丰富:Q2 到 Q8 多个量化档位,内存占用量化可控
- 跨平台:同一个 GGUF 文件可以在电脑、手机、NAS 上用 llama.cpp 跑
Operit 直接读取 GGUF 文件,不需要转换格式。
获取 GGUF 模型
下载渠道
- HuggingFace(huggingface.co):搜索模型名 + GGUF,下载 .gguf 文件
- ModelScope(modelscope.cn):国内镜像,速度更快
- 社区推荐:Qwen2.5 系列的 GGUF 转换版(Qwen2.5-1.5B、Qwen2.5-7B-Q4 等)
模型文件大小(参考)
| 模型 | Q4_K_M 大小 | Q5_K_M 大小 | Q8_0 大小 |
|---|---|---|---|
| Qwen2.5-1.5B | ~1GB | ~1.2GB | ~1.7GB |
| Qwen2.5-3B | ~2GB | ~2.5GB | ~3.5GB |
| Qwen2.5-7B | ~4.4GB | ~5.1GB | ~7.1GB |
| Llama-3.1-8B | ~4.7GB | ~5.5GB | ~7.5GB |
Q4_K_M 是社区推荐的质量与体积平衡档。
在 Operit 里配置 GGUF
方式一:手动放文件
- 下载
.gguf文件到手机 - 放到 Operit 的
models/目录(通常在 Android 存储的 Operit 数据目录下,或内部存储根目录的Operit/models/) - 打开 Operit 侧栏 → 模型配置
- 点击「新建配置」→ 选择「本地模型」→ 引擎选 llama.cpp
- 选择刚才放进去的 GGUF 文件
- 测试连接 → 返回正常回复就通了
方式二:Operit 内置下载
部分热门模型在 Operit 里有内置下载入口,直接点就能下,省去手动传输。
性能参考(骁龙 8 Gen 2)
| 模型 | 量化 | 内存 | 速度 | 适用 |
|---|---|---|---|---|
| Qwen2.5-1.5B | Q4_K_M | ~2GB | 8–12 tok/s | 日常对话 |
| Qwen2.5-3B | Q4_K_M | ~3GB | 6–10 tok/s | 中等复杂 |
| Qwen2.5-7B | Q4_K_M | ~6GB | 5–12 tok/s | 复杂推理(旗舰机) |
常见问题
GGUF 文件放对位置但加载不到
- 文件扩展名是否真的是
.gguf(有时下载成.bin或没扩展名) - 文件大小是否合理(太小可能是下载中断)
- 先在文件管理器里确认文件确实在
models/目录下
加载时报内存不足
- Q4 量化比原始模型省约 75% 内存,优先选 Q4
- 关闭其他后台应用释放内存
- 4GB 内存的手机建议只用 1.5B 以下的模型
- 6GB 内存的手机最多尝试 7B Q4(仍可能吃力)
推理速度比预期慢
- 切到 MNN 引擎 + MNN 格式模型(同量级快 30–50%)
- 确认是 GGUF Q4 而非 Q8 或 FP16(量化越低越快但质量略降)
- 手机发热时会降频,歇一会再试
对话质量差
- 选「Instruct」或「Chat」版本的 GGUF(不是 base 版本)
- 换更大的模型试试(1.5B → 7B)
- 检查系统提示词配置,给模型明确的角色设定
和 MNN 引擎怎么选
| 场景 | 推荐 |
|---|---|
| 最追求速度 | MNN + MNN 格式 |
| 最追求模型选择多 | llama.cpp + GGUF |
| 质量优先 | llama.cpp + Q4_K_M 7B |
| 先用起来 | 先装 llama.cpp + Qwen2.5-1.5B-Q4,够用再升级 |