Needle:14MB超小模型边缘AI部署完整教程

GitHub:cactus-compute/needle ⭐ 4.4K+ | Python | MIT License

项目简介

Needle 是一个仅 14MB 的 AI 基础模型,专为边缘设备设计。与动辄数GB的大模型不同,Needle 可以直接部署在手机、智能手表、智能家居设备和机器人上,完全离线运行。尽管体积极小,它仍然支持可靠的工具调用(Function Calling),能完成闹钟设置、设备控制、简单问答等任务。项目由 cactus-compute 团队开发,在 GitHub 上已获得超过 4,400 颗星。

安装

# pip 安装
pip install needle-ai

# 下载预训练模型(14MB)
python -m needle.download --model base-v1

# 源码编译
git clone https://github.com/cactus-compute/needle.git
cd needle
pip install -r requirements.txt
python build.py

# 验证安装
python -m needle.info
# Model: needle-base-v1
# Size: 14.2 MB
# Parameters: 8.4M
# Context: 2048 tokens
# Functions: supported

核心功能

功能说明性能(移动端)
文本生成基础对话和文本补全~50 tokens/s
工具调用Function Calling支持调用准确率92%
离线运行完全本地推理,无网络依赖0ms网络延迟
多语言支持中英等10种语言中文表现良好
低功耗优化移动端CPU推理~0.3W功耗
量化支持INT8/INT4量化部署体积再减50%

快速使用

from needle import NeedleModel

# 加载模型(14MB,秒级加载)
model = NeedleModel.load("needle-base-v1")

# 基础对话
response = model.chat(
    messages=[
        {"role": "user", "content": "今天天气真好"}
    ]
)
print(response)
# > 是的,天气不错!有什么我可以帮忙的吗?

# 工具调用(Function Calling)
tools = [
    {
        "name": "set_alarm",
        "description": "设置闹钟",
        "parameters": {
            "time": "string",
            "label": "string"
        }
    },
    {
        "name": "control_device",
        "description": "控制智能家居设备",
        "parameters": {
            "device": "string",
            "action": "string"
        }
    }
]

result = model.chat_with_tools(
    messages=[
        {"role": "user", "content": "帮我设一个明天7点的闹钟,然后把客厅灯关了"}
    ],
    tools=tools
)

# 输出工具调用
# [
#   {"tool": "set_alarm", "args": {"time": "07:00", "label": "alarm"}},
#   {"tool": "control_device", "args": {"device": "living_room_light", "action": "off"}}
# ]

Needle 的移动端部署能力与 AI Edge Gallery移动端LLM指南 中的方案相辅相成——AI Edge Gallery提供部署框架,Needle提供超小模型选择,两者结合可以在任何手机上实现离线AI助手。

适用场景

设备可用功能内存占用
智能手机对话+工具调用+翻译~30MB
智能手表简单问答+提醒~16MB(量化)
智能家居网关设备控制+场景联动~20MB
机器人控制器指令解析+简单对话~30MB

📚 常见问题

Needle是什么?

GitHub:cactus-compute/needle ⭐ 4.4K+ | Python | MIT License

如何上手Needle?

Unsloth:本地模型微调训练指南