本地跑大模型,过去更像先把整本字典搬上桌;现在 llama.cpp 可能只在查到某一页时,才从磁盘取出来。这样能少占内存,也减少启动时的读取,但如果模型不断零散查表,硬盘就可能成为新的慢车道。
据 Reddit 用户 whiteh4cker 报告,llama.cpp b10726 将 --lazy-mode 默认值改为 auto 后,Qwen 3.8 Flash Next 的 510 亿参数 PLE N-gram 表不再默认装入 RAM,而是通过 mmap——让程序像访问内存一样按需读取磁盘文件——在推理时逐行取用。该用户称,自己的提示词处理速度下降 50%,后续 Token 生成速度下降 15%;内存充足时可用 --lazy-mode off 恢复整表加载。
问题在于,按需读取的数据虽小,磁盘实际搬运的页面可能大得多。llama.cpp 官方 PR #28136 提到,每次约需 90 字节冷数据时,mmap 仍可能触发 4 KiB 页面读取。上述降速来自单一用户环境,不能视为普遍结果,但这次默认值变化值得本地部署者重新检查:省下的内存,是否换来了可感知的推理延迟。