![]()
![]()
![]()
前言
2026年5月6日,ollama正式推送v0.23.1最新稳定版本,作为小版本迭代更新,本次版本看似版本号跨度不大,实则带来了Mac平台MLX运行器核心能力升级、Gemma4 MTP多令牌推测解码正式适配、底层依赖版本升级、CI编译流程修复、命令行功能增强、模型创建规则重构等一系列重量级变更。
本次更新累计包含7次代码提交、61个文件发生变更、实现5047行代码新增与488行代码删除,由4名代码贡献者共同完成迭代。更新覆盖MLX与MLX-C底层库线程问题修复、Go语言版本升级至1.26、Gemma4 MTP推测解码功能新增、Windows文件路径适配、CI编译配置修复、Docker镜像构建优化、CUDA编译参数调整、Modelfile创建命令规则重构、单元测试用例新增、日志错误匹配规则扩充、Gemma4模型推理权重加载与KV缓存逻辑重构等全方位内容,本文将完整复刻官方更新日志与代码差异全部内容,无删减、无新增、无遗漏,全方位拆解ollama v0.23.1所有变更细节与技术价值。
一、版本基础信息与核心亮点概述
ollama v0.23.1为当前最新发布版本,正式发布时间为2026年5月6日,核心主打功能为MLX运行器适配Gemma 4 MTP多令牌处理机制。
Gemma 4 MTP多令牌推测解码现已正式在Mac设备上提供支持,针对Gemma 4 31B编码专用模型,在代码编写、程序开发类推理任务场景下,能够实现超过2倍的推理速度提升,大幅降低Mac本地部署大模型进行编码开发、代码补全、程序调试的等待耗时,彻底优化Apple芯片设备运行超大参数量编码模型的体验。
用户可通过官方原生命令直接拉起适配MTP加速的Gemma4 31B模型,执行命令如下:
ollama run gemma4:31b-coding-mtp-bf16
除核心的MTP推理加速功能外,本次版本三大核心代码变更要点清晰明确,分别为:
第一,更新MLX和MLX-C依赖库,完成底层线程相关问题修复,解决旧版本中MLX引擎并发运行、多线程调度存在的隐性bug,提升Mac平台模型运行稳定性;
第二,将项目Go语言基础版本升级至1.26,跟进Go官方新版本特性,同时兼容新版语法、标准库能力与编译优化特性;
第三,新增Gemma 4 MTP推测解码完整逻辑,从模型注册、推理调度、Draft草稿模型配置、令牌策略设定多维度完成全链路适配。
二、版本提交记录与迭代时间线明细
本次ollama v0.23.1从代码提交到正式发布,迭代周期集中在2026年5月4日至5月5日,全部提交记录与变更内容完整如下:
1. 2026年5月4日:完成MLX和MLX-C库更新,同步修复底层线程相关缺陷,对应合并请求编号15845;
2. 2026年5月4日:完成项目Go语言版本升级至1.26,对应合并请求编号15904;
3. 2026年5月5日:新增MLX引擎对Gemma4 MTP功能的底层支持,搭建核心推理框架;
4. 2026年5月5日:执行gofumpt代码格式化与静态语法检测工具适配,统一项目代码规范;
5. 2026年5月5日:针对Windows系统文件路径解析逻辑进行适配修复,解决跨平台路径识别异常问题;
6. 2026年5月5日:将Draft草稿令牌策略设置为常量固定配置,统一MTP解码全局规则;
7. 2026年5月5日:修复MLX引擎对应的CI持续集成编译配置,解决自动化构建流程报错问题。
整体迭代过程紧凑高效,从底层依赖修复、语言版本升级,到核心功能开发、代码规范格式化、跨平台适配、编译流程修复全覆盖,同时整体代码变更规模为5047行新增代码、488行代码删除,61个业务与配置文件参与修改,整体变更范围覆盖编译配置、容器镜像、命令行逻辑、模型推理、单元测试、开发文档、底层引擎等全模块。
三、各文件代码变更细节完整解析 3.1 工作流配置文件.github/workflows/release.yaml变更
本次发布流水线配置存在7处代码变更,5行新增、2行删除,核心调整ollama各架构组件打包归档规则:
原有配置中将lib/ollama/mlx*目录文件统一归入通用归档包,新版本进行规则拆分,将mlx相关组件单独拆分归档至ollama- {{ matrix.arch }}-mlx.tar.in,其余include类目录保持原有归档规则不变。
同时在Linux amd64架构、ROCm硬件适配场景下,补充编译构建参数配置,完善多平台多硬件架构下的发布打包逻辑,区分通用版本、MLX专属版本、Jetpack5/Jetpack6版本、ROCm版本归档隔离,避免不同加速引擎文件混杂打包,提升版本分发与安装部署的规范性。
3.2 编译配置文件CMakeLists.txt变更
CMakeLists.txt存在8处代码变更,8行新增无删除,主要针对MLX引擎编译安装规则进行补充:
在启用MLX引擎的编译条件下,新增jaccl目标库的安装配置,分别指定运行时文件、库文件、框架文件的安装目录,并归属至MLX组件分类下。
同时保留原有macOS arm64架构下Metal运行库的专属安装注释与逻辑,明确Metal后端仅为Apple Silicon arm64架构编译适配,不支持x86_64架构设备,完善跨架构编译依赖库的安装管理,保证MLX引擎依赖组件完整部署。
3.3 编译预设配置CMakePresets.json变更
该文件仅2处变更,1行新增1行删除,调整CUDA编译核心参数:
将CMAKE_CUDA_FLAGS编译参数从-t 4修改为-t 2,同时固定CUDA架构适配列表,涵盖从75-virtual到121-virtual全系列架构,保持cuda_v13运行器目录配置不变,平衡CUDA编译线程数与硬件兼容性,避免高线程编译导致的资源占用过高、编译失败问题。
3.4 容器构建Dockerfile变更
Dockerfile存在5处代码变更,4行新增1行删除,优化Ubuntu 24.04基础镜像构建流程:
新增APT_MIRROR镜像源参数变量,默认使用官方ubuntu归档源,通过sed命令动态替换系统软件源配置,执行软件包更新、证书依赖、Vulkan运行库、OpenBLAS数学库安装,安装完成后还原默认软件源配置,最后清理apt缓存与无用目录,精简镜像体积。
该优化解决了国内及不同网络环境下Docker构建拉取软件包超时、失败的问题,同时保留多阶段构建逻辑,从编译镜像、运行镜像分层拷贝二进制文件与依赖库,保证ollama容器镜像轻量化与完整性。
3.5 底层依赖版本标识文件MLX_C_VERSION、MLX_VERSION
两个版本标识文件各2处变更,均为1行哈希值替换无删除:
分别更新MLX-C与MLX核心库的提交哈希标识,切换至修复线程问题后的最新版本,让项目编译时自动拉取修复后的依赖源码,无缝接入底层线程bug修复能力,无需手动修改依赖引入逻辑。
3.6 命令行核心逻辑cmd/cmd.go变更
cmd/cmd.go共计61处变更,54行新增7行删除,是本次版本命令行功能升级的核心文件:
1. 新增多包依赖导入,补充xcreate、xcreateclient相关模块引用,支撑实验性模型创建能力;
2. 新增isLocalhost本地地址判断函数,用于校验远程与本地模型创建场景区分;
3. 新增resolveExperimentalLocalModelDir实验性本地模型目录解析函数,支持基于Modelfile文件路径解析相对模型目录,识别safetensors与tensor格式模型目录合法性;
4. 新增resolveExperimentalDraftDir草稿模型目录解析函数,校验Draft草稿模型路径是否为合法safetensors目录,同时限制非绝对路径下仅支持本地相对目录引用,暂不支持远程模型引用;
5. 重构CreateHandler模型创建核心处理函数,增加--draft-quantize参数校验逻辑,强制要求draft-quantize量化参数必须搭配--experimental实验性参数使用,否则直接返回错误提示;
6. 重构实验性模式下本地模型目录、Draft草稿模型目录的路径解析逻辑,替换原有简单路径拼接为专用解析函数,提升路径兼容性与合法性校验能力;
7. 扩展CreateModel入参配置结构体,新增DraftQuantize草稿模型量化参数传递,适配MTP模式下草稿模型单独量化需求;
8. 重构CLI命令初始化的参数校验逻辑,在非实验模式下禁止draft-quantize参数传入,强化参数约束规则;
9. 为create命令新增--draft-quantize命令行参数,用于指定Draft草稿模型量化等级,与--experimental参数强绑定。
整体重构了ollama create命令的实验性模式、草稿模型引用、模型路径解析、量化参数管控全流程规则,让Modelfile中DRAFT关键字、草稿模型量化功能具备规范的使用约束与路径解析能力。
3.7 命令行单元测试cmd/cmd_test.go变更
该文件存在82处变更,82行新增无删除,批量新增完整单元测试用例,覆盖本次命令行所有新增逻辑:
1. 新增TestCreateHandlerDraftQuantizeRequiresExperimental测试用例,校验draft-quantize参数不携带experimental参数时是否正常抛出错误;
2. 新增TestCreateHandlerDraftRequiresExperimental测试用例,校验Modelfile中配置DRAFT关键字但未开启实验模式时的错误拦截逻辑;
3. 新增TestResolveExperimentalLocalModelDir测试用例,覆盖模型名称引用、本地相对目录引用两种场景,验证目录解析函数准确性;
4. 新增TestResolveExperimentalDraftDir测试用例,校验合法本地草稿目录解析、非法远程模型引用报错两种场景,匹配官方约束规则。
所有测试用例均基于临时目录生成Modelfile与模型目录,模拟真实使用场景,保证命令行新增逻辑的稳定性与兼容性,避免后续迭代引入功能回归问题。
3.8 开发文档docs/development.md变更
开发文档存在29处变更,无新增内容、删除29行原有注释说明:
完整移除原有关于go1.24版本synctest实验包的说明文档,包括synctest包启用背景、CI编译失败排查方式、临时启用命令、全局环境变量配置方法、生产构建无需依赖synctest包等全部备注内容。
删除原因在于项目已升级至Go1.26版本,synctest相关兼容问题已在新版本中彻底解决,无需再保留旧版本适配说明,精简开发文档冗余内容。
3.9 项目依赖配置go.mod变更
go.mod文件仅2处变更,1行新增1行删除,将Go语言版本声明从go 1.24.1升级为go 1.26.0,同步匹配项目底层版本升级,规范模块依赖编译的Go版本约束,确保编译环境与项目语法特性匹配。
3.10 推理状态日志llm/status.go变更
该文件存在23处变更,17行新增6行删除,扩充模型运行错误日志匹配规则:
在errorPrefixes错误前缀数组中新增mlx:、MLX:两类匹配标识,让状态日志捕获机制可以精准识别MLX引擎运行过程中抛出的错误信息,统一CUDA、ROCm、MLX、程序panic、致命错误、常规运行错误的日志捕获规则,便于用户与开发人员排查Mac端MLX模型运行异常问题。
3.11 Gemma4模型底层推理逻辑llm目录相关代码变更
本次版本大规模重构Gemma4 Assistant辅助模型、MTP推测解码、KV缓存、注意力机制、权重加载核心逻辑,包含大量结构体方法与推理流程重构:
1. 新增AssistantModel辅助模型结构体完整权重加载逻辑,适配safetensors格式权重解析,分模块加载嵌入层、投影层、归一化层、注意力层、MLP层权重,校验各层权重完整性,缺失关键权重直接抛出明确异常信息;
2. 新增precomputeScaledWeights预计算缩放权重方法,统一各层归一化权重、注意力Q归一化权重的缩放缓存,减少推理过程重复计算,提升运行效率;
3. 重构Draft推理核心方法,实现输入嵌入、位置编码、多层网络前向传播、KV历史缓存关联、隐藏层归一化与解嵌入全流程调度;
4. 新增sharedHistories共享KV历史缓存方法,区分滑动注意力与全量注意力缓存视图,适配Gemma4模型分层KV缓存共享机制;
5. 完善unembed解嵌入与applyCentroidMasking质心掩码逻辑,支持有序嵌入模式下的词汇映射与候选日志计算;
6. 重构AssistantLayer层前向传播方法,集成RMS归一化、注意力计算、MLP前向传播、层缩放系数相乘逻辑,兼容滑动窗口注意力与全局注意力两种模式;
7. 重构AssistantAttention注意力前向传播逻辑,根据是否为滑动窗口动态切换头维度、缩放系数、RoPE参数、KV历史缓存,集成RoPE位置编码、因果掩码、滑动窗口掩码、缩放点积注意力计算,同时适配Metal环境下张量连续化处理规则。
该文件存在30处变更,29行新增1行删除,完成Gemma4 MTP能力注册与默认参数配置:
1. 在init初始化函数中新增Gemma4AssistantForCausalLM、gemma4_assistant两类Draft模型注册,将辅助模型纳入框架管理体系;
2. 实现MTPDefaultsProvider接口,新增MTPDraftDefaults方法,针对不同规格Gemma4模型配置专属MTP默认参数:通用模型初始草稿令牌4个、最大草稿令牌16个;Gemma4 31B非MoE模型初始草稿令牌固定14个;26B MoE模型初始草稿令牌固定8个;
3. 新增TokenEmbeddings令牌嵌入方法,为MTP多令牌解码提供缩放后的令牌嵌入张量;
4. 完善NewCaches缓存创建逻辑,适配不同层数、不同架构Gemma4模型的KV缓存分层创建规则,区分共享缓存与独立缓存层级。
该文件存在97处变更,97行新增无删除,新增大批量Gemma4 MTP与缓存逻辑测试用例:
1. 新增TestMTPDraftDefaults测试用例,覆盖空配置、31B bf16、31B量化版、26B MoE、通用模型五种场景,校验MTP初始草稿令牌、最大令牌、功能启用状态的默认配置准确性;
2. 新增TestNewCachesAssistantSharedHistoryOrdering测试用例,针对31B、26B-A4B、E4B、E2B不同规格模型,校验KV缓存层数、滑动注意力与全量注意力缓存顺序的正确性;
3. 保留原有权重前缀解析、层类型检测测试用例,与新增用例共同保障Gemma4 MTP功能、缓存机制、默认参数配置的可靠性。
本次v0.23.1最核心的升级即为Mac MLX运行器适配Gemma4 MTP多令牌推测解码,该技术的落地对本地大模型部署有着极高实用价值。
MTP多令牌处理与推测解码的核心原理是通过Draft辅助模型提前一次性预测后续多个令牌,再由主模型进行校验筛选,无需逐令牌串行生成,在代码编写、接口开发、脚本调试这类长上下文、多连续输出的编码场景下,能够大幅减少推理迭代次数。
针对Gemma4 31B编码专用模型,在Mac Apple芯片设备上借助MLX硬件加速+MTP推测解码双重优化,直接实现2倍以上推理速度提升,且新版本针对不同参数量、是否启用MoE混合专家架构的Gemma4模型,做了精细化的MTP草稿令牌默认参数适配,无需用户手动调参,开箱即用。
同时底层完成MLX与MLX-C线程问题修复,解决旧版本多令牌并发生成时的线程死锁、调度卡顿、内存泄漏等隐性问题,在提速的同时保障运行稳定性;Go语言升级至1.26则带来编译优化、标准库性能提升、语法兼容性增强等底层红利,为后续更多新功能迭代打下基础。
五、命令行使用规则变更说明
随着本次--experimental、--draft-quantize、Modelfile DRAFT关键字能力升级,ollama v0.23.1新增明确的使用约束规则,所有规则均已固化到代码逻辑与单元测试中:
1. --draft-quantize草稿模型量化参数必须搭配--experimental参数使用,单独使用直接报错;
2. Modelfile中配置DRAFT关键字引用草稿模型目录时,必须开启--experimental实验模式,否则拦截创建请求;
3. 实验模式下DRAFT仅支持本地绝对路径、相对Modelfile的本地目录路径,暂不支持远程模型名称引用;
4. 实验性safetensors模型创建仅支持本地localhost服务,不支持远程服务节点操作;
5. MTP解码的Draft令牌策略已设置为全局常量,无需用户自定义,框架按模型规格自动适配初始与最大草稿令牌数量。
用户在使用自定义Modelfile搭建Gemma4 MTP模型、手动量化草稿模型时,必须遵循以上约束规则,避免参数搭配错误、路径引用异常导致创建失败。
六、跨平台与编译适配优化总结
本次v0.23.1在跨平台适配、编译构建、容器部署三大维度做了大量精细化优化:
1. Windows平台:修复文件路径解析逻辑,兼容Windows特殊路径分隔符与目录引用规则;
2. Mac平台:MLX底层线程修复、MTP完整适配、Metal架构专属编译安装规则、错误日志精准捕获;
3. Linux平台:CUDA编译线程参数调优、ROCm硬件打包规则完善、APT镜像源动态适配解决构建超时;
4. 容器Docker:优化Ubuntu基础镜像构建流程,动态切换软件源、精简镜像冗余依赖、分层构建轻量化镜像;
5. CI编译:修复MLX引擎自动化构建配置,适配多架构、多硬件加速引擎的流水线打包发布。
1. 本地Mac部署Gemma4 31B编码模型、追求代码推理速度提升的开发者,建议立即升级,直接享受MTP两倍提速红利;
2. 使用Modelfile自定义构建模型、需要搭配Draft草稿模型做推测解码、模型量化的用户,升级后可使用全新的实验性模式与draft-quantize参数,规范化模型构建流程;
3. 基于ollama二次开发、依赖MLX引擎、Go底层框架的开发者,升级至v0.23.1可获取线程bug修复、Go1.26新特性、完善的单元测试与日志捕获能力;
4. 容器化部署、多架构服务器集群部署场景,升级后拥有更完善的打包规则、镜像构建优化、跨硬件适配能力,降低运维部署成本。
代码地址:github.com/ollama/ollama
ollama v0.23.1虽然定位为小版本迭代,但是内部改动深度与功能价值远超常规补丁版本,核心落地Gemma4 MTP多令牌推测解码能力,补齐Mac MLX运行器推理加速短板,实现编码任务速度翻倍;同时完成Go1.26版本升级、MLX底层线程修复、命令行规则重构、跨平台编译适配、单元测试全覆盖、开发文档精简等一系列底层与生态优化。
本次更新61个文件变更、7次代码提交、5047行代码新增,从用户可用的顶层命令、模型运行加速,到底层依赖、编译配置、跨平台适配、代码规范、测试用例全覆盖,无多余新增功能,全部基于原有架构做能力增强与bug修复,是注重稳定性、性能提升、规范使用流程的必升级版本。
我们相信人工智能为普通人提供了一种“增强工具”,并致力于分享全方位的AI知识。在这里,您可以找到最新的AI科普文章、工具评测、提升效率的秘籍以及行业洞察。 欢迎关注“福大大架构师每日一题”,发消息可获得面试资料,让AI助力您的未来发展。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.