如何防止 llama.cpp 将数据卸载到交换空间?

Reddit r/LocalLLaMA 工具

摘要

用户寻求关于如何防止 llama.cpp 在 RAM 完全耗尽前将 KV 缓存卸载到交换空间的建议,并分享了他们在配备 96GB RAM 的 M2 Max 和大型 Qwen 模型上的配置。

我曾尝试通过使用 llama.cpp 标志来防止此问题,但问题依然存在:每当我的 RAM 接近 96GB 时,llama-server / llama.cpp 就会决定将 KV 缓存卸载到交换空间。这通常发生在 RAM 使用量达到 91-92GB 时,而我仍有 4GB 剩余。是否有更激进的方法让 llama.cpp 只在 RAM 达到 95GB 时才进行卸载?规格:M2 Max 96GB,Qwen 3.5 122b q4,最新版 llama.cpp llama-server --port ${PORT} --model /Users/user/.lmstudio/models/unsloth/Qwen3.5-122B-A10B-MTP-GGUF/Qwen3.5-122B-A10B-UD-Q4_K_XL-00001-of-00003.gguf --spec-type draft-mtp --spec-draft-n-max 2 --ctx-size 150000 --temp 0.6 --top-p 0.95 --top-k 20 --min-p 0.00 --mlock --parallel 1 --no-warmup --jinja --threads 8 -ngl 99 --ctx-checkpoints 32 --presence-penalty 0.0 --repeat-penalty 1.0 --no-context-shift --cache-ram 6000 -fa on
查看原文

相似文章

也许将KV缓存卸载到RAM并不差

Reddit r/LocalLLaMA

一位用户分享了在llama.cpp中将KV缓存卸载到RAM的经验,在释放显存以便运行更大模型和上下文窗口的同时,实现了相近的速度,表明这种权衡通常是值得的。

动态KV缓存量化与按需加载mmproj/MTP:我的llama.cpp愿望清单

Reddit r/LocalLLaMA

一位开发者已为llama.cpp实现了一个概念验证的PR,通过HTTP端点添加了动态KV缓存量化功能,允许用户按需重新量化其KV缓存,而无需完全重新加载模型。该帖子还概述了一个愿望清单,包括按需加载mmproj/MTP交换以及用于上下文优化的自动--fit标志。