先把安装和路径理顺
Linux 和 macOS 用官方脚本一条命令装完,Windows 直接跑 OllamaSetup.exe,装完托盘里会常驻一个服务。别急着 pull 模型:默认权重落在用户目录的 .ollama/models(Windows 是 %USERPROFILE%.ollamamodels),拉三个 7B 模型就是十几 GB,C 盘很容易被吃满。第一件事是改两个环境变量,把 OLLAMA_MODELS 指到空间大的盘,再用 OLLAMA_HOST 决定要不要让局域网其他机器访问 API。Windows 上改完必须退出托盘图标再重新启动,否则服务读的还是旧值,这一步我踩过两次。
# Linux / macOS,写进 ~/.bashrc 或 ~/.zshrc
export OLLAMA_MODELS=/data/ollama-models
export OLLAMA_HOST=0.0.0.0:11434
ollama serve
# Windows,用 setx 持久化后重启 Ollama
setx OLLAMA_MODELS D:ollama-models
setx OLLAMA_HOST 0.0.0.0:11434
服务起来后直接用 curl 探一下 /api/tags,能返回 JSON 就说明端口和模型目录都对了。需要看拉取进度或排查 404 时,用 OLLAMA_DEBUG=1 ollama serve 起服务,日志里会打印每个请求命中的模型文件路径。
日常真正会敲的就这几个命令
pull 拉模型、run 进交互对话、list 看已装、ps 看当前驻留和显存、show 看参数,五个命令覆盖了九成场景。run 进去之后 /bye 退出,/set parameter temperature 0 可以在不改模型的前提下临时调参数,/show info 能确认当前上下文长度。容易忽略的是 keep_alive:默认模型在显存里保留 5 分钟,做批量推理时反复加载很浪费,可以在 API 请求里把它设成 "30m",或者设成 "0" 让每次生成完立刻卸载,方便多模型轮流跑。
ollama pull qwen2.5:7b
ollama run qwen2.5:7b
ollama list
ollama ps
ollama show qwen2.5:7b
ollama rm qwen2.5:3b
ollama serve
curl http://localhost:11434/api/tags
curl http://localhost:11434/api/generate -d '{
"model": "qwen2.5:7b",
"prompt": "用一句话解释 RAG",
"stream": false,
"keep_alive": "30m",
"options": { "temperature": 0, "num_ctx": 8192 }
}'
模型怎么选:按显存倒推,而不是按排行榜
模型名后面不带量化后缀时,Ollama 默认给的是 Q4_K_M,别被 7b 这个数字骗了。中文场景优先 qwen2.5 和 glm4,写代码用 qwen2.5-coder,需要推理链用 deepseek-r1,纯英文轻任务 llama3.1:8b、phi4、mistral-nemo 更省。下面这张表按文件体积估,实际显存还要再加 KV cache 和桌面占用,留 2 到 3 GB 余量才稳。
| 显存 | 推荐模型 | 量化 | 权重体积 |
|---|---|---|---|
| 4 GB | qwen2.5:3b / gemma2:2b | Q4_K_M | 约 2 GB |
| 8 GB | qwen2.5:7b / qwen2.5-coder:7b | Q4_K_M | 约 4.7 GB |
| 12 GB | qwen2.5:14b | Q4_K_M | 约 9 GB |
| 24 GB | qwen2.5:32b | Q4_K_M | 约 20 GB |
要质量基准就显式写 qwen2.5:7b-fp16,约 15 GB,只适合 24 GB 卡上做对照实验。量化标签也能点名,例如 qwen2.5:7b-instruct-q4_k_m 和 qwen2.5:7b-instruct-q8_0,后者接近无损但体积翻倍,多数任务感知不到差别。
用 Modelfile 固化一套人设
每次在对话里重复贴系统提示很蠢,写成 Modelfile 一次性生成专属模型。SYSTEM 用三引号包多行,PARAMETER 把温度和上下文写死,避免哪次忘了传 num_ctx 导致长文档被静默截断。这一步也方便把同一套配置提交到 git,换机器时直接重建。
FROM qwen2.5:7b
PARAMETER temperature 0.3
PARAMETER num_ctx 8192
SYSTEM """
你是技术博客的编辑,回答先给结论,再给可复制的命令,不确定的地方直接说不知道,不要客套话。
"""
ollama create blog-editor -f Modelfile
ollama run blog-editor
踩坑总结:num_ctx 不显式设往往是 2048 或 4096,长文档会被悄悄丢掉前半部分;ps 里 PROCESSOR 出现 CPU 就说明层被 offload 到内存了,速度掉一个数量级,先降 num_ctx 或换更小量化,别急着怪模型笨。