在 M4 統一記憶體上,批次、上下文與 KV cache 是同一條預算曲線;先選場景再對照參數,比先挑框架更能避免「能跑但不可維運」。

本文給一張可勾選的對照表,銜接《M4 本機推理:llama.cpp 與 Ollama》《多模型路由成本矩陣》《OpenTelemetry GenAI 可觀測性》《本機 RAG 分塊與向量配額》,方便你把試跑指標對齊到準生產節點。

選型場景 · 批次與記憶體對照 · 驗收與監控 · FAQ

選型場景

工作負載形狀先分隊:互動聊天重尾延遲與首字時間;批次評測與資料標註重吞吐;研究微調重 HF 生態與自訂損失。下表為決策矩陣(請以你的模型與量化實測校準)。

場景 MLX-LM(MLX) Transformers(MPS)
Apple Silicon 優先的推理交付 預設路徑;易與 mlx 工具鏈對齊,批次/量化路徑相對直白 可行;需留意 MPS 上 batch、同步與 dtype 的組合開銷
HF Hub/Trainer/PEFT 一條龍 推理與輕量轉換友善;訓練主線仍以需求評估 生態最完整;適合微調、評測管線與自訂 callback
長上下文+多並發會話 以統一記憶體預算壓測 KV;善用快取重用策略 同樣受 KV 與峰值制約;建議分進程隔離互動與離線
與 Ollama/llama.cpp 並存 可作「原生 MLX 模型」支線;參數語意請勿混用 可作 Python 評測支線;路由面見多模型文

批次大小與記憶體對照表

KV cache 隨序列長度與層數累積;批次同時放大權重常駐與啟用中的啟用值。下表為驗收用起點(非保證值),請以 Activity Monitor 的記憶體壓力與交換為準星逐步上調。

工作負載 建議批次/上下文起點 統一記憶體觀察點
互動聊天(低尾延遲) batch 1;上下文先壓在「可接受品質」下限 峰值與交換;是否觸發記憶體壓力黃/紅區
離線評測/匯出 逐步提高 batch 與 max_tokens,記錄吞吐拐點 長序列 KV+大批次疊加;建議分時段跑
RAG 合成答案 控制 prompt 長度;embedding 與 LLM 分開佔預算 索引與推理峰值分開量測(見 RAG 文)
# MLX-LM:推理占位(依模型與環境替換角括號) python -m mlx_lm.generate --model <MODEL_ID_OR_PATH> \ --prompt <PROMPT_FILE> --max-tokens <MAX_TOKENS> \ --temp <TEMP> # Python API:常見生成參數映射(概念占位) # max_tokens → 控制 decode 長度;context 長度由提示與模型上限共同約束
# Transformers + MPS:推理占位 export PYTORCH_ENABLE_MPS_FALLBACK=1 python -c " import torch from transformers import AutoModelForCausalLM, AutoTokenizer m = AutoModelForCausalLM.from_pretrained( '<MODEL_ID>', torch_dtype=torch.float16, device_map='mps' ) tok = AutoTokenizer.from_pretrained('<MODEL_ID>') # 批次 >1 時請同步調整 attention 與 pad 策略並實測記憶體峰值 "

驗收步驟與監控指標

步驟:(一)固定模型版本與量化位元,記錄 tokenizer 與權重校驗和。(二)互動與離線分腳本,分別量測 p50/p95 延遲與 tokens/s。(三)記錄每請求 prefill/decode tokens、批次、是否重用 KV。(四)觀察統一記憶體峰值、交換與熱節流(如有)。(五)對照可觀測性矩陣寫入租戶/模型維度。(六)在遠端專用節點重跑 2~4 小時,確認無睡眠與背景同步干擾。

指標建議:time_to_first_tokentokens_per_sec_decodekv_cache_bytes_est(或層級近似)、mem_pressure_peakoom_or_fallback_count。閾值用「相對於基線的退化比例」好過單一絕對值。

FAQ

同一台 M4 能同時跑 MLX 與 Transformers 嗎?可以,但建議分開行程與佇列,並為每條管線設記憶體上限,避免統一記憶體頻寬被隱形搶占。

為何「表上批次」與實際吞吐不一致?常見於 prefill 與 decode 階段比例不同、或 KV 重用率差異;請分階段計時。

驗收通過後如何上線?將腳本與監控欄位固化到常駐主機,與路由/成本矩陣對齊;需要穩定試跑與長時程磁碟時,可改用雲端 Mac 節點。

若你已準備把試跑搬到專用 Apple Silicon 遠端環境,可先免登入瀏覽定價購買頁選型;細節見說明中心首頁

小結:場景決定框架主線;批次與 KV 決定統一記憶體是否可維運;最後用可重現腳本與監控欄位驗收到節點級。