2作者: HenryNdubuaku大约 1 个月前原帖
大家好,我是来自Cactus的Henry。我们开源了Needle,一个拥有2600万个参数的函数调用(工具使用)模型。它在消费设备上以6000个token/s的速度进行预填充,以1200个token/s的速度进行解码。 我们一直对在预算手机上构建自主模型的努力感到失望,因此进行了调查,得出了一个观察结果:自主体验是建立在工具调用之上的,而庞大的模型对此来说是过于复杂的。工具调用本质上是检索和组装(将查询与工具名称匹配,提取参数值,生成JSON),而不是推理。交叉注意力是实现这一点的正确基础,而在这个规模下,前馈神经网络的参数是浪费的。 简单注意力网络:整个模型仅由注意力和门控组成,没有任何多层感知器(MLP)。Needle是一个针对消费设备(手机、手表、眼镜等)进行单次函数调用的实验性运行。 训练: - 在16个TPU v6e上预训练了2000亿个token(27小时) - 在2亿个合成函数调用数据上进行后训练(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) 我们发现“无前馈神经网络”的发现超出了函数调用的范围,适用于任何模型可以访问外部结构化知识的任务(RAG、工具使用、检索增强生成)。如果事实在输入中提供,模型就不需要在前馈神经网络权重中记忆这些事实。实验结果将会发布。 虽然在单次函数调用上超越了FunctionGemma-270M、Qwen-0.6B、Granite-350M和LFM2.5-350M,但这些模型的范围/容量更大,并且在对话场景中表现更佳。我们鼓励您通过游乐场在自己的工具上进行测试,并相应地进行微调。 这是我们在Cactus([https://github.com/cactus-compute/cactus](https://github.com/cactus-compute/cactus))上的更广泛工作的一个部分,Cactus是一个为移动设备、可穿戴设备和定制硬件从零开始构建的推理引擎。我们之前在这里写过关于Cactus的内容:[https://news.ycombinator.com/item?id=44524544](https://news.ycombinator.com/item?id=44524544) 一切都采用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)