manifests-v2

该问题通常出现在 Ollama 0.30 及以上版本加载模型后,同一模型在 ollama list 中显示为多个条目(相同 digest、不同名称,或带长哈希别名)。这是 manifests-v2 引入的 manifest list 与磁盘惰性转换机制导致的 UX 显示问题,优先用 ollama s

快速结论:该问题通常出现在 Ollama 0.30 及以上版本加载模型后,同一模型在 ollama list 中显示为多个条目(相同 digest、不同名称,或带长哈希别名)。这是 manifests-v2 引入的 manifest list 与磁盘惰性转换机制导致的 UX 显示问题,优先用 ollama show 确认 runner 版本,而不是删除模型。

适用环境:Ollama 0.30 及以上版本(引入 llama-server 过渡与 llama.cpp patch 收敛),0.40 版本开始加入 manifest list 支持;Issue 未提供具体操作系统、GPU、CPU 或 Python/CUDA 版本。

最快修复方案:暂无确认的一步修复方案。维护者表示会在下一个 patch release 中修复这些 UX 显示问题;如果磁盘空间紧张,可手动删除 ggml 版本、保留 llamacpp 版本作为临时缓解。

注意事项:删除 ggml 版本会破坏降级能力,之后若回退到旧版本 Ollama 可能无法运行这些模型;该手动清理只是临时手段,官方后续会提供自动整理逻辑。转换仅在模型被加载时触发,未加载的模型不会产生 shadow copy。

问题场景

用户在 Ollama 中执行 ollama list 并过滤特定 digest 后,发现同一个 gpt-oss:latest 出现两次,且 digest 不同,同时还多出一个以 llamacpp: 加长哈希命名的条目。用户是在加载模型之后观察到这些额外条目,因此怀疑 manifests-v2 结构变更是否产生了“奇怪别名”,以及不同版本 Ollama 共享同一存储目录时是否会互相影响。

报错原文

$ ollama list | egrep "21fd97703fbe|4f44980319c2"
gpt-oss:latest                                                                                    21fd97703fbe    13 GB      14 minutes ago    
gpt-oss:latest                                                                                    4f44980319c2    13 GB      14 minutes ago    
llamacpp:4f44980319c26335fc1cc589f6918088d6ffd63d96b458b738e70119b918554e                         4f44980319c2    13 GB      14 minutes ago

原因分析

根据维护者说明,这是从 llama.cpp patch 切换到 llama-server 计划的一部分。0.30 版本开始收敛 llama.cpp patch set,0.40 版本加入 manifest list 支持,并开始把磁盘上的 GGUF 转换为无需 patch 即可直接运行的格式。为了不影响首 token 延迟(TTFT),转换是在模型被加载时惰性进行的,因此只有加载过的模型才会生成新版本。

为支持降级,旧版本会通过 manifest list 暂时挂在同一个 tag 下,所以 ollama list 会出现多个条目或带长哈希的别名;几百个 release 后(原文为“in a few releases”),待确认无重大问题后会移除 llama.cpp patch 和不再兼容的旧 GGUF 兄弟版本。

可能原因包括:模型被加载触发了 on-disk 转换、manifest list 同时保留了旧版与新版本、以及 ollama list 对 manifest list 的展示尚未完善。

环境排查

  • 确认 Ollama 版本是否在 0.30 及以上,尤其是是否已到 0.40(manifest list 支持引入版本)。
  • 确认这些重复条目是否在加载模型之后才出现;未加载的模型通常不会转换。
  • 用 ollama show <model> 查看 “available runners”,确认模型实际关联了哪些版本。
  • 确认是否与其他版本 Ollama 共享同一存储目录,避免不同版本对 manifest 结构理解不一致。
  • 确认模型是否带有修改过的 metadata,此类模型是否参与转换 Issue 中未给出明确结论。

解决步骤

  1. 先不要直接删除条目,运行 ollama show gpt-oss:latest 查看 “available runners”,确认不同版本对应的 runner。
  2. 如需在其它命令中指定某个版本,可将 ollama show 中列出的版本作为输入传给 run、rm、cp 等命令。
  3. 如果磁盘空间紧张且短期内不需要降级,可手动删除 ggml 版本,保留 llamacpp 版本。
  4. 等待官方 patch release,维护者表示会在下一个 patch release 修复这些 UX 显示问题,并合入自动整理逻辑。
  5. 暂时避免多版本 Ollama 同时操作同一模型存储,降低 manifest 理解不一致带来的风险。

验证方法

升级到包含修复的 patch release 后,重新加载模型并执行 ollama list,确认同一模型不再重复出现或出现长哈希别名;同时用 ollama show <model> 确认 “available runners” 仍能正常列出可运行的版本。

参考来源

ollama/ollama #18870

GamsGo AI

AI 工具推荐

想把多个 AI 模型放在一个入口?

GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。

了解 GamsGo AI

推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。

这个方案解决了吗?

celebrityanime
celebrityanime
文章: 28538

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注