llama.cpp 发 v0.9.0,万亿模型和 FP8 一起到位
本地跑大模型的朋友大概都有体会:模型出得比硬盘腾得快,上一个量化版刚下完,下一个又上架了。
llama.cpp 这周又更新了一版,节奏正好踩在这个痛点上。
11 月 4 日,ggml-org 发布 llama.cpp v0.9.0,新增 OCP FP8 E4M3 张量类型,并加入包括 Mistral Large 4 在内的四个新模型架构。我们 AI主线 的看法是:这一版的分量不在某个单点功能,而在 llama.cpp 把“万亿参数的开放权重模型能落到个人机器上”这件事,写进了稳定版。
一周一个版本,这节奏是认真的?
先说个容易被忽略的细节。
llama.cpp 以前主要靠 b 开头的构建号过日子,几乎每个提交都会打一个。后来官方加了 vX.Y.Z 形式的稳定标签,意思是“这个点比较靠谱,下游可以放心打包”。v0.8.0 是 10 月 28 日的事,v0.9.0 隔了一周就来了。
一周一个稳定版,够卷。
Mistral Large 4 的开放权重 10 月 29 日上了 Hugging Face,有本地部署教程说 llama.cpp 当天就有支持,那是在主干上。想等稳定版的人,到 11 月 4 日才拿到。这一周的差距,追主干的人不在乎,用 brew 或 winget 一键安装的人在乎。
发布说明还提了一句,llama.cpp 连续第三年入选 GitHub Octoverse 报告的重点仓库。这是项目自己的说法,不过一个本地推理引擎能连着三年上这个榜,说明它早就不是玩具了。
FP8 E4M3 是啥,跟万亿模型有什么关系
FP8 是用 8 位,也就是一个字节,存一个浮点数。E4M3 的意思是 4 位给指数、3 位给尾数:量程够宽,精度偏粗,好比一把刻度稀一些、但能量很大物件的尺子。OCP 是开放计算项目,这个格式出自它的规范。这次加的是“饱和模式”,数值超出范围就卡在最大值,不会冲成无穷大。
那它跟万亿模型有什么关系?
Mistral Large 4 是混合专家模型,总参数约 1.05 万亿,每个 token 激活约 49B,上下文 100 万 token,许可证是改过的 MIT:商用可以,但做“模型即服务”的服务商要另谈授权。它官方权重的主版本就是 FP8,整套文件约 1060GB。
llama.cpp 原来靠一堆 Q 开头的量化格式吃饭,现在原生认 FP8,等于能直接读厂商发出来的格式。这是我的推测,ggml 团队没这么写过,但时间点实在太巧。
普通人怎么跑?有教程说,ggml-org 放出的 Q2_K 量化版约 381GB,一台 512GB 统一内存的苹果芯片机器塞得下。教程还引用 Hugging Face 的数据,M3 Ultra 上生成速度大约每秒 15 个 token。私人折腾够了,让它跑智能体循环就别想了(一台这样的机器放在家里,各位心里有数)。
另一头,ggml 升到 v0.29.0,带来基于 NCCL 的多机张量并行,官方措辞是“初步支持”。把一个模型切到几台机器上跑,万亿级模型迟早要走到这一步。CUDA 后端还加了融合的 MoE MMQ,Metal 上的 MXFP4 矩阵向量乘也提速了,这类优化对混合专家模型很对口。
大模型之外,语音和小模型也有料
这版新增的架构不止 Mistral Large 4。Clover-35B-A3B 预览版是扩散模型,Limite 1B 是小尺寸,Metis-1.6 走的是 Mamba-2 和 GQA 注意力混合的路线。
语音这块动静更大。新增 Chatterbox TTS、Pocket TTS 的预设音色(不用声音克隆),还有 Nemotron 3.5 Transcribe 离线转写,官方说支持 40 种语言,能区分说话人。服务端的 /props 能报告模型自带的 TTS 音色,TTS 接口可以直接按音色名调用。
再加上 0.8.0 带的实验性实时音频输入(这是第三方整理的更新说明),一个 llama-server 里,文本、视觉、转写、合成一块块补上了。做本地语音助手的人,这周真香。
还有 Gemma 4。Google 在 4 月 2 日发布了这个系列,Apache 2.0 协议,其中 E2B 和 E4B 是面向手机的两个小尺寸。这次 llama.cpp 官方说为它俩的预填充做了大幅优化。预填充就是模型读完你的提示词、开口之前那一段,提示词越长越吃这一段,跑智能体尤其明显。
发布说明里没有的东西
这版发布说明几乎全是“做了什么”,很少有“快了多少”。
Gemma 4 的预填充,官方只说“大幅提升”,没给倍数。flash_attn_ext_rows 这个新算子,说的是让统一 KV 缓存在多序列推理时更高效,并恢复非统一 KV 的预填充性能,同样没给数字。跑分党这周得先自己动手,别急着转发“提速多少倍”。
Mistral Large 4 的量化版也要留个心眼。Unsloth 这类社区量化版不是 Mistral 官方出品,质量好坏得自己验。
还有个坑留给写下游的人:新的批量张量拷贝 API 取代了原来的 _2d 接口,目前只在 Metal 和 CUDA 上实现。版本号还是 0.x,接口还会动。
我的判断是,llama.cpp 这一周把“能不能跑”的问题,往“跑得值不值”推了一步。接下来盯两件事:多机张量并行从“初步支持”走到能用,要多久;越来越多的模型直接拿 FP8 发权重,会不会逼着整条本地工具链都原生认这个格式。