4 llama.cpp
Pi 支持 llama.cpp 路由服务器。路由器会发现多个 GGUF 模型,并按需加载或卸载它们。
请使用支持路由器功能的较新版本 llama.cpp。可以按照构建说明自行构建,或为你的平台安装预编译版本。
启动路由器
启动 llama-server 时不要带 --model 或 -m。如果传入模型,则会进入单模型模式而非路由器模式。
重要选项:
--models-dir ~/models用于发现本地 GGUF 文件。--no-models-autoload让模型加载必须通过/llama显式进行。--jinja启用兼容的聊天模板和工具调用。-ngl 999将尽可能多的层卸载到 GPU。-c 32768为每个已加载的模型设置上下文窗口。如果省略,则使用模型的原生上下文,这可能会显著增加内存占用。
单文件模型可以直接放在模型目录中。多模态和多分片模型请放在单独的子目录中:
手动添加文件后请重启路由器。如需为每个模型设置上下文大小等选项,可以使用 llama.cpp 模型预设。
配置 Pi
启动 Pi 并配置提供商:
输入路由器 URL 和可选的 API 密钥。默认 URL 为 http://127.0.0.1:8080。
如果启动路由器时使用了 --no-models-autoload,/login llama.cpp 只会保存连接信息。运行 /llama 加载模型,再运行 /model 为当前会话选择已加载的模型。
也可以通过环境变量配置相同的值,无需 /login:
如果服务器使用了 API 密钥,请在启动 llama-server 时传入相同的 --api-key 值。保持 --host 127.0.0.1 可将访问限制在本地。
管理模型
运行:
- 选择一个未加载的模型即可加载它。
- 选择一个已加载的模型即可卸载它。
- 选择 Download model…,搜索 Hugging Face,然后选择仓库和量化版本。直接输入精确的
owner/repository[:quant]值也可以。 - 在加载或下载过程中按 Escape 可确认取消。
Hugging Face 搜索在设置了 HF_TOKEN 时会使用它,然后依次检查 $HF_TOKEN_PATH、$HF_HOME/token、$XDG_CACHE_HOME/huggingface/token 和 ~/.cache/huggingface/token。未认证时也可以搜索,但会受到更低的速率限制。Pi 在下载受限仓库前会发出警告并链接到其访问页面。下载由 llama.cpp 服务器执行,因此当所选仓库需要访问权限时,该服务器进程也必须持有 HF_TOKEN。
如果已有其他模型处于加载状态,Pi 会询问是先卸载它们还是保持加载。Pi 不会静默卸载模型,也绝不会删除模型文件。路由器可能被其他客户端共享,因此 /llama 始终显示路由器的当前状态。
只有已加载的模型才会出现在 /model 中。加载模型后,运行 /model 为当前 Pi 会话选择它。
如果路由器连接断开,/llama 会显示 Retry 和 Close。重试会重新连接并刷新模型状态,但不会重放被中断的操作。
故障排除
检查路由器是否可达:
/llama中没有模型: 检查--models-dir和目录布局,并重启路由器。/model中缺少模型: 先用/llama加载它。- 加载失败或内存占用过高: 降低
-c或卸载其他模型。 - 服务器未处于路由器模式: 启动时不要带
--model、-m或-hf。