LLM本地推理深度解析:llama-server与Ollama的GPU/CPU内存管理与大模型卸载策略
摘要
本文探讨了LLM本地推理中,llama-server与Ollama在GPU/CPU内存管理上的差异及大模型部署挑战。用户从Ollama转向llama-server后,发现后者在模型内存分配上行为独特。具体表现为,即使模型大小(如21GB的Qwen3-Coder-30B)远超显卡显存(12GB),llama-server似乎仍优先且仅使用显存,系统内存利用率极低。尝试禁用显存适配参数`--fit off`也未能解决显存不足问题。用户核心疑问是,llama-server能否像Ollama一样,智能地将部分模型卸载至系统内存或CPU,以支持更大模型的本地运行,这对于优化消费级硬件上的LLM部署至关重要。
正文
用户在使用Ollama配合Open WebUI进行本地推理时,因其易于设置而选择。近期,为寻求更优的推理性能和便捷的模型切换体验,用户转向了基于llama-server的llama-swap推理引擎。
然而,在使用llama-server时,用户遇到了一个困惑:与Ollama可以通过ollama ps命令清晰查看GPU和CPU内存使用情况不同,llama-server缺乏直观的监控方式。尽管日志信息量大,但用户感觉llama-server似乎对模型进行了某种处理,使其倾向于仅使用GPU(可能与仅加载密集权重有关)。
具体而言,用户配备了Nvidia 3060显卡(12GB显存)和约32GB系统内存。在加载Qwen3-Coder-30B-A3B-Instruct-Q5_K_M模型(约21GB)时,系统内存(RAM)几乎未被使用,模型主要占用显存(VRAM)。然而,21GB的模型显然无法完全载入12GB的显存中。当尝试使用--fit off参数时,系统提示显存不足。
用户核心疑问是:llama-server是否能像Ollama那样,在显存不足时,将部分模型数据卸载到系统内存(RAM)或CPU进行处理,从而充分利用现有硬件资源?