桌面版的本地推理引擎:Ollama 与 llama.cpp 是什么关系
本地模型不是应用凭空跑起来的,背后是一套成熟的开源推理栈:Ollama 负责调度,llama.cpp 负责算。
推理栈的构成
- llama.cpp:让大模型在消费级硬件上高效运行的底层项目,负责量化的 GGUF 模型文件的实际计算。
- Ollama:封装 llama.cpp 的本地模型管理套件,处理模型下载、加载、显存调度这些脏活。
- 应用本身:提供角色、聊天、故事等上层功能,通过本地端口调用 Ollama 服务。
为什么从 llama.cpp 切到 Ollama
官方文档交代了这段历史:项目早期直接基于 llama.cpp,团队花了大量时间做性能优化;随着 Ollama 持续演进,专职团队在维护和改进上效率更高,于是切换到了 Ollama。对用户的直接好处是模型兼容面广、更新勤、显存调度更稳——Models 页里的模型本质上都是 Ollama 兼容的 GGUF 文件。
切换到 Ollama 后你能感知到什么
- 切换角色不重载模型:同一个模型下换角色聊天,模型留在显存里只清聊天上下文,切回来秒开;
- 换模型才动显存:加载新模型前会先卸载旧模型,此时显存占用会出现一次起伏,属正常现象;
- GPU 自动优先:支持的场景下自动用 GPU,显存不够才回退 CPU,细节见 GPU 加速机制。
对选模型的实际意义
明白了这层关系,就明白为什么量化等级用 q4_K_M 这类 llama.cpp 术语命名,也明白为什么外接模型可以对接任何 OpenAI 兼容 API——推理层是解耦的,上层应用只是调用方。