Needle 2 实测:14MB 模型跑本地 AI Agent,不需要 GPU
当整个 AI 行业都在追逐千亿参数的巨型模型时,一家名叫 Cactus Compute 的公司走了一条截然相反的路——他们刚刚发布的 Needle 2,是一个只有 45M 参数、14MB 大小的模型,却能在树莓派上以每秒 500 token 的速度运行完整的 AI Agent。
这不是实验室里的概念验证。Needle 2 已经在 Pebble Index 01 智能戒指上商用,用户对着戒指说话,无需联网就能触发设备动作。
这篇文章,我们来深度拆解这个”反常识”的模型:它到底能做什么?不能做什么?以及在 2026 年的端侧 AI 版图中,它处于什么位置。
Needle 2 是什么?
Needle 2 是 Cactus Compute 开发的开源端侧 Agent 模型。Cactus Compute 是一家专注于超小型 AI 模型的公司,他们的核心理念是:不是所有 AI 任务都需要大模型,很多场景下,一个足够小、足够快的专用模型反而更合适。
Needle 2 的核心定位非常明确——它不做聊天、不写文章、不回答问题,它只做三件事:
- 工具调用(Tool Calling):把用户的自然语言指令映射到具体的函数调用
- 设备控制(Device Use):在手机上执行 UI 操作序列
- 结构化提取(Structured Extraction):从文本中提取符合 Schema 的结构化数据
用一句话概括:Needle 2 不是一个”对话 AI”,而是一个”动作 AI”。
核心规格一览
| 指标 | Needle 2 | 说明 |
|---|---|---|
| 参数量 | 45M | 4500 万参数 |
| 模型大小 | 14 MB | 单个二进制文件 |
| 运行内存 | 28 MB | 峰值会话 RAM |
| GPU 需求 | 无 | 纯 CPU 推理 |
| 量化精度 | CQ2-bit | 自研 2-bit 量化 |
| 上下文窗口 | 256 token | 滑动窗口,工具声明固定保留 |
| 解码速度(树莓派 5) | 500+ tok/s | CPU-only |
| 解码速度(Meta Quest 3S) | 400-1,500 tok/s | VR 设备 |
| 解码速度(三星 A 系列) | 300-700 tok/s | 低于 $200 的手机 |
| 预训练数据 | 115B token | 私有语料库 |
| 后训练数据 | 38B token | 含紧凑推理链 |
| 开源协议 | MIT | 完全开源 |
28MB 的内存占用是什么概念?一块 ESP32-S3 微控制器就有 8MB PSRAM,而更新的微控制器已经有足够的内存跑 Needle 2。这意味着一个几美元的小芯片就能运行 AI Agent。
架构解析:Simple Attention Network
Needle 2 之所以能这么小还能干活,核心在于它的架构设计——Simple Attention Network(SAN)。这不是对 Transformer 的微调,而是一次从底层重新思考的设计。
关键创新
1. Hadamard MLP 替代传统 FFN
传统 Transformer 的前馈网络(FFN)是参数大户。Needle 2 用一个固定的 Walsh-Hadamard 变换加上可学习的对角矩阵来替代,通道混合的计算成本几乎不占参数。
2. Engram 记忆系统
世界知识不在模型权重里,而在哈希 n-gram 表中。每个 token 只读取几行,解码时几乎零成本。这对闪存读取既耗电又耗时的嵌入式设备至关重要。
3. 多通道残差流
27 层、512 宽的网络通过多通道设计获得了远超其宽度的路由灵活性,代价只是每层几个点积。
4. 有界内存注意力
256 token 的滑动窗口确保 KV 缓存始终有界。工具声明作为永久”汇点”被钉住——一个工具调用模型最不能忘记的就是它的工具,这在结构上就不可能被遗忘。
5. 训练即量化
这是最精妙的设计。Needle 2 不是在训练后做量化(那会毁掉小模型),而是从预训练到后训练全程在 CQ2-bit 精度下训练——权重、激活值、KV 缓存都是 2-bit。你部署的 2-bit 模型就是训练时的模型,没有精度损失。
Needle 1 → Needle 2:关键改进
Needle 1(也叫 Cactus Needle)是 26M 参数的模型。Needle 2 升级到 45M 参数,改进体现在多个维度:
| 维度 | Needle 1 | Needle 2 | 改进 |
|---|---|---|---|
| 参数量 | 26M | 45M | +73% |
| 模型大小 | ~10 MB | 14 MB | 略增 |
| 能力范围 | 工具调用 | 工具调用 + 设备控制 + 结构化提取 | 大幅扩展 |
| 预训练数据 | 未公开 | 115B token | 首次公开 |
| 后训练 | 未公开 | 38B token(含推理链) | 首次公开 |
| 工具检索 | 无 | 内置检索头,每轮选 Top-5 | 新增 |
| 置信度评分 | 无 | 每个响应附带校准置信度 | 新增 |
| 微调方式 | 全量 | LoRA + 合并导出 | 更实用 |
| 浏览器 Playground | 无 | 有,支持 WebAssembly | 新增 |
最值得注意的两个新增能力:
工具检索(Tool Retrieval):你可以声明大量工具,Needle 2 内置的检索头会在每轮只渲染最相关的 5 个工具,并且语法约束也只限定在这 5 个工具上。这意味着你可以给它一个包含上百个工具的 API,它不会迷路。
置信度门控(Confidence Gating):每个响应都带一个校准后的置信度分数。你可以设定阈值——高于阈值直接执行,低于阈值升级到云端或要求用户确认。这让 Needle 2 在生产环境中可以安全地”说我不知道”而不是瞎猜。
对比:Needle 2 vs 同级别模型
Needle 2 的直接竞争对手不是 GPT-4 或 Claude,而是同样面向端侧的小模型。以下是关键对比:
| 模型 | 参数量 | 大小 | RAM | 工具调用 | 设备控制 | 结构化提取 | 开源 |
|---|---|---|---|---|---|---|---|
| Needle 2 | 45M | 14 MB | 28 MB | ✅ | ✅ | ✅ | MIT |
| FunctionGemma 270M | 270M | ~540 MB | ~1 GB | ✅ | ❌ | ❌ | ✅ |
| LFM2.5 230M | 230M | ~460 MB | ~800 MB | ✅ | ❌ | ❌ | ✅ |
| Apple Foundation Model | 未公开 | ~数百 MB | ~数百 MB | ✅ | ✅ | 部分 | ❌ |
| Meta Muse Glimmer 30B | 30B | ~18 GB | ~20 GB | ✅ | ✅ | ✅ | ✅ |
| Phi-4-mini (量化) | 3.8B | ~2.3 GB | ~4 GB | ✅ | ❌ | ✅ | ✅ |
关键洞察:Needle 2 在 Mobile-Actions 基准测试上与 FunctionGemma 270M、LFM2.5 230M 互有胜负——但它的参数量只有对方的 1/5 到 1/70,而且运行在 2-bit 精度下,对方是 f16。
这不是一点点效率提升,这是数量级的差距。
部署实战
Python 快速开始
pip install cactus-needle
最基本的工具调用只需要几行代码:
import needle
@needle.tool
def get_weather(city: str):
"""获取指定城市的当前天气"""
return {"city": city, "temp_c": 27, "sky": "晴"}
agent = needle.Needle(tools=[get_weather])
result = agent.run(" Lagos 现在天气怎么样?")
print(result["results"])
# [{'city': 'Lagos', 'temp_c': 27, 'sky': '晴'}]
结构化提取
from pydantic import BaseModel
class Invoice(BaseModel):
vendor: str
total: float
due_date: str
invoice = needle.extract(
"Invoice from Acme Corp, $1,200.00, due 2026-09-01",
Invoice
)
print(invoice.vendor, invoice.total) # -> Acme Corp 1200.0
微调自己的工具
# 合成训练数据
needle generate-data --tools my_tools.json --num-samples 500 --output data.jsonl
# LoRA 微调
needle finetune data.jsonl --epochs 10
# 导出为单一 .cact 文件
needle build checkpoints/needle2.pkl --lora checkpoints/needle_lora.pkl --out my_needle.cact
微调后的模型仍然是一个单一文件,可以在同一个引擎上直接运行,无需重新编译。
树莓派 / 嵌入式部署
Needle 2 的整个推理引擎是一个无依赖的 C++ 二进制文件。它在启动时探测 CPU 特性并选择合适的 kernel,模型、分词器、语法编译器全部封装在内。
一个产物,从 Cortex-M 到 x86 到 WebAssembly 全平台运行。没有额外需要安装或下载的东西。
# WebAssembly 版直接在浏览器运行
# 访问 cactuscompute.com/needle 的 Playground 即可体验
适用场景与局限性
✅ 适合的场景
| 场景 | 为什么适合 |
|---|---|
| 智能家居语音控制 | 开灯、调温度不需要大模型,28MB 就够 |
| 可穿戴设备 | 手表、戒指没有足够的内存跑大模型 |
| 离线设备 | 无网络环境下需要本地推理 |
| IoT 设备 | 21 亿+ IoT 设备,大多数内存 < 100MB |
| 隐私敏感场景 | 所有数据留在设备端,不上传云端 |
| 低成本手机 | 全球大多数手机售价低于 $200 |
| 机器人端侧推理 | 小机器人需要快速、低延迟的工具调用 |
| 浏览器端 AI | WebAssembly 版本,无需安装 |
❌ 不适合的场景
| 场景 | 为什么不适合 |
|---|---|
| 开放域对话 | 256 token 上下文 + 45M 参数,无法做通用聊天 |
| 长文档理解 | 滑动窗口限制,无法处理长文本 |
| 世界知识问答 | 模型没有存储世界知识,只做工具映射 |
| 复杂推理 | 不是通用推理模型 |
| 多模态任务 | 不支持图像、音频输入 |
一句话总结:如果你的任务可以表述为”把自然语言映射到一组预定义的函数调用”,Needle 2 可能是最高效的选择。如果你需要模型”理解”世界并生成开放文本,它完全不是正确的工具。
边缘-云协作模式
Needle 2 的设计哲学不是”替代云端”,而是”边缘优先,云端兜底”:
- 默认路径:所有请求在本地处理——私密、快速、免费
- 置信度门控:低于阈值时,自动升级到云端大模型
- 空调用拒绝:离题请求返回空调用,而不是胡编答案
这意味着一个实际的部署架构可以是:
用户语音 → Needle 2(本地,28MB)
├── 高置信度 → 直接执行设备动作
├── 低置信度 → 转发到云端 GPT-4o / Claude
└── 离题 → 返回空调用,提示用户
大多数设备控制请求都能在本地完成,云端调用是少数例外。这让整个系统既快又省。
行业意义
Needle 2 代表的趋势比它本身更重要:
1. 模型与任务的匹配
不是所有任务都需要通用智能。工具调用是一个定义明确的任务——输入是自然语言,输出是结构化 JSON。为这种任务训练一个 45M 参数的专用模型,比用一个 70B 的通用模型更高效、更快速、更私密。
2. 端侧 AI 的真正含义
“端侧 AI”不应该是”在 MacBook 上跑 llama.cpp”。真正的端是 $200 以下的手机、是树莓派、是微控制器、是智能戒指。Needle 2 瞄准的是那 80% 的边缘设备。
3. 训练即量化的范式
Needle 2 证明了小模型可以在极低精度下从头训练而不损失性能。这可能影响未来所有小型模型的设计方式。
总结评价
| 维度 | 评分 | 说明 |
|---|---|---|
| 技术创新 | ⭐⭐⭐⭐⭐ | SAN 架构 + 训练即量化,真正从底层重新设计 |
| 实用性 | ⭐⭐⭐⭐ | 工具调用准确,部署极简,但场景有限 |
| 生态成熟度 | ⭐⭐⭐ | Python 包 + Playground + 微调工具链已可用,但社区尚早期 |
| 开源诚意 | ⭐⭐⭐⭐⭐ | MIT 协议,模型权重、引擎、微调工具全部开源 |
| 性价比 | ⭐⭐⭐⭐⭐ | 14MB + 28MB RAM,跑在 $35 的树莓派上 |
Needle 2 不是要取代你电脑上的大模型,而是要让那些从未有过 AI 的设备第一次拥有智能。 当 21 亿 IoT 设备都能本地运行 Agent 时,这才是 AI 真正无处不在的时刻。
常见问题(FAQ)
Needle 2 和 Needle 1 有什么区别?
Needle 2 将参数量从 26M 提升到 45M,新增了设备控制和结构化提取能力(Needle 1 仅支持工具调用),并加入了工具检索和置信度门控。训练数据也首次公开:115B token 预训练 + 38B token 后训练。
Needle 2 能在手机上运行吗?
可以。在三星 A 系列等低于 $200 的手机上,Needle 2 的解码速度为 300-700 token/s。Pebble 已经在 Index 01 智能戒指应用中集成了 Needle 2,完全离线运行。
Needle 2 需要 GPU 吗?
完全不需要。Needle 2 是纯 CPU 推理,在树莓派 5 上就能达到 500+ token/s 的解码速度。整个模型只有 14MB,运行只需 28MB RAM。
Needle 2 能做什么不能做什么?
Needle 2 擅长:工具调用、设备控制、结构化数据提取。不擅长:开放域对话、长文档理解、世界知识问答。它是一个”动作 AI”而非”对话 AI”。
如何微调 Needle 2 用于自己的工具?
使用 pip install cactus-needle 安装后,可以用 LoRA 方式微调。流程是:准备 JSONL 训练数据 → needle finetune → needle build 导出为单一 .cact 文件。微调可以在 Mac/PC 上完成,几分钟到几小时。
如果你对在本地运行 AI 模型感兴趣,还可以看看我们关于 Meta Muse Glimmer 30B 本地 Agent 模型 的深度评测,以及 LuxTTS 语音克隆工具 的实测报告。