LLM Inference Lab
Benchmark · 2026-09-30

三个模型在同一套脚本下的成绩

性能用 vllm bench serve 的随机数据集和固定长度压测,质量用 指标解读里定义的七项测试。三个部署的卡数和并行方式不同,比较时请对照配置。

部署配置性能质量长上下文思考开销修正记录

部署配置

模型配置
GLM-5.3-Flash8 × A800,TP4 × PP2,FP8 权重 Marlin W8A16,max-model-len 1M,max-num-seqs 16
Qwen3.6-35B-A3B2 × A800,TP2,BF16,max-model-len 128K,max-num-seqs 64
Qwen3.8-27B2 × A800,TP2,BF16,max-model-len 128K,max-num-seqs 64
nanochat-d32-sft自己训练的 d32(28 亿参数,SFT 后),1 × A800,nanochat 引擎无批处理,上下文 2048,质量题量减半
nanochat-d32-rld32 在 GSM8K 上做完强化学习后,其余同上,只测质量
nanochat-d24-sft自己训练的 d24(13.8 亿参数,SFT 后),1 × A800,nanochat 引擎无批处理,上下文 2048,质量题量减半
nanochat-d24-rld24 在 GSM8K 上做完强化学习后,其余同上,只测质量
nanochat-d12-sft自己训练的 d12(2.9 亿参数,SFT 后),1 × A800,nanochat 引擎无批处理,上下文 2048,质量题量减半
nanochat-d12-rld12 在 GSM8K 上做完强化学习后,其余同上,只测质量

性能

GLM-5.3-FlashQwen3.6-35B-A3BQwen3.8-27Bnanochat-d32-sftnanochat-d24-sftnanochat-d12-sft

左图是输出吞吐随并发的变化,右图是单请求 TPOT 随并发的变化。并发 1 的点来自 128 入 / 256 出的单流场景,其余来自 1K 入 / 256 出。

