Cactus Needle 3 8‑29 MB 基礎模型在微型裝置上媲美 DeepSeek V4 Flash
Needle 3 在 30 MB 以下的二進位檔案中提供 LLM 等級的工具呼叫
Needle 3 是一個 單一 8‑29 MB 的二進位檔案,可在微控制器、手機、穿戴式裝置和其他微型裝置上執行,同時提供與大十倍模型相當的工具呼叫效能。關鍵在於 Cactus 的 智慧階梯 (intelligence ladder) 讓開發者可以從 2 到 20 層中選擇一個子網路,微調一個 4 層的版本,並在僅經過一個 epoch 後,於下游任務中達到 DeepSeek V4 Flash 等級的準確度。
架構:階梯式簡單注意力網路 (SAN)
每一層都是一個獨立的子網路。
- 該模型由 29‑121 M 個參數組成,並量化為 CQ2‑bit (2‑bit) 精度。
- 每個深度 (2L‑20L) 都形成一個 容量單調遞增 的子模型,使開發者能夠選擇符合延遲和記憶體限制的最小模型。
- 底層的 SAN 取代了傳統以 MLP 為主的 Transformer 區塊,在不犧牲對工具架構進行推理能力的情況下減少了參數數量。
- 訓練使用了來自專有結構化資料集的 360 B 個 token,重點在於工具定義的理解和結構化提取。
核心功能
工具呼叫
"根據您的應用程式所公開的函式,Needle 會挑選正確的函式,並根據使用者的話語填入每個參數。要求兩件事,您就會依序得到兩次呼叫;要求任何工具都無法涵蓋的事,您會得到一個空列表,而不是猜測。"
- Needle 會回傳一個 JSON 函式呼叫列表,其中的參數是從使用者的話語中填入的。
- 如果沒有工具符合,模型會回傳一個空列表,而不是產生幻覺呼叫。
- 置信度分數經過校準;低於 0.1 的呼叫會被抑制。
結構化提取
"宣告一個形狀,傳入雜亂的文字,取回型別化的欄位:發票、預訂、通知、表單。"
- 使用者提供一個 Pydantic 架構;Needle 將欄位提取為一個型別化的物件。
- 解碼語法保證了語法正確的 JSON,使下游處理更加可靠。
文字嵌入
- 同一個模型可以發出一個 句子層級的向量,用於本地語意搜尋、重複偵測或路由到最合適的工具。
微型硬體上的效能
| 裝置 | Tokens / s (解碼) | Tokens / s (預填充) |
|---|---|---|
| Raspberry Pi 5 | 400 – 4 000 | 1 000 – 10 000 |
推理引擎小於 1 MB,並在啟動時載入 needle3.cact 權重。預先建置的二進位檔案適用於 macOS、Linux (x86_64, arm64, armv7, riscv64, mipsel)、Windows、Android、iOS、tvOS、watchOS、WebAssembly 和 WASI。
Cactus 展示的實際應用案例
- 智慧家庭 – 語音指令如 "調暗臥室燈光並鎖門" 可產生兩次離線工具呼叫,無需雲端往返。
- 機器人技術 – 指令如 "打掃廚房但不要動臥室" 被轉換為有序的運動基元。
- 手機 – 本地助理可以建立相簿、開啟 URL 或定位租賃文件,而無需將資料傳送到伺服器。
- 穿戴式裝置 – 腕戴式裝置可以將通知解析為結構化欄位(商家、金額、日期)。
- AR 眼鏡 – 離線導航和附近搜尋查詢完全在裝置上執行。
- 汽車 – 氣候、媒體、導航和通話處理都在本地執行,在長途駕駛中保護隱私。
- 桌面 – 純英文指令可驅動作業系統動作,如草擬電子郵件、啟動計時器或開啟分頁。
- 本地語意搜尋 – 嵌入技術實現了裝置上的文件檢索和重複警報合併。
開發者工作流程
- 安裝
cactus-needlePython 套件;推理引擎會從 Hugging Face 取得並快取。 - 定義工具:透過裝飾 Python 函式。函式簽章提供參數型別,docstring 提供描述,
run()執行呼叫。 - 新增觸發器 (regex 模式):針對必須始終路由到特定工具的意圖,確保即使在低於置信度閾值時也能保持確定性行為。
- 提取結構化資料:透過將 Pydantic 模型傳遞給
extract(),接收一個型別化的物件。 - 微調:透過 LoRA 在凍結的基礎模型上進行;為任何子網路深度匯出 4‑bit 的
.cact檔案。
"根據我有限的測試,它最多可以處理 10 個工具/定義。超過這個數量它就會感到困惑" – 使用者對工具集大小限制的觀察。
社群回饋重點
- 成功之處:使用者回報了可靠的多工具呼叫(例如,開燈和鎖門)以及準確的置信度門控。
- 限制:一些話語如 "多一點光" 或模糊的溫度請求產生了錯誤的動作或錯誤路由的呼叫,通常伴隨著較高的置信度分數。
- 工具集擴展:當載入超過約 10 個工具定義時,模型效能往往會下降。
- 領域知識:正如一位評論者所指出的,該模型缺乏大型 LLM 所保留的世界知識(例如藝術家姓名),這可能會影響利基領域。
- 偏差:觀察到攝氏/華氏混淆和意外的恆溫器調整實例。
- 與競爭對手的比較:基準測試顯示,在特定任務上微調的 Needle 3 超越了 FunctionGemma 和 Needle 2,儘管在通用分類上仍落後於較大的僅編碼器模型。
為什麼 Needle 3 很重要
Needle 3 證明了 在 30 MB 以下的尺寸實現裝置端結構化 JSON 生成和工具呼叫是可行的,將保護隱私的 AI 帶入穿戴式裝置、微控制器和邊緣設備。透過公開階梯式架構,Cactus 讓開發者能夠平衡延遲、記憶體和準確度,而開源推理引擎簡化了跨硬體平台的部署。
開始使用
pip install cactus-needle
needle build --platform linux-arm64 # 下載 1 MB 的引擎和權重
然後定義一個工具:
from cactus_needle import tool
@tool
def set_lights(room: str, brightness: int):
"""將 *room* 的燈光設定為 *brightness* (0‑100)。"""
# 此處進行硬體整合
return {"status": "ok"}
將使用者提示傳送給模型,並接收包含所選函式呼叫和置信度分數的 JSON 回應。
前景
Cactus 計畫透過資料集管理、全深度微調和評估管線來擴展 Cactus Platform,使更多領域(例如手機上的 OpenStreetMap 編輯)能夠受益於裝置端的 LLM 推理。隨著社群對 ESP32、汽車 ECU 和 WebAssembly 目標的實驗,Needle 3 可能成為低功耗、隱私優先 AI 助理的事實標準。
Sources
相關
- Dispatch
- Dispatch
- 專案
- Dispatch
- Dispatch