Cactus Needle 3:一个可切片的8-29MB自动化基础模型,与DeepSeek v4 Flash性能相当

Reddit r/LocalLLaMA 模型

摘要

Cactus Needle 3是一个小巧、可切片的基础模型,专为自动化任务设计,可在设备上运行,在函数调用和结构化提取方面达到与更大模型相当的性能。

大家好,我是Cactus Compute的Henry,想和大家分享我们最新的模型,并征求大家的反馈 :) Needle 3是一个用于自动化的小型基础模型:你提供应用程序暴露的函数,它读取请求并返回调用,其中每个参数都被填充,或者如果提供的是架构,则返回类型化的记录。它在设备端运行,无需网络参与。它在Hugging Face、GitHub和PyPI上以cactus-needle的形式提供,还有一个沙盒在浏览器中运行,地址是cactuscompute.com/needle,如果你想在继续阅读前试用一下。 1) 以通用能力换取自动化任务上的前沿性能 我们早期就决定Needle不会进行聊天。每次交互都是一个函数调用,如果一个请求没有可用的已声明工具,则返回空列表而不是猜测。这听起来像是一个限制,确实如此,但正是这一点使得一个121M参数模型能够在360B令牌的结构化数据上训练,并将所有容量用于三项任务:工具调用、结构化提取和文本嵌入。架构也遵循同样的权衡。它是一个Simple Attention Network:密集的前馈层被移除,替换为每层25.6K参数的Monarch Hadamard MLP,而不是4.7M,前馈层通常持有的知识存在于engram中,即通过gather读取的哈希n-gram表,无需算术运算。70.8M的参数就在其中,因此整个模型进行的算术运算相当于一个50M模型:每个令牌100 MFLOPs,而相同形状的transformer需要296。 https://i.redd.it/fsnfjojny4qh1.gif 我们写了直觉部分,如果你想看更长的版本:Simple Attention Networks and the Hadamard MLP。 2) 在工具调用和语言到设备控制上超越其大小10倍的模型 在Mobile Actions(961个手机命令,按精确调用评分)上,20层模型在启用的2位二进制文件中得分86.0,置信门开启。LFM2.5 1.2B得分为82.4,Qwen3.5 0.8B得分为76.0,FunctionGemma 270M得分为65.1,Apple的设备端基础模型得分为57.6,所有均为f16。DeepSeek V4 Flash通过其API得分为88.4,这是图表中的线。 https://i.redd.it/luunq717z4qh1.gif 我们最满意的部分不是数字,而是调用如何进行。每个参数都是请求的一个跨度:模型首先写出一个简短的推导('living room' -> room;'30' -> brightness),然后在从架构编译的字节级语法下发出调用,因此JSON始终可解析,枚举永远不会超出其集合。没有证据的可选字段被省略,没有证据的必填字段则不发出调用,引擎会丢弃请求否定或排除的调用。请求两件事,你就会按顺序得到两个调用。 https://i.redd.it/227396y5z4qh1.gif 完整表格跨越所有六个套件(工具调用是精确匹配,提取是字段F1,Needle通过启用的二进制,基线在vLLM下的f16): 模型 | 参数 | Mobile Actions | DroidCall | BFCL v4 | DSTC8 F1 | SNIPS gold F1 | SNIPS 7-way F1 DeepSeek V4 Flash (cloud) | - | 88.4 | 60.5 | 77.2 | 80.0 | 69.4 | 66.7 Needle3-20L-121M | 121M | 86.0 | 47.0 | 50.2 | 40.7 | 30.2 | 24.7 LFM2.5 1.2B | 1.2B | 82.4 | 35.5 | 62.0 | 48.0 | 43.0 | 38.0 Needle3-16L-98M | 98M | 80.7 | 40.0 | 41.3 | 28.5 | 23.5 | 19.2 Qwen3.5 0.8B | 800M | 76.0 | 28.0 | 56.8 | 49.0 | 35.0 | 34.0 LFM2.5 350M | 350M | 72.8 | 32.5 | 59.1 | 20.0 | 34.0 | 29.0 LFM2.5 230M | 230M | 69.3 | 11.5 | 46.3 | 53.0 | 27.0 | 22.0 FunctionGemma 270M | 270M | 65.1 | 16.5 | 46.6 | 27.0 | 29.0 | 14.0 Needle 2 | 45M | 63.5 | 17.0 | - | - | - | - Apple FM 3.0B | 3.0B | 57.6 | - | - | - | - | - Needle3-8L-52M | 52M | 36.8 | 36.5 | 28.2 | 15.3 | 16.6 | 10.1 Needle3-4L-29M | 29M | 11.7 | 21.0 | 19.5 | 6.9 | 7.7 | 4.3 你也可以看到它较弱的地方:BFCL和提取套件是更大的基线领先的领域,较小的子网络在通用任务上迅速下降(关于为什么这没问题,在第4节中更多讨论)。 3) 在结构化JSON提取上匹配2-3倍更大的模型 提取不是单独的模式。你将记录声明为唯一的工具,并传递查询所在的段落;声明一个工具后,语法只允许该名称的一个调用,因此形状是有保证的而非请求的,值的依据方式与参数相同:字段仅从段落的跨度填充,没有跨度的可选字段返回None,而文本中没有出现年份的日期会被标记而非发明。 from pydantic import BaseModel import needle class Invoice(BaseModel): vendor: str total: float due_date: str po_number: str | None = None needle.extract("Invoice from Acme Corp, $1,200.00, due 2026-09-01", Invoice) # Invoice(vendor='Acme Corp', total=1200.0, due_date='2026-09-01', po_number=None) 它无需特殊训练就泛化到分类,因为枚举只是一个受约束的值:在记录上声明sentiment: Literal["positive", "neutral", "negative"],你就有了一个输出不能超出集合的分类器。手表以这种方式读取通知到商家、金额和日期,然后到回复,然后到情感标志,每个记录一次。 在DSTC8和两个SNIPS套件上,121M模型落在230M和350M基线之间,这就是标题中的2-3倍。 4) 智能阶梯:从2层到20层的每个深度都是自己的模型 这是我最希望你思考的部分。Needle 3是一组权重,从2到20层的每个深度都是一个可部署的模型。块0和19始终保留,其余通过二分添加,因此每个子网络嵌套在下一个中;在训练期间,每一步采样一条路径,主要是完整模型,否则是随机深度,较小的路径从完整模型中蒸馏。完整深度模型最终比相同大小的普通运行略好,每个低于它的深度都是训练而非截断。 https://i.redd.it/kbwimep4z4qh1.gif 我们想要的原因:手表、Raspberry Pi和手机不需要相同的模型,并且希望在部署时选择大小。needle build --layers 8写入8层文件;相同的引擎运行所有深度。较小的深度在通用基准上失去准确性(这是上述表格的底部),但当微调到特定产品的工具时,它们恢复:在DroidCall上,每个子网络获得18到36分,并且从4层(29M参数)起,微调的子网络通过DeepSeek V4 Flash。 https://i.redd.it/y646wed3z4qh1.gif 微调是冻结基上的LoRA,在导出时合并,Python包在4位本地执行(needle finetune data.jsonl,然后needle build)。数学在Intelligence Ladders中,工作流在Fine-tuning Needle中。 5) 本地运行,解码速度高达4k令牌/秒 引擎小于1 MB,纯CPU,无GPU或NPU,权重从引擎映射到内存的单个文件中就地读取:一个196字节的头承载整个架构几何、一个无名张量目录,以及按前向传递读取顺序排列的量化块。在Raspberry Pi 5上,解码速度在阶梯底部高达4k令牌/秒,顶部约400,预填充从10k降至1k。每个响应报告prefill_tps、decode_tps和peak_ram_mb,因此你可以在自己的设备上测量,而不是听我们说。每个响应还携带一个校准头的置信度分数,对完成调用的事后判断和令牌解码概率的最小值。引擎扣留任何低于0.1的;高于此数字的归你所有:高时立即行动,中等时显示调用并询问,将[]视为拒绝。我们如何使用它在Leveraging Needle's confidence中。 6) 25-121M可部署参数在CQ2位(8-29MB二进制) 权重使用Cactus Quants量化:128个权重的组通过Walsh-Hadamard矩阵旋转,使每个组看起来像高斯分布,分割为fp16范数和单位球上的方向,方向的坐标被捕捉到4条目Lloyd-Max码本。这是每个权重2.125位,内核从不扩展它们:它旋转一个
查看原文

相似文章

Cactus-Compute/needle3

Hugging Face Models Trending

Needle 3 是一款针对移动设备和可穿戴设备等边缘设备优化的紧凑AI基础模型,在一个8-29 MB的文件中提供工具调用、结构化提取和文本嵌入功能。

Cactus-Compute/needle

Hugging Face Models Trending

Cactus-Compute 发布了 Needle,这是一个从 Gemini 3.1 蒸馏而来的 2600 万参数模型,采用纯注意力架构,针对设备端推理和本地微调进行了优化。