cactus-compute/needle
14MB foundation model for tiny devices; phones, wearables, smart home, and robots.
cathrynlavery/diagram-design(已於 2026-08-13 推過),故改推第 2 名。cathrynlavery/diagram-design 已連續霸榜 3 天,當初在 2026-08-13 推過,值得回頭再看一眼。這是什麼
Needle 2 是 Cactus Compute 開源的一個小型工具呼叫模型,定位不是一般聊天,而是讓裝置能把文字需求轉成工具呼叫、裝置操作與結構化抽取。README 強調它是 45M 參數,整個模型被包成單一 14MB binary,一次完整 session 約用 28MB RAM;模型採 Simple Attention Network,包含 Hadamard MLP、GQA attention、engram key-value memory 與多路 hyper-connections,並以 Cactus Quants 做 CQ2-bit 壓縮。倉庫本身則是 Python package,涵蓋推論、LoRA fine-tuning 與匯出;權重會從 Hugging Face 取得並快取,推論時不需連網。
為什麼上榜
它今天拿到 662 顆星、總星數約 5,590,熱度很明顯來自「把工具型 AI 塞進小裝置」這個精準題目。多數 tool calling 模型仍預設在雲端或較大的本地推論環境運作,Needle 2 的賣點則是把模型、權重與引擎收斂成能在手機、穿戴、智慧家庭與機器人等場景部署的大小。README 也直接把它放到 FunctionGemma 270M、LFM2.5 230M、Apple FM 等小模型旁比較,主張在 benchmark 上互有勝負,但體積小 5x 到 70x。值得注意的是,它不是只賣「小」,而是同時把 byte-level grammar、信心分數與工具檢索做進推論流程,讓小模型仍能維持可控的輸出契約。
適合誰,可以拿來做什麼
Needle 2 適合想把 AI agent 功能放到邊緣裝置或離線環境的人:例如智慧家庭中把「把廚房燈調暗到 10」轉成工具參數、機器人或穿戴裝置上做本地指令解析,或在資料流程中把文字抽成 Pydantic schema。它也適合已經有一組工具 API、但不想每次都把完整工具目錄丟給大型模型的開發者;README 提到內建 retrieval head 會從大型工具目錄中選出每輪 top five,並把 grammar 約束到該子集。上手門檻主要在 Python 與 schema 設計:工具描述寫得好不好,會直接影響模型要呼叫什麼、參數怎麼填。
上手
README 提供的基本安裝很直接:
pip install cactus-needle
最小範例是用 @needle.tool 裝飾 Python 函式,函式簽名提供型別、docstring 作為工具描述,Needle.run() 會完成選擇工具、執行函式、把結果餵回模型並回傳包含 results 的最終結果。若是資料抽取,則可宣告 Pydantic model 後呼叫 needle.extract()。README 也提供 playground:
needle playground
needle playground --weights my.cact
如果要針對自己的工具微調,流程是準備 JSONL 資料、用 needle finetune 做 LoRA,最後用 needle build 合併 adapter 並匯出 .cact;NVIDIA 與 Apple Silicon 分別有 gpu、metal extras。
README 重點摘要
- 單檔 14MB engine:權重被 bake 進單一檔案,推論不需網路,也沒有額外模型檔要管理。
- 結構化輸出契約:工具呼叫以 JSON/structured data 回傳,並由 schema 編譯出的 byte-level grammar 約束 token。
- 信心門檻:每次回應都帶 calibrated confidence score,可在高於門檻時執行、低於門檻時升級處理。
- 工具檢索與 bounded memory:大型工具目錄每輪只渲染 top five,並用 256-token sliding window 與 KV sinks 控制記憶體。
- 可微調與匯出:支援 LoRA fine-tuning、資料合成、adapter merge 與
.cact匯出, tuned model 可直接在同一 engine 上跑。