llama.cpp 服务器新增多模型管理功能

Hugging Face:Blog(RSS)·2025-12-11 23:47·258天前
AI 导读

llama.cpp 服务器新增了类似 Ollama 的多模型管理功能。该功能采用多进程架构,每个模型独立运行,确保单个模型崩溃不影响其他服务。系统支持自动发现本地 GGUF 模型文件、按需加载,并默认采用 LRU 机制管理最多同时加载4个模型。用户可通过请求中的模型字段路由到特定模型,并可使用 API 进行加载、卸载和列表查看。所有加载的模型可继承路由器的统一设置,也支持通过预设文件为每个模型单独配置参数。内置 Web UI 同样支持模型切换。

Hugging Face:Blog(RSS)
精选
76AI 编辑部评分,满分 100

llama.cpp 服务器新增多模型管理功能

2025-12-11 23:47· 258天前
AI 导读

llama.cpp 服务器新增了类似 Ollama 的多模型管理功能。该功能采用多进程架构,每个模型独立运行,确保单个模型崩溃不影响其他服务。系统支持自动发现本地 GGUF 模型文件、按需加载,并默认采用 LRU 机制管理最多同时加载4个模型。用户可通过请求中的模型字段路由到特定模型,并可使用 API 进行加载、卸载和列表查看。所有加载的模型可继承路由器的统一设置,也支持通过预设文件为每个模型单独配置参数。内置 Web UI 同样支持模型切换。

推荐理由

本地跑模型终于能像 Ollama 一样热切换,开发调试效率大幅提升

正文 · AI 翻译

llama.cpp 服务器现已内置路由模式,可让您动态加载、卸载和切换多个模型,无需重启。

提醒:llama.cpp 服务器是一个轻量级、兼容 OpenAI 的 HTTP 服务器,用于在本地运行大语言模型。

该功能是用户呼声很高的需求,旨在将 Ollama 风格的模型管理引入 llama.cpp。它采用多进程架构,每个模型在独立进程中运行,因此即使某个模型崩溃,其他模型也不会受到影响。

快速开始

启动服务器时,不指定模型即可进入路由模式:

llama-server

这会自动从您的 llama.cpp 缓存(LLAMA_CACHE 或 ~/.cache/llama.cpp)中发现模型。如果您之前通过 `llama-server -hf user/model` 下载过模型,它们将自动可用。

您也可以指向一个包含 GGUF 文件的本地目录:

llama-server --models-dir ./my-models

功能特性

  1. 自动发现:扫描您的 llama.cpp 缓存(默认)或自定义的 `--models-dir` 文件夹,查找 GGUF 文件
  2. 按需加载:模型在首次被请求时自动加载
  3. LRU 淘汰:当达到 `--models-max`(默认:4)限制时,最近最少使用的模型会被卸载
  4. 请求路由:请求中的 model 字段决定了由哪个模型来处理该请求

示例

与特定模型对话

curl http://localhost:8080/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "ggml-org/gemma-3-4b-it-GGUF:Q4_K_M",
    "messages": [{"role": "user", "content": "Hello!"}]
  }'

在首次请求时,服务器会自动将模型加载到内存中(加载时间取决于模型大小)。后续对同一模型的请求将即时响应,因为模型已加载完毕。

列出可用模型

curl http://localhost:8080/models

返回所有已发现的模型及其状态(已加载、加载中或未加载)。

手动加载模型

curl -X POST http://localhost:8080/models/load \
  -H "Content-Type: application/json" \
  -d '{"model": "my-model.gguf"}'

卸载模型以释放显存

curl -X POST http://localhost:8080/models/unload \
  -H "Content-Type: application/json" \
  -d '{"model": "my-model.gguf"}'

关键选项

标志 描述
--models-dir PATH 包含您的 GGUF 文件的目录
--models-max N 同时加载的最大模型数量(默认:4)
--no-models-autoload 禁用自动加载;需要显式调用 /models/load 接口

所有模型实例均继承路由器的设置:

llama-server --models-dir ./models -c 8192 -ngl 99

所有已加载的模型将使用 8192 上下文和完全 GPU 卸载。您也可以使用预设为每个模型定义独立设置:

llama-server --models-preset config.ini
[my-model]
model = /path/to/model.gguf
ctx-size = 65536
temp = 0.7

同样可在 Web UI 中使用

内置的 Web UI 也支持模型切换。只需从下拉菜单中选择一个模型,它便会自动加载。

加入讨论

我们希望这一功能能让用户更轻松地对不同模型版本进行 A/B 测试、运行多租户部署,或者在开发过程中无需重启服务器即可切换模型。

有问题或反馈?请在下方留言,或在 GitHub 上提交 issue。

来源:Hugging Face:Blog(RSS)· huggingface.co