核心结论:文本 LLM 用 llama.cpp 一站通吃,视觉/语音/图像生成各归专项工具(whisper.cpp、sherpa-onnx、stable-diffusion.cpp),NPU 能效交给 AI Edge SDK,PyTorch 模型下放给 ExecuTorch。 llama.cpp 虽然模型覆盖最广,但 ASR/TTS/图像生成不在它的范畴内,别硬塞。
一、框架 × 模型类型匹配矩阵
| 模型类型 | llama.cpp(含 PocketPal/Termux) | MLC-LLM | MediaPipe LLM API | AI Edge / LiteRT | ExecuTorch | 专项工具 |
|---|---|---|---|---|---|---|
| 文本对话 LLM(Qwen/Llama/Gemma/Phi/Mistral) | ★★★ 100+ 架构通吃 | ★★ 主流架构预编译 | ★★ 仅 Gemma/Phi/Falcon/StableLM | ★★ Gemma 系 + Gemini Nano | ★★ Llama 3/3.2 等官方脚本 | --- |
| MoE 大模型(Mixtral、Qwen3-MoE、DeepSeek-V3) | ★★★ Mixtral/PhiMoE 原生支持 | ★ | ✗ | ✗ | ★ | --- |
| 视觉 VLM(Gemma 3、Qwen2-VL、MiniCPM-V、LLaVA) | ★★★ 通过 mmproj 文件加载 | ★ 个别模型 | ★★ Gemma 3N(Android 现支持 text+image,audio 在路上) | ★ | ★ | --- |
| ASR 语音识别(Whisper、Paraformer、Zipformer、SenseVoice) | ✗(要用 whisper.cpp) | ✗ | ✗ | ★ 个别模型 | ★★ Whisper/Voice Agent 官方导出 | ★★★ sherpa-onnx / whisper.cpp |
| TTS 语音合成(Piper、Kokoro、VITS) | ✗ | ✗ | ✗ | ✗ | ★ | ★★★ sherpa-onnx / piper.cpp |
| 图像生成(SD 1.5/SDXL、Flux、Qwen-Image) | ✗ | ✗ | ✗ | ✗ | ✗ | ★★★ stable-diffusion.cpp |
| 视频生成(Wan 2.1/2.2、LTX) | ✗ | ✗ | ✗ | ✗ | ✗ | ★★ stable-diffusion.cpp |
| Embedding / Reranker(bge-m3、Qwen3-Embedding/Reranker、nomic-embed) | ★★★ 直接加载 GGUF | ✗ | ✗ | ★ | ★ | --- |
| 代码 LLM / Agent(Qwen2.5-Coder、DeepSeek-Coder) | ★★★(就是文本 LLM) | ★★ | ★ | ★ | ★★ | --- |
一句话读表:llama.cpp 是"通用 LLM 全能王"但只管文本+视觉;语音和图像生成必须跳出 GGUF LLM 生态,用同族专项工具。
二、按任务类型的具体推荐
1. 文本对话 / 指令跟随
- 首选:llama.cpp + GGUF。从 Qwen3-0.6B/1.7B/4B、Llama-3.2-1B/3B、Gemma-3-1B/4B、Phi-4-mini 到 Qwen3-MoE、DeepSeek-R1-Distill 全部支持,量化用 Q4_K_M 起步。
- 手机 App 内嵌且模型窄 :MediaPipe LLM API + Gemma 3 1B/4B 或 Phi-3.5-mini,几行 Java/Kotlin 就能跑。
- 追求 GPU 速度 :MLC-LLM + Qwen2.5-1.5B / Llama-3.2-3B 预编译包,跑 Adreno GPU 比 CPU 路径快。
2. 多模态视觉(图生文、OCR、截图理解)
- 首选:llama.cpp + mmproj 。下载两份文件:主模型 GGUF(如
Qwen2.5-VL-3B-Instruct-Q4_K_M.gguf)+ 对应的mmproj-*.gguf投影文件,llama-server自动识别。支持 LLaVA、Qwen2-VL、MiniCPM-V、Gemma 3 视觉版、SmolVLM 等。 - App 级集成且用 Gemma 生态 :MediaPipe + Gemma 3N(E2B/E4B),Android 端目前支持文本+图像输入,音频输入待官方打通。
- ExecuTorch 对 Phi-4-multimodal 有官方导出脚本,PyTorch 党可选。
3. 语音识别(ASR,离线听写/语音助手入口)
- 首选:sherpa-onnx 。一站式覆盖 Whisper、Zipformer、Paraformer、SenseVoice、FireRedASR、Moonshine ,支持流式识别、VAD、说话人分离,甚至能导出到 QNN 上 NPU 跑。中文推荐 SenseVoice-Small 或 Paraformer-zh ,英文/多语推荐 Whisper-small / distil-whisper。
- 只想跑 Whisper 一个模型:whisper.cpp,纯 C++ 单二进制,Android NDK 编译简单,CPU 上 small 模型可达实时率。
- ExecuTorch 的 Voice Agent / Speech2Text 示例适合已用 PyTorch 的团队。
4. 语音合成(TTS,离线朗读/语音助手出口)
- 首选:sherpa-onnx ,支持 VITS、Matcha、Kokoro、Kitten 系列模型,中文中文音色可选,流式输出。
- 追求音质和体积平衡:piper.cpp(Piper 模型),单模型几十 MB,CPU 实时率高。
5. 图像 / 视频生成本地化
- 唯一成熟路径:stable-diffusion.cpp 。GGUF 量化 + 纯 C/C++ 无 Python 依赖,覆盖 SD 1.5 / SDXL / Flux / Qwen-Image / Wan 2.1-2.2 视频 / LTX。Flux 用 Q4_K_S 量化能在 8GB 内存手机上出图。
- 想要 ComfyUI 工作流和 LoRA 生态:得走 Python(Termux 内跑 SD.Next/Automatic1111),但性能和稳定性明显不如 sd.cpp。
6. Embedding / Reranker(本地 RAG、语义搜索)
- 首选:llama.cpp 。
llama-server自带/v1/embeddings端点,GGUF 仓库里有 bge-m3、nomic-embed-text、Qwen3-Embedding-0.6B、Qwen3-Reranker-0.6B/4B 直接可用。 - 嵌入 Android App 做 RAG:bge-m3-Q4_K_M(约 300MB)+ Qwen3-0.6B-Q4_K_M(约 400MB)是"搜索+生成"的最小组合。
7. 代码 LLM / 本地 Agent
- 首选:llama.cpp + Qwen2.5-Coder-1.5B/3B 或 DeepSeek-Coder-V2-Lite(MoE) 。配合
--spec-type ngram-mod自投机解码对代码这种重复文本收益显著。 - Agent 工具调用(function calling):llama.cpp 的
llama-server原生支持 OpenAI function calling 格式,配合 Qwen3、Llama-3.2 这类对 tool-use 微调过的模型效果最好。
8. 长上下文 / 超大 MoE
- 长上下文(32K+) :llama.cpp 的 KV cache 量化(
-ctk q8_0 -ctv q8_0)和 FlashAttention 是 ARM 上的关键开关,模型推荐 Qwen3-1.7B/4B (原生 32K)或 Phi-4-mini(128K)。 - 超大 MoE(DeepSeek-V3 / Qwen3-235B):Android 上基本不现实,即使 Q4 也要 100GB+ 存储,且 decode 会慢到不可用;真要跑得回到服务器/工作站(KTransformers 或 llama.cpp 的 CPU 大内存模式)。
三、选型速查(按"你要做什么"反推)
| 你要做的事 | 首选框架 | 推荐模型 |
|---|---|---|
| 本地聊天机器人(Termux/命令行) | llama.cpp | Qwen3-1.7B-Q4_K_M |
| Android App 内嵌聊天 | MediaPipe / llama.cpp JNI | Gemma 3 1B / Qwen3-0.6B |
| 截图理解、拍题、OCR问答 | llama.cpp + mmproj | Qwen2.5-VL-3B / Gemma 3 视觉版 |
| 离线语音输入/会议转写 | sherpa-onnx 或 whisper.cpp | SenseVoice-Small / Whisper-small |
| 离线语音播报/TTS | sherpa-onnx 或 piper.cpp | Kokoro / Piper zh_CN |
| 本地画图/图生图 | stable-diffusion.cpp | SD 1.5 Q4 / Flux.1-schnell Q4 |
| 本地 RAG 问答 | llama.cpp(embedding + LLM) | bge-m3 + Qwen3-0.6B |
| 本地代码补全 | llama.cpp + ngram 投机 | Qwen2.5-Coder-1.5B |
| NPU 能效优先(常驻助手) | AI Edge SDK / NexaSDK | Gemma 3N / Gemini Nano |
| PyTorch 训练模型直接下放 | ExecuTorch | Llama 3.2 1B / Whisper |
| 一句话总结:文本和视觉 LLM 选 llama.cpp 几乎不会错;一旦涉及"耳朵"(ASR)、"嘴巴"(TTS)或"画笔"(图像/视频),就得跳出 LLM 框架范畴,用 whisper.cpp / sherpa-onnx / stable-diffusion.cpp 这些同族专项工具------它们和 llama.cpp 共享 GGUF 生态理念,但算子和调度完全针对各自任务定制。 |