Needle 的"无 FFN"架构:工具调用不需要大模型,对本地 AI Agent 开发者的启示
Cactus 团队开源了 Needle,一个 26M 参数的 Simple Attention Network 模型。它的核心发现是:工具调用本质上是一个检索与组装任务,不需要 FFN(前馈网络),仅靠注意力机制就够了。这个发现对构建本地 AI Agent、降低推理成本有直接指导意义。
2026年5月13日 · 阅读约 5 分钟
核心结论
5 月 12 日,Cactus 团队在 Hacker News 上开源了 Needle——一个仅有 26M 参数的函数调用(tool calling)模型。它的独特之处在于完全抛弃了标准 Transformer 中的前馈网络(FFN),仅靠注意力机制实现工具调用,在消费级设备上达到 6000 tok/s 预填充和 1200 tok/s 解码速度。
| 关键维度 | 数据 |
|---|---|
| 发布时间 | 2026-05-12 |
| 模型参数 | 26M,无 FFN,仅 Self-Attn + Cross-Attn |
| 训练 | 200B tokens 预训练(16 TPU v6e,27 小时)+ 2B tokens 后训练(45 分钟) |
| 部署速度 | 6000 tok/s prefill,1200 tok/s decode |
| 硬件 | 可在手机、手表、眼镜等消费级设备运行 |
| 开源地址 | https://github.com/cactus-compute/needle |
关键要点
- 这是首个在超小参数规模下,验证"工具调用不需要 FFN"这一假设的公开模型
- 对 AI Agent 开发者意味着:运行工具调用模型不再需要 GPU,手机芯片就够了
- 架构设计可能改写小模型的部署范式——不仅是量化,而是从根本上减少参数
背景与触发事件
5 月 12 日,Cactus 团队的 Henry 在 Hacker News 上发布了 Needle,一个专为函数调用设计的 26M 参数模型。该帖获得了 445 分,位列当日 HN 热门前三。
Cactus 团队的核心观察是:工具调用本质上是"检索与组装",而非推理。匹配 query 到工具名、提取参数值、组装 JSON——这三个步骤全部是在输入和输出之间做对齐与拷贝,这正是交叉注意力(cross-attention)最擅长的。没有一步需要逐位置的特征变换(FFN 的核心功能)。
基于这一观察,他们设计了一个"Simple Attention Network":整个模型只有自注意力和交叉注意力层,没有任何 MLP/FFN。实验结果验证了假设——26M 的 Needle 在单次函数调用任务上超越了 270M 的 FunctionGemma、600M 的 Qwen、350M 的 Graninte 等更大参数量的模型。
关键影响(按维度)
| 维度 | 变化 | 对 AI Agent 开发者的意义 | 建议动作 |
|---|---|---|---|
| 模型大小 | 26M 参数,无 FFN | 不需要 GPU,手机/手表即可运行工具调用 | 在本地 AI Agent 流程中集成 Needle 替代云端 API 调用 |
| 推理速度 | 6000 tok/s prefill | 几乎零延迟的预填充体验 | 测试在自己的消费设备上运行,评估实际延迟 |
| 训练成本 | 200B tokens 预训练 + 2B tokens 微调 | 仅 27 小时 TPU 训练时间,45 分钟后训练 | 如果打造专有工具集,可用类似方法蒸馏大模型 |
| 架构范式 | 注意力机制足够,FFN 是浪费的 | 小模型架构设计可以彻底做减法 | 关注 Simple Attention Networks 的后续研究 |
| 数据合成 | 用 Gemini 3.1 合成了 2B tokens 函数调用数据 | 高质量合成数据是小模型关键 | 用大模型为你的垂直场景合成工具调用数据集 |
为什么"无 FFN"对 AI Agent 开发很重要
传统 Transformer 约 2/3 的参数来自 FFN。对于小于 50M 的模型,这些参数在结构化任务(如工具调用)上的贡献远不如更多的注意力层。去除 FFN 后:
- 参数量直降 2/3——直接减少了边缘设备上延迟的瓶颈(内存带宽)
- softmax 本身就是非线性的——softmax(QK^T/sqrt(d)) * V 是一个数据依赖的非线性混合操作,对于路由信息来说已经足够
- 编码器-解码器结构天然适合工具调用——工具定义是结构化对象,双向编码器可一次看到完整定义;因果模型需要从左到右推理结构
这对 WayToClawEarn 社区特别相关:如果你正在用本地模型搭建 AI Agent(如用 OpenClaw 做内容自动化、用 n8n + 本地 LLM 做 Agent 工作流),Needle 证明了一条清晰的路径——工具调用模型可以压缩到 26M,跑在手机芯片上,无需昂贵的 GPU 推理。
适配建议
- 在自己的设备上跑 Needle:克隆仓库后直接用 Hugging Face 权重推理,Mac/PC 都能跑
- 为你的工具集微调:用 Gemini 或其他大模型合成你的工具调用数据集,在 Needle 上微调
- 架构借鉴:如果自己训练小模型,考虑移除 FFN 层,用更深的注意力替代
- 与本地 AI Agent 框架集成:将 Needle 作为 OpenClaw、Hermes Agent 的工具调用引擎
# Needle 的推理接口示例
# 模型权重: https://huggingface.co/Cactus-Compute/needle
# 在 Mac/PC 上本地运行函数调用
git clone https://github.com/cactus-compute/needle.git
cd needle && pip install -r requirements.txt
# 用 query + tools 列表调用
python -c "
from needle import Needle
model = Needle.from_pretrained('Cactus-Compute/needle')
tools = [
{'name': 'send_email', 'params': {'recipient': 'string', 'subject': 'string'}},
{'name': 'set_timer', 'params': {'duration': 'int'}}
]
result = model.call('给我设个5分钟的计时器', tools)
print(result) # {'name': 'set_timer', 'params': {'duration': 300}}
"工具词条
本文涉及的模型和工具有:Gemini(数据合成)、OpenClaw(Agent 框架)、n8n(工作流自动化)、Hermes Agent(AI 代理框架)、DeepSeek(开源模型)、ChatGPT(数据合成备选)
内链引导
- 想学习如何在本地跑小模型?看:如何用 LM Studio 在 M4 Mac 上运行本地 AI 模型
- 想了解 AI Agent 工具调用怎么做?看:AI Agent 驱动内容自动化:n8n MCP 从零搭建指南
- 真实案例:他用 AI Agent 搭建了月入 $5,000 的 SaaS:18岁零基础用AI Agent造出月入$5,000的SaaS