在 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_ctx、num_batch 與並行。(四)切換前截斷或摘要對話。(五)量測互動與批次每秒權杖與尾延遲。(六)遠端複驗成本與 SLA。
可引用:基座修訂與適配器雜湊;每標籤預設上下文與批次;切換事件入日誌;遠端試跑對齊帳務欄位。
轉化
長時程壓測宜放專用遠端節點以利對帳。首頁、購買、定價、說明。🚀
小結:矩陣選策略與記憶體輪廓;Modelfile 固化標籤;上下文整理減殘留;遠端清單驗成本。