11 月 13 日,llama.cpp 创始人 Georgi Gerganov 在 X 上官宣:这个开源推理项目和底层张量库 ggml 同时进入 1.0.0 库版本。 消息传开后,「史诗级」「断网满血」的说法密集刷屏,但值得先把包装词和这版真正装进包里的东西分开:1.0.0 没有让本地模型一夜变快,它改变的是规则和本地跑大模型的内存用法,对已经在跑服务的人,升级前最要紧的反而不是功能,是启动脚本。打磨了三年半、一直用 b 加五位数字编号的 nightly 版本发布后,这是项目第一次正式承诺 API 稳定。IT之家知乎
「断网满血」拆开是两件事。「断网」指模型下载完成后,推理全程发生在本机,对话和数据不用出这台电脑。「满血」指能力面不再被砍:项目目前已支持超过 150 种模型架构变体。 官方亮点清单里,多模态推理、推测解码、CPU/GPU 多种硬件后端和 Linux 到 iOS 五个平台都在列,底层 ggml 还支持动态加载计算后端,让同一套推理框架适配不同硬件。蚁工厂Hugging Face
「满血」背后真正的技术变化,是这次一起打包的本地跑 MoE(总参数很大、但每个词只激活一部分「专家」网络的模型结构)的内存方案。v1.0 在功能上补了缓存、专家缓存和外部分片加载,也接入了新的模型架构和语音能力,服务端还加固了几类请求安全问题。 此前 llama.cpp 按层把专家整块交给 CPU 计算,缓存方案改为在显存里按专家驻留热点:PR 自测数据里,一个 Q4 量化后 93.7GB 的模型,专家权重独占 65.4GB,24GB 显存的 4090 放不进整模型,但缓存方案放进显存的专家(10.7 GB)比按层切(16.5 GB)还少,速度反而快了六成。 这些是贡献者在自己机器上测出来的数字,换模型、换 CPU 或换 PCIe 代数结果都会变;多数相关能力也是十月、十一月陆续合入的 PR,被 1.0 收进一个正式标签,而不是发布当天才做出来的。哔哩哔哩知乎
对普通用户来说,1.0 更长期的意义其实在版本规则:官方明确,公共 C 接口的破坏性变更提升主版本号,向后兼容的新功能或 API 新增提升次版本号,不改 API 的错误修复提升补丁版本号。 换句话说,只有公开接口出现破坏性改动才升主版本,这套语义化规则就是写给下游应用看的稳定承诺。 大量本地客户端和发行版打包的正是这个引擎,从此它们的更新节奏变得可预期;原来的 b 号 nightly 线照常发版,追新功能用 nightly、求稳定跟正式版,两条路互不干扰。知乎哔哩哔哩微博
但升级这件事本身有坑,而且主版本号跳升就是在预告这些坑。引擎对外暴露的 llama_ 开头函数从 255 个变成 237 个,被删的是 35 个带过时标记的函数和热身函数,启动参数 --defrag-thold 也被移除,库的 soname 从 libllama.so.0 变为 .so.1,靠动态链接的旧程序会直接找不到库。 自建部署的稳妥顺序是先在一台测试机把启动脚本过一遍,能启动、能带图、工具调用还能用,再动真正在跑的那台;systemd 服务文件、docker compose 的 command 字段和自己写的脚本里,都该 grep 一遍 defrag。知乎
另一处收紧在 llama-server 的安全默认值上。以前把服务绑在 0.0.0.0 上让局域网其他机器连、同时开着工具调用,旧版只打警告,新版直接退出,日志给出设 api key、改回 127.0.0.1 或显式加 --allow-unauthenticated-tools 三种解法。 发布说明里还删掉了一批已废弃 API,并给 llama-server 补了 SSRF、CORS、DNS 重绑定等防护。 用 apt、Homebrew 或捆绑客户端走的打包渠道用户,等打包方把动态库改名和更新顺序对齐再升更省心。知乎微博
最后几条边界要划清楚。1.0 的稳定承诺只覆盖 C API,不覆盖性能和命令行默认值,专家缓存的效果目前也全部来自贡献者自测,等更多机器上的独立数据出来再下定论更稳。 至于普通用户的门槛,判断可以分层:不碰命令行的人,这次发布不会直接改变你手上的软件,等客户端跟进即可;自己动手跑的人,按贡献者给出的使用建议,跑近百 GB MoE 模型的典型配置是 16 到 32GB 显存加 64 到 128GB 内存。版本号本身不会降低硬件门槛,但它打包的缓存技术确实让一张卡敢接以前装不下的模型——而官方没有给出升级前后的速度对照,快了多少,还得拿自己机器上的实测说话。知乎