在 Apple Silicon 上,單基座掛載多個 LoRA 適配器是把統一記憶體預算拆給權重殘差、上下文與批次三條線;熱切換不是換檔名而已,而是連 KV 與工具狀態一起換跑道。🔧

對齊 Modelfile、吞吐延遲與遠端成本。內鏈:本機推理與批大小多模型路由與遠端成本checkpoint 與沙箱

痛點 · 決策矩陣 · Modelfile 與 CLI · 上下文碎片整理 · 遠端驗收 · 落地步驟 · 轉化

痛點拆解

  • 痛點一:多適配器各自複製基座,統一記憶體易滿載觸發交換。
  • 痛點二:換標籤卻沿用長對話,殘留 KV 與工具輸出致人格與格式漂移。
  • 痛點三:筆電睡眠與本機多工混測,吞吐難對齊遠端計費。

決策矩陣(單基座、記憶體、吞吐與延遲)

切換策略 單基座多適配器 VRAM/統一記憶體 吞吐與延遲取捨
每適配器獨立標籤(推薦) FROM 同基座、ADAPTER 各一 基座一份,峰值隨上下文與並行槽升 互動縮批顧首包;離線拉高批換吞吐
多進程各掛適配器 平行租戶或佇列 近似 N 份基座常駐 總吞吐高、爭搶時尾延遲變差
序列化切換 客戶端互斥單執行緒 常駐最小 延遲穩、整體每秒權杖低

Ollama Modelfile 與可執行 CLI

基座與適配器路徑應入庫版本控制;檔名與量化須與修訂對齊。蘋果晶片上統一記憶體為共享池,請同步對照推理矩陣中的 num_ctx 與批次聯動,避免只調適配器卻忽略 KV 與預填尖峰。

# Modelfile 範例:my-lora-a(路徑請改為實際檔案) FROM ./base-model.gguf ADAPTER ./adapters/task-a.gguf PARAMETER num_ctx 8192 PARAMETER num_batch 512 # 聊天模型請沿用基座內建模板,勿隨意覆寫 TEMPLATE ollama create my-lora-a -f ./Modelfile.lora-a ollama run my-lora-a "以繁體中文簡述熱切換注意事項" ollama ps

啟動前可匯出(鍵名依安裝版本為準):

export OLLAMA_NUM_PARALLEL=1 export OLLAMA_KEEP_ALIVE=5m # 互動場景先保守並行;KEEP_ALIVE 可依切換頻率調整

上下文碎片整理

換模前於 Agent 管線內截斷或摘要對話、捨棄過期工具輸出,必要時重置 thread;殘留 KV 會惡化格式與幻覺。與 RAG 並行時預留嵌入索引水位。若管線已採 checkpoint,請與沙箱與 thread 策略一致,避免切換適配器後仍還原舊狀態。

遠端節點成本驗收清單

  • 遠端重跑同標籤腳本,記錄每小時權杖、錯誤率與記憶體壓力。
  • 試跑時段對齊計費粒度,勿以開發機閒時當生產成本。
  • 日誌輪替、時鐘、網路與熔斷恢復時間可稽核。

落地步驟(≥5)與可引用資訊

(一)寫死基座與適配器清單。(二)每 LoRA 一個 Modelfile 並 ollama create。(三)以 ollama ps 校準 num_ctxnum_batch 與並行。(四)切換前截斷或摘要對話。(五)量測互動與批次每秒權杖與尾延遲。(六)遠端複驗成本與 SLA。

可引用:基座修訂與適配器雜湊;每標籤預設上下文與批次;切換事件入日誌;遠端試跑對齊帳務欄位。

轉化

長時程壓測宜放專用遠端節點以利對帳。首頁購買定價說明。🚀

小結:矩陣選策略與記憶體輪廓;Modelfile 固化標籤;上下文整理減殘留;遠端清單驗成本。