同一个模型,只换推理引擎:一边说快 5.8 倍,一边复测只差 0.45%。这两条"实测"这两周在本地推理圈同时流传,底下都有一堆人站队。
吵不出结果,不是因为谁在撒谎。我把这四组数字的测试条件逐条抄下来对了一遍,发现它们测的根本不是一件事:一组在比显存分配,一组在比图编译的短输入收益,一组被计时口径吃了 1 秒,一组在比推测解码。把 5.8 倍和 0.45% 放一起互相打脸,是拿秤称了体温计。
口径对不上,你就会照着一个跟自己无关的结论去折腾引擎,或者直接掏钱换显卡。所以先把口径对齐,再决定动手。
口径一:同机、同权重、同提示词、同量化档了吗
最容易被忽略,也最常制造"翻倍神话"。
网上流传过"换个推理框架快 2.85 倍"。有位做迷你主机实测的作者把它复测了:同一台机器、同一份 Gemma 4 E4B Q4_K_M 权重(5.33GB)、同一句提示词,各跑三次取均值,命令行框架 53.45 tok/s,图形界面框架 53.21 tok/s——差 0.45%。哔哩哔哩
那 2.85 倍是哪来的?两次测试的显存分配不一样:一边 20GB 内存配 12GB 显存,另一边 8GB 配 24GB。落到系统内存里的层数一变,速度当然变,但这跟框架强弱没关系。哔哩哔哩
所以看到倍数先问三句:模型文件是同一个吗?量化档是同一个吗?上下文长度设的是多少?三个里有一个不一样,倍数就只能当参考。

口径二:冷的还是热的
同一次实测里的另一个数字:模型从敲回车到吐第一个字要 5.56 秒;常驻之后再问,首字只要 0.05 秒。上百倍的差距,跟引擎强弱没关系,只跟你有没有重新加载权重有关。哔哩哔哩
所有只报一个"平均速度"、不写冷热的对比,都可能把加载时间混进来或者甩出去。你日常体验里最烦的"等半天没反应",多半是这一层,而不是出字速度。
口径三:计时窗口把什么算进去了
一组"生成快 38%“的对比:halogen-flash-server 对 llama.cpp,服务端口径 31.1 对 22.5 tok/s。作者自己写明"这不是一组干净的对照实验”——halogen 每请求多背 1.02 秒固定开销,而且这 1 秒被算进了生成速度的分母里,生成越短被拖累越重;它的模板还多 40 个 token 前缀。知乎
按客户端窗口重算,同一组数据的解码能到约 44 tok/s,比服务端口径高了四成,真值落在两者之间。跨引擎比数字之前,先看它数的是服务端吐字还是客户端收字、固定开销算不算。知乎
口径四:提速发生在哪一段
推理分两段:预填充(读你输入的那段)和解码(一个字一个字往外吐的那段)。这两段的瓶颈不一样,倍数也不能混着看。
"只换引擎快 5.8 倍"那组是真数字:RTX 5070 Ti Laptop 上跑同一个结构化决策模型,短输入 p50 从 23.6ms(PyTorch)降到 4.1ms(TensorRT)。但同一个作者也写了,输入拉到 1024 token 时只剩约 2.1 倍,而且那组对比还不是同一份权重。哔哩哔哩
Mac 上那个"解码约 2 倍"说的是另一段:MTPLX 用模型自带的 MTP 头做推测解码,作者宣称 16GB M4 Mac mini 1.6 倍、M5 Max 2.24 倍。知乎
你的痛点如果是"读长文档慢",看解码倍数没用;如果是"打字机一样往外蹦",看预填充和单次延迟的倍数没用。
对齐之后,哪些收益是真的
引擎能给的收益分三层,含金量完全不同。
算法级:值得认真看。 Mac 上那个约 2 倍的解码提速,靠的是让模型用自己带的 MTP 头先起草几个 token、再一次前向验证,不是另配一个草稿模型吃内存。关键在于它用精确拒绝采样保证了输出分布跟普通解码完全一致——有些加速方案用贪心前缀匹配,在温度大于 0 时其实是悄悄改了模型的输出。这层收益跟硬件无关,装上就有效。知乎
编译级:看场景。 TensorRT 那个 5.8 倍是真的,但它吃的是小模型、短输入、固定形状的用例。你跑的是几十 B 的对话模型、动辄几千上万 token 的上下文,收益会缩水到 2 倍上下,而且换引擎还要重做一遍部署和校验。
配置级:最被低估,也最省钱。 很多"该换显卡了"的真实病因在这一层:量化档跟显存不匹配导致疯狂读硬盘、并行参数默认值太高、offload 层数设过头把层踢回系统内存、模型放在机械盘上。有用户整个中秋加半个国庆都在折腾新显卡,最后发现问题出在 KV 缓存和量化档的搭配上——Q4 量化跑 27B,满载只有约 200 的预填充和 15 的解码;换到 MoE 小激活模型,128K 满上下文能有约 800 填充、40+ 解码。这是模型选型和参数的事,不是引擎品牌的事。小红书
还有一条所有引擎都改不了的下限:内存带宽。 一次实测算得很直白:每吐一个字,都要把那 5.33GB 权重从头读一遍,出字速度就是这条搬运通道的上限。换框架、换引擎、换皮肤,都改不了带宽。这也是为什么"同档硬件换个引擎就起飞"的承诺,往往在稠密大模型的解码阶段落空。哔哩哔哩

先花十分钟,再决定花钱还是花时间
不用装任何新东西,你自己就能定位卡在哪一层。同一个问题连问两次,看四个现象:
第二次比第一次快很多 → 卡在加载,去调缓存和常驻,别动引擎;
两次一样慢、吐字均匀 → 卡在带宽,引擎救不了,后面再说;
输入越长越慢 → 卡在预填充,长上下文和文档场景才值得看引擎;
回答越长越卡 → 卡在解码,MTP 这类算法级加速才有意义。
四种症状对应四种解法,别拿 A 的药治 B 的病。

确认症状之后,先把免费的做完。 量化档对齐显存、限制并行数(家用单机把并行压到 1 通常就不抢显存了)、模型放固态、offload 层数调到刚好、清掉不用的缓存。这些一毛钱不花,通常比换引擎的收益更稳。小红书
再考虑换引擎。 三种情况值得换:你在 Mac 上跑带 MTP 头的新模型;你的用例是小模型、短输入、固定格式;你现在的引擎连基本的显存管理都做不好。其余情况,特别是跑大参数稠密模型的解码,换引擎大概率只换来折腾。
最后才是花钱。 如果免费的都做完了还是慢,而且慢在带宽——那就是硬件的事:加内存、换带宽更高的卡、或者换统一内存的机器才有意义。这时候掏出的钱,是在买一条更宽的搬运通道,不是在给某个引擎投票。
最后
这两周的本地推理圈不缺"提速 X 倍"的实测,缺的是把测试条件一起写清楚的实测。下次再刷到这类数字,先问四句:同机同权重吗?冷的热的?计时窗口含什么?提速在预填充还是解码?
四句问完,一半的"倍数"会缩水成"配置差异",另一半才值得你动手。动手之后是折腾引擎还是掏钱,取决于你卡在哪一层——跟标题里那个倍数没什么关系。