ollama:您不能删除基础模型

模型与算力

讲清 Ollama 里「不能删除基础模型」这条提示到底指什么,教你先分清是哪个模型被占用,再按顺序排查并安全腾出磁盘。

在 Ollama 里删模型时弹出「您不能删除基础模型」,看着像权限问题,其实多半是那个模型正被别的模型引用,或者你删的其实是个别名。这篇把提示背后的引用关系拆开讲,给一套「先看清单、再解绑、最后删」的排查顺序,顺带说清哪些情况下这条提示是正常的、不该硬删。

在 Ollama 里删模型时弹出「您不能删除基础模型」,第一反应通常是去看是不是权限不够、是不是文件被锁住了。但这条提示跟权限基本没关系,它说的是「还有别的东西依赖它」。你得先找依赖方,而不是找管理员密码。多数人卡在这里,是因为把注意力放错了地方。

这篇给一套先后顺序:先分清你删的到底是标签还是别名,再看有没有会话或别的引用占着它,最后决定是解绑还是绕开。顺带说清什么时候这条提示是对的、不该硬删。判断自己属于哪种情况,比背命令更有用。

这条提示里的「基础模型」指什么

Ollama 的模型记录不是一份孤立文件,而是一层套一层的结构:一个模型条目里可能引用着另一份已经下载好的权重文件。从这条模型记录的视角看,被它引用的那份就是「基础模型」。所以提示的意思不是「你没有权限」,而是「还有别的东西指着它」。

同一份底层权重被多个标签共用非常常见。你删掉其中一个标签,可能只是解开了一层引用,底层文件依然被别的标签抱着,磁盘空间不会因此释放。反过来,如果你想回收底层权重,那就要先把所有引用它的标签找出来。

标签
你拉取时用的名字,通常对应一份模型记录;删标签和删底层权重是两件事。
别名
指向同一个模型的另一个名字。名字写错时,报错有时会误导成「基础模型」。
引用关系
模型记录指向另一份权重;被指向的那份在提示里就被叫基础模型。
占用
被加载进内存或正被进程使用,这时候删除请求会被挡下。
  • 提示不是权限报错,先找依赖方,别去翻权限设置
  • 同一份权重被多个标签共用是常态,删一个标签不等于释放空间
  • 名字是标签还是别名,先列一遍再动手,别凭记忆删
  • 容器化部署里宿主目录和容器内目录可能是两套,删了宿主上的,容器里的记录还在

先查清楚到底是谁占着它

排查顺序很重要,跳步容易白折腾。第一步永远是列清单,确认目标名字是否真的存在、是不是另一个名字的别名。名字写错时,Ollama 给出的报错未必精确,很容易被误读成「基础模型不能删」,结果你去找一个根本不存在的东西。

第二步看有没有正在跑的会话。模型被加载进内存时,删除请求会被挡下,这种情况不是引用问题,而是运行中的占用。先停掉相关进程,或者等服务空闲再试,比反复重试有用。第三步才是查引用链,也就是到底有哪些标签或记录指向这份权重。

  1. 列清单把当前模型列一遍,确认目标名字存在、是不是别名。名字对不上就先别删,先改对名字。
  2. 看运行状态检查有没有会话或服务正在使用这个模型。有就先停掉或等空闲,再执行删除。
  3. 查引用找出所有指向这份权重的标签或记录,逐个确认是否还需要。必要时同时处理,避免只解开一层。
  4. 对路径容器部署下核对宿主机目录与容器内目录是否一致,把要删的位置对应清楚再动手。

这三步查完,你基本能确定问题出在名字、占用还是引用上。如果对磁盘占用和路径拿不准,可以到站内的 本地工具箱(/tools) 用换算和检测工具先把数字和路径对一遍,再决定删哪个。

按这个顺序腾空间,别硬删

腾空间的第一原则是:优先删「你自己拉的、体积大的、确定不再用的」标签,而不是去动那份共用的底层权重。底层权重一旦被别的标签或应用依赖,删掉会让它们一起失效,排查成本远高于省下的空间。

如果确实要回收底层权重,那就先把所有引用它的标签列出来,逐个确认不再需要,再一起处理。只处理其中一部分,很可能只是解开了引用关系,文件还在原地。删完记得回头核一遍剩余模型能不能正常拉起,避免删掉的东西其实还在被某个应用按名字调用。

你的目标优先动作不建议做的事
删掉某个不用的模型删对应标签,确认底层是否仍被引用直接删底层权重
回收磁盘空间先删体积大且确定不用的标签,再评估底座拿共用权重开刀
让某模型不再被自动选中改默认模型设置删掉模型本体
新模型放另一块盘改模型存储路径反复删了又拉

路径和存储位置相关的做法,大模型分区里已经有专文讲透,这里不重复。你只要记住顺序:先标签、后底座、最后才考虑动共用的东西。

哪些情况下这条提示是对的,别绕过去

有些场景下这条提示就是在帮你兜底,硬绕过去只会让问题延后爆发。团队共用一台机器时,别人正在用的模型你删了,对方会直接报错,而且很难第一时间定位到是你删的。先沟通再动手,比事后排查省事得多。

生产或对外的推理服务里,基础权重被删掉,服务重启后就拉不起来。这类环境应该走版本化替换,而不是直接删除。如果你只是想让某个模型不再被自动选中,改默认模型比删掉更安全,也不影响别人按名字调用。磁盘紧张时,清理缓存和临时文件是更稳妥的临时解法。

  • 多人共用一台机器:先确认没人在用,再删
  • 对外服务环境:走版本化替换,不要直接删底座
  • 只想改默认选择:改默认模型,别动模型本体
  • 磁盘临时紧张:先清缓存和临时文件,别拿基础权重换空间
下一步如果你想搞清楚不同模型和标签到底占了多少、怎么换算磁盘,可以到站内的工具与资料页面对一遍当时的数字,再决定删哪个、留哪个。

常见问题

我明明只删了一个模型,为什么提示说不能删基础模型?

大概率是你删的名字和实际存在的是两份记录:一个是你拉的标签,另一个是它引用的共享权重。先列一遍模型清单,确认两个名字分别对应什么,再决定删哪个。名字写错也会撞上这个提示。

把 Ollama 服务停掉再删,能不能绕过这个提示?

停服务能解决「模型正被加载」这一类拦截,但如果底层权重确实还被别的标签引用,停服务也不会让提示消失。判断方法很简单:停完再删一次,还报同样的错就是引用关系问题,不是占用问题。

删了基础模型之后,其他模型还能用吗?

取决于还有没有别的标签指向它。共用同一份权重的其他标签会一起失效,需要重新拉取。所以删除前先把引用关系列清楚,删完之后逐个把常用模型拉起来验证一遍,别等到半夜服务起不来才发现。

本文依据各平台公开文档与官方公告整理,只做中文归纳;具体做法、参数与限制以官方文档为准。