我记得第一次想在自己电脑上跑大模型的时候,光是看那些 CUDA 版本、PyTorch 编译、模型格式转换的教程就头大了。折腾了大半天,最后还是报错退出。
后来发现了 Ollama 这个工具,说实话有点后悔没早点用——整个流程简单到离谱,三条命令就能把 Hermes 模型跑起来。今天就把这个方案分享出来,让大家少走弯路。
为什么选 Ollama + Hermes 这个组合
先说 Ollama。它本质上是一个大模型的运行时管理器,类似于 Docker 之于容器。你不需要关心底层的 GGUF 格式、量化参数这些细节,Ollama 帮你把这些全包了。一条 pull 命令下载模型,一条 run 命令就能对话。
再说 Hermes。Nous Research 出品的 Hermes 系列一直是开源模型里 function calling 和 structured output 做得最好的之一。特别是 Hermes 3 系列,在工具调用、角色扮演、指令遵循这几个维度上表现相当能打。如果你想在本地搞 AI Agent 相关的开发,Hermes 几乎是绕不过去的选择。
这俩搭在一起,就是”最低门槛 + 最强功能”的组合。
第一步:安装 Ollama
macOS
直接去官网下载,或者用 Homebrew:
1 | brew install ollama |
安装完之后启动服务:
1 | ollama serve |
终端会显示类似 Listening on 127.0.0.1:11434 的输出,说明服务已经跑起来了。
Linux
一行搞定:
1 | curl -fsSL https://ollama.com/install.sh | sh |
脚本会自动检测你的 GPU 驱动,如果有 NVIDIA 显卡且装了驱动,会自动启用 GPU 加速。装完之后 Ollama 会作为 systemd 服务自动运行。
检查一下状态:
1 | systemctl status ollama |
Windows
从 Ollama 官网 下载 Windows 安装包,双击安装。装完后 Ollama 会在系统托盘运行。
验证安装
不管哪个平台,装完之后跑一下:
1 | ollama --version |
能看到版本号就算成功。再试试 API 是否通:
1 | curl http://localhost:11434/api/tags |
返回一个 JSON(哪怕是空的模型列表),就说明 Ollama 服务正常运行。
第二步:拉取 Hermes 模型
Ollama 的模型库里已经收录了 Hermes 系列。直接 pull 就行:
1 | # 拉取 Hermes 3 8B(推荐入门) |
8B 版本大概 4.7GB,普通家用电脑都能跑。下载速度取决于你的网络,国内的话可能需要点耐心。
拉取完成后确认一下:
1 | ollama list |
输出类似:
1 | NAME ID SIZE MODIFIED |
这里多说一句关于量化的事。Ollama 默认拉取的是 Q4_K_M 量化版本,这是在质量和大小之间的一个平衡点。对于大部分使用场景来说已经够用了。如果你对质量有更高要求,可以指定更高精度的量化:
1 | # Q5 量化,质量更高,体积更大 |
但说实话,Q4_K_M 和 Q8 在日常对话中的差异,大部分人感知不到。
第三步:开始对话
最直接的方式:
1 | ollama run hermes3:8b |
进入交互模式后,直接打字就能聊:
1 | >>> 帮我写一个 Python 的快速排序 |
模型会流式输出回答。按 Ctrl+D 退出对话。
通过 API 调用
如果你想在代码里调用,Ollama 提供了兼容 OpenAI 格式的 API:
1 | curl http://localhost:11434/v1/chat/completions \ |
Python 代码也很简单:
1 | from openai import OpenAI |
注意这里用的是 OpenAI 的 Python SDK,但 base_url 指向本地的 Ollama。这意味着你之前写的所有兼容 OpenAI API 的代码,改一下地址就能切到本地模型,迁移成本极低。
试试 Hermes 的 Function Calling
Hermes 模型最拿手的就是 function calling。来个实际例子:
1 | import json |
跑起来你会看到模型正确地识别出了需要调用 get_weather 函数,并提取了”北京”作为参数。这个能力在搭建 AI Agent 的时候特别重要。
性能调优小技巧
控制上下文长度
默认的上下文窗口是 2048 tokens,对于长对话可能不够。可以通过 Modelfile 调整:
1 | # 创建自定义 Modelfile |
之后用 ollama run hermes3-custom 就是带自定义参数的版本了。
GPU 层数控制
如果你的显存不够把整个模型放进去,可以控制有多少层跑在 GPU 上:
1 | # 只把前20层放到 GPU |
剩余层会跑在 CPU 上,速度会慢一些但至少不会 OOM。
多模型并存
Ollama 支持同时加载多个模型。你可以同时拉取几个不同的模型做对比:
1 | ollama pull hermes3:8b |
然后分别跑,看看哪个更适合你的场景。Ollama 会自动管理显存,不用的模型会被卸载。
远程访问配置
默认情况下 Ollama 只监听 127.0.0.1,也就是只能本机访问。如果你想在局域网的其他机器上调用(比如在服务器上跑模型,笔记本上写代码),需要修改监听地址。
Linux
编辑 systemd 服务配置:
1 | sudo systemctl edit ollama |
添加环境变量:
1 | [Service] |
重启服务:
1 | sudo systemctl daemon-reload |
macOS
设置环境变量后启动:
1 | OLLAMA_HOST=0.0.0.0 ollama serve |
或者写进 shell 配置文件里持久化。
Windows
在系统环境变量里添加 OLLAMA_HOST,值设为 0.0.0.0。然后重启 Ollama。
设置完之后,局域网内其他机器就可以通过 http://服务器IP:11434 来访问 Ollama API 了。注意安全问题——如果服务器有公网 IP,记得配防火墙限制访问。
使用 Modelfile 定制模型行为
Modelfile 是 Ollama 的一个强大功能,类似于 Dockerfile,让你基于已有模型创建自定义版本。
创建一个中文助手
1 | cat > ChineseAssistant << 'EOF' |
之后直接用 ollama run chinese-assistant 就能启动这个定制版本。
创建一个代码专家
1 | cat > CodeExpert << 'EOF' |
列出自定义模型
1 | ollama list |
自定义模型和原始模型会一起显示在列表里。删除自定义模型用 ollama rm model-name。
批量处理和脚本集成
Ollama 不只是交互式聊天工具,用在脚本里也很方便。
Shell 脚本示例
批量翻译文件:
1 |
|
Python 批量处理
1 | from openai import OpenAI |
这种用法在日常工作中非常实用——文档摘要、代码注释生成、数据清洗、日志分析都可以用本地模型来做,不用担心数据泄露。
常见问题排查
Q: 下载模型特别慢怎么办?
国内网络环境你懂的。可以设置代理:
1 | export HTTPS_PROXY=http://your-proxy:port |
或者考虑用一些镜像源,这个在 cocoloop 社区里有人分享过加速方案。
Q: 运行时报 out of memory?
8B 模型至少需要 8GB 内存(CPU 推理)或 6GB 显存(GPU 推理)。如果实在不够,试试更小的量化版本。
Q: API 调用返回 404?
检查 Ollama 服务是否在运行。另外注意 v1 前缀,完整地址是 http://localhost:11434/v1/chat/completions。
Q: 中文回答质量不太好?
试试在 system prompt 里明确指定”请用中文回答”。Hermes 3 的中文能力还是不错的,但有时候需要你引导一下。
接下来可以做什么
本地模型跑起来之后,玩法就多了:
- 想要一个好看的聊天界面?看看 Hermes + Open WebUI 的搭配方案
- 想做文档问答系统?可以用 Hermes + LlamaIndex 搭建文档 QA
- 如果你需要更高的并发性能,推荐了解一下 Hermes + vLLM 的推理服务方案
在 cocoloop 社区也有不少人在分享自己的本地部署经验,遇到问题可以去交流。
Ollama + Hermes 这个组合确实是目前上手最快的本地大模型方案。三条命令,十分钟,你就拥有了一个完全在本地运行的、支持 function calling 的强力模型。数据完全不出本机,隐私和安全都有保障。赶紧试试吧。