本地推理速度参考:骁龙 8 系能跑到多少 token/s
物理上限先说
手机上跑本地 LLM 的三条硬约束,任何软件都改不了:
- 芯片算力:骁龙 8 Gen 2 + NPU 比骁龙 6 系快得多
- 内存带宽:本地推理是内存带宽瓶颈,不是算力瓶颈
- 散热能力:持续满载 10 分钟就降频
选模型和量化档位时,以这些物理约束为前提。
不同机型的速度参考
骁龙 8 系旗舰(如 8 Gen 2 / 8 Gen 3)
| 引擎 | 模型 | 量化 | 内存 | 速度 |
|---|---|---|---|---|
| MNN | Qwen2.5-1.5B | INT8 | ~1GB | 15–20 tok/s |
| MNN | TinyLlama-1.1B | INT8 | ~500MB | 18–25 tok/s |
| llama.cpp | Qwen2.5-1.5B | Q4_K_M | ~2GB | 8–12 tok/s |
| llama.cpp | Qwen2.5-7B | Q4_K_M | ~6GB | 5–12 tok/s |
| llama.cpp | Llama-3.1-8B | Q4_K_M | ~6GB | 4–10 tok/s |
骁龙 7 系中端
| 引擎 | 模型 | 速度 | 备注 |
|---|---|---|---|
| MNN | Qwen2.5-1.5B | 8–12 tok/s | 可用但慢 |
| llama.cpp | Qwen2.5-1.5B | 4–8 tok/s | 勉强可用 |
| llama.cpp | Qwen2.5-7B | 2–5 tok/s | 不推荐,太慢 |
骁龙 6 系 / 联发科 G 系
只建议 1.5B 以下模型,速度可能只有 3–6 tok/s,体验接近秒级响应但间隔较长。
量化档位选择
量化是在模型质量和运行效率之间做权衡:
| 量化 | 文件大小 | 速度 | 质量 | 适合 |
|---|---|---|---|---|
| FP16 | 原始大小 | 慢 | 最好 | 不推荐手机用 |
| Q8_0 | 原始 1/2 | 中等 | 很好 | 追求质量的旗舰机 |
| Q6_K | 原始 1/3 | 较快 | 好 | 平衡选择 |
| Q4_K_M | 原始 1/4 | 快 | 够用 | 社区主流推荐 |
| Q3_K_M | 原始 1/5 | 最快 | 有损耗 | 极轻量入门 |
Q4_K_M 是社区实测的平衡点——体积缩到 1/4,速度最快档,日常对话质量完全够用。除非对回复质量有特别高要求,否则 Q4 就好。
MNN vs llama.cpp 同档对比
MNN 在骁龙 8 系上比 llama.cpp 快约 30–50%(同量级模型),但:
- MNN 模型格式需要单独转换(生态不如 GGUF 丰富)
- llama.cpp 支持的模型选择多得多
建议:两个都装——MNN 放日常用的 1.5B(速度优先),llama.cpp 放 7B(质量优先),按场景切换。
实际体验解读
- 10+ tok/s:流畅,接近云端小模型的速度,对话不会卡
- 5–10 tok/s:可用,但长回复时会感觉在慢慢输出
- <5 tok/s:体验差,不推荐主力使用
手机本地模型的速度永远赶不上云端(GPT-4o 是服务器集群推理,100+ tok/s),但好处是免费 + 隐私 + 离线可用——适合碎片时间应急。
混合策略(最推荐)
日常用本地 1.5B(速度快、免费、隐私好),复杂问题自动切云端大模型(质量高)。Operit 支持多模型配置 + 按需切换,体验最好。