三个现象。激活参数决定 decode 速度:同样 2 张卡,Qwen3.6 每步只读 3B 激活参数,Qwen3.8 要读全部 27B,单流速度差 3.5 倍。并发曲线的形状:Qwen3.6 从并发 1 到 32 吞吐涨 11 倍而 TPOT 只从 5.8 涨到 17 ms,这是"权重每步只读一次"的收益。GLM 的吞吐在并发 16 和 32 都是 290 tok/s,32 时 TTFT 跳到 15.6 秒,因为服务的 max-num-seqs 设了 16,多出的请求在排队;加上 Ampere 上的 Triton 回退内核和流水线气泡,每卡吞吐只有 Qwen3.6 的 1/23,是最值得优化的一项。
模型场景并发输入 / 输出 token输出吞吐 tok/s总吞吐 tok/sTTFT 中位 msTTFT P99 msPrefill tok/sTPOT 中位 msTPOT P99 ms单流 tok/s端到端中位 s
GLM-5.3-Flash单流 128 入 / 256 出1140 / 256487421529365220.120.1505.3
GLM-5.3-Flash单流 2K 入12060 / 32271,7343221,7996,40720.220.2490.9
GLM-5.3-Flash单流 8K 入18204 / 32195,0188841,4139,28320.120.1501.5
GLM-5.3-Flash单流 32K 入132780 / 321110,9762,3642,41413,86619.619.8513.0
GLM-5.3-Flash并发 4,1K 入 / 256 出41036 / 256995015406821,91938.339.42610.3
GLM-5.3-Flash并发 8,1K 入 / 256 出81036 / 2561728689891,0571,04842.645.82311.9
GLM-5.3-Flash并发 16,1K 入 / 256 出161036 / 2562891,4601,7871,86558048.454.62114.1
GLM-5.3-Flash并发 32,1K 入 / 256 出321036 / 2562901,46615,64415,9906649.054.52028.2
GLM-5.3-Flash并发 16,4K 入 / 512 出164108 / 5122512,2623,9134,9121,05055.765.61831.5
Qwen3.6-35B-A3B单流 128 入 / 256 出1138 / 2561492291007351,3755.85.91731.6
Qwen3.6-35B-A3B单流 2K 入12058 / 32664,28119484010,6305.86.11730.4
Qwen3.6-35B-A3B单流 8K 入18203 / 326817,43429032128,2575.65.61780.5
Qwen3.6-35B-A3B单流 32K 入132779 / 322323,9411,1831,25027,7005.35.31881.3
Qwen3.6-35B-A3B并发 4,1K 入 / 256 出41034 / 2563461,7442062,3495,0308.015.91242.2
Qwen3.6-35B-A3B并发 8,1K 入 / 256 出81034 / 2565682,8653042,3103,40210.317.2972.9
Qwen3.6-35B-A3B并发 16,1K 入 / 256 出161034 / 2569524,7983572,5622,89912.921.2783.6
Qwen3.6-35B-A3B并发 32,1K 入 / 256 出321034 / 2561,6498,3136031,1081,71517.118.8585.0
Qwen3.6-35B-A3B并发 16,4K 入 / 512 出164106 / 5129678,7181,0351,8593,96514.516.3698.5
Qwen3.8-27B单流 128 入 / 256 出1180 / 2564882861022,09520.620.6495.3
Qwen3.8-27B单流 2K 入12100 / 32332,1893313666,34720.620.6491.0
Qwen3.8-27B单流 8K 入18245 / 32205,2099499618,69220.620.6491.6
Qwen3.8-27B单流 32K 入132821 / 3277,0783,9954,0288,21520.620.6494.6
Qwen3.8-27B并发 4,1K 入 / 256 出41076 / 2561698816216841,73221.222.8476.0
Qwen3.8-27B并发 8,1K 入 / 256 出81076 / 2563171,6525861,0431,83722.725.6446.5
Qwen3.8-27B并发 16,1K 入 / 256 出161076 / 2565422,8227911,9441,36024.930.4407.6
Qwen3.8-27B并发 32,1K 入 / 256 出321076 / 2568454,3991,3664,08278828.638.8359.7
Qwen3.8-27B并发 16,4K 入 / 512 出164148 / 5124233,8483,8486,3851,07830.536.83319.5
nanochat-d32-sft单流 128 入 / 256 出1128 / 116194043493,01159.7106.4176.8
nanochat-d32-sft并发 4,1K 入 / 256 出4384 / 983818833143,77656.985.01813.9
nanochat-d24-sft单流 128 入 / 256 出1128 / 123295942443,03253.260.3194.2
nanochat-d24-sft并发 4,1K 入 / 256 出4384 / 725031623155,75138.544.6267.3
nanochat-d12-sft单流 128 入 / 256 出1128 / 1787112143442,98212.917.0772.9
nanochat-d12-sft并发 4,1K 入 / 256 出4384 / 628460733145,49823.3291.9433.0
关于 nanochat 的六行。 这是训练实录里自己从零训练的三个模型,各有 SFT 后和强化学习后两个版本,通过一个 OpenAI 兼容的小服务接进同一套脚本。它们跑在单张卡的 nanochat 引擎上,没有批处理,上下文只有 2048,所以只测了单流和并发 4、没有长上下文档,质量测试题量减半,RL 版本只测质量。数字本身不好看,但"自己训的模型和前沿开源模型差多远"从此有了同一口径的答案。
一个修正:第一次测时,那个小服务在工作线程里跑生成,而 nanochat 的计算器靠 SIGALRM 设超时,只能在主线程用。每次调用计算器都悄悄失败,模型拿不到结果就停止作答。RL 版本几乎每一步都调用计算器,受害最重,GSM8K 上 d32-rl 从 4% 变成 20%,d24-rl 从 1% 变成 17%,d12-rl 从 1% 变成 9%;SFT 版本和 HumanEval 修复前后几乎不变。修复后全部重测,下面是修复后的数字。

质量

