標籤: Ling-3.0-tiny

  • Needle 2 教學:手機也能跑本地 Agent

    Needle 2 教學:手機也能跑本地 Agent

    📌 本文重點

    • Needle 2:14MB、本地可跑的 Agent LLM
    • 在手機、Pi、穿戴裝置上做工具呼叫與自動化
    • 完全本地推理,低延遲且隱私友善
    • 適合智慧家居、語音助理、穿戴與教育機器人

    用一句話講清楚:Needle 2 是一個只有 14MB、能在 200 美元以內設備上流暢跑的本地 Agent LLM,讓你在手機、樹莓派上直接做工具呼叫與智慧自動化,不用雲端大模型。

    官網與原始介紹:
    – 官方網站:https://cactuscompute.com/needle
    – Hacker News 貼文:https://news.ycombinator.com/item?id=XXXX
    – LocalLLaMA 討論:https://www.reddit.com/r/LocalLLaMA/comments/1vkqy66/needle_2_14mb_agentic_llm_for_phones_wearables/


    核心功能:小,但有 Agent 能力

    1. 超迷你體積:14MB 模型、28MB RAM 就能跑

    Needle 2 是一個 約 45M 參數、2bit 量化壓縮的語言模型,整個模型打包成一個 14MB binary,推理時只吃約 28MB 記憶體。

    💡 關鍵: Needle 2 只要約 28MB RAM 就能推理,讓「在 Pi 和手機上跑 Agent LLM」變成現實。

    它基於 Cactus 提出的 Simple Attention Networks(簡化版注意力架構),犧牲部分模型規模,換來極低的計算量和能耗。實際效能:

    • Raspberry Pi 5:約 500 tokens/sec
    • VR 裝置(Meta Quest 3S / Apple Vision Pro):400–1500 tokens/sec
    • 約 200 美元等級手機(Samsung A 系列):300–700 tokens/sec

    能做什麼行動?
    – 先檢查你的設備是否有 至少 64MB RAM 可用(實務上 Pi 5 / Android 都足夠)。
    – 決定要放在哪台機器當「本地腦袋」:家裡的 Raspberry Pi、舊 Android 手機、或一台廉價 mini PC。


    2. Agent 能力:能理解指令、做工具呼叫

    Needle 2 不是只會聊天,而是設計成 agentic LLM:

    • 能根據系統提示決定是否呼叫工具(API / 裝置控制)
    • 支援 結構化輸出(JSON 等),方便接到你的程式邏輯
    • 專門對「手機操作、智慧家居控制、機器人指令」這類任務做了優化

    在工具呼叫和「手機裝置操作」基準測試上,Needle 2 的表現與 LFM2.5(230M 參數)和 Apple Foundation Model 等,接近甚至部分場景持平,但模型體積卻小了 5–70 倍。

    💡 關鍵: Needle 2 在工具呼叫表現接近百兆參數等級模型,卻能以小 5–70 倍的體積在邊緣設備上運行。

    能做什麼行動?
    – 先想好 你要讓它控制什麼:燈光、家電、機器人、APP、自訂 API。
    – 為每個動作做一個 簡單工具介面(HTTP endpoint、MQTT topic 或 Python function),預留給 Needle 2 來呼叫。


    3. 完全本地:低延遲 + 隱私友善

    Needle 2 最大的賣點不是「厲害」,而是夠小,才能真正放在邊緣設備:

    • 所有推理都在你自己的 Pi / 手機上跑
    • 不需要把語音、對話內容傳出去
    • 本地 TTS / ASR 加上 Needle 2,就能做 完全離線的語音助理

    💡 關鍵: 結合本地 ASR/TTS 與 Needle 2,可以打造完全離線、資料不出機器的語音助理系統。

    能做什麼行動?
    – 對隱私敏感的場景(家裡、兒童教育、醫療輔助)優先考慮放 Needle 2,而不是雲端 API。
    – 若你已用 Home Assistant 或其他 IoT 中樞,把 Needle 2 放在同一台機器上,就能做到「指令 → 本地推理 → 本地控制」。


    適合誰用:4 個具體場景

    1. 離線語音 / 文字助理

    需求情境:露營、船上、地下室、或任何網路不穩的地方,你仍然想有 AI 助理幫忙查資料、整理備忘、操作裝置。

    基本架構:
    1. 麥克風 → ASR(語音轉文字)模型
    2. 文字 → Needle 2 推理(決定要回話或呼叫工具)
    3. 回覆文字 → TTS(文字轉語音)模型

    TTS 可以參考 NVIDIA 在 Hugging Face 上開源的 Magpie TTS 系列:
    – 介紹:https://huggingface.co/blog/nvidia/magpie-tts-multilingual-voice-agents
    – 多語言、延遲低,適合作為本地語音回覆模組

    能做什麼行動?
    – 選一個輕量 ASR(可用 Whisper 小模型或其它 Tiny ASR),加上 Magpie TTS + Needle 2,在 Pi 5 上做一個「離線語音盒子」。
    – 第一步先只做 文字模式:在 Pi 上跑 Needle 2 和簡單 web chat,再再加語音。


    2. 智慧家居自動化中樞(搭配 Home Assistant)

    需求情境:你希望可以自然說「我要看電影模式」,系統自己:關燈、開投影、拉窗簾,而不是自己寫一堆硬規則。

    基本 workflow:
    1. Home Assistant 收到語音或文字指令
    2. 將指令丟給 Needle 2,並提供「目前設備狀態」的上下文
    3. Needle 2 輸出一個 JSON:要執行哪些自動化(開燈、調亮度、設溫度)
    4. Home Assistant 解析 JSON,執行對應動作

    能做什麼行動?
    – 在 Home Assistant 所在的機器(常見就是 Pi)上安裝 Needle 2,做一個 簡單 HTTP 服務,接收文字、回傳 JSON。
    – 設計一個固定格式的 prompt,例如:「你只能輸出 JSON,包含 actions: [],每個 action 有 device_id 和 command」;這樣 Home Assistant 比較好接。


    3. 穿戴式小助理(手錶、VR 裝置)

    需求情境:在 VR / AR 裝置裡,要一個能即時協助你操作菜單、記錄備忘、提示下一步的輕量 AI。

    Needle 2 在 Meta Quest 3S、Apple Vision Pro 上有 400–1500 tokens/sec 的速度,足夠做即時互動:

    基本 workflow:
    1. 系統在背景持續送「使用者現在在看什麼畫面、有哪些按鈕」給 Needle 2
    2. 使用者說「幫我開上次的檔案」,Needle 2 根據 UI 狀態決定操作步驟
    3. Needle 2 輸出一系列「點擊/選擇」指令,交給裝置 API 執行

    能做什麼行動?
    – 若你在做 VR 應用,先嘗試在裝置上跑 Needle 2 的 on-device 推理(官方有 binary 版本)。
    – 先用「純文字模擬」:把 UI 狀態描述成文字給 Needle 2,看它能否產出正確的操作序列。


    4. 教育 / DIY 機器人

    需求情境:學生或 Maker 想做一台會說話、能理解「去拿紅色積木」這種指令的簡易機器人,但硬體預算有限。

    基本設計:
    1. 使用者下指令(語音或文字)
    2. Needle 2 把自然語言轉成「機器人行為計畫」:走幾步、轉幾度、夾取哪個物體
    3. 下游控制程式把計畫翻成馬達指令

    能做什麼行動?
    – 把 Needle 2 放在機器人主控板(Pi / Jetson / 廉價 SBC),透過 UART / I2C 控制下層微控制器。
    – 先做「模擬模式」:給 Needle 2 一個簡化的世界(只有桌面、幾個物品),驗證它能否產出合理計畫,再接上真實硬體。


    怎麼開始:從下載到跑出第一個回應


    1. 下載模型:GitHub / Hugging Face

    Needle 2 主入口:
    – 官方頁面:https://cactuscompute.com/needle

    通常會提供:
    – 單一 binary 檔(約 14MB):內含模型權重與推理引擎
    – 示例程式碼(Python / C / Android)

    能做什麼行動?
    – 在你的開發機(桌機或筆電)先下載並跑一次,確認能輸出文字,再移到 Raspberry Pi / Android。


    2. 在 Raspberry Pi 上安裝與推理範例

    以 Raspberry Pi 5 + Raspberry Pi OS 為例:

    # 更新系統
    sudo apt update && sudo apt upgrade -y
    
    # 安裝基本工具
    sudo apt install -y git python3 python3-pip
    
    # 下載 Needle 2 binary(以官方提供連結為準)
    wget https://cactuscompute.com/needle/needle2_pi5.bin -O needle2
    chmod +x needle2
    

    最簡單文字對話範例(假設 binary 支援 CLI 模式):

    # 啟動互動模式
    ./needle2 --prompt "你是一個住在家裡的本地助理,回答使用者問題。"
    

    若有 Python 綁定,可以像這樣:

    from needle2 import Needle
    
    agent = Needle(model_path="./needle2")
    
    response = agent.generate(
        "幫我規劃一個今天晚上的家務待辦清單,用 JSON 格式輸出。"
    )
    print(response)
    

    能做什麼行動?
    – 先在 Pi 上跑出第一個文字回覆,再加入 HTTP server(Flask / FastAPI),讓其他設備可以丟請求給 Needle 2。


    3. 在 Android 上運行 Needle 2

    官方通常會提供 Android demo app 或 AAR 庫:

    大致步驟:
    1. 在 Android Studio 建立新專案
    2. 引入 Needle 2 的 AAR 或 JNI 庫
    3. 在 MainActivity 裡初始化模型

    示意程式碼(概念):

    class MainActivity : AppCompatActivity() {
        lateinit var needle: NeedleAgent
    
        override fun onCreate(savedInstanceState: Bundle?) {
            super.onCreate(savedInstanceState)
            setContentView(R.layout.activity_main)
    
            needle = NeedleAgent(this, modelPath = "needle2_android.bin")
    
            findViewById<Button>(R.id.sendBtn).setOnClickListener {
                val input = findViewById<EditText>(R.id.inputText).text.toString()
                val output = needle.generate(input)
                findViewById<TextView>(R.id.outputText).text = output
            }
        }
    }
    

    能做什麼行動?
    – 先做一個「純文字聊天 app」,確認速度在你的 Android 上是能接受的,再加麥克風、TTS。對高階機種,可以往即時語音助理發展;對低價機種,先鎖定文字用途即可。


    4. 與 IoT / Home Assistant / TTS / ASR 的整合路線

    把 Needle 2 變成真正的「中樞」,你可以用以下路線:

    1. Needle 2 HTTP 服務(在 Pi / mini PC 上)
    2. 提供 /chat(純文字)
    3. 提供 /plan(輸出 JSON,給自動化用)

    4. Home Assistant / IoT 平台

    5. 建立自訂整合,將使用者指令送到 /plan
    6. 解析 JSON,執行對應燈光、插座、場景

    7. 語音層

    8. ASR:Whisper 小模型或其他輕量 ASR
    9. TTS:NVIDIA Magpie TTS(多語言、低延遲),或其他本地 TTS

    能做什麼行動?
    – 先完成「文字 → Needle 2 → JSON → Home Assistant」的閉環,自動化一個簡單場景(開燈 / 關燈)。
    – 確認穩定後,再加語音層,最後再優化 prompt、加入安全限制(例如不允許某些危險指令)。


    Needle 2 vs 其他輕量模型:怎麼選?

    若你在考慮其它本地 LLM,下面表格可以幫你快速定位(僅示意,聚焦用途):

    名稱 核心功能 免費方案 適合誰
    Needle 2 14MB agent LLM,工具呼叫、IoT 開源權重 手機、Pi、穿戴、機器人
    Ling-3.0-tiny 8B MoE,高效推理、多任務 開源權重 有 GPU / M 系列筆電的開發者
    雲端 ChatGPT / Claude 大模型、通用對話與程式輔助 API / 訂閱 不在意隱私、重視效果的使用者

    Ling-3.0-tiny 參考:https://www.reddit.com/r/LocalLLaMA/comments/1vkqwso/inclusionailing30tiny_8b_a13b_moe_hugging_face/

    簡單判斷:
    – 只有 Pi / 低價手機 → 用 Needle 2 當主力
    – 有不錯 GPU / MacBook M 系列 → 可以用 Ling-3.0-tiny 做桌面助理,Needle 2 留給 IoT


    收尾:下一步行動清單

    如果你想現在就動手,建議照這個順序來:

    1. 去 https://cactuscompute.com/needle 下載 Needle 2,在桌機跑一次簡單對話
    2. 在 Raspberry Pi 5 上部署 Needle 2,做出一個最簡單的 HTTP /chat API
    3. 把家裡一個設備(例如客廳燈)接到 Home Assistant,用 Needle 2 產生 JSON 操作指令
    4. 若你有時間,再加上 ASR + Magpie TTS,讓整套系統能用語音控制

    做到第 3 步,你就已經擁有一個「完全集中在家裡跑、本地決策的智慧家居 Agent」。之後要擴充,只是慢慢多接幾個工具而已。


    🚀 你現在可以做的事

    • 立刻前往 Needle 官方頁面 下載 binary,先在桌機跑一個簡單對話測試
    • 在 Raspberry Pi 上部署 Needle 2,包一層簡單 HTTP /chat 或 /plan API 讓家中設備可呼叫
    • 選一個場景(客廳燈或一台機器人),實作「文字指令 → Needle 2 → JSON 計畫 → 實際動作」的完整閉環