Needle 2 實測:14MB 模型跑 AI Agent,無需 GPU 和聯網
當整個 AI 行業都在追逐千億參數的巨型模型時,一家名叫 Cactus Compute 的公司走了一條截然相反的路——他們剛剛發佈的 Needle 2,是一個只有 45M 參數、14MB 大小的模型,卻能在樹莓派上以每秒 500 token 的速度運行完整的 AI Agent。
這不是實驗室裏的概念驗證。Needle 2 已經在 Pebble Index 01 智能戒指上商用,用戶對着戒指說話,無需聯網就能觸發設備動作。
這篇文章,我們來深度拆解這個”反常識”的模型:它到底能做什麼?不能做什麼?以及在 2026 年的端側 AI 版圖中,它處於什麼位置。
Needle 2 是什麼?
Needle 2 是 Cactus Compute 開發的開源端側 Agent 模型。Cactus Compute 是一家專注於超小型 AI 模型的公司,他們的核心理念是:不是所有 AI 任務都需要大模型,很多場景下,一個足夠小、足夠快的專用模型反而更合適。
Needle 2 的核心定位非常明確——它不做聊天、不寫文章、不回答問題,它只做三件事:
- 工具調用(Tool Calling):把用戶的自然語言指令映射到具體的函數調用
- 設備控制(Device Use):在手機上執行 UI 操作序列
- 結構化提取(Structured Extraction):從文本中提取符合 Schema 的結構化數據
用一句話概括:Needle 2 不是一個”對話 AI”,而是一個”動作 AI”。
核心規格一覽
| 指標 | Needle 2 | 說明 |
|---|---|---|
| 參數量 | 45M | 4500 萬參數 |
| 模型大小 | 14 MB | 單個二進制文件 |
| 運行內存 | 28 MB | 峯值會話 RAM |
| GPU 需求 | 無 | 純 CPU 推理 |
| 量化精度 | CQ2-bit | 自研 2-bit 量化 |
| 上下文窗口 | 256 token | 滑動窗口,工具聲明固定保留 |
| 解碼速度(樹莓派 5) | 500+ tok/s | CPU-only |
| 解碼速度(Meta Quest 3S) | 400-1,500 tok/s | VR 設備 |
| 解碼速度(三星 A 系列) | 300-700 tok/s | 低於 $200 的手機 |
| 預訓練數據 | 115B token | 私有語料庫 |
| 後訓練數據 | 38B token | 含緊湊推理鏈 |
| 開源協議 | MIT | 完全開源 |
28MB 的內存佔用是什麼概念?一塊 ESP32-S3 微控制器就有 8MB PSRAM,而更新的微控制器已經有足夠的內存跑 Needle 2。這意味着一個幾美元的小芯片就能運行 AI Agent。
架構解析:Simple Attention Network
Needle 2 之所以能這麼小還能幹活,核心在於它的架構設計——Simple Attention Network(SAN)。這不是對 Transformer 的微調,而是一次從底層重新思考的設計。
關鍵創新
1. Hadamard MLP 替代傳統 FFN
傳統 Transformer 的前饋網絡(FFN)是參數大戶。Needle 2 用一個固定的 Walsh-Hadamard 變換加上可學習的對角矩陣來替代,通道混合的計算成本幾乎不佔參數。
2. Engram 記憶系統
世界知識不在模型權重裏,而在哈希 n-gram 表中。每個 token 只讀取幾行,解碼時幾乎零成本。這對閃存讀取既耗電又耗時的嵌入式設備至關重要。
3. 多通道殘差流
27 層、512 寬的網絡通過多通道設計獲得了遠超其寬度的路由靈活性,代價只是每層幾個點積。
4. 有界內存注意力
256 token 的滑動窗口確保 KV 緩存始終有界。工具聲明作爲永久”匯點”被釘住——一個工具調用模型最不能忘記的就是它的工具,這在結構上就不可能被遺忘。
5. 訓練即量化
這是最精妙的設計。Needle 2 不是在訓練後做量化(那會毀掉小模型),而是從預訓練到後訓練全程在 CQ2-bit 精度下訓練——權重、激活值、KV 緩存都是 2-bit。你部署的 2-bit 模型就是訓練時的模型,沒有精度損失。
Needle 1 → Needle 2:關鍵改進
Needle 1(也叫 Cactus Needle)是 26M 參數的模型。Needle 2 升級到 45M 參數,改進體現在多個維度:
| 維度 | Needle 1 | Needle 2 | 改進 |
|---|---|---|---|
| 參數量 | 26M | 45M | +73% |
| 模型大小 | ~10 MB | 14 MB | 略增 |
| 能力範圍 | 工具調用 | 工具調用 + 設備控制 + 結構化提取 | 大幅擴展 |
| 預訓練數據 | 未公開 | 115B token | 首次公開 |
| 後訓練 | 未公開 | 38B token(含推理鏈) | 首次公開 |
| 工具檢索 | 無 | 內置檢索頭,每輪選 Top-5 | 新增 |
| 置信度評分 | 無 | 每個響應附帶校準置信度 | 新增 |
| 微調方式 | 全量 | LoRA + 合併導出 | 更實用 |
| 瀏覽器 Playground | 無 | 有,支持 WebAssembly | 新增 |
最值得注意的兩個新增能力:
工具檢索(Tool Retrieval):你可以聲明大量工具,Needle 2 內置的檢索頭會在每輪只渲染最相關的 5 個工具,並且語法約束也只限定在這 5 個工具上。這意味着你可以給它一個包含上百個工具的 API,它不會迷路。
置信度門控(Confidence Gating):每個響應都帶一個校準後的置信度分數。你可以設定閾值——高於閾值直接執行,低於閾值升級到雲端或要求用戶確認。這讓 Needle 2 在生產環境中可以安全地”說我不知道”而不是瞎猜。
對比:Needle 2 vs 同級別模型
Needle 2 的直接競爭對手不是 GPT-4 或 Claude,而是同樣面向端側的小模型。以下是關鍵對比:
| 模型 | 參數量 | 大小 | RAM | 工具調用 | 設備控制 | 結構化提取 | 開源 |
|---|---|---|---|---|---|---|---|
| Needle 2 | 45M | 14 MB | 28 MB | ✅ | ✅ | ✅ | MIT |
| FunctionGemma 270M | 270M | ~540 MB | ~1 GB | ✅ | ❌ | ❌ | ✅ |
| LFM2.5 230M | 230M | ~460 MB | ~800 MB | ✅ | ❌ | ❌ | ✅ |
| Apple Foundation Model | 未公開 | ~數百 MB | ~數百 MB | ✅ | ✅ | 部分 | ❌ |
| Meta Muse Glimmer 30B | 30B | ~18 GB | ~20 GB | ✅ | ✅ | ✅ | ✅ |
| Phi-4-mini (量化) | 3.8B | ~2.3 GB | ~4 GB | ✅ | ❌ | ✅ | ✅ |
關鍵洞察:Needle 2 在 Mobile-Actions 基準測試上與 FunctionGemma 270M、LFM2.5 230M 互有勝負——但它的參數量只有對方的 1/5 到 1/70,而且運行在 2-bit 精度下,對方是 f16。
這不是一點點效率提升,這是數量級的差距。
部署實戰
Python 快速開始
pip install cactus-needle
最基本的工具調用只需要幾行代碼:
import needle
@needle.tool
def get_weather(city: str):
"""获取指定城市的当前天气"""
return {"city": city, "temp_c": 27, "sky": "晴"}
agent = needle.Needle(tools=[get_weather])
result = agent.run(" Lagos 现在天气怎么样?")
print(result["results"])
# [{'city': 'Lagos', 'temp_c': 27, 'sky': '晴'}]
結構化提取
from pydantic import BaseModel
class Invoice(BaseModel):
vendor: str
total: float
due_date: str
invoice = needle.extract(
"Invoice from Acme Corp, $1,200.00, due 2026-09-01",
Invoice
)
print(invoice.vendor, invoice.total) # -> Acme Corp 1200.0
微調自己的工具
# 合成训练数据
needle generate-data --tools my_tools.json --num-samples 500 --output data.jsonl
# LoRA 微调
needle finetune data.jsonl --epochs 10
# 导出为单一 .cact 文件
needle build checkpoints/needle2.pkl --lora checkpoints/needle_lora.pkl --out my_needle.cact
微調後的模型仍然是一個單一文件,可以在同一個引擎上直接運行,無需重新編譯。
樹莓派 / 嵌入式部署
Needle 2 的整個推理引擎是一個無依賴的 C++ 二進制文件。它在啓動時探測 CPU 特性並選擇合適的 kernel,模型、分詞器、語法編譯器全部封裝在內。
一個產物,從 Cortex-M 到 x86 到 WebAssembly 全平臺運行。沒有額外需要安裝或下載的東西。
# WebAssembly 版直接在浏览器运行
# 访问 cactuscompute.com/needle 的 Playground 即可体验
適用場景與侷限性
✅ 適合的場景
| 場景 | 爲什麼適合 |
|---|---|
| 智能家居語音控制 | 開燈、調溫度不需要大模型,28MB 就夠 |
| 可穿戴設備 | 手錶、戒指沒有足夠的內存跑大模型 |
| 離線設備 | 無網絡環境下需要本地推理 |
| IoT 設備 | 21 億+ IoT 設備,大多數內存 < 100MB |
| 隱私敏感場景 | 所有數據留在設備端,不上傳雲端 |
| 低成本手機 | 全球大多數手機售價低於 $200 |
| 機器人端側推理 | 小機器人需要快速、低延遲的工具調用 |
| 瀏覽器端 AI | WebAssembly 版本,無需安裝 |
❌ 不適合的場景
| 場景 | 爲什麼不適合 |
|---|---|
| 開放域對話 | 256 token 上下文 + 45M 參數,無法做通用聊天 |
| 長文檔理解 | 滑動窗口限制,無法處理長文本 |
| 世界知識問答 | 模型沒有存儲世界知識,只做工具映射 |
| 複雜推理 | 不是通用推理模型 |
| 多模態任務 | 不支持圖像、音頻輸入 |
一句話總結:如果你的任務可以表述爲”把自然語言映射到一組預定義的函數調用”,Needle 2 可能是最高效的選擇。如果你需要模型”理解”世界並生成開放文本,它完全不是正確的工具。
邊緣-雲協作模式
Needle 2 的設計哲學不是”替代雲端”,而是”邊緣優先,雲端兜底”:
- 默認路徑:所有請求在本地處理——私密、快速、免費
- 置信度門控:低於閾值時,自動升級到雲端大模型
- 空調用拒絕:離題請求返回空調用,而不是胡編答案
這意味着一個實際的部署架構可以是:
用户语音 → Needle 2(本地,28MB)
├── 高置信度 → 直接执行设备动作
├── 低置信度 → 转发到云端 GPT-4o / Claude
└── 离题 → 返回空调用,提示用户
大多數設備控制請求都能在本地完成,雲端調用是少數例外。這讓整個系統既快又省。
行業意義
Needle 2 代表的趨勢比它本身更重要:
1. 模型與任務的匹配
不是所有任務都需要通用智能。工具調用是一個定義明確的任務——輸入是自然語言,輸出是結構化 JSON。爲這種任務訓練一個 45M 參數的專用模型,比用一個 70B 的通用模型更高效、更快速、更私密。
2. 端側 AI 的真正含義
“端側 AI”不應該是”在 MacBook 上跑 llama.cpp”。真正的端是 $200 以下的手機、是樹莓派、是微控制器、是智能戒指。Needle 2 瞄準的是那 80% 的邊緣設備。
3. 訓練即量化的範式
Needle 2 證明了小模型可以在極低精度下從頭訓練而不損失性能。這可能影響未來所有小型模型的設計方式。
總結評價
| 維度 | 評分 | 說明 |
|---|---|---|
| 技術創新 | ⭐⭐⭐⭐⭐ | SAN 架構 + 訓練即量化,真正從底層重新設計 |
| 實用性 | ⭐⭐⭐⭐ | 工具調用準確,部署極簡,但場景有限 |
| 生態成熟度 | ⭐⭐⭐ | Python 包 + Playground + 微調工具鏈已可用,但社區尚早期 |
| 開源誠意 | ⭐⭐⭐⭐⭐ | MIT 協議,模型權重、引擎、微調工具全部開源 |
| 性價比 | ⭐⭐⭐⭐⭐ | 14MB + 28MB RAM,跑在 $35 的樹莓派上 |
Needle 2 不是要取代你電腦上的大模型,而是要讓那些從未有過 AI 的設備第一次擁有智能。 當 21 億 IoT 設備都能本地運行 Agent 時,這纔是 AI 真正無處不在的時刻。
常見問題(FAQ)
Needle 2 和 Needle 1 有什麼區別?
Needle 2 將參數量從 26M 提升到 45M,新增了設備控制和結構化提取能力(Needle 1 僅支持工具調用),並加入了工具檢索和置信度門控。訓練數據也首次公開:115B token 預訓練 + 38B token 後訓練。
Needle 2 能在手機上運行嗎?
可以。在三星 A 系列等低於 $200 的手機上,Needle 2 的解碼速度爲 300-700 token/s。Pebble 已經在 Index 01 智能戒指應用中集成了 Needle 2,完全離線運行。
Needle 2 需要 GPU 嗎?
完全不需要。Needle 2 是純 CPU 推理,在樹莓派 5 上就能達到 500+ token/s 的解碼速度。整個模型只有 14MB,運行只需 28MB RAM。
Needle 2 能做什麼不能做什麼?
Needle 2 擅長:工具調用、設備控制、結構化數據提取。不擅長:開放域對話、長文檔理解、世界知識問答。它是一個”動作 AI”而非”對話 AI”。
如何微調 Needle 2 用於自己的工具?
使用 pip install cactus-needle 安裝後,可以用 LoRA 方式微調。流程是:準備 JSONL 訓練數據 → needle finetune → needle build 導出爲單一 .cact 文件。微調可以在 Mac/PC 上完成,幾分鐘到幾小時。
如果你對在本地運行 AI 模型感興趣,還可以看看我們關於 Meta Muse Glimmer 30B 本地 Agent 模型 的深度評測,以及 LuxTTS 語音克隆工具 的實測報告。