Needle:把工具调用、结构化抽取和 Embedding 塞进一个 8–29 MB 的端侧模型

AI
端侧
小模型
工具调用
函数调用
Cactus
Needle
2026/9/28
·

阅读时间: 大约 8 分钟

Needle:把工具调用、结构化抽取和 Embedding 塞进一个 8–29 MB 的端侧模型

Needle 在六项基准上与基线模型的对比(官方)

过去一年,“端侧小模型”成了热门方向,但绝大多数所谓端侧模型仍在百兆量级、且主要做聊天。Cactus Compute 开源的 Needle 走得更极端:它把自己定位为”面向极小设备的自动化基础模型”,整个模型是单个 8–29 MB 的二进制,跑在手机、手表、智能家居、机器人、汽车乃至单片机上,专攻三件事——工具调用、结构化抽取和文本 Embedding。本文基于其 GitHub 仓库(cactus-compute/needle)做一次拆解。

说明:周报选题时该项目以 Needle 2 亮相;目前仓库主线已迭代到 Needle 3,并通过 generation=2 参数保留 Needle 2 兼容旧部署。下面以最新的 Needle 3 为准。

一、出发点:端侧不需要”会聊天”,需要”会执行”

Needle 的设计哲学很明确:主动放弃通用聊天能力,把全部容量砸在端侧最常见的三类自动化任务上。官方的说法是——用牺牲通用对话的代价,在移动端工具调用上击败体积大 10 倍的模型,在结构化抽取上追平体积大 2–3 倍的模型。

它承诺的行为契约很具体:

  • 工具调用:给定 App 暴露的函数,Needle 自己挑对函数、从用户原话里把每个参数填好;用户要两件事就按顺序发两个调用;问到没有工具覆盖的事,返回空列表而不是瞎猜;
  • 结构化抽取:声明一个 schema,丢给它一堆杂乱文本,返回类型化字段(发票、预订、通知、表单);解码语法保证输出可解析,并可推广为分类;
  • 文本向量:同一个模型还能输出句向量,让 App 在本地做搜索、匹配与路由。

二、技术机制:Laddered Simple Attention Network

Needle 3 不是”缩小版 LLM”,而是一套为小尺寸重设计的架构,官方称之为 Laddered Simple Attention Network:

  • 用 Monarch Hadamard MLP 替换传统 FFN;
  • GQA 注意力 + 因果卷积 tap;
  • engram n-gram 记忆,通过 gather 读取;
  • 多通路超连接(multi-lane hyper-connections);
  • 关键是”阶梯”设计:训练时让从 2 层到 20 层的每一个深度都是一个可独立部署的模型。

Needle 架构示意(官方)

官方称,模型的大部分参数放在 engram 里,因此 121M 的模型做的是 50M 模型的”算术量”。此外,从你的 schema 编译出的字节级语法会约束每一个 token,保证输出合法;每次响应还带一个由专门学习的头输出的校准置信度分数。

量化方面,权重采用 Cactus Quants,约 2.125 bit/权重,整个模型打包成 .cact 文件;每个部署目标附带一个 小于 1 MB 的预编译引擎,启动时再加载权重。

三、上手与微调

安装与试用非常轻:

pip install cactus-needle

装饰一个函数即可完成一次工具调用闭环(签名给出参数类型、docstring 即工具描述):

import needle
@needle.tool
def get_weather(city: str):
    "Get the current weather for a city."
    return {"city": city, "temp_c": 27, "sky": "clear"}

agent = needle.Needle(tools=[get_weather])
print(agent.run("what's it like in Lagos right now?")["results"])
# [{'city': 'Lagos', 'temp_c': 27, 'sky': 'clear'}]

每次回合返回一个 JSON 对象,包含 function_calls、模型的 reasoning 和校准后的 confidence。

微调是它的一大卖点,分两条路:

本地 needle finetune平台 needle platform finetune
训练内容注意力投影上的 LoRA,基座冻结全模型、从 2 层起每个深度
精度4-bit2-bit,与发布版一致
置信度头不动,confidence 为 None连同模型一起微调、按你的工具校准
算力自己机器(CPU/CUDA/Metal)Cactus GPU

官方称,在 DroidCall 上微调可把每个子网络的指标提升 18–36 分;从 4 层起、微调后的子网络即可超过 DeepSeek V4 Flash,起点仅 29M 参数。

四、客观评价:优势与边界

优势:

  1. 体积与任务高度对口:8–29 MB、引擎 <1 MB,是真正能塞进嵌入式/端侧设备的模型,且专攻工具调用而非泛聊天;
  2. 行为契约诚实:无匹配工具返回空列表、输出由语法约束、带校准置信度——这些都是端侧自动化最需要的”可托付”性质;
  3. 阶梯式部署:同一权重可裁剪到 2–20 层,按设备算力选尺寸,工程上很灵活;
  4. Apache-2.0,权重与引擎在 Hugging Face 开放。

边界与存疑:

  1. 牺牲了通用对话:它明确不是聊天助手,复杂对话与开放式推理不在其能力圈;
  2. 基准为官方自报:“击败大 10 倍模型""超过 DeepSeek V4 Flash”均来自官方测试集(如 DroidCall、Mobile Actions),缺少第三方独立复现;
  3. 遥测默认开启:二进制默认开遥测,需手动设 NEEDLE_TELEMETRY=0 与 DO_NOT_TRACK=1 关闭——对隐私敏感的端侧场景要注意;
  4. 微调平台依赖 Cactus:2-bit 全量微调需用其托管 GPU,本地只能做 4-bit LoRA,且置信度头不参与。

五、它适合谁

  • 移动端 / IoT 开发者:想在离线、无网条件下让 App 本地完成意图识别、表单抽取、设备控制;
  • 可穿戴、车机、单片机:算力与内存极端受限、又必须做”一句话触发一个动作”的场景;
  • 做端侧 Agent 的团队:把高频、可枚举的工具调用留在本地,只把复杂推理上云。

参考来源