在 Ollama 中,模型默认的驻留时间(Keep Alive)是 5 分钟。要让特定模型(如 qwen3:32b)一直驻留在显存中不被卸载,有几种方法可以实现。
根据你的需求(只让特定模型不卸载),建议使用方法一。
方法一:通过 API 发送一次性“永久驻留”指令(推荐)
你可以向 Ollama 发送一个特殊的请求,通过设置 keep_alive 参数为 -1,告诉它无限期保留该模型。
打开终端,执行以下命令:
curl http://localhost:11434/api/generate -d '{
"model": "qwen3:32b",
"keep_alive": -1
}'
- 原理:这个请求会加载模型并将其过期时间设为“永不过期”。
- 优点:不需要重启服务,只针对这一个模型生效。
- 注意:如果你之后手动加载了其他巨大的模型,导致显存不足,系统可能会报错或由于 OOM(内存溢出)导致意外情况。
方法二:修改环境变量(全局生效)
如果你希望 Ollama 运行的所有模型都默认不卸载,可以修改 Ubuntu 的 systemd 服务配置。
编辑 Ollama 服务文件:
sudo systemctl edit ollama.service在打开的编辑界面中(通常在中间的空白处),添加以下两行:
[Service] Environment="OLLAMA_KEEP_ALIVE=-1"保存并退出(如果是 nano,按
Ctrl+O,Enter,Ctrl+X)。重新加载配置并重启服务:
sudo systemctl daemon-reload sudo systemctl restart ollama
- 效果:从现在起,任何你运行的模型都会一直留在显存里,直到你手动停止 Ollama 或重启电脑。
方法三:在请求代码中控制
如果你是通过 Python 脚本或 Web UI(如 Open WebUI)调用 Ollama,可以在请求的参数中加入 keep_alive。
Python 示例 (使用 requests 库):
import requests
payload = {
"model": "qwen3:32b",
"prompt": "你好",
"keep_alive": -1 # 设置为 -1 表示永不卸载
}
response = requests.post("http://localhost:11434/api/generate", json=payload)
常见疑问解答
怎么验证模型是否还在内存里?
你可以使用以下命令查看当前已加载的模型及其剩余生存时间:ollama ps如果
UNTIL列显示的是Forever或者一个非常长的时间,说明设置成功了。我想手动卸载它怎么办?
即使设置了永久驻留,你也可以通过发送0来立即释放它:curl http://localhost:11434/api/generate -d '{ "model": "qwen3:32b", "keep_alive": 0 }'
总结建议: 先尝试方法一,因为它的影响最小,且能精确满足你“只针对 qwen3:32b”的需求。