如何防止 llama.cpp 将数据卸载到交换空间?
摘要
用户寻求关于如何防止 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并不差
一位用户分享了在llama.cpp中将KV缓存卸载到RAM的经验,在释放显存以便运行更大模型和上下文窗口的同时,实现了相近的速度,表明这种权衡通常是值得的。
寻找关于 llama.cpp 服务器及模型卸载工作原理的阅读资源
一位用户分享了他们使用 llama.cpp 服务器进行模型卸载的经验,指出了性能权衡和安静运行的优势,并询问了解该工具如何在 VRAM 和系统 RAM 之间管理内存的阅读资源。
Linux - 为什么 llama.cpp ROCm 的 KV 缓存消耗比 Vulkan 多那么多显存?
一位用户报告称,在使用相同模型和设置的情况下,llama.cpp 的 ROCm 后端比 Vulkan 后端消耗的 KV 缓存显存显著更多,这引发了对其潜在原因的探究。
动态KV缓存量化与按需加载mmproj/MTP:我的llama.cpp愿望清单
一位开发者已为llama.cpp实现了一个概念验证的PR,通过HTTP端点添加了动态KV缓存量化功能,允许用户按需重新量化其KV缓存,而无需完全重新加载模型。该帖子还概述了一个愿望清单,包括按需加载mmproj/MTP交换以及用于上下文优化的自动--fit标志。
[llama.cpp] 非对称 KV q8/q4 缓存:当前注意事项及 GGML 仓库中的讨论
讨论了在 llama.cpp 中使用非对称 KV 缓存量化时的注意事项,其中不匹配的 q8/q4 类型会导致提示处理在 CPU 而非 GPU 上进行,并提出了通过编译标志进行修复的方案。