needle

让手机和手表也能跑大模型,14MB 极速推理

needle 是一个专为微型设备设计的开源基础模型,体积仅 14MB,参数量 2600 万,能在手机、可穿戴设备、智能家居和机器人上以每秒 1-6k tokens 的速度运行。它解决了传统大模型无法在资源受限设备上部署的问题,让端侧 AI 推理成为可能。核心能力包括极小的模型体积、高效的推理速度,以及针对移动端和嵌入式场景的优化。通过 Python 技术栈,开发者可以轻松集成到现有应用中,实现本地化、低延迟的智能交互,同时保护用户隐私。

开源 free 开源模型
访问官网 ↗ GitHub ↗ 文档 ↗
GitHub 星标 ★ 12176
维护状态 活跃
是否开源
定价模式 free

项目数据

分类开源模型
开发团队cactus-compute
所属国家
定价模式free
价格说明开源模型,MIT许可证,可免费本地部署使用,无在线服务或付费版本。
访问状态
是否开源
开源协议Apache-2.0
主要语言Python
技术栈/模型cactus,edge-ai,foundation-model,function-calling,llm,on-device-ai,tinyml,tool-calling
GitHub 星标★ 12176
30天Star增速
HF 下载量
上线时间2026-02-24 00:00:00
最近更新2026-09-22 00:00:00
维护状态活跃
中文支持
访问方式
移动端支持
综合评分
收录时间2026-08-09
浏览次数8

使用教程

难度:入门 约 5 分钟 部署方式:库/依赖 4 步

环境要求

  • 可用的 Python 环境与 pip(README 未指定具体版本)
  • 首次使用需联网从 Hugging Face 拉取一次推理引擎,之后本地缓存、推理不联网
  • 如需 LoRA 微调或检查点导出,需额外安装 train 依赖
  • 设备内存可支撑约 28MB 的会话运行时(模型为单文件 14MB 二进制)

安装与启动步骤

  1. 1安装 Needle 包

    通过 pip 安装 Python 包 cactus-needle,包含推理、LoRA 微调与导出能力,无需其他构建步骤。

    pip install cactus-needle
  2. 2按需安装训练栈

    仅在需要微调或导出检查点时执行;运行时包默认不包含训练相关依赖。

    pip install "cactus-needle[train]"
  3. 3定义工具函数

    用 @needle.tool 装饰函数,函数签名的类型注解即参数类型,docstring 即工具描述,描述好坏直接影响调用准确率。

    import needle
    
    @needle.tool
    def get_weather(city: str):
        "Get the current weather for a city."
        return {"city": city, "temp_c": 27, "sky": "clear"}
  4. 4创建 Agent 并调用

    把工具列表传给 needle.Needle,run() 会自动完成“模型选调用—执行函数—回传结果—生成最终回答”的完整闭环。

    agent = needle.Needle(tools=[get_weather])
    print(agent.run("what's it like in Lagos right now?")["results"])

关键配置

配置项必填说明示例
tools声明可供模型调用的工具函数列表,决定模型能选哪些调用tools=[get_weather]

如何确认成功

执行 agent.run(...) 后返回结果中带有 results 字段(含已执行工具的返回值),即表示安装与调用链路正常。

常见问题

Q:运行 Needle 需要多大内存和存储?

A:整个模型是单个 14MB 二进制文件,不产生额外模型文件;一次完整会话运行约占用 28MB 内存。

Q:推理时会不会联网上传数据?

A:推理本身不联网;引擎只在首次使用时从 Hugging Face 拉取并缓存。气隙/离线设备的部署方式见 doc/apis.md。

Q:怎样才能让模型更准确地调用我的工具?

A:Needle 依据工具描述决定调用哪个函数、如何填参数,所以把函数 docstring 写清楚是关键;参数类型由函数签名给出。

Q:工具很多时会不会撑爆上下文?

A:不会。内置检索头每轮只渲染最相关的 5 个工具,并把语法约束在该子集上;同时上下文为 256 token 滑动窗口。

Q:如何做微调或导出模型?

A:先执行 pip install "cactus-needle[train]" 安装训练依赖,再进行 LoRA 微调与检查点导出。

注意事项

  • 模型返回的是结构化数据:文本输入、JSON 输出,由根据你的 schema 编译的字节级语法约束每个 token。
  • 每个响应都带有一个由学习到的 head 给出的校准置信度,可设置阈值:高于阈值直接执行,低于阈值转人工或升级处理。
  • 务必只在 README 给出的 pip 包名 cactus-needle 下安装,不要自行拼装其他包名或参数。
  • 需要 LoRA 微调或导出检查点时再安装 train 额外依赖,纯推理无需训练栈。

核心亮点

  • 14MB 超小体积,2600 万参数,可直接部署在手机和嵌入式设备
  • 推理速度快,移动端每秒 1-6k tokens,满足实时交互需求
  • 支持多种微型设备场景,覆盖可穿戴、智能家居和机器人

不足之处

  • 参数量小,复杂任务能力可能受限
  • 文档/社区待观察

适用场景

  • 在手机上运行本地 AI 助手,无需联网
  • 智能家居设备中的离线语音指令处理
  • 机器人嵌入式端的实时决策与感知

替代项目

TinyLlama、MobileLLM、SmolLM

项目介绍

needle 是开源模型领域的开源项目,由 cactus-compute 开发,是 2026 年新上线的项目。

在全站 13,014 个收录项目中,它的 GitHub 星标数(12,176)位列前 4%,在开源模型分类的 422 个项目里位列前 6%。

近 41 天,它的 GitHub 星标从 4,197 增加到 12,176,净增 7,979。

项目目前处于活跃维护状态,最近一次代码更新于 2026-09-22。MIT许可证,可免费本地部署使用,无在线服务或付费版本。

它主要面向的使用场景是:在手机上运行本地AI助手,无需联网。同类可对比的替代方案包括 TinyLlama、MobileLLM、SmolLM。

上一篇:Awesome-Code-LLM

下一篇:Eagle

同类项目推荐

Machine-Learning 开源

跟着博客笔记,边看边跑机器学习代码

All content related to machine learning from my blog

★ 115 2026-08-09
CoreML-Models 开源

下载即用的苹果端 AI 模型库,免去转换烦恼

Core ML model zoo for iOS/macOS — PyTorch models converted to ready-to-use .mlpacka···

★ 1873 2026-08-10