cactus
混合边缘云AI推理引擎,支持移动端本地运行LLM/VLM/语音模型
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
混合边缘云AI推理引擎,支持移动端本地运行LLM/VLM/语音模型
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。

想象一个场景:你在地铁里,手机没有网络信号,却想快速用 AI 帮你翻译一段外语、总结一份文档,或者让语音助手实时转写会议内容——这些在云端 AI 时代已经稀松平常,但当网络断开时,大多数 AI 应用瞬间"失聪"。
Cactus 正是为解决这一矛盾而生的:它是一个专为移动设备、可穿戴设备和智能家居终端打造的混合边缘云AI推理引擎,让大模型真正"跑在本地",不依赖云端也能提供高质量的文本生成、语音转写和多模态理解能力。截至目前,该项目在 GitHub 已收获超过 5,500 颗星,成为边缘AI推理领域最活跃的开源项目之一。
大语言模型(LLM)的爆发式增长带来了一个被忽视的问题:模型越强,对云端的依赖就越深。GPT-4、Claude、Gemini 这些顶级模型,每一次推理都需要消耗大量 GPU 算力,普通设备根本无法承载。于是,AI 应用陷入了两难——要么用云端大模型(依赖网络、隐私风险),要么用本地小模型(性能不足)。
Cactus 团队敏锐地捕捉到了这一痛点。他们的核心思路是:不追求单一超大模型,而是通过系统级的协同设计,让适合的模型跑在适合的设备上。这包括自研的混合精度量化技术、跨平台计算图优化,以及对 ARM NEON SIMD 指令集的深度适配。
项目的开发历程也值得关注:最初 Cactus 瞄准的是 iOS/Android 移动端推理这一垂直场景,经过多轮迭代才逐步扩展到智能家居、机器人和 AR/VR 设备等多个赛道。如今它已支持 Apple Neural Engine、Samsung NPU、Google Pixel Tensor 等主流移动芯片,形成了"一处代码、多端运行"的格局。
Cactus 采用模块化四层架构,每一层解决一个核心问题:
Engine 层提供 OpenAI 兼容 API,这是 Cactus 最有战略眼光的设计决策。开发者无需修改代码,即可将已有的 OpenAI 调用无缝切换到本地 Cactus 实例:
cactus_model_t model = cactus_init("path/to/model", "path/to/rag/docs", false);
const char* messages = R"([{"role": "user", "content": "Hello!"}])";
char response[4096];
cactus_complete(model, messages, response, sizeof(response), nullptr, nullptr, nullptr, nullptr, 0);
Engine 还内置了 RAG(检索增强生成)、embedding 向量生成、streaming 流式输出和 cloud handoff(云端交接) 能力——当本地模型置信度不足时,自动将请求转发至云端大模型。这一机制被官方称为"混合边缘云"架构,是 Cactus 的核心差异化特性。
Graph 层实现了一个零拷贝(Zero-copy)计算图,支持张量运算、矩阵乘法、注意力机制和归一化等核心操作。开发者可以通过简洁的 C++ API 构建自定义推理流程,而无需关心底层硬件细节。
这是 Cactus 的硬核地带——针对 ARM NEON SIMD 指令集深度优化的计算核,覆盖矩阵乘法、注意力计算、卷积、量化和 DSP 操作。Kernels 层同时支持 Apple Metal GPU 后端,可在 Mac/iPad/iPhone 上调用 Neural Engine 和 GPU 加速。
Cactus 实现了名为 CQ(Custom Quantization) 的自研量化技术,支持从 4-bit 到 1-bit 的混合精度量化。官方基准测试显示,使用 CQ4 量化后的 Gemma-4-2B 模型在多项任务上的精度损失极小:
| 任务 | F16 (原始) | CQ4 | 精度损失 |
|---|---|---|---|
| ARC-E | 73.80 | 73.73 | -0.07 |
| HellaSwag | 46.93 | 47.07 | +0.14 |
| MMLU | 62.33 | 59.45 | -2.88 |
CQ4 量化下模型体积压缩约 75%,而精度损失控制在可接受范围内,这对于资源受限的移动设备意义重大。
Cactus 团队提供了详尽的设备基准测试,测试条件为 1k 上下文 prefill + 100 tokens decode,无投机解码:
| 设备 | LLM 推理速度 | VLM 图像编码 | 语音转写 | 内存占用 |
|---|---|---|---|---|
| Mac M5 Max | 2964 tok/s | 0.09s | 0.15s | 1348MB |
| Mac M4 Pro | 1963 tok/s | 0.25s | 0.21s | 1225MB |
| iPhone 17 Pro | 729 tok/s | 0.5s | 0.51s | 644MB |
| iPhone 15 Pro | 517 tok/s | 1.15s | 0.82s | 633MB |
值得注意的是,在 Mac M5 Max 上运行 Qwen3-1.7B 可达 155 tok/s,iPhone 15 Pro 上的 Parakeet-TDT-0.6B 语音转写仅需 0.82秒处理20秒音频——这在移动端是相当亮眼的成绩。
Cactus 的平台覆盖极为全面:
brew install cactus-compute/cactus/cactus 一键安装,也有 pip 包可用无论你用哪种技术栈,都能找到合适的接入方式。
安装 Cactus 后,最简单的使用方式是命令行:
# 安装
brew install cactus-compute/cactus/cactus
# 运行一个 HuggingFace 模型
cactus run Cactus-Compute/needle --tools my_tools.json
# 或者直接运行任意 HF 模型(自动下载/转换)
cactus run Qwen/Qwen2-0.5B
# 下载预转换模型
cactus download Gemma-4-2B-IT
# 基准测试
cactus benchmark
对于开发者而言,Cactus Engine 的 C API 设计简洁清晰,通过 JSON 配置消息和选项,上手门槛不高。文档质量较高,提供了 Engine、Graph、Kernels、Quants、Hybrid 等多个模块的独立参考文档。
Cactus 也有不可回避的问题:
Cactus 的出现呼应了一个更大的行业趋势:AI 推理正在从"集中式云端"向"分布式边缘"演进。随着 Apple Intelligence、Google Gemini Nano、Qualcomm AI Hub 等头部厂商纷纷布局端侧 AI,像 Cactus 这样专注边缘推理基础设施的开源项目将越来越重要。
GitHub 5,500+ stars、20个涵盖 AI/边缘/量化的 topics、活跃的 HuggingFace 模型发布——这些信号都指向同一个结论:Cactus 已经成为边缘AI推理领域不可忽视的基础设施级项目。
如果你正在开发需要在本地运行 AI 能力的产品(App、嵌入式设备、IoT 产品),Cactus 值得重点关注。