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 |
GitHub:cactus-compute/needle ⭐ 4.4K+ | Python | MIT License
Unsloth:本地模型微调训练指南