Needle 2的5大核心特性:自包含、结构化输出、置信度门控、工具检索与有界内存

发布时间:2026/9/15 10:27:55
Needle 2的5大核心特性:自包含、结构化输出、置信度门控、工具检索与有界内存 Needle 2的5大核心特性自包含、结构化输出、置信度门控、工具检索与有界内存【免费下载链接】needle14MB foundation model for tiny devices; phones, wearables, smart home, and robots.项目地址: https://gitcode.com/GitHub_Trending/needle20/needleNeedle 2是一款专为小设备打造的开源 45M 参数基础模型整个模型是一个14MB 的二进制文件跑完一整轮会话仅需约28MB 内存。它面向工具调用Tool Calling、设备控制和结构化数据提取三大场景可以完整离线运行在手机、可穿戴设备、智能家居与机器人上。这篇文章带你一文看懂 Needle 2 的 5 大核心特性帮你判断它是否适合你的端侧 AI 项目。上图中可以看到 Needle 2红点的对比位置它的参数量只有 FunctionGemma 270M 的几十分之一却在 Mobile-Actions 基准上与之打得有来有回——而且用的是2-bit 量化Cactus Quants 的 CQ2对方还是 f16。特性一句话解释适合场景 自包含权重引擎打包进单个 14MB 文件离线设备、嵌入式部署 结构化输出文本进、JSON 出语法级约束数据提取、API 对接 置信度门控每次响应自带校准置信分高风险自动化决策 工具检索大工具目录每轮只渲染前 5 个上百工具的 Agent 系统⏳ 有界内存对话再长内存恒定约 28MB长时间驻留的常驻 Agent特性一自包含一个 14MB 二进制就是全部模型大多数小模型部署要管理一堆东西模型权重文件、推理框架、依赖库。Needle 2 的做法是把45M 参数权重直接烤进推理引擎整个模型就是这一个.cact二进制没有独立模型文件要管理推理过程完全不碰网络。这对离线设备非常友好。引擎首次会从 Hugging Face 拉取一次并缓存到本地之后的推理永远离线对气隙air-gapped设备只需把这一个文件放到指定缓存路径即可doc/apis.md 的 “Offline devices” 一节给了三种离线安装方式包括跨平台标签下载--platform-tag。相关实现可以在 needle/agent/fetch.py 的fetch_library里找到。一句话总结装完即离线零网络推理这是把 LLM 塞进机器人和智能家居的前提。特性二结构化输出文本进、JSON 出且不可能写坏Needle 2 的所有输出都走同一套契约文本进JSON 出。它的解码过程受一个字节级语法byte-level grammar约束——这个语法是从你声明的工具 Schema 编译出来的模型在生成层面就不可能产出不合 Schema 的 JSON。这意味着✅ 工具调用的参数名、类型、取值范围都是强约束的不是希望它格式正确而是它只能格式正确✅ 用 needle.Field 声明的范围、正则、长度约束会直接编进解码语法比如金额gt0, le10000模型永远发不出越界值✅ 结构化提取从发票、收据里抽字段就是只有一个工具的调用用 Pydantic 模型声明结构拿到的就是带类型的对象。对新手来说最大的好处是你不需要写任何 JSON 解析和容错代码格式正确性由解码器保证详见 doc/apis.md 的 Extraction 一节。上图是它背后的 Simple Attention NetworkSAN架构Hadamard MLP 替代传统 FFN、GQA 注意力、Engram 键值记忆、多通道超连接最后一步正是字节级语法 → 精确函数调用这也是结构化输出能力的架构来源。特性三置信度门控给模型回答装一道安全阀端侧模型跑在用户场景里最危险的不是答错而是自信地做错。Needle 2 的每个响应都自带一个校准过的confidence分数它取两个信号的最小值一个学习到的后置置信头对完整提示调用打分另一个是调用 token 的解码概率——两个信号都同意这次调用才算数。使用方式非常简单为你的产品设一个阈值比如 0.9置信分 ≥ 阈值直接执行置信分 阈值追问用户或升级到更大的模型处理。这套契约把失败模式从错误执行变成了请求升级对智能家居控制、转账这类高风险动作尤其有价值。完整规则见 doc/apis.md 的 Confidence 一节。⚠️ 小提示置信头只针对基础模型校准用 LoRA 微调过的权重会报None构造时警告一次微调产物请改用其他验收方式。特性四工具检索工具目录再大也只看前 5 个工具型 Agent 有个经典难题声明 50 个工具上下文塞不下还容易选错。Needle 2 内置了一个对比式检索头来解决它声明 ≤ 5 个工具时全部直接渲染进上下文声明 5 个工具时初始化时每个工具 Schema 只被嵌入一次每轮对话嵌入你的查询只把得分最高的 5 个工具放进上下文语法也只为这个子集重建。关键点在于没被选中的工具是根本不可达的而不是概率低一点——模型无法调用它们从根上杜绝误选。嵌入结果还能通过tool_index_path持久化到磁盘指纹匹配时秒加载Schema 变更时只重嵌变化的部分。这让给机器人挂上百个技能这类玩法在 28MB 内存里也能跑工具声明的实现见 needle/agent/tools.py。特性五有界内存对话一小时内存依然是 28MB普通 LLM 的 KV 缓存随对话长度线性增长聊得越久越吃内存。Needle 2 采用256 token 滑动窗口同时把工具声明钉住为 KV sink永远驻留在缓存里效果是✅ 无论对话进行多长总内存恒定在约 28MB附近✅ 工具定义始终完整可见不会因为被滑出窗口而忘记自己会哪些工具✅ 响应里还会附上peak_ram_mb等实测指标内存占用可观测。这个设计直接决定了它可以作为常驻进程跑在手机、手表和机器人上——不需要聊两句就重启。窗口与 sink 机制的解码实现位于 needle/model/decode.py。快速上手pip 一行安装三分钟跑通第一个工具调用安装只需一行pip install cactus-needle然后给一个函数加上needle.tool装饰器函数签名就是参数类型docstring 就是工具描述run()自动完成模型选调用 → 执行你的函数 → 结果回喂 → 返回最终响应的完整闭环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(whats it like in Lagos right now?)[results]) # [{city: Lagos, temp_c: 27, sky: clear}] 不想写代码needle playground会在浏览器里打开一个交互面板默认 http://127.0.0.1:7860可以编辑工具、试跑会话还能一键触发微调流程源码在 needle/playground/。进阶LoRA 微调产出仍是同一个引擎能跑的 .cact想让模型更懂你自己的工具Needle 2 用LoRA 适配器在冻结底模上训练rank 16打在每层注意力的 5 个投影上导出时把适配器合并进权重——微调产物依然是单个.cact文件引擎、tokenizer、置信头全部不变无需重新编译。工作流三步走可选needle generate-data合成训练数据JSONL 格式一条示例一行needle finetune data.jsonl --epochs 10跑 LoRA 训练纯 JAX 实现NVIDIA[gpu]扩展和 Apple Silicon[metal]扩展都能加速needle build ... --lora adapter.pkl合并导出调优版.cact。数据集规模怎么定、loss 曲线怎么读、常见坑有哪些doc/finetuning.md 都写了量化与导出的核心实现在 needle/model/export.py 和 needle/model/quantize.py。总结为什么值得把 Needle 2 放进你的技术选型清单维度Needle 2 的答案体积14MB 单二进制5x–70x 小于同级功能的小模型内存恒定位约 28MB长对话不膨胀离线推理零网络气隙设备可部署可靠性语法级 JSON 约束 双信号置信度门控扩展性工具检索支持大目录LoRA 微调成本低如果你的场景是小设备上的工具调用 Agent 结构化提取 不能出错的执行链路这 5 大特性恰好覆盖了从部署、输出、决策到扩展的完整闭环。配合 doc/apis.md 的 API 表和 README.md 的快速入门你可以很快做出第一个端侧 Agent 原型。【免费下载链接】needle14MB foundation model for tiny devices; phones, wearables, smart home, and robots.项目地址: https://gitcode.com/GitHub_Trending/needle20/needle创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考