本地模型
Hermes 可以完全在你自己的机器上运行开源模型。它会下载并管理推理引擎(llama.cpp),为你的硬件挑选每个模型的正确构建版,并打理内存,因此你永远不需要配置上下文长度、GPU 层数或量化级别。你选模型,其余交给 Hermes。
没有任何东西离开你的电脑:无需账号、无需 API key,模型下载后也不再需要网络访问。
桌面端可用性与下载
桌面端的 Local Models 界面在 canary 构建中已启用。其他桌面构建需要 --local 启动标志。运行时可能已随包附带;缺失时会触发托管工具安装路径,而不是随意下载最新的 llama.cpp。
在引擎安装、引擎更新、目录模型、Hugging Face 下载和快速上手过程中,可使用暂停和继续。离开后再打开 Local Models,已暂停的任务仍然可见。暂停会在一个数据块边界停止传输;解压、校验和服务器激活是各自独立的阶段。
PM 从 pm/lock.json 中的 URL 和 SHA-256 锁定值下载每个引擎组件,包括 CUDA 运行时 DLL。模型权重、拆分的 GGUF 分片、视觉投影器和草稿模型使用同一个下载器。字节进度覆盖整个下载计划,包括已完成的文件和续传区间。快速上手把引擎进度和模型进度标为不同阶段。
部分下载使用 PM 可写的 cache/partials 区域,位于已签名的应用包之外。支持 Range 的主机续传缺失字节;不支持 Range 的主机会重新开始当前文件。已完成的文件会被复用。
快速上手
- 打开 Settings → Providers → Local Models(或在上手引导中选择 Run models locally)。
- 点击 Install runtime。Hermes 会为你的硬件下载官方 llama.cpp 构建(几百 MB),校验并持续更新。
- 从目录中挑选一个模型,点击 Download。
- 点击 Use。新对话现在就跑在本地模型上。
这就是完整流程。服务器随 Hermes 启停,重启能跨应用重启保留,切回云端提供商只需在模型选择器中点一下。
Hermes 如何决定下载什么
在你下载任何东西之前,目录中的每个模型都会针对你的机器评估过。每一行显示:
- 内存适配——绿色(适配你的 GPU:完全在 GPU 内存中运行)、琥珀色(使用系统内存:可用但更慢)或红色(对这台机器太大)。
- 上下文——模型启动时的窗口大小,以及它可增长到的最大值。
- 为你的硬件所选构建的下载大小。
模型有若干质量等级(量化)。Hermes 挑选能完全在你的 GPU 上运行的最高质量构建;内存较小的机器会拿到同一模型更紧凑的构建,保证不变。低于 4-bit 时质量损失过于严重,因此 Hermes 从不提供比这更小的构建——一台跑不动 4-bit 构建、只能溢出到系统内存的机器,根本跑不了那个模型。
不适配的模型仍会连同原因一起显示,因此你始终知道一次硬件升级能解锁什么。
内存管理如何工作
本地模型的成败取决于内存放置,因此 Hermes 端到端管理它,不暴露任何旋钮:
- 模型以一个完全适配你 GPU 的上下文窗口启动,并随对话需要更多空间向其原生最大值增长。长会话中你可能在状态信息流里看到"Context window grown"——那是窗口在扩展,不是错误。
- 每个推荐模型至少有 64K 上下文窗口。 当模型大于你 GPU 的内存时,Hermes 会刻意把溢出部分按伤害最小的顺序放到系统内存(专家权重优先,绝不动注意力缓存),用一些速度换取对上下文保证的保护。
- 内存适配包含启动配置,而不只是模型文件:上下文状态、运行时缓冲、视觉投影器和 MTP 缓冲都算在内。对于多 token 预测(MTP),当更大的批次在同一上下文窗口下会溢出时,Hermes 改用更小的批次。MTP 保持启用。重启后恢复已增长窗口时也会做同样的计算。
- 对话压缩遵循增长检查。 如果更大的窗口放不下、生成太慢或已达原生最大值,Hermes 会压缩,而不是声称拥有服务器并未收到的窗口。
- 空闲模型在 15 分钟后卸载以释放 GPU 内存;下一条消息时自动重载。
状态栏
右键状态栏并启用 System resources,可在本地模型运行时查看实时 GPU 利用率、GPU 内存和 RAM。上下文计量条始终反映模型实际运行所用的窗口。
寻找更多模型
目录只是一个精选起点,而非边界。同一页上的 Find more models 区段会搜索整个 Hugging Face:
- 结果显示下载量和按你机器尺寸做的逐文件适配检查,因此下载前你就知道某个构建能否完全在你的 GPU 上运行。
- 你下载的任何东西行为都与目录模型完全一致——Hermes 会读取模型文件本身来挑选它的上下文窗口和内存放置。唯一区别:社区模型不带有我们的"已验证"测试徽章。
- 磁盘上已有
.gguf文件?Add model file 会把它链接进你的库而不复制它(原文件留在原地),立即可用。
使用你自己的 llama-server
如果你的机器上已经在运行 llama-server,Hermes 会检测到它并使用,而不是自己启动。把自定义端点指向任何 OpenAI 兼容的服务器即可完全手动掌控——托管运行时是默认值,不是必需。你可以填入服务器根路径(例如 http://127.0.0.1:8080)或完整的 /v1 URL:端点测试会两者都试,并保存真正服务了 /models 的那个变体,因此聊天请求会发往模型列表来源的同一前缀。对于手动设置(Ollama、MLX、自定义构建、无头 CLI 机器),参见用 Ollama 在本地运行 Hermes 和在 Mac 上运行本地 LLM。
配置
托管运行时由 config.yaml 的 local_runtime 段控制。桌面 UI 会替你写这些值;这里记录下来供 CLI 和无头使用:
local_runtime:
enabled: false # true = 随 Hermes 启动托管服务器。
# 桌面端 "Use" 按钮会自动设置此项。
backend: auto # auto | cuda | metal | vulkan | hip | cpu
detect_ports: [8081] # 为你自己运行的 llama-server 额外探测的端口
# (默认只探测 :8080)
在固定端口上自己运行 llama-server,配合同样的 model.provider: llamacpp 选择即可——要么把该端口列入 local_runtime.detect_ports,要么在 providers: 下显式定义端点(显式条目优先于服务器探测):
providers:
llamacpp:
base_url: http://127.0.0.1:8081/v1
model: my-model
/model → Local 选择器行和 provider: llamacpp 都会解析到该服务器;当没有服务器可达时,错误会点名本地运行时("the local model server isn't running"),而不是报未知提供商或缺少 API key。
引擎版本只来自 PM 的 lockfile,不接受 local_runtime.tag 覆盖。启动时使用已安装的 PM 引擎,不下载。当有新的锁定版本可用时,用桌面更新按钮安装。
模型存放在机器共享的 models/ 目录。引擎二进制存放在 PM 的 store;runtimes/llamacpp/ 存放可变的预设和服务器状态。选择本地模型作为主模型使用标准的 model.provider: llamacpp + model.default 设置。
要求与限制
- Windows: 支持的 NVIDIA 目标上用 CUDA,x64 上用 Vulkan,或 CPU。 Linux: Vulkan 或 CPU;锁定的发布版没有预编译的 CUDA 归档。 macOS: Metal 或 CPU。HIP/ROCm 是受支持 x64 目标上的显式选择。不支持的后端/目标组合会在任何下载前失败。
- 8 GB+ 显存的 GPU 可流畅运行小型目录模型;16 GB+ 可高质量运行 27–35B 模型。
- 模型完整性依据服务器响应检查,而非目录大小估算。中断的传输保留部分文件以供续传;不完整的文件不会发布。引擎归档在使用前会做 SHA-256 校验。
- 删除模型会移除它暂存的所有文件,包括视觉适配器和投机解码配套模型。