简介:本文面向开发者和技术负责人,系统梳理端侧大模型推理吞吐能力的评测方法、关键指标与结果边界。通过一组典型的笔记本单卡实测案例,分析并发路数、草稿深度、接受率与功耗墙如何共同决定聚合吞吐与单流延迟,并给出可复现的评测框架与风险提示,帮助读者在类似场景中理性评估模型推理性能。
在端侧设备上运行大模型,吞吐能力是最受关注的指标之一。但“吞吐”一词往往被笼统使用,不同口径下的数据可能相差数倍。本文评测的核心问题不是“某款模型能否跑起来”,而是“在单台笔记本、单张显卡的硬件条件下,大模型推理引擎的吞吐能力如何被准确评估”。通过一组完整实测记录,拆解吞吐构成因子,并解释为什么不同测试方法会得到差异巨大的结论。
本文适合以下读者:
本次评测重点回答三个问题:
评测不追求“跑出一个好看的数字”,而是希望建立一套区分“极限脉冲”“持续吞吐”“单流体验”的评测语言,帮助研发团队在真实业务场景中合理设定性能预期。
被评测对象可以抽象为以下三部分:
评测的核心机制是“草稿深度”。推理引擎可先让模型快速生成草稿 token,再由目标模型并行验证。草稿深度越大,单轮提交的 token 数越多,但也会引入额外的计算成本。如何选择合适的草稿深度,是吞吐优化的关键。
端侧推理吞吐评测不能只看单一数字,至少需要覆盖以下维度:
| 维度 | 说明 | 为什么重要 |
|---|---|---|
| 聚合吞吐 | 多路并发下,引擎整体每秒生成的 token 数 | 反映系统整体处理能力,是资源利用率的直接体现 |
| 单流吞吐 | 单条请求的生成速度 | 反映用户体验,尤其在交互式场景中至关重要 |
| 峰值窗口 | 短时间窗口内的瞬时最大吞吐 | 用于理解引擎的脉冲能力,但不能代表持续性能 |
| 接受率 | 草稿 token 被验证通过的比例 | 影响实际有效提交 token 数,是推测解码的核心指标 |
| 稳定性 | 长时间运行或多轮请求后吞吐是否衰减 | 避免因功耗墙、缓存失效等因素导致性能高开低走 |
| 资源消耗 | 显存占用、功耗、温度变化 | 笔记本场景下直接决定能否持续运行 |
为了保证评测结果可解释,必须在固定前提条件下进行测试:
完整评测流程建议分为以下步骤:
在单路请求下测量基础吞吐和首 token 延迟,作为后续所有对比的基线。此时不存在并发干扰,能够反映引擎单流处理能力。
实测基线数据:单流吞吐约 325.4 token/s。注意该数据与草稿深度、内容可预测性相关,不能直接推广到所有模型。
分别设置草稿深度为 6、8、15,保持并发路数和请求内容不变,观察端到端吞吐变化。草稿深度并非越大越好。在普通内容(如混合代码与自然语言)上,草稿深度 15 可能不如 6 或 8;而在高度模板化、可预测的内容上,深度 15 可以显著提升吞吐。
关键发现:在八路并发条件下,将草稿深度从 8 提升到 15,端到端吞吐从约 858.5 token/s 提升到 1302.9 token/s。这说明草稿深度是影响聚合吞吐的最敏感参数之一。
从一路开始逐步增加并发请求数量,记录每路请求的延迟、聚合吞吐以及显存/功耗变化。实测中,八路并发达到引擎设计上限。继续增加并发需要修改底层调度回放的行数几何,说明硬件资源对并发路数存在硬约束。
注意:并发路数越高,单流延迟会相应增加。需要综合考虑聚合吞吐与业务对延迟的容忍度。
设计多组不同内容的请求样本:
在相同参数下分别测量接受率。实测结果显示,接受率并非由内容“是否可预测”简单决定。例如,仅重复单个字母 “a” 的内容,由于输出存在 stop token 约束,接受率反而很低;而带有明确数量要求的 prompt,哪怕内容并不简单,也能获得接近 99.9% 的接受率。这一结论颠覆了“内容越模板化,接受率必然越高”的直觉。
记录连续运行过程中的 GPU 功耗、温度与吞吐曲线。笔记本场景下,功耗墙往往比散热更能限制性能。实测中,默认功耗档位下八路并发吞吐仅约 580 token/s;而在手动解除功耗限制后,同一环境可达到更高的持续吞吐。因此,评测报告中必须包含功耗设置这一关键变量。
检查测试脚本中的分母和计时方式。需要确认:
实测过程中曾经出现过两处统计错误:一处将标称时长(12 秒)误当作实际耗时(实际请求跑了 29 至 103 秒),导致计算出的“八路 1200/1269”远高于真实值 489.6;另一处将 5 秒窗口的瞬时值直接当作持续吞吐,得出“八路 780”的虚高数据。这些例子说明,相同的日志如果统计口径不同,可能得出数倍差异的结论。
端侧推理引擎的吞吐量可以拆解为三个因子:
聚合吞吐 ≈ 并发路数 × 每轮提交 token 数 × 轮速
其中:
实测中,并发路数为八路,草稿深度为 15,接受率高达 99.9% 时,引擎在 5 秒窗口内的峰值达到 1508 token/s,端到端平均为 1302.9 token/s。而将草稿深度降低到 8 时,端到端降至 858.5 token/s。峰值的三个因子都已经接近当前硬件与引擎的极限,进一步提升的空间不大。
理论上草稿深度增加后,验证阶段的计算量会线性增加,单次请求的延迟应该变差。但实测并非如此。原因在于,草稿更深时,单个请求的 Materialized 慢路径固定开销会增大,但在多路并发下,这个固定开销被 batch 维度摊薄,单位 token 成本反而下降。也就是说,相同硬件条件下,并发路数越多,越能掩盖慢路径带来的额外成本。
接受率从 84% 提升到 99.9% 能大幅提升吞吐,但这与内容是否“简单”没有必然关系。实测表明,prompt 中写死数量要求(如“列出 5 个要点”)能够显著提升接受率,因为输出长度和结构更容易被草稿精准预测。相反,看似简单的重复字符任务,可能因为模型必须输出特殊终止 token 而导致草稿验证失败。
不同业务场景对吞吐和延迟的敏感度不同,应关注不同的指标组合:
| 场景 | 重点关注指标 | 评测验证重心 |
|---|---|---|
| 单用户对话 | 单流吞吐、首 token 延迟 | 在低并发下验证模型生成速度是否满足交互等待 |
| 多 Agent 协作 | 聚合吞吐、并发稳定性 | 重点测试多路并发时的吞吐衰减和资源争抢 |
| 代码补全 IDE 插件 | 首 token 延迟、接受率 | 使用真实代码片段测试,关注草稿深度对代码结构的适配度 |
| 批量离线生成 | 端到端吞吐、成本 | 可接受较长延迟,重点测试最大化吞吐时的功耗和稳定性 |
| 笔记本移动办公 | 功耗、温度、续航 | 在电池供电和不同功耗档位下分别测试 |
不要只看单一峰值。至少同时记录峰值窗口、端到端平均、单流吞吐和接受率,才能形成对引擎能力的完整判断。
根据内容特征调参。如果业务内容高度模板化(如 JSON 结构化输出、固定列表生成),可以适当增大草稿深度;如果内容自由度高(如开放式聊天),草稿深度不宜过大,否则验证成本可能超过收益。
重视功耗设置。笔记本场景下,TGP 限制是影响吞吐的最大瓶颈之一。如果追求持续性能,需要明确测试时是否解除功耗墙,并将其作为部署配置的一部分。
排查统计口径。对所有吞吐数据,必须确认计时起点、并发窗口、请求完成判据。统一口径后再做方案对比,否则可能出现数倍误差。
以场景验证收尾。最终选型应使用真实业务样本进行回归测试,记录 p50/p95 延迟和聚合吞吐,并预留 20% 以上的性能余量。
端侧大模型推理吞吐是一个多因子耦合的系统性问题,评测时不能只记录一个数字。本文通过一组笔记本单卡实测案例,拆解了并发路数、草稿深度、接受率和功耗墙之间的关系,并强调了统计口径对结果的决定性影响。读者在评估类似系统时,应当采用本文提出的评测框架:固定环境变量、区分峰值与持续吞吐、围绕内容可预测性设计测试样本、确认脚本统计口径,最终基于真实业务场景选择合理配置。
评测的最终目的不是验证一个数值,而是建立对系统行为深层的理解和边界感。只有这样,才能在模型迭代、硬件升级或引擎更换时,快速判断新方案是否真正适合自己的业务负载。