模型GSM8KHumanEvalC-EvalJSON工具调用图形题
GLM-5.3-Flash98.5% 197/20089.6% 147/16492.7% 278/300100.0% 20/20100.0% 10/10100.0% 12/12
Qwen3.6-35B-A3B91.5% 183/20080.5% 132/16488.0% 264/30065.0% 13/2080.0% 8/10100.0% 12/12
Qwen3.8-27B96.0% 192/20089.0% 146/16486.3% 259/300100.0% 20/2090.0% 9/10-
nanochat-d32-sft3.0% 3/10019.5% 16/823.3% 5/15070.0% 14/2010.0% 1/10-
nanochat-d32-rl20.0% 20/10014.6% 12/8216.0% 24/15070.0% 14/2010.0% 1/10-
nanochat-d24-sft6.0% 6/10019.5% 16/820.0% 0/15065.0% 13/2010.0% 1/10-
nanochat-d24-rl17.0% 17/10013.4% 11/824.7% 7/15070.0% 14/2010.0% 1/10-
nanochat-d12-sft1.0% 1/1009.8% 8/821.3% 2/1500.0% 0/2010.0% 1/10-
nanochat-d12-rl9.0% 9/1004.9% 4/822.0% 3/1500.0% 0/2010.0% 1/10-

Qwen3.8-27B 是纯文本模型,没有图形题成绩。截断按答错计。

长上下文大海捞针

模型4K16K32K64K107K128K
GLM-5.3-Flash100% / 1.7s100% / 2.9s100% / 3.9s100% / 8.1s-100% / 10.4s
Qwen3.6-35B-A3B100% / 1.2s100% / 1.7s100% / 2.2s100% / 4.4s100% / 10.1s-
Qwen3.8-27B100% / 2.3s100% / 4.1s100% / 6.6s100% / 12.6s100% / 23.9s-
nanochat-d32-sft------
nanochat-d32-rl------
nanochat-d24-sft------
nanochat-d24-rl------
nanochat-d12-sft------
nanochat-d12-rl------

三个模型在所有测试长度上全部检出。Qwen 的 128K 档实际 149K token,超过服务配置的 131072 上限被拒绝,改测 107K 档。延迟差异反映 prefill 速度:Qwen3.6 的 MoE 在长输入上最快,Qwen3.8 稠密最慢。

思考模式的开销

平均输出 token 数、单题耗时(并发 16 下)和截断题数。截断指思考超过 4096 token 预算、没来得及给出答案。

模型GSM8KHumanEvalC-Eval
GLM-5.3-Flash224 tok / 13.7s / 截断 01789 tok / 102.4s / 截断 15780 tok / 42.3s / 截断 10
Qwen3.6-35B-A3B1587 tok / 21.0s / 截断 112714 tok / 36.4s / 截断 311690 tok / 23.0s / 截断 15
Qwen3.8-27B456 tok / 11.2s / 截断 51218 tok / 29.2s / 截断 15831 tok / 20.1s / 截断 19
nanochat-d32-sft242 tok / 20.3s / 截断 11314 tok / 26.3s / 截断 19366 tok / 31.2s / 截断 87
nanochat-d32-rl98 tok / 8.3s / 截断 0158 tok / 12.9s / 截断 132 tok / 2.8s / 截断 3
nanochat-d24-sft245 tok / 17.2s / 截断 16230 tok / 15.9s / 截断 9382 tok / 25.0s / 截断 93
nanochat-d24-rl100 tok / 7.1s / 截断 1151 tok / 10.3s / 截断 2258 tok / 18.2s / 截断 42
nanochat-d12-sft294 tok / 10.2s / 截断 22375 tok / 12.6s / 截断 39435 tok / 13.9s / 截断 120
nanochat-d12-rl53 tok / 1.9s / 截断 071 tok / 2.5s / 截断 0245 tok / 8.7s / 截断 53

Qwen3.6 是最"话多"的思考者,HumanEval 有 31 题在预算内没写完代码,JSON 抽取这种简单任务也要先想一千多个 token;GLM 的答案最简洁、质量最高,代价是慢。给思考模型更大预算或关掉思考,分数会明显不同。

测试过程中修正的不公平

原始结果在仓库 results/ 目录,每条记录保留了模型输出的末尾、判分依据和 token 用量。