Appearance
LangChain教程 - 4 Ollama模型管理
下面介绍一下 Ollama 的一些常用模型管理的命令,包括模型运行、查看、停止、删除等核心操作。
4.1 运行多个大模型
上一个章节使用 Ollama 运行了 qwen3:1.7b 模型,我们还可以使用 Ollama 同时运行多个模型。
例如,我们再运行一个 gemma3:1b 模型,这个也比较小,没有思考过程,响应很快:
bash
# Docker 部署的 Ollama 运行模型
docker exec -it my-ollama ollama run gemma3:1b
# 补充:非 Docker 部署的 Ollama 直接运行(新手常用)
ollama run gemma3:1b4.2 查看模型
1 查看所有的模型
可以使用如下方式查看本地所有的模型,不管是否在运行:
bash
docker exec my-ollama ollama list
# 简写命令
docker exec my-ollama ollama ls
# 补充:非 Docker 部署
ollama list
ollama ls输出结果示例:
NAME ID SIZE MODIFIED
gemma3:1b 8648f39daa8f 815 MB 2 minutes ago
qwen3:1.7b 7df6b6e09427 1.4 GB 3 hours agoNAME和ID是模型的名称和 ID;SIZE是模型占用的硬盘空间;MODIFIED是模型最近一次被下载、更新或重建的时间,用来判断模型“新旧”或最近是否被重新拉取。
2 查看运行中的模型
可以使用如下命令查看运行中的模型:
bash
# Docker 部署
docker exec my-ollama ollama ps
# 补充:非 Docker 部署
ollama ps输出结果示例:
NAME ID SIZE PROCESSOR CONTEXT UNTIL
qwen3:1.7b 7df6b6e09427 1.9 GB 100% CPU 4096 4 minutes from now
gemma3:1b 8648f39daa8f 1.2 GB 100% CPU 4096 4 minutes from now前面两列是模型的名称和ID;
SIZE表示模型当前占用的内存大小,而不是磁盘上的文件大小;100% CPU表示模型推理当前运行在 CPU 上;CONTEXT表示模型一次对话最多能“记住”的 token 数;UNTIL表示自动卸载倒计时,如果在这段时间内没有新的请求,该模型会被自动从内存中卸载,以释放系统资源,每当模型接收到一次请求,这个倒计时都会重新计算,也就是说 Ollama 可以同时运行多个模型,但是 Ollama 会定时卸载不使用的模型。
可通过环境变量修改 UNTIL 时长:OLLAMA_KEEP_ALIVE=10m(设置为 10 分钟,Docker 部署需在启动容器时配置):
bash
# 示例1:设置为 1 小时自动卸载
docker run -d \
-v /Users/foooor/docker/my-ollama:/root/.ollama \
-p 11434:11434 \
-e OLLAMA_KEEP_ALIVE=1h \
--name my-ollama \
ollama/ollama
# 示例2:设置为永不卸载(模型常驻内存)
docker run -d \
-v /Users/foooor/docker/my-ollama:/root/.ollama \
-p 11434:11434 \
-e OLLAMA_KEEP_ALIVE=0 \ # 0 表示禁用自动卸载
--name my-ollama \
ollama/ollama如果你的
my-ollama容器已经启动过,需要先删除旧容器,再执行上面的新命令。时长格式支持:时长格式支持
s(秒)、m(分)、h(时),0表示永不自动卸载(模型加载后常驻内存,适合高性能服务器),-1= 使用 Ollama 默认值(通常是 5 分钟)
3 模型的状态
在 Ollama 中,一个模型会处于以下三种状态之一:
- 已下载(存在于磁盘),使用
ollama list可以查看; - 正在运行(已加载到内存),使用
ollama run运行,使用ollama ps查看; - 未加载(磁盘存在,但不占内存),使用
ollama list可以查看;
4.3 停止模型
其实 Ollama 没有单独的 stop 命令来停止模型,这是有意的设计。
Ollama 提供了 stop 命令,可主动将运行中的模型从内存卸载(磁盘文件保留),实现 “释放内存、临时禁用模型访问” 的需求:
bash
# Docker 部署:停止指定模型(如 qwen3:1.7b)
docker exec my-ollama ollama stop qwen3:1.7b执行后模型会从内存中卸载,
ollama ps(运行中模型列表)中不再显示该模型;模型文件仍保存在磁盘中(
ollama list可查看),不会被删除;但是需要注意,停止后,使用 API 依然能够访问,Ollama 会自动重新加载模型到内存,所以此时调用该模型的 API 会短暂延迟,加载完成后即可正常响应。
如需重新手动加载模型,执行之前运行模型的命令就可以了:
bash
docker exec -it my-ollama ollama run qwen3:1.7b那你想问,我运行了指定的模型,通过API可以访问,如果我想主动卸载模型,让API不访问,只是在我需要的时候,再次启动该模型,并允许访问,这样的需求无法实现吗?
这个需要在 API 层面去控制,控制哪些模型对外开放,那么模型暂时禁用。
4.4 删除模型
如果要删除指定的模型,使用如下命令:
bash
docker exec my-ollama ollama rm qwen3:1.7b- 需要注意,模型文件从磁盘中彻底删除,
ollama list中不再显示; - 当前运行中的模型会立即被卸载,无法再通过 API 或命令行访问。
删除模型后,再次通过如下命令运行模型:
bash
docker exec -it my-ollama ollama run qwen3:1.7bOllama发现本地不存在模型,自动重新下载模型文件,下载完成后加载运行。