Ollama 模型内存卸载方案总结

该问题主要讨论如何让 Ollama 在不需要时卸载模型从内存中,以便释放显存资源。 以下是社区的解决方案:

1. 自动卸载机制:

  • 默认情况下,Ollama 会自动在5分钟后卸载模型,这可以加快对多个请求的响应时间。

2. keep_alive 参数控制:

  • 使用 /api/generate/api/chat API 端点中的 keep_alive 参数来控制模型加载时长。
    • -1"-1m":永久保持模型加载状态。
    • 数字表示秒数:例如3600 表示 1 小时。
    • 0:立即卸载模型,释放资源。

示例:

curl http://localhost:11434/api/generate -d '{"model": "llama2", "keep_alive": -1}'  # 永久加载模型
curl http://localhost:11434/api/generate -d '{"model": "llama2", "keep_alive": 0}'  # 立即卸载模型

3. 环境变量 OLLAMA_KEEP_ALIVE:

  • 未来可能加入此环境变量来更改默认5分钟的超时时间。

4. CLI 命令:

  • 目前没有直接命令可以立即卸载模型,但社区提出建议使用CLI命令 "ollama unload" 来实现。

5. 注意事项:

  • keep_alive 参数只能控制单个模型的加载状态,不能批量卸载。
  • 针对 embedding 模型,该参数无法有效控制。

总结来说,目前 Ollama 提供了两种主要的方案来卸载模型:自动卸载机制和使用 keep_alive 参数手动控制。社区还在积极探索更完善的解决方案,例如 CLI 命令和环境变量控制。