Needle:我们将 Gemini 的函数调用能力蒸馏进了一个 2600 万参数的模型
摘要
Cactus-Compute 发布了 Needle,这是一个拥有 2600 万参数的开源模型,从 Gemini 蒸馏而来。它采用一种不含 MLP 的新型“简单注意力网络”架构,旨在实现高效的端侧函数调用。
我们开源了 Needle,这是一个拥有 2600 万参数的函数调用(工具使用)模型。它在消费级设备上的预填充速度可达 6000 tok/s,解码速度可达 1200 tok/s。我们一直对构建能在低端手机上运行的代理模型缺乏努力感到沮丧,因此我们开展了一些研究,得出了一个观察结论:代理体验建立在工具调用之上,而庞大的模型对于这一任务来说是大材小用。工具调用本质上是检索与组装(将查询匹配到工具名称、提取参数值、输出 JSON),而非推理。交叉注意力是处理这一任务的正确原语,而在这个规模下,FFN 参数是浪费的。
**简单注意力网络**:整个模型仅由注意力和门控组成,没有任何 MLP。
Needle 是针对消费设备(手机、手表、眼镜等)单次函数调用的实验性运行。
**训练**:
- 在 16 个 TPU v6e 上使用 200B 令牌预训练(27 小时)
- 在 2B 令牌的合成函数调用数据上进行后训练(45 分钟)
- 数据集由 Gemini 生成,涵盖 15 个工具类别(计时器、消息、导航、智能家居等)
你可以立即测试它并在你的 Mac/PC 上进行微调:[https://github.com/cactus-compute/needle](https://github.com/cactus-compute/needle)
关于架构的完整报告在此:[https://github.com/cactus-compute/needle/blob/main/docs/simple_attention_networks.md](https://github.com/cactus-compute/needle/blob/main/docs/simple_attention_networks.md)
我们发现,“无 FFN”这一发现不仅适用于函数调用,还适用于模型可以访问外部结构化知识的任何任务(RAG、工具使用、检索增强生成)。如果事实已在输入中提供,模型无需在 FFN 权重中记忆事实。实验结果将在随后发表。
虽然它在单次函数调用上优于 FunctionGemma-270M、Qwen-0.6B、Granite-350M、LFM2.5-350M,但这些模型具有更大的范围/容量,并在对话场景中表现出色。我们鼓励你通过游乐场测试自己的工具,并据此进行微调。
Needle 是使端侧 AI 实用化更广泛努力的一部分。我们还构建了 Cactus(https://github.com/cactus-compute/cactus),这是一个面向移动设备和可穿戴设备的开源推理引擎。所有内容均采用 MIT 许可证。
权重:[https://huggingface.co/Cactus-Compute/needle](https://huggingface.co/Cactus-Compute/needle)
GitHub:[https://github.com/cactus-compute/needle](https://github.com/cactus-compute/needle)
相似文章
Cactus-Compute/needle
Cactus-Compute 发布了 Needle,这是一个从 Gemini 3.1 蒸馏而来的 2600 万参数模型,采用纯注意力架构,针对设备端推理和本地微调进行了优化。
Cactus-Compute/needle3
Needle 3 是一款针对移动设备和可穿戴设备等边缘设备优化的紧凑AI基础模型,在一个8-29 MB的文件中提供工具调用、结构化提取和文本嵌入功能。
Show HN: Needle2:面向手机、可穿戴设备、智能家居和机器人的14MB智能体LLM
Cactus Compute 发布 Needle 2,这是一个45M参数的智能体LLM,压缩为14MB二进制文件,适用于手机、可穿戴设备、智能家居和机器人,在树莓派5上实现每秒500+ tokens,运行内存仅28MB。
Needle 2:面向手机、可穿戴设备、智能家居和机器人的 14MB 智能体 LLM。
Cactus 发布了 Needle 2,这是一款面向手机、可穿戴设备、智能家居设备和机器人的 14MB 智能体 LLM,在低端硬件上实现快速推理,并支持结构化提取和微调。
@cactuscompute: Needle 最不为人知的秘密不是函数调用。它是结构化提取。长文本输入 → 有效 JSON 输出。小巧…
Needle 2 是一个开放的、45M 参数 AI 模型,用于工具调用和结构化提取,优化后可在浏览器中以 14MB 运行,并通过受约束采样保证 JSON 输出。