端侧跑大模型要真正可用,量化、内核优化、混合云卸载三件事得成套做齐。开源的 Cactus(cactus-compute/cactus)就是按这个思路做的:一个面向手机与穿戴设备的混合边缘-云端 AI 引擎。它的 v2.1.0 于 2026 年 8 月 17 日发布,仓库目前约 6k star、500 fork,共有 62 位贡献者。官方实测里,iPhone 17 Pro 用 4bit 量化运行 Gemma-4-E2B,1k 上下文 prefill 速度 729 tokens/s、解码速度 37 tokens/s,峰值内存 644MB。
手机跑大模型的两个瓶颈
大模型要落到手机上,先要解决两个问题:内存和算力。
模型权重有多大,内存就有多紧张。以官方 1k 上下文基准为例,iPhone 15 Pro 跑 Gemma-4-E2B 的 4bit 量化版,峰值内存约 633MB;iPhone 17 Pro 约 644MB。内存达标之后,还要看解码速度——这项基准是纯解码(无投机解码、无多 token 预测),iPhone 15 Pro 为 26 tokens/s,iPhone 17 Pro 为 37 tokens/s。
速度不快,但方向明确:内存靠量化压下来,速度靠内核优化提上去,剩下的能力缺口交给云端兜底。
四件套架构:引擎、计算图、内核、量化
Cactus 的核心由四个组件构成:
- Cactus Engine:提供 OpenAI 兼容的文本 / 语音 / 视觉 API,覆盖聊天补全、流式输出、工具调用、语音转写、embedding、RAG、向量索引与云卸载;
- Cactus Graph:零拷贝计算图,负责张量运算的编排;
- Cactus Kernels:面向 Apple、Samsung、Pixel 等设备的 CPU / GPU 内核,用 ARM NEON SIMD 实现矩阵乘法、注意力、卷积、量化、DSP、图像处理等算子;
- Cactus Quants:旋转 + 码本量化技术,提供 CQ2 / CQ3 / CQ4 三档均匀量化与 CQ2.54 / CQ3.26 两档混合精度,覆盖 4bit 到 1bit。
实测性能:从 Mac M5 Max 到 iPhone 15 Pro
官方基准数据(1k 上下文 prefill + 100 tokens 解码,Gemma-4-E2B-CQ4,纯解码):
| 设备 | prefill | 解码 | 1k 上下文峰值内存 |
|---|---|---|---|
| Mac M5 Max | 2964 tps | 154 tps | 1348 MB |
| Mac M4 Pro | 1963 tps | 101 tps | 1225 MB |
| Mac M3 Pro | 1294 tps | 64 tps | 735 MB |
| iPad / Vision Pro(M5) | 1336 tps | 71 tps | 703 MB |
| iPhone 17 Pro | 729 tps | 37 tps | 644 MB |
| iPhone 15 Pro | 517 tps | 26 tps | 633 MB |
同一份基准里还有两组数据:视觉模型(LFM2.5-VL-1.6B)在 iPhone 17 Pro 上 256px 图像编码约 0.5 秒、解码 39 tps;语音转写(Parakeet-TDT-0.6B-CQ4)处理 20 秒音频端到端耗时 0.51 秒(Mac M5 Max 上为 0.15 秒)。也就是说,这套引擎不止跑文本,视觉与语音任务在手机上同样进入了可用区间。
量化档位的精度账本
量化省内存,代价是精度。官方用 Gemma-4-E2B-it 在 12 项任务上对比了各档位精度(3 次运行取平均):
- CQ4 与原始 F16 几乎持平:ARC-E 为 73.73 vs 73.80,BFCL Simple 为 92.42 vs 92.00,HellaSwag 为 47.07 vs 46.93;
- 混合精度 CQ3.26 在部分任务上甚至略高(ARC-E 74.20);
- CQ2.54 开始明显下降:GSM8K 从 73.67 跌到 22.00;
- CQ2 基本不可用:GSM8K 仅 0.40、HumanEval 仅 1.02、MMLU 33.18。
结论很直接:4bit(CQ4)是当前精度与内存的平衡点;2bit 及以下的档位目前只适合对正确性要求很低的场景。
云卸载:按置信度路由
端侧模型能力有限,Cactus 的混合方案是按置信度路由:本地模型对回答没有把握(置信度低于 --confidence-threshold,示例默认 0.7)或等待云端超时(--cloud-timeout-ms)时,才把请求交给云端模型;响应中的 cloud_handoff 字段会标明本次是否走了云端。简单问题本地秒回,复杂问题自动上云,隐私与速度得以兼顾。
模型生态与上手成本
- 模型:重点适配 Liquid、Gemma、Qwen、whisper、Parakeet 家族;任意 HuggingFace 模型可用
cactus convert转为 CQ 权重(实验性功能); - Needle:配套的 26M 参数端侧工具调用模型,采用 OpenAI function-calling 格式;
- 绑定:Swift / Kotlin / Flutter / React Native / Python / Rust 六种;
- macOS 上手:
brew install cactus-compute/cactus/cactus,随后cactus run即可。
结论
端侧跑大模型的可行路线已经明确:量化把模型塞进内存,内核优化把速度提上来,混合云卸载兜住能力下限。Cactus 的实测数据说明,4bit 量化在 iPhone 17 Pro 这一级设备上能把大模型解码速度做到 37 tokens/s、峰值内存压在 644MB,且精度损失几乎可以忽略;需要权衡的只剩量化档位——CQ4 是当前最稳妥的起点。