Needle 2 实测:14MB 模型跑本地 AI Agent,不需要 GPU

Needle 2 实测:14MB 模型跑本地 AI Agent,不需要 GPU

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 的核心定位非常明确——它不做聊天、不写文章、不回答问题,它只做三件事:

  1. 工具调用(Tool Calling):把用户的自然语言指令映射到具体的函数调用
  2. 设备控制(Device Use):在手机上执行 UI 操作序列
  3. 结构化提取(Structured Extraction):从文本中提取符合 Schema 的结构化数据

用一句话概括:Needle 2 不是一个”对话 AI”,而是一个”动作 AI”。

核心规格一览

指标Needle 2说明
参数量45M4500 万参数
模型大小14 MB单个二进制文件
运行内存28 MB峰值会话 RAM
GPU 需求纯 CPU 推理
量化精度CQ2-bit自研 2-bit 量化
上下文窗口256 token滑动窗口,工具声明固定保留
解码速度(树莓派 5)500+ tok/sCPU-only
解码速度(Meta Quest 3S)400-1,500 tok/sVR 设备
解码速度(三星 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 1Needle 2改进
参数量26M45M+73%
模型大小~10 MB14 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 245M14 MB28 MBMIT
FunctionGemma 270M270M~540 MB~1 GB
LFM2.5 230M230M~460 MB~800 MB
Apple Foundation Model未公开~数百 MB~数百 MB部分
Meta Muse Glimmer 30B30B~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
机器人端侧推理小机器人需要快速、低延迟的工具调用
浏览器端 AIWebAssembly 版本,无需安装

❌ 不适合的场景

场景为什么不适合
开放域对话256 token 上下文 + 45M 参数,无法做通用聊天
长文档理解滑动窗口限制,无法处理长文本
世界知识问答模型没有存储世界知识,只做工具映射
复杂推理不是通用推理模型
多模态任务不支持图像、音频输入

一句话总结:如果你的任务可以表述为”把自然语言映射到一组预定义的函数调用”,Needle 2 可能是最高效的选择。如果你需要模型”理解”世界并生成开放文本,它完全不是正确的工具。

边缘-云协作模式

Needle 2 的设计哲学不是”替代云端”,而是”边缘优先,云端兜底”:

  1. 默认路径:所有请求在本地处理——私密、快速、免费
  2. 置信度门控:低于阈值时,自动升级到云端大模型
  3. 空调用拒绝:离题请求返回空调用,而不是胡编答案

这意味着一个实际的部署架构可以是:

用户语音 → 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 finetuneneedle build 导出为单一 .cact 文件。微调可以在 Mac/PC 上完成,几分钟到几小时。


如果你对在本地运行 AI 模型感兴趣,还可以看看我们关于 Meta Muse Glimmer 30B 本地 Agent 模型 的深度评测,以及 LuxTTS 语音克隆工具 的实测报告。