应用介绍
想让手表、智能家居面板、车机听懂一句「把客厅灯调暗、顺便锁上后门」,要么把请求发到云端大模型等几百毫秒还得联网,要么塞一个几百 MB 的本地模型,设备根本扛不住。Needle 走的是第三条路:整个模型只是一个 8~29 MB 的单文件,砍掉闲聊能力,专心做工具调用、结构化抽取和文本向量,在手机工具调用测试上赢过体积大它十倍的模型。
它给的不只是答案:每次回复都带一个校准过的置信度,一句话要两件事就按顺序给出两个调用,问到没有对应工具的事就返回空列表而不是瞎编。模型从 2 层到 20 层每一档都能单独部署,越小的设备取越浅的那档,官网还能直接在浏览器里用 WebAssembly 跑一个智能家居沙盒试手感。
工具调用:把 App 暴露的函数交给它,它挑出该调哪几个并从用户原话里填好每个参数。Python 里给函数加个
结构化抽取:声明一个字段结构,丢进乱糟糟的发票、订单、通知文本,拿回带类型的字段。解码受语法约束,输出保证能被解析,换成枚举字段就能直接当分类器用。
文本向量:同一个模型还能给句子算 embedding,本地做搜索、匹配和路由,不用再挂第二个模型。
置信度路由:每个回复自带置信分,可以按分数决定直接执行、先让用户确认还是拒绝,敏感操作多一道保险。
按层裁剪部署:2 到 20 层的每个深度都是可用模型,单片机上跑 2 层、手机上跑满层,同一套权重按需取用。
微调:本地用
多平台引擎:每个目标平台都有不到 1 MB 的预编译引擎,
它给的不只是答案:每次回复都带一个校准过的置信度,一句话要两件事就按顺序给出两个调用,问到没有对应工具的事就返回空列表而不是瞎编。模型从 2 层到 20 层每一档都能单独部署,越小的设备取越浅的那档,官网还能直接在浏览器里用 WebAssembly 跑一个智能家居沙盒试手感。
软件功能
工具调用:把 App 暴露的函数交给它,它挑出该调哪几个并从用户原话里填好每个参数。Python 里给函数加个
@needle.tool 装饰器,签名就是参数类型,docstring 就是工具说明,run() 一步执行完。结构化抽取:声明一个字段结构,丢进乱糟糟的发票、订单、通知文本,拿回带类型的字段。解码受语法约束,输出保证能被解析,换成枚举字段就能直接当分类器用。
文本向量:同一个模型还能给句子算 embedding,本地做搜索、匹配和路由,不用再挂第二个模型。
置信度路由:每个回复自带置信分,可以按分数决定直接执行、先让用户确认还是拒绝,敏感操作多一道保险。
按层裁剪部署:2 到 20 层的每个深度都是可用模型,单片机上跑 2 层、手机上跑满层,同一套权重按需取用。
微调:本地用
needle finetune 训练 LoRA 适配器,或者交给官方平台全量微调并自动生成训练数据;在 DroidCall 上微调后各档提升 18~36 分,4 层起就超过 DeepSeek V4 Flash。多平台引擎:每个目标平台都有不到 1 MB 的预编译引擎,
needle build --platform macos-arm64 一条命令拿到引擎和权重,覆盖 macOS、Linux ARM、浏览器、WASI 以及离线环境。
