3、Ollama CLI基础:常用命令概览、pull/push命令详解、list/rm命令使用
聊到 Ollama 的 CLI,说白了就是咱们和模型打交道的「遥控器」。你想想看,不管你是拉模型、删模型,还是查版本,最终都得靠这几条命令。我个人习惯是把 CLI 当成瑞士军刀——平时不觉得,真要用的时候,少一个都别扭。
3.1 常用命令概览
先给你一张速查表,把最常用的命令列出来。我刚开始接触 Ollama 时,就靠这张表撑过了前两周。
| 命令 | 作用 | 我常用的场景 |
|---|---|---|
ollama pull |
拉取模型到本地 | 部署新模型、更新版本 |
ollama push |
推送本地模型到仓库 | 团队共享、备份自定义模型 |
ollama list |
列出本地所有模型 | 查看已安装的模型和版本 |
ollama rm |
删除本地模型 | 清理磁盘、移除旧版本 |
ollama run |
运行模型 | 快速测试模型效果 |
ollama show |
查看模型详细信息 | 检查模型配置和参数 |
嗯,这里要注意:ollama run 虽然常用,但它属于「运行态」的命令。咱们这章重点讲的是「管理态」的命令——pull、push、list、rm。这些才是版本管理的基石。
3.2 pull/push 命令详解
3.2.1 pull:把模型拉到本地
拉模型这事儿,看起来简单,但坑不少。最基本的用法:
ollama pull llama3.2:1b
这条命令会从官方仓库拉取 llama3.2 的 1B 参数版本。为什么我要强调版本号?因为我在项目中遇到过,有人直接写 ollama pull llama3.2,结果拉到了最新版,和团队其他人用的版本不一致,排查了半天才发现是版本差异导致的。
llama3.2:1b 而不是 llama3.2。这样你的环境是可复现的,别人拿到你的命令,拉到的模型一模一样。
如果你需要从私有仓库拉取,可以指定完整路径:
ollama pull my-registry.example.com/my-team/custom-model:v2.1
为什么会用到私有仓库?说白了,企业里很多微调过的模型不能公开,得放在自己的 registry 里。我去年帮一家金融客户搭环境,他们的风控模型就是通过这种方式管理的。
3.2.2 push:把模型推上去
推送模型前,你得先给模型打个标签。比如你微调了一个 llama3.2,想把它推送到团队仓库:
ollama tag llama3.2:1b my-registry/team-models/finetuned-llama:v1.0
ollama push my-registry/team-models/finetuned-llama:v1.0
这里有个容易踩的坑——推送前一定要确认模型文件完整性。我曾经有一次,模型推到一半网络断了,结果仓库里留了个残缺版本。后来同事拉下来直接报错,排查了半天才发现是推送不完整。
ollama show 确认模型文件大小和层数。如果发现文件大小异常,先删掉本地模型重新 pull 再 push。别问我怎么知道的——都是泪。
3.3 list/rm 命令使用
3.3.1 list:看看你都有啥
ollama list 是我用得最频繁的命令之一。每次打开终端,先敲一遍,看看本地有哪些模型:
ollama list
输出大概长这样:
NAME ID SIZE MODIFIED
llama3.2:1b a1b2c3d4 1.1 GB 2 days ago
llama3.2:3b e5f6g7h8 3.3 GB 5 hours ago
mistral:7b i9j0k1l2 7.2 GB 1 week ago
custom-model:v2.1 m3n4o5p6 4.5 GB 3 hours ago
嗯,这里要注意:ID 列是模型的哈希值,可以用来精确区分不同版本。我习惯在脚本里用 ID 而不是名字来引用模型,因为名字可能重复,但 ID 是唯一的。
3.3.2 rm:清理不需要的模型
磁盘空间不够了?用 ollama rm 清理旧版本:
ollama rm llama3.2:1b
如果你想一次删多个:
ollama rm llama3.2:1b mistral:7b
这里有个小技巧:用 ollama list 配合 grep 筛选出要删的模型。比如你想删掉所有以 "test-" 开头的模型:
ollama list | grep "test-" | awk '{print $1}' | xargs ollama rm
ollama rm 之前,先用 ollama list 确认一下要删的模型。特别是当你用脚本批量删除时,最好加个确认步骤。
3.4 知识体系:CLI 命令的核心逻辑
为了让你更直观地理解这些命令之间的关系,我画了一张图:
这张图想表达的核心思想是:list 和 rm 管本地,pull 和 push 管同步。你想想看,版本管理说白了就是「本地有什么、远程有什么、怎么同步」这三件事。把这四个命令用熟了,模型版本管理就稳了。
最后说一句:别小看这些基础命令。我见过不少团队,模型版本乱成一锅粥,追根溯源就是 pull 的时候没带版本号,或者 rm 的时候删错了模型。基础打牢了,后面讲回滚策略时才不会手忙脚乱。