跳到內容

裝置上的本地模型

下載一個模型、按下啟用,拔掉網路線之後 AI 還是會回答。


#45 是開放式的 Hugging Face 市集:任何 repo、任何量化版本,想裝什麼就裝什麼。這一篇談的是 DuDuClaw OS 裝置開箱 就有的那條窄路:一份查證過的短清單、一鍵下載、再一鍵讓下載好的模型上線。

裝置映像帶了推理引擎,沒帶權重。權重動輒好幾 GB 又會過期,所以做成需要 時才下載,不凍進映像。


清單裡每一列的 repo id、檔名、位元組大小、以及匿名下載是否可行,都在 2026-09-05 對 Hugging Face API 實際查過。沒有一項靠猜,其中兩項查證直接 改變了清單內容:

  • Qwen 官方的 Qwen3-1.7B-GGUF 完全沒有 Q4_K_M,只有 Q8_0,所以 1.7B 這一列改用 unsloth 的版本。
  • Google 的 Gemma 3 GGUF repo 要人工審核才給檔案,一鍵下載走不通,改用 ggml-org 沒有門禁的建置版。
模型 檔案大小 記憶體需求 適合
Qwen3 1.7B 1.0 GB 約 2.5 GB 還撐得住對話的最小選項,中文不錯
Llama 3.2 3B 1.9 GB 約 3.4 GB 小機器上的英文對話
Qwen3 4B 2.3 GB 約 3.9 GB 均衡的預設值
Gemma 3 4B 2.3 GB 約 3.9 GB 多語對話
Qwen2.5-Coder 7B 4.4 GB 約 5.9 GB 讀寫程式碼
Qwen3 8B 4.7 GB 約 6.2 GB 六個裡面最強的

六個都是 Q4_K_M。記憶體那一欄是檔案大小加上上下文與引擎工作緩衝,代表 它回答時真正要吃掉多少,跟下載大小不是同一個數字。

本地模型的 context 視窗也比雲端模型小得多——appliance 預設提供 8192 token。agent 的工具迴圈走本地引擎時,gateway 會先向 llama.cpp 問這個視窗(/props),再把請求塞進去:工具依註冊順序裝到預算的 45%(goal loop 依賴的 tasks_* 工具永遠保留),系統提示裝不下就從尾端截短並附可見標記,另保留 1024 token 給回答。沒有這層之前,完整的 agent 提示加上全部 MCP 工具(約 33k token)每一輪都會被伺服器打回。


打開管理 → 本地模型,內建面板就在市集上方。

+---------------------------+
| 挑一個模型 | 綠 / 黃 / 紅 相容燈,
| | 依「這台機器現在」算出來
+------------+--------------+
|
v
+---------------------------+
| 下載 | 背景執行、可續傳,
| | 進度直接顯示在卡片上
+------------+--------------+
|
v
+---------------------------+
| 設為本地模型並啟動 | 存設定、啟動引擎,
| | 問答通了橫幅就轉綠
+---------------------------+

相容燈拿模型的記憶體需求跟這台機器目前的可用量比。綠色代表跑得舒服, 黃色代表塞得下但沒什麼餘裕,紅色代表裝不下。


狀態列來自即時探測,不看設定檔寫了什麼。「本地模型回答中」代表引擎剛剛 真的回了一個請求,並報出自己載入的權重名稱。引擎掛了,下一次輪詢橫幅就 會誠實反映。

換模型一樣是兩下:下載另一個,按「設為本地模型並啟動」,引擎會對新檔案 重啟。舊檔案留在硬碟上,要清就從已安裝清單刪掉。


速度。 回答由這台機器自己的處理器與內顯運算。小的本地模型比雲端明顯 慢,慢多少完全看你的硬體。儀表板刻意不顯示 tokens/秒,因為沒有人在你的 機器上實測過。

能力。 4B 模型取代不了雲端旗艦模型的硬推理、長步驟工作或程式碼審查。 它擅長的是佔掉一天大半時間的那些短而重複的回合:分類這則、摘要那段、 翻譯這句、回一個例行問題。

不會憑空生出模型。 還沒下載權重的裝置就會照實說。本地推理會在送出 請求之前直接拒絕並回報「尚未安裝本地模型」,而不是丟出一個注定失敗的 連線錯誤讓人無從處理。


裝置預設維持 inference_mode = "hybrid"。設定好的雲端 runtime 照樣處理 它比較擅長的工作,本地模型墊在下面,不擋在前面。想更依賴本地模型有兩條 路:

  • 單一 agent:在該 agent 的 agent.toml[model.local] 底下設 prefer_local = true。簡單的回合先走本地,本地失敗再退回雲端。
  • 全域:在 config.tomlinference_mode = "local"。所有請求都送本地 模型,只有信心路由判定該升級時才會碰到雲端。

完全沒設定雲端帳號時,本地模型就是唯一的路——這正是拔掉網路的裝置仍然 可用的原因。

決定哪些請求值得升級到雲端的信心路由,見 #03。 想找這六個以外的模型,見 #45


  • 下載好的權重:裝置自己的模型目錄,跟市集裝的東西放在一起。
  • 目前選用的模型:按下「設為本地模型並啟動」時寫入,狀態面板讀回來顯示。

兩者都在裝置的資料區,系統更新之後仍然存在。