Needle 2 14 MB 代理型 LLM 為低於 200 美元的設備帶來裝置端工具調用功能
Needle 2 為 200 美元級別的設備提供完整的會話式 LLM
Needle 2 將一個 45 M 參數的模型封裝在 14 MB 的二進位檔中,在 28 MB 的 RAM 中運行完整的推理會話,並在 Raspberry Pi 5 上達到 500 tokens/sec 的解碼速度。這使得在廉價手機、穿戴式裝置、微控制器和機器人上實現功能齊全且保護隱私的 AI 成為可能。
核心技術成就
1. 無損 2-bit 量化實現 14 MB 佔用空間
Needle 2 是使用 Cactus Quants 進行端到端訓練的,這是一種自定義的 CQ2-bit 格式,在預訓練期間對權重、激活值和 KV cache 進行量化。由於模型從未接觸過全精度權重,因此 2-bit 表示不會造成品質損失,讓 45 M 參數在磁碟上僅佔用 14 MB。
2. 簡化注意力網絡減少每個 token 的運算量
該架構使用固定的 Walsh-Hadamard 轉換和學習到的對角矩陣取代了密集 MLP 投影,將矩陣乘法(matmul)的活躍參數從 82 M 減少到 35 M。產生的計算成本為 每個 token 70 MFLOPs,與規模相似的傳統 Transformer 相比,減少了約 2-3 倍。
3. 位元組級語法與 engram 查找精簡詞彙表
編譯後的位元組級語法限制了每一步的合法 token 集合,為結構化 token 跳過了高達 98% 的 softmax。Engram 層從雜湊後的 n-gram 表中讀取幾行數據(約 8 M 參數)而無需任何運算,進一步降低了 FLOPs 和記憶體頻寬。
4. 固定大小的滑動 KV cache 保證 28 MB RAM 上限
256-token 的滑動窗口限制了 KV cache,因此會話記憶體不會隨對話長度增長。系統提示詞(System prompts)和工具架構(tool schemas)被固定為永久儲存,確保模型永遠不會忘記其工具定義。
5. 單一二進位檔、硬體自適應運行時
C++ 引擎在啟動時探測 CPU 並選擇最佳內核(SDOT, NEON, AVX2, RISC-V vectors, WASM SIMD 或 scalar)。所有權重在磁碟上保持壓縮狀態;它們僅在暫存器內展開,使常駐記憶體保持在 14 MB 的 blob 大小。
在邊緣硬體上的性能表現
| 設備 | Prefill 速度 | Decode 速度 |
|---|---|---|
| Raspberry Pi 5 | 800 tok/s | 500 tok/s |
| Meta Quest 3S / Apple Vision Pro | 400–1,500 tok/s (視核心而定) | — |
| 200 美元級別手機 (Samsung A-Series) | 300–700 tok/s | — |
| ESP32-S3 (含外部 PSRAM) | 在 28 MB RAM 上限內運行 | — |
這些數據顯示,Needle 2 可以在缺乏 GPU 或 NPU 的設備上完全離線運行,為語音控制助手提供互動式延遲。
工具調用準確率對比大型模型
Needle 2 是專為 代理型工具使用(agentic tool use) 和結構化提取而設計的。儘管規模小了 5 倍至 70 倍,但在五個公開基準測試中,它能與大得多模型持平或超越它們。
Mobile Actions (961 行)
- Needle 2 準確率:63.7% (名稱準確率 98.3%)
- FunctionGemma 270M:總體 64.0%,名稱準確率 87.3%
- LFM2.5 230M:總體 69.1%,名稱準確率 93.0%
- Apple FM (裝置端):總體 57.6%
DroidCall (200 行)
- Needle 2:總體 17.0%,名稱準確率 36.5%
- FunctionGemma 270M:總體 17.5%,名稱準確率 37.5%
- LFM2.5 230M:總體 11.0%
Seal-Tools (領域內, 700 行)
- Needle 2:32.6% 總體,64.9% 名稱準確率
- LFM2.5 230M:總體 26.9%,名稱準確率 45.4%
- FunctionGemma 270M:總體 16.3%,名稱準確率 56.0%
Seal-Tools (領域外, 654 行)
- Needle 2:28.7% 總體,58.7% 名稱準確率
- LFM2.5 230M:總體 17.0%
- FunctionGemma 270M:總體 15.6%
BFCL v4 單輪 (3,641 行)
- 總分:Needle 2 42.6 vs Apple FM 61.7, LFM2.5 60.8, FunctionGemma 46.1
- 格式正確率:Needle 2 93.4% (與 FunctionGemma 的 100% 相當)
結論: 當任務是 精確 的工具調用時,Needle 2 的專用訓練和語法強制執行使其能與規模大 5-6 倍的模型競爭。
實際部署範例
Pebble 的 Index 01 穿戴式裝置在本地運行 Needle 2,將語音指令轉換為動作,無需任何網路依賴。該設備沒有螢幕,因此可靠性和延遲至關重要;14 MB 的模型同時滿足了這兩個限制。
"Pebble Index Ring 沒有螢幕。因此當你對它說話時,無論是否有網路連接,動作都必須每次都執行。我們在 App 中本地運行 Cactus Needle,而不是依賴雲端。該模型的佔用空間極小,且性能從不讓我們失望。" — @Pebble engineering team
社群回饋亮點
"微型 LLM 領域被低估了;建立一個模型層級,由大型代理訓練小型專家,可能會成為一種常見模式。" — @nater5000
"置信度門檻(Confidence gating)至關重要。在模糊的查詢中,模型有時會返回低置信度的調用,而不是放棄執行。" — @grenli
"在 ESP32-S3 上運行是可能的,但燒錄二進位檔的文檔仍然缺失。" — @forsalebypwner
"模型的推理欄位出現在函數調用之後,這可能會讓下游流水線感到困惑。" — @alex7o
"選擇 2-bit 格式而非 4-bit 是為了將二進位檔保持在 14 MB 以下;4-bit 會增加大小,但不會帶來成比例的品質提升。" — @r0ze-at-hn
這些評論強調了對裝置端代理範式的熱情,以及對工具、置信度校準和部署人機工程學的實際擔憂。
限制與開放問題
- 通用知識 – Needle 2 不是聊天模型;它缺乏裝置動作之外的世界知識,因此開放式查詢通常會返回低置信度或錯誤的調用。
- 置信度校準 – 升級到雲端的閾值是學習得來的,但尚未公開記錄;用戶報告偶爾會出現過度自信的錯誤調用。
- 工具架構靈活性 – 添加新功能需要在 Mac/PC 上進行微調;過程很快(幾分鐘到幾小時),但對非技術開發者來說仍是一個障礙。
- 硬體支援 – 目前的二進位檔針對 Cortex-M、x86 和 WASM;部分用戶嘗試在通用 64 位元 ARM 桌面上運行時失敗。
為什麼 Needle 2 對邊緣 AI 生態系統很重要
Needle 2 證明了當問題被框架化為結構化函數映射時,代理能力不需要數十億個參數。透過協同設計架構、量化和運行時,Cactus Compute 提供了一個符合大多數 IoT 設備記憶體和計算包絡的模型(約 80% 的邊緣硬體成本 < 200 美元)。這將 AI 部署模式從以雲端為中心的 API 轉向私密、即時且離線的助手,為助聽器、家庭自動化、機器人和低成本智慧型手機開闢了新的應用場景。
開始使用
- 模型權重 – Hugging Face 上的 Apache 2.0 授權檢查點:
Cactus-Compute/needle-2。 - 運行時 – 無依賴的 C++ 二進位檔(GitHub 上的原始碼)會自動選擇最佳內核;也提供作為瀏覽器的 WASM 模組可用。
- 微調 – Python 套件
needle讓您可以在幾小時內在筆記型電腦上添加自定義工具定義並進行訓練。 - Demo – Web 遊樂場展示了穿戴式裝置、智慧家庭和機器人的語音轉動作場景。
Needle 2 證明了 14 MB 的 LLM 可以可靠地在裝置端執行工具調用,為現有數十億台廉價邊緣設備提供了一條實現普及、隱私優先 AI 的實用路徑。
Sources
相關
- 專案
- Dispatch
- Dispatch
- Dispatch
- Dispatch