🤖 AI总结
主题
Ollama v0.40.2 版本更新,聚焦模型兼容性与本地管理体验优化。
摘要
Ollama v0.40.2 优化模型升级与列表展示,旧模型自动升级并保留备份,ollama list 去重并隐藏内部标签。
关键信息
- 1 旧版本模型首次运行时自动后台升级,提升 llama.cpp 性能与兼容性。
- 2 升级前保留原始模型副本作为降级备份,支持手动清理。
- 3 ollama list 不再显示重复条目和降级保护标签,仅展示首选子项。
![]()
![]()
![]()
发布时间:2026年10月9日 版本:v0.40.2 Latest 项目:github.com/ollama/ollama
ollama v0.40.2 已正式发布。本次版本更新的重点并不在于新增大量功能,而是围绕模型兼容性、运行性能、版本升级后的存储管理,以及模型列表展示体验进行了针对性优化。
其中最值得关注的变化是:此前通过旧版本 Ollama 下载的模型,在首次运行时会自动于后台升级,以获得更好的 llama.cpp 运行性能与兼容性;与此同时,为了让用户能够安全降级,Ollama 会临时保留原始模型副本作为备份。这样一来,模型升级过程更加稳妥,但也意味着磁盘上可能会暂时多占用一部分空间。
除此之外,v0.40.2 还解决了ollama list中升级模型可能出现重复条目的问题,并且进一步隐藏用于降级保护的内部标签,让模型列表回归更简洁、直观的状态。
一、核心更新概览
v0.40.2 的主要变化可以概括为以下几个方向:
• 旧版本下载的模型会在首次运行时于后台完成升级
• 升级后的模型可以获得更好的 llama.cpp 性能与兼容性
• 为确保用户可以安全降级,升级前的原始模型会暂时保留为备份
• 后续版本将自动清理这些升级产生的备份模型
• 当前版本已经提供手动清理备份模型的方式
•ollama list不再显示升级模型产生的重复条目
• 用于降级保护的内部模型标签不再出现在模型列表中
•ollama launch claude将使用模型完整的上下文长度
• README 社区集成列表新增oxi
从表面看,这次发布的提交数量不多,但其中模型升级、模型列表去重、降级保护标签隐藏等改动,直接影响本地模型管理与日常使用体验。
二、旧模型首次运行时将自动后台升级
v0.40.2 最关键的更新,是针对早期版本下载模型的自动升级机制。
发布说明明确指出:通过较早版本 Ollama 下载的模型,在用户首次运行这些模型时,会在后台自动完成升级。该升级的目标是让模型在 llama.cpp 环境中运行时,获得更好的性能和兼容性。
换句话说,用户不需要手动重新下载模型,也不需要自行判断某个模型是否需要迁移或转换。当旧模型第一次被调用运行时,Ollama 会自动处理对应的升级工作。
这一机制带来的直接意义是:
• 用户已有的模型不需要立即手动重新拉取
• 模型在实际使用时才触发升级,减少不必要的即时操作
• 升级过程在后台进行,降低用户对模型格式变化的感知
• 模型升级后更适配 llama.cpp 的运行需求
• 使用旧版本下载模型的用户可以逐步过渡到新的兼容状态
这里需要注意的是,升级触发点并不是安装 v0.40.2 的瞬间,而是在模型第一次运行时。也就是说,某个模型即使已经存在于本地,只要尚未被运行,就可能还没有完成相应的后台升级。
这种方式可以避免一次性对所有本地模型进行集中处理,也让升级过程与实际模型使用行为保持一致。
三、为什么升级后还要保留原始模型副本
自动升级虽然能够带来性能和兼容性改善,但模型升级并不是简单地覆盖原始文件。
为了让降级操作保持安全,Ollama 在升级模型时会保留原始模型副本作为备份。也就是说,升级后的模型和原始模型可能会在一段时间内同时保存在本地磁盘中。
这样设计的原因很明确:如果用户之后将 Ollama 降级到早于 0.40 的版本,旧版本仍然需要原来的模型副本才能继续正常使用。
因此,v0.40.2 中的备份并非无意义的重复数据,而是一项降级保护措施。
这一机制可以理解为:
场景
模型状态
使用旧版本下载模型
本地保留原始模型
升级到 v0.40.2 后首次运行模型
后台生成或使用升级后的模型状态
升级完成后
原始模型副本继续保留,作为降级备份
继续使用 v0.40 及以上版本
可以选择清理旧备份以释放空间
降级到早于 0.40 的版本
需要保留的原始模型副本来保证可用性
从存储角度看,这意味着模型升级后的短期磁盘占用可能会增加。对于本地模型数量较多、模型体积较大的用户而言,这一点尤其值得注意。
例如,如果本地存放了多个大型模型,并且这些模型都在升级后被运行过,那么升级后的版本与原始备份可能会共同存在。虽然 v0.40.2 并未要求用户立即清理备份,但用户应当了解:这些旧副本会在磁盘中暂时占据空间。
四、未来版本会自动清理备份,当前可手动清理
发布说明中提到,未来的 Ollama 版本将自动移除这些升级过程中保留的备份模型。
这意味着,当前 v0.40.2 的备份保留行为属于过渡阶段的兼容性设计。后续版本将承担自动清理职责,减少用户手动维护本地存储的成本。
不过,在未来版本实现自动清理前,如果用户已经确认自己不会降级到早于 0.40 的 Ollama 版本,也可以立即手动删除这些备份模型。
官方提供了以下清理命令。
curl -s localhost:11434/api/tags | jq -r '.models[].name' | while read -r m; do
curl -s localhost:11434/api/show -d "{\"model\":\"$m\"}" | jq -r \
'select(any(.manifests[]?; .runner == "llamacpp")) | .manifests[] | select(.runner == "ggml") | .digest'
done | sort -u | xargs -n1 ollama rm
该命令执行的目的,是删除由升级过程保留下来的备份模型。
需要特别强调的是:这条命令只会删除备份,不会删除当前正在使用的升级后模型。
发布说明对此有明确说明:
• 此操作仅删除备份模型
• 不会影响当前升级后的模型
• 如果之后需要降级到早于 0.40 的版本,则必须重新拉取这些模型
因此,是否执行清理命令,取决于用户是否仍有回退到旧版本 Ollama 的需求。
五、手动清理命令的执行逻辑
虽然命令看起来较长,但它的处理流程非常清晰。
首先,它会请求本地 Ollama 服务的模型标签接口:
curl -s localhost:11434/api/tags
该接口返回本地模型列表。
随后,命令通过jq从返回结果中提取全部模型名称:
jq -r '.models[].name'
得到模型名后,命令会依次读取每一个模型,并调用模型详情接口:
curl -s localhost:11434/api/show -d "{\"model\":\"$m\"}"
这个接口会返回模型的相关清单信息。
接下来,命令会筛选出与llamacpp运行器相关的模型清单:
select(any(.manifests[]?; .runner == "llamacpp"))
然后继续从清单中筛选运行器为ggml的条目,并提取对应的摘要值:
.manifests[] | select(.runner == "ggml") | .digest
在获得摘要值后,命令会执行去重:
sort -u
最后,对每一个唯一摘要执行模型删除操作:
xargs -n1 ollama rm
因此,这段命令的整体逻辑可以概括为:
1. 获取本地所有模型名称
2. 逐个查询模型详细信息
3. 找出与 llama.cpp 相关的模型清单
4. 筛选其中运行器为ggml的备份对象
5. 提取并去重模型摘要
6. 使用ollama rm删除这些备份
执行该命令的前提是系统中已经安装jq。发布说明也明确注明,手动删除备份需要jq工具。
六、清理备份前必须了解的限制
手动清理备份模型能够释放磁盘空间,但它并不适合所有用户。
如果用户已经确定会持续使用 v0.40 或更高版本,且不计划降级到旧版,那么删除备份是合理的存储优化操作。
但如果用户仍然存在以下情况,就应当谨慎清理:
• 需要测试早于 0.40 的 Ollama 版本
• 可能因兼容性问题回退到旧版本
• 当前环境中存在版本切换需求
• 希望保留旧模型副本作为降级保障
原因在于,一旦删除了备份模型,之后再降级到早于 0.40 的版本时,本地将不再保留对应的原始模型文件。此时若要继续使用这些模型,就需要重新拉取。
因此,清理操作本质上是在“节省当前磁盘空间”和“保留未来降级便利性”之间进行选择。
可以简单理解为:
• 不降级:可清理备份
• 可能降级:建议保留备份
• 已清理后又要降级:需要重新拉取模型
七、ollama list不再显示升级模型的重复条目
除了模型升级与备份管理,v0.40.2 还优化了模型列表展示。
此前,在模型升级后的相关场景中,ollama list可能会显示重复条目。对于用户而言,这会造成一定困扰:同一个模型看起来像是出现了多个版本,用户难以直接判断哪一个才是当前本地首选、实际会被使用的模型。
v0.40.2 对此进行了调整。
更新后,ollama list不再为升级模型显示重复条目。对于包含多个子运行器清单的模型列表,系统不再把每个子运行器都作为独立行展示,而是只展示本地首选的子项。
这一变化使模型列表从“一个模型可能出现多行”变为“一个模型展示其当前首选的本地子项”。
从实现描述来看,原有逻辑是:
• 一个模型清单列表会为每个子运行器生成一行记录
而更新后的逻辑变为:
• 一个模型清单列表只展示被选中的子项
• 展示的记录以被选择子项的摘要作为标识
• 该记录会保留父级模型的修改时间
这项调整直接提升了ollama list的可读性。
用户在终端中查看模型列表时,不再需要面对同一个模型对应多个运行器条目的情况,也无需自行分辨其中哪个是当前本地优先使用的版本。
八、模型列表展示逻辑发生了什么变化
从测试调整可以看出,模型列表行为的变化非常明确。
此前测试的目标是验证:模型清单列表中的子项是否会作为独立行全部出现在列表中。
更新后,测试目标已经变为验证:模型清单列表是否只展示首选子项。
测试场景中包含两个子项:
• 一个使用gguf格式的子项
• 一个使用safetensors格式的子项
此前的预期是,该模型在列表中会出现两行,分别对应两个子项。
而 v0.40.2 的新预期是,该模型在列表中只出现一行。
同时,这唯一展示出来的行必须满足以下条件:
• 它的摘要值必须等于当前被选择子项的摘要值
• 它代表的是模型当前首选的本地子项
• 不再要求所有运行器对应的子项都出现在列表中
这意味着,ollama list现在更像是一个面向用户的“当前可用模型视图”,而不是展示所有内部清单子项的完整技术视图。
对于普通使用者而言,这种变化更符合直觉:用户看到的是当前模型实际优先使用的版本,而不是内部多个候选运行器的全部记录。
九、降级保护标签将被隐藏
v0.40.2 还专门处理了降级保护标签在模型列表中的展示问题。
在升级过程中,Ollama 会生成与降级保护相关的内部模型标记。此前,如果这些标签直接出现在ollama list中,用户可能会看到一些不属于日常模型管理范畴的额外条目。
新版本增加了对应的过滤逻辑。
当模型名称匹配 llama.cpp 运行器与对应摘要组成的降级保护标签时,该条目会被直接跳过,不再显示在模型列表中。
这项变化的意义在于:
• 内部降级保护机制继续存在
• 模型备份仍然可用于旧版本回退
• 用户不必在ollama list中看到这些内部标签
• 模型列表更加聚焦于用户主动管理和使用的模型
• 升级、备份、兼容性处理等内部流程不会干扰日常查看体验
结合“只显示首选子项”的调整,v0.40.2 对模型列表的整体方向非常清晰:减少内部实现细节对用户界面的干扰。
用户更关心的是“我当前有哪些模型可以使用”,而不是“该模型内部存在多少运行器清单、多少升级备份或多少降级保护标签”。
十、ollama launch claude使用模型完整上下文长度
本次更新中还有一项与模型上下文相关的变化。
ollama launch claude现在会使用模型的完整上下文长度。
上下文长度决定了模型单次能够处理和保留多少输入内容。对于需要处理较长对话、较长文本、较大代码上下文或连续任务的场景,上下文长度尤为重要。
此次调整意味着,在通过ollama launch claude启动时,模型将按其完整上下文能力运行,而不是使用较小或受限的上下文范围。
从发布内容来看,这项改动的描述非常直接:启动 Claude 时采用模型的完整上下文长度。
对于使用该启动方式的用户而言,这意味着模型能够按自身支持的完整上下文配置执行任务。
十一、README 社区集成新增oxi
除核心模型管理与列表逻辑更新外,v0.40.2 还更新了 README 中的社区集成内容。
新增的集成项目为oxi。
该项目被描述为一个原生 Rust 桌面编码智能体,包含以下能力:
• 编辑器
• Git 面板
• 终端
README 中原有的社区集成列表涵盖多个与 Ollama 协作使用的工具,而本次新增的oxi进一步丰富了桌面端编码智能体相关的集成选择。
其定位并不是独立替代 Ollama,而是作为可与 Ollama 生态关联的社区集成之一,面向需要编辑器、代码版本管理面板和终端能力的桌面编码工作流。
十二、发布涉及的变更范围
本次发布的比较视图显示,共包含:
• 3 次提交
• 3 个文件发生变化
• 3 位贡献者参与
涉及的文件包括:
•README.md
•server/model_list.go
•server/routes_list_test.go
从文件分布可以看出,v0.40.2 的更新重点集中在三个方面:
文件
对应变化
README.md
新增oxi社区集成说明
server/model_list.go
调整模型列表逻辑,隐藏降级保护标签,仅展示首选子项
server/routes_list_test.go
更新测试预期,从展示全部子项改为展示首选子项
其中,README 的改动较小,主要是增加一条社区集成信息。
服务端模型列表逻辑则是本次功能行为变化的核心。它既负责过滤掉降级保护标签,也负责避免将同一个模型清单中的多个子运行器都展示给用户。
测试文件同步调整,证明新的预期已经从“展示全部子项”切换为“仅展示当前首选子项”。
十三、提交时间线
此次变更的提交时间线包括:
• 2026年10月2日:README 增加oxi社区集成
• 2026年10月8日:相关 README 变更合并
• 2026年10月8日:服务端更新模型列表逻辑,隐藏重复项与降级保护项
• 2026年10月9日:v0.40.2 发布
从时间顺序看,社区集成更新先完成,随后模型列表逻辑调整完成,最终形成 v0.40.2 发布内容。
虽然提交数量较少,但服务端模型列表调整与模型升级后的备份管理说明,共同构成了本次版本的主要价值。
十四、v0.40.2 对不同用户的影响
对于不同使用方式的用户,这次更新带来的影响并不完全相同。
对于已有大量本地模型的用户
最值得关注的是首次运行模型时可能发生后台升级,以及升级后原始副本会被保留。
这类用户应关注磁盘空间变化,尤其是本地保存了多个大体积模型时。若确认不会降级到旧版本,可以根据官方命令清理备份。
对于经常查看模型列表的用户
ollama list将变得更干净。
升级模型产生的重复条目不再显示,内部降级保护标签也会被隐藏。用户看到的是当前本地首选的模型子项,而不是全部内部清单记录。
对于有版本回退需求的用户
建议保留升级前的备份模型。
因为一旦手动清理备份,而后续又需要使用早于 0.40 的版本,就必须重新拉取这些模型。
对于使用ollama launch claude的用户
模型将使用完整上下文长度运行。这是本次版本中与启动行为直接相关的一项调整。
对于关注 Ollama 工具生态的用户
README 社区集成中新增了oxi,为原生 Rust 桌面编码智能体场景提供了新的集成信息。
十五、升级后应该怎么做
对于已经升级到 v0.40.2 的用户,可以根据自身情况进行以下处理。
第一步:正常运行已有模型
旧版本下载的模型会在首次运行时于后台升级,因此通常不需要额外手动操作。
第二步:观察本地磁盘空间
如果本地模型很多,或者使用的是大参数量模型,应关注升级后备份副本带来的额外空间占用。
第三步:决定是否保留降级能力
如果未来可能使用早于 0.40 的版本,应保留备份。
如果确认不会降级,可以使用官方提供的命令删除备份模型。
第四步:查看模型列表
执行ollama list后,列表中将不再显示升级模型的重复记录,也不会显示用于降级保护的内部标签。
第五步:关注后续版本
未来版本将自动移除这些备份模型。因此,当前手动清理更多是面向希望立即释放磁盘空间的用户。
十六、总结
ollama v0.40.2 是一次围绕模型升级兼容性和本地模型管理体验展开的更新。
其核心价值可以归纳为四点:
• 旧模型在首次运行时会自动后台升级,以提升 llama.cpp 的性能和兼容性
• 升级前模型会作为备份暂时保留,以确保降级过程安全
• 用户可通过官方命令手动删除备份,但删除后降级到早于 0.40 的版本需要重新拉取模型
•ollama list将不再显示升级模型的重复条目和降级保护标签,并且仅展示模型列表中的首选子项
同时,ollama launch claude已改为使用模型完整上下文长度,README 社区集成列表也新增了oxi。
整体来看,v0.40.2 并不是一次追求大量新功能的版本,而是一次专注于升级平滑性、模型存储管理、列表展示简洁性与运行兼容性的实用更新。对于本地模型用户来说,这次升级最大的变化,是模型会更平稳地迁移到新的运行状态,而用户看到的模型列表则会更加清晰。
我们相信人工智能为普通人提供了一种“增强工具”,并致力于分享全方位的AI知识。在这里,您可以找到最新的AI科普文章、工具评测、提升效率的秘籍以及行业洞察。 欢迎关注“福大大架构师每日一题”,发消息可获得面试资料,让AI助力您的未来发展。