本地模型还能快多少?ExLlamaV3 1.5 先省下一次内存搬运
ExLlamaV3 是帮助在自己电脑上运行 AI 大模型的工具,负责加载模型和安排计算。先弄清它在本地 AI 中的作用,再看 1.5 版本如何减少内存搬运、改善等待时间。
ExLlamaV3 是一套帮助你在自己电脑上运行 AI 大模型的开源工具。它负责加载模型、调用显卡执行计算,让模型处理问题并生成回答。这个运行模型的过程,通常叫作“推理”。项目说明介绍了它支持的模型和使用方式。
例如,你想在本地运行一个文字模型,让它整理会议记录、回答资料里的问题。选哪个模型,影响它能否做好任务;运行模型的工具和硬件,则会影响它能否装得下、回答前要等多久。ExLlamaV3 主要处理后面这部分工作,适合已经在搭建或使用本地 AI 环境的人关注。
9 月 13 日发布的 1.5.0,改进了显卡与系统内存配合运行模型的方式,其中一项实验功能减少了数据中转。官方发布记录给出了不同配置的结果。要理解这次更新,可以先看看模型在电脑里是怎样运行的。
它在本地 AI 里负责哪一段工作?
一个本地 AI 的使用过程,可以分成几个部分:你在界面中输入问题,运行工具加载模型并执行计算,再把生成的答案交回界面。ExLlamaV3 处在运行工具这一层。它怎样安排计算和内存,会影响同一个模型在电脑上的使用体验。
模型文件里保存着训练得到的大量数值,也叫权重。ExLlamaV3 还提供量化工具,用更紧凑的数值表示来减小这些数据的体积,让模型少占一些存储和内存;相应的精度取舍也需要考虑。它有自己的 EXL3 格式和模型适配范围,不能把任意模型文件交给它,就假定一定能加载。
有一类模型采用 MoE,也就是混合专家结构:总参数很多,每次计算只选用其中一些“专家”。所谓专家,可以简单理解为模型里参与某部分计算的一组参数。显存不够时,运行工具可以让部分专家留在系统内存,交给电脑的通用处理器 CPU 参与处理。这就是这里讨论的 CPU offload,通常称为 CPU 卸载。
它让大模型有了装得下的可能,却也带来了调度和数据传输。显存是显卡,也就是 GPU,处理任务时使用的内存,与电脑的系统内存分开。数据放在处理器身边,通常比隔着连接通道读取更有利于性能。NVIDIA 的内存说明明确区分了这些位置。
因此,看到“模型已经成功加载”,只能说明第一关过了。跑起来以后,CPU 要处理多少工作、哪些权重需要搬给 GPU,都会影响等待时间。
“零拷贝”省的是中转,传输仍然存在
ExLlamaV3 处理长输入时,会把部分使用较多的专家权重送到 GPU 上计算,CPU 继续处理余下的一部分。旧路径在送出权重前,需要先把数据复制到专门用于传输的暂存区。
1.5.0 新增了一种特殊的内存存放方式,叫作 pinned arena。它让存放专家权重的内存区域可以直接作为传输源。少了那次暂存复制,GPU 就有机会更早收到数据。实现细节见固定版本的环境变量文档,其中的开关名是 EXL3_MOE_PINNED_ARENA。
可以把区别想成发货:原先要先把货从仓库搬到中转区,再装车;现在从原来的存放位置直接装车。省下来的是一次搬运,车仍然要开到目的地。
对应到模型运行,系统内存到显卡的数据传输仍然存在。这里使用的 DMA,是由硬件直接执行内存搬运的方式;PCIe 则是显卡与系统之间的一条连接通道,它的速度会影响搬运时间。“零拷贝”省去的是前面那次中转,不代表权重瞬间出现在显存里。
这项功能在该版本中默认关闭、处于实验状态,目前仅支持 Linux。被固定下来的内存也要占用真实的系统资源,不能被系统随意回收。决定尝试前,先确认自己确实在使用这条 CPU 卸载路径,比照着一个开关名直接开启更有用。
同样一次更新,两台机器的收益为什么差这么多?
模型的速度要分两段看:先读入和处理材料,叫预填充;再逐步生成回答,叫解码。两者都可以用每秒处理多少 token 来衡量。token 是模型处理文字时使用的小片段,并不等于一个汉字。
下面是发布者测试中的两组结果。它们都使用 Qwen3.8-Flash-Next、3.05 bpw 量化、Threadripper 7960X、80% CPU offload,并启用 pinned arena 与 ngram_ram。其中 bpw 表示每个权重平均用多少比特存储,是量化设置的一部分。表中的前后数值来自作者的新旧版本对比。
| 测试配置 | 4K 输入预填充,token/s | 单路解码,token/s |
|---|---|---|
| RTX 5090,PCIe 5.0 ×8 | 2615 → 3256,约 +25% | 53.42 → 63.27,约 +18% |
| RTX 4090,PCIe 4.0 ×4 | 1165 → 1204,约 +3% | 56.07 → 59.52,约 +6% |
*来源:ExLlamaV3 1.5.0 发布者测试。token/s 是每秒处理的 token 数,并不等于每秒汉字数;GPU 与 PCIe 配置不同,不能用这两行做纯显卡性能排名。*
最值得留意的是,两行都升级了软件,也都启用了新路径,但提速幅度相差很大。对于判断自己的机器能否受益,这比只摘出最大的百分比更有参考价值。
这些结果还包含同版本其他内核和推理优化的影响,并非只打开 pinned arena 的单变量实验。表格能告诉我们特定组合下发生了什么,却不能证明某一项改动贡献了全部收益。
你等的是第一句话,还是整篇答案?
处理输入和持续输出,卡住的地方可能不同。把这两段等待分开看,才能知道更新改善的是哪一部分体验。
同一份发布记录里,GLM5.3-Flash 在 RTX 5090、Threadripper 7960X、80% offload 的一组配置下,预填充速度提高约 30%,解码速度却基本持平。读材料更快了,后续持续输出的速度并没有跟着一起跳升。
设想你让本地 AI 助手读一份会议记录,最后只提炼几条待办。输入很多、回答很短,缩短前面的处理时间就可能改善体验。换成持续生成长篇文字,解码速度会更显眼。这是两种任务结构带来的差别,不宜合并成一个“整体快了多少”。
如果你已经在用 ExLlamaV3,可以先保留旧配置,用同一份模型、同一份材料和相同生成设置比较新版本。记录从提交到开始回答的等待,再记录整次任务耗时,同时留意显存与系统内存占用。首次加载和后续请求也应分开,否则很容易把初始化开销算成模型速度。
如果当前模型本就能完整放在显存里,或者你使用的是其他推理引擎,这个实验开关暂时未必与你有关。1.5.0 还有别的改动,但是否值得迁移整套环境,需要另算一笔时间成本。
对本地模型爱好者来说,这次更新提供了一个很实在的观察角度:在考虑下一张显卡之前,先弄清楚现有机器究竟在等计算,还是在等数据。找到了那段等待,才知道软件优化能帮上多少忙。
本文为公开资料整理与技术学习参考,不提供采编、转载或发布服务。
录音说错一句话,能让 AI 直接修改吗?AuK 的语音编辑新能力
AuK 是能按文字要求生成和修改语音的 AI 模型。录音念错几个字、语气不合适或有噪声时,它能怎样帮忙?先看一段口播如何返工,再了解效果与本地使用条件。
17GB对100GB:Qwen3.8-27B与Flash-Next做同一批任务,省下的容量换来了什么?
同做89项终端任务,17GB的27B首轮完成35项,100GB的Flash-Next完成45项;最多两次是46对53,最多四次是48对60。本文追到9月13日后续结果,区分模型能力、环境故障和返工时间;测试为苹果MLX四位量化,不是GSQ-RCO IQ3_S,也不能套到16GB显卡。
DeepSeek V4.1 Flash:读得更省,能给长任务带来什么?
DeepSeek V4.1 Flash 是能理解文字和图片、帮助整理资料与回答问题的 AI 模型。先从它能处理的工作说起,再看这次长资料处理的改进,以及使用时需要留意的变化。