工具推荐·阅读约 2 分钟·
Needle 2:14MB 的 agentic LLM,专为 200 美元以下的设备设计

Needle 2:14MB 的 agentic LLM,专为 200 美元以下的设备设计

Cactus 开源了 Needle 2:45M 参数、14MB 文件、28MB 固定内存的端侧 agent 模型,主打函数调用和结构化提取,800+ token/s,可在 MCU 上运行,已在 Pebble Index 01 上量产。

原文来源:Cactus — Needle 2: The 14 MB Agentic LLM for Tiny Devices — Cactus 发布 14MB 的端侧 agent 模型 Needle 2,45M 参数主打函数调用与结构化提取,面向没有 GPU/NPU 的廉价设备。

端侧 AI 这两年说的"edge",基本默认是 Mac 和 PC。但 Cactus 在 Needle 2 里提出一个更朴素的判断:真正的边缘是廉价硬件。全球物联网设备超过 210 亿台,PC 只有约 15 亿台;新兴市场的大多数手机售价低于 200 美元。算上廉价手机、树莓派、单片机、可穿戴设备、小型机器人(比如 Reachy Mini)和智能家居设备——大约五分之四的边缘设备价格在 200 美元以下。

这就是 Needle 2 瞄准的硬件:没有 GPU、没有 NPU、只有几十 MB 内存。

45M 参数为什么够用

Needle 团队的核心洞察是:开灯不需要前沿模型。智能手表、家居助手和机器人早已把自己的能力暴露为带类型参数的函数,剩下唯一的难点是"把一句含混的话映射到函数上"——调用哪个函数、参数是什么。这样定义问题后,任务不需要世界知识,不需要开放式写作。所以 45M 参数就够用,而聊天需要几十亿参数。

这个更小的任务定义,是后续所有设计决策的出发点:

  • 函数调用与设备控制:智能家居、机器人、可穿戴设备的主流交互方式;
  • 提取与结构化输出:把提取也当作一种函数调用——给一个 schema 和一份文档,返回类型化字段(分类用枚举、列表用数组、记录用对象)。从 schema 编译出文法,从结构上防止畸形 JSON,模型只需把 45M 参数花在"选对值并让值和用户的话对得上"上;
  • 端云协作:模型承认自己不会,而不是瞎猜。离题请求返回空调用,每个响应带一个学习出来的置信度分数。你可以设定阈值:高于它就执行,拿不准就再问,低于它则升级到云端。大多数设备使用请求本地就能处理,升级很少发生,默认路径保持私密、快速、免费。

—— 广告 ——

14MB 是怎么塞进去的

小模型在事后量化下会崩,所以 Cactus 从不事后量化:Needle 2 从预训练到后训练全程对抗 Cactus Quants(2bit 量化)训练——权重、激活、KV cache 全是量化感知的。你部署的 2bit 模型就是被训练的那个模型。这是 45M 参数塞进 14MB 且基准不掉的原因。

架构上它叫 Simple Attention Network(简单注意力网络),每个组件存在的目的都是"用能力换带宽":

  • Hadamard MLP:用固定的 Walsh 变换加可学习对角替代通常的稠密上下投影。小模型权重读取成本里占大头的是通道混合,这里几乎不花参数;
  • engram(印迹):把世界知识从网络栈里挪出来,放进哈希 n-gram 表,每个 token 只读几行。解码时容量近乎免费——在设备上,每从 flash 读一兆字节都是延迟和电量;
  • 多通道残差流:让 27 层、512 宽的网络的"路由灵活性"接近宽得多的网络,代价是每层几个点积,而不是更多注意力或 MLP 体量。

内存系统是从"固定 RAM 设备"反推设计的:注意力用 256 token 滑动窗口,KV cache 有界,会话再长也不涨;系统提示和工具声明被固定为永久 sink——工具调用模型最不能忘的就是自己的工具,结构上就不可能被逐出缓存。

推理引擎的提速来自"拒绝计算":权重不解压进 RAM,2bit 码直接在向量寄存器里展开、融合成整数点积,常驻内存保持 blob 大小,算术路径端到端 int8。文法不只是保证,还是优化:匹配器在 logits 存在前就知道哪些 token 合法,结构化 token 上跳过高达 98% 的词表投影,输出已被强制确定的步骤直接跳过。一个通用二进制在启动时探测 CPU、自选内核层级(SDOT、NEON、AVX2、RISC-V vectors、wasm SIMD 或标量),从 Cortex-M 到 x86 到 WebAssembly 都能跑,无需安装任何额外依赖。

