Needle 2 是一个仅 14MB 的微型基础模型,专为手机、穿戴设备等小型设备设计,擅长工具调用和结构化数据提取
这是关于 Needle 2 的详细部署与使用教程。Needle 2 是一个仅 14MB 的微型基础模型,专为手机、穿戴设备等小型设备设计,擅长工具调用和结构化数据提取。
本教程将涵盖从安装、基础使用到高级微调的全流程。
📋 部署前准备
在开始前,请确保你的系统满足以下要求:
- 操作系统:Windows、macOS 或 Linux。
- Python 环境:需要 Python 3.8 或更高版本。
- pip:Python 的包管理工具。
🚀 快速安装与入门
1. 基础安装
使用 pip 安装核心 Python 包。这是运行模型的最基本方式。
1 | pip install cactus-needle |
2. 加速安装(可选)
根据你的硬件,可以安装带有 GPU 加速的版本:
NVIDIA GPU (CUDA):
1
pip install "cactus-needle[gpu]"
Apple Silicon (Metal):
1
pip install "cactus-needle[metal]"
3. 运行你的第一个工具调用
安装完成后,你可以立即开始使用。模型权重会在首次运行时自动从 Hugging Face 下载并缓存。
1 | import needle |
📦 核心功能与用法
结构化数据提取
你可以使用 extract() 方法,直接从文本中提取结构化数据。只需定义一个 Pydantic 模型。
python
1 | from pydantic import BaseModel |
使用预置环境
Needle 为常见场景(如智能家居)提供了预置的工具集,开箱即用。
1 | from needle.environments import smart_home |
启动 Playground 交互界面
你可以启动一个本地 Web 界面来交互式地测试模型。
1 | # 启动基础模型的 Playground |
启动后,在浏览器中访问 http://127.0.0.1:7860 即可使用。
🔧 高级功能:微调模型
你可以使用自己的数据对 Needle 2 进行微调(LoRA),使其更适应你的特定任务。
1. 准备微调数据
数据应为 JSONL 格式,每行一个样本。reasoning 字段是可选的。
1 | {"query": "将厨房灯光调到10", "tools": [{"name": "set_lights", "parameters": {"type": "object", "properties": {"room": {"type": "string"}, "brightness": {"type": "integer"}}, "required": ["room"]}}], "answers": [{"name": "set_lights", "arguments": {"room": "厨房", "brightness": 10}}], "reasoning": "'厨房' -> room; '调到10' -> brightness 10"} |
2. (可选)合成数据
如果你没有数据,可以使用大模型(通过 OpenRouter)根据工具定义合成数据。
1 | # 设置 API 密钥 |
3. 执行微调
使用 finetune 命令开始训练。基础模型会自动从 Hugging Face 下载。
1 | # 基础微调 |
常用微调选项:
--epochs:训练轮数(默认 3)--lora-rank:LoRA 秩(默认 16)--lr:学习率(默认 1e-4)--batch-size:批次大小(默认 16)
4. 构建并导出微调后的模型
将 LoRA 适配器与基础模型合并,并导出为单个 .cact 文件。
1 | needle build checkpoints/needle2.pkl --lora checkpoints/needle_lora.pkl --out my_needle.cact |
添加 --bits 2 可以进一步压缩模型大小。
5. 使用微调后的模型
导出的 .cact 文件可以直接被 Needle 引擎加载使用。
1 | import needle |
❓ 常见问题
- 问:模型文件在哪里?
- 基础模型权重会在首次运行时自动从 Hugging Face 下载并缓存到本地。微调后导出的
.cact文件会保存在你指定的路径。
- 基础模型权重会在首次运行时自动从 Hugging Face 下载并缓存到本地。微调后导出的
- 问:如何离线部署?
- 详细的离线安装和部署指南请参考项目文档中的
doc/apis.md。核心思路是在有网的环境下载好模型和引擎,然后传输到目标设备。
- 详细的离线安装和部署指南请参考项目文档中的
- 问:微调时显存不足怎么办?
- 可以尝试减小
--batch-size的值,或使用--lora-rank较小的值。
- 可以尝试减小
- 问:如何获得更多帮助?
- 项目提供了详细的文档目录 (
doc/),包含 API 参考、微调指南和环境说明。你也可以通过邮件founders@cactuscompute.com联系团队。
- 项目提供了详细的文档目录 (
🔗 更多资源
- 项目主页:GitHub - cactus-compute/needle
- 模型权重:Hugging Face - Cactus-Compute/needle2
- 学术论文:arXiv:2607.18363
按照以上步骤,你应该能够成功在本地运行、使用甚至微调 Needle 2 模型。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 极客的赛博空间 | 专注 AI 与技术分享!
评论