能耗账:端侧 AI 的本质是电池

端侧推理真正的预算是能耗。在设备芯片上,从 flash 或 DRAM 搬一个字节比一次乘加运算贵几个数量级,所以关键指标是"每 token 的 FLOPs + 每 token 的字节"。

架构砍掉前者:同宽度深度的传统 transformer 每 token 要花 164 MFLOPs;压到 Needle 参数量的 transformer 也要 87——因为它每个参数都得过一遍 matmul。Needle 只花 70 MFLOPs/token,而且其中五分之一的参数(engram)是 gather 读取,完全不花算术。和基准对手比:LFM2.5 230M 是 460,FunctionGemma 270M 是 540,Apple FM 约 6000——每 token 能耗差 7 倍到 85 倍

内存同理:滑动窗口封顶后,Needle 2 的 RAM 是确定的 28MB 上限,而不是随会话变长的曲线。这正好放进带外部 RAM 的 MCU 级芯片:ESP32-P4(32MB PSRAM)、STM32H7、NXP i.MX RT。引擎可以单线程裸机编译,为 Cortex-M4/M7/M55 提供静态库。

效果:几个公开基准

Needle 2 在五个公开函数调用基准上评估(Mobile Actions、DroidCall、Seal-Tools 域内/域外、BFCL v4 单轮),采用有序严格精确匹配——函数名、调用顺序、每个参数值全对上才算过。关键点:所有数字都是端到端跑在发布的 C++ 引擎上(CQ2-bit 权重、工具检索开启、256 token 滑动 KV 窗口),不是放宽条件的 checkpoint 数据。

在 Mobile-Actions(google 的移动设备操作评测)上,Needle 2 以 45M 参数拿到 28.7 的严格精确匹配,而 LFM2.5-230M(230M 参数、预训练数据 120 倍)只有 17.0,FunctionGemma 270M 只有 15.6。Apple FM 则在更大的移动设备场景有优势。

BFCL v4 单轮(3641 行)上,Needle 2 整体 42.6,落后于 6 倍大的 FunctionGemma(46.1)——但注意训练分布:Needle 的训练语料是消费设备动作(智能家居、手机、可穿戴、电视、汽车)加结构化提取,BFCL 的通用和企业 API 面(Java、JavaScript SDK)完全在分布外。它照样泛化:Python 简单调用上只差 FunctionGemma 一分(61.2 vs 62.3),93.4% 的 well-formed 率。差距集中在训练数据从未见过的 Java、JavaScript 和并行多调用类别。

已经量产:Pebble 在用它

Needle 不是 PPT 项目。Pebble——现代可穿戴行业的开创者——在 Index 01 应用里本地运行它,把语音请求变成动作,不依赖网络:

"Pebble Index Ring 没有屏幕。你对着它说话,动作就必须发生,每一次都发生,无论有没有网络。我们在应用里本地运行 Cactus Needle 而不是依赖云端。模型体积极小,性能从不让我们失望。"

怎么上手

Needle 是 Apache 2.0 开源,模型在 Hugging Face(Cactus-Compute/needle-2),代码和文档在 GitHub(cactus-compute/needle),研究论文在 arXiv(2607.18363)。

最有意思的一点:45M 模型小到可以在你自己的 Mac/PC 上微调。仓库和 Python 包支持几分钟到几小时的本地调优与测试——让 Needle 学会你家设备的工具词汇表,而不是一个通用助手。每个产品都有自己的工具语言,这是把"通用 assistant"变成"专属设备大脑"的路径。

适合谁

适合:智能家居硬件厂商(本地语音控制不想依赖云)、可穿戴设备(Pebble 已验证)、机器人/嵌入式产品(需要确定的内存上限)、隐私敏感场景(数据不出设备)、以及任何想给廉价硬件加"听懂人话"能力的开发者。

不适合:需要开放式对话、世界知识问答的场景——45M 参数不是干这个的;需要复杂多步通用推理的任务也超出了它的定位。它是个"动作模型",不是"聊天模型"。

在云端模型越做越大的当下,Needle 2 代表了一条相反但同样重要的路线:把任务范围收窄到"设备控制 + 结构化提取",用架构和量化把推理成本压到电池能承受的量级,让 AI 下沉到 200 美元以下的硬件里。边缘 AI 的下一个战场,可能真不在 Mac 上。

分享到
微博Twitter

© 2026 四月

原文链接:https://www.aprilzz.com/tools/needle2-14mb-agentic-llm