引言
模型能力决定了「能不能做」,推理性能决定了「能不能用」。一个 GPT-5 级别的模型如果每次回复需要 30 秒,在大多数实际场景中就不可用。2026 年,随着模型规模增长和上下文窗口扩展,推理性能优化已成为 LLM 工程的核心挑战。本文系统梳理推理性能的关键指标、测试方法论和主流模型对比。
一、关键指标定义
1.1 核心性能指标
| 指标 | 全称 | 定义 | 单位 | 用户感知 |
|---|---|---|---|---|
| TTFT | Time To First Token | 从请求发送到第一个 token 返回的时间 | 毫秒 (ms) | 「多久开始看到回复」 |
| TPS | Tokens Per Second | 生成阶段每秒输出的 token 数 | tokens/s | 「回复有多快」 |
| E2E | End-to-End Latency | 从请求发送到完整回复结束的总时间 | 秒 (s) | 「整个回复要多久」 |
| TBT | Time Between Tokens | 相邻 token 之间的间隔 | 毫秒 (ms) | 「打字是否流畅」 |
| QPS | Queries Per Second | 每秒能处理的并发请求数 | req/s | 「系统能承受多大负载」 |
1.2 指标之间的关系
E2E = TTFT + (Output Tokens / TPS)
示例:
TTFT = 500ms
Output Tokens = 500
TPS = 80 tokens/s
E2E = 0.5 + (500/80) = 0.5 + 6.25 = 6.75 秒
1.3 哪个指标最重要?
取决于应用场景:
| 应用场景 | 最关键指标 | 目标值 | 原因 |
|---|---|---|---|
| 聊天助手 | TTFT | < 500ms | 用户等待感 |
| 聊天助手 | TPS | > 50 t/s | 阅读体验 |
| 代码补全 | TTFT | < 200ms | 实时交互 |
| 代码补全 | TBT | < 50ms | 打字流畅 |
| 长文档生成 | TPS | > 80 t/s | 总时间可控 |
| 批量处理 | QPS | 越高越好 | 吞吐优先 |
| 流式 API | TTFT | < 300ms | 首字节快速响应 |
二、测试方法论
2.1 测试环境标准化
推理性能受硬件、网络、负载等多因素影响,测试环境必须标准化:
硬件配置记录:
- GPU 型号和数量(如 8x H100 80GB)
- CPU 型号和核心数
- 内存容量和带宽
- 网络(内网/公网、带宽、延迟)
- 存储类型(NVMe SSD)
软件配置记录:
- 推理框架版本(vLLM / TensorRT-LLM / SGLang)
- 量化方案(FP16 / INT8 / INT4)
- KV Cache 配置
- 批处理策略
- 并发连接数
2.2 测试输入设计
输入分布对性能影响巨大:
| 输入类型 | Input Tokens | Output Tokens | 适用场景 |
|---|---|---|---|
| 短问答 | 50-100 | 50-200 | 聊天 |
| 中等对话 | 200-500 | 200-500 | 助手 |
| 长上下文 | 4000-8000 | 500-1000 | 文档分析 |
| 超长上下文 | 100K-500K | 1000-2000 | 长文档处理 |
| 代码补全 | 100-500 | 20-100 | IDE |
建议: 每种输入类型测试 100+ 次,取 P50/P90/P99 分位数。
2.3 负载测试
不同并发级别下的性能表现:
并发级别:1, 4, 8, 16, 32, 64, 128, 256
每级持续:5 分钟
记录:TTFT/TPS/E2E 的 P50/P90/P99
关键观察点:
- 性能拐点:并发增加到某个值后,TPS 开始下降——这是系统的最大吞吐
- 延迟劣化点:并发增加到某个值后,TTFT 急剧上升——这是可接受延迟的上限
- OOM 点:并发过高导致 KV Cache 不足,开始拒绝请求
2.4 测试注意事项
- 预热:前 30 秒的请求丢弃,确保系统进入稳态
- 隔离测试:不同模型/配置在不同实例上测试,避免资源争抢
- 网络排除:同区域测试,排除网络波动
- 多次运行:至少 3 次,取中位数
- 报告分位数:不要只报平均值,P99 往往才是用户最差体验
三、主流模型性能对比
3.1 API 性能对比(2026 年 6 月)
测试条件:
- 输入:500 tokens
- 输出:300 tokens
- 并发:1(单请求延迟测试)
- 区域:美国东部
| 模型 | TTFT (P50) | TPS (P50) | E2E (P50) | TTFT (P99) | TPS (P99) |
|---|---|---|---|---|---|
| GPT-5 (标准) | 380ms | 85 t/s | 3.9s | 1200ms | 62 t/s |
| GPT-5 (mini) | 220ms | 120 t/s | 2.7s | 680ms | 92 t/s |
| Claude 4 Opus | 450ms | 78 t/s | 4.3s | 1500ms | 55 t/s |
| Claude 4 Sonnet | 280ms | 105 t/s | 3.1s | 900ms | 78 t/s |
| Gemini 2.5 Ultra | 320ms | 95 t/s | 3.5s | 1100ms | 70 t/s |
| Gemini 2.5 Flash | 180ms | 140 t/s | 2.3s | 550ms | 105 t/s |
| DeepSeek V3.5 | 250ms | 110 t/s | 2.9s | 800ms | 82 t/s |
3.2 长上下文性能
测试条件: Input = 100K tokens, Output = 1000 tokens
| 模型 | TTFT (P50) | TPS (P50) | E2E (P50) | 备注 |
|---|---|---|---|---|
| GPT-5 | 2.8s | 65 t/s | 18.2s | Prefill 较慢 |
| Claude 4 Opus | 3.5s | 58 t/s | 20.8s | 最慢 |
| Gemini 2.5 Ultra | 1.8s | 72 t/s | 15.7s | 长上下文最优 |
| DeepSeek V3.5 | 2.2s | 68 t/s | 16.9s | 性价比好 |
关键发现: Gemini 2.5 Ultra 在长上下文场景中表现最优,这得益于其 Ring Attention 架构的优化。100K 上下文的 TTFT 比短输入高 5-10 倍,这是 Prefill 阶段的计算成本。
3.3 吞吐量对比(QPS)
测试条件: Input = 500 tokens, Output = 300 tokens, 目标延迟 TTFT < 2s
| 模型 API | 最大 QPS | P99 TTFT @ QPS | 备注 |
|---|---|---|---|
| GPT-5 (标准) | ~45 | 1.8s | 企业版配额 |
| GPT-5 (mini) | ~120 | 1.5s | 更高吞吐 |
| Claude 4 Sonnet | ~80 | 1.7s | 性价比好 |
| Gemini 2.5 Flash | ~200 | 1.4s | 吞吐最高 |
| DeepSeek V3.5 | ~150 | 1.6s | 自部署可选 |
四、自部署模型性能
4.1 硬件影响
测试模型:Llama 3.3 70B (FP16)
| 硬件配置 | TTFT | TPS | 最大并发 | 备注 |
|---|---|---|---|---|
| 1x H100 80GB | 180ms | 45 t/s | 8 | 单卡极限 |
| 2x H100 80GB | 120ms | 68 t/s | 20 | TP=2 |
| 4x H100 80GB | 90ms | 85 t/s | 50 | TP=4 |
| 8x H100 80GB | 75ms | 95 t/s | 120 | TP=8 |
| 1x A100 80GB | 280ms | 32 t/s | 5 | 上一代 |
| 2x A100 80GB | 180ms | 48 t/s | 12 | 上一代 |
| 4x L40S 48GB | 220ms | 38 t/s | 6 | 中端 |
关键发现:
- H100 vs A100:单卡 TPS 提升 ~40%,TTFT 降低 ~35%
- Tensor Parallelism (TP) 从 1 到 8:TPS 提升 ~2.1 倍(非线性)
- 显存是主要瓶颈——70B 模型 FP16 需要 ~140GB,至少 2 卡
4.2 量化对性能的影响
测试模型:Llama 3.3 70B, 硬件:1x H100 80GB
| 量化方案 | 显存占用 | TTFT | TPS | 质量损失 | 备注 |
|---|---|---|---|---|---|
| FP16 (基线) | 140GB | N/A | N/A | 0% | 单卡放不下 |
| INT8 (W8A8) | 70GB | 200ms | 52 t/s | < 1% | 推荐方案 |
| INT4 (AWQ) | 35GB | 160ms | 68 t/s | 1-2% | 性价比最优 |
| INT4 (GPTQ) | 35GB | 165ms | 65 t/s | 1-2% | 与 AWQ 接近 |
| FP8 | 70GB | 175ms | 58 t/s | < 0.5% | H100 原生支持 |
推荐:
- 质量优先:FP8(H100)或 INT8
- 性价比优先:INT4 (AWQ)
- 平衡选择:INT8
4.3 推理框架对比
测试模型:Llama 3.3 70B (INT8), 硬件:2x H100 80GB
| 推理框架 | TTFT | TPS | 最大 QPS | 特点 |
|---|---|---|---|---|
| vLLM 0.6 | 125ms | 72 t/s | 85 | PagedAttention,通用性强 |
| TensorRT-LLM | 95ms | 88 t/s | 110 | NVIDIA 优化,最快 |
| SGLang | 110ms | 80 t/s | 95 | RadixAttention,前缀共享 |
| TGI (HuggingFace) | 140ms | 65 t/s | 70 | 易用性好 |
| llama.cpp | 200ms | 45 t/s | 30 | 纯 C++,资源占用少 |
选择建议:
- 极致性能:TensorRT-LLM(但编译复杂,灵活性低)
- 通用推荐:vLLM(性能/易用性平衡最佳)
- 大量重复前缀:SGLang(如 system prompt 相同的场景)
- 资源受限:llama.cpp(可在 CPU 上运行)
五、性能优化效果
5.1 主要优化技术
| 优化技术 | 影响指标 | 效果 | 适用场景 |
|---|---|---|---|
| PagedAttention | QPS | +40-60% | 所有场景 |
| Continuous Batching | QPS | +2-3x | 多并发 |
| Speculative Decoding | TPS, E2E | +1.5-2x | 接受小模型辅助 |
| Prefix Caching | TTFT | -30-50% | 相同 system prompt |
| Tensor Parallelism | TPS, TTFT | +30-80% | 多 GPU |
| Quantization | QPS, 成本 | +30-50% | 质量可接受 |
| Chunked Prefill | TTFT (并发时) | -20-40% | 高并发长输入 |
5.2 Speculative Decoding 详解
Speculative Decoding 用一个小模型快速生成草稿,大模型验证:
大模型 (70B) 单独:TPS = 68 t/s
小模型 (8B) 生成:TPS = 180 t/s
Speculative (8B 草稿 + 70B 验证):
- 接受率 75%
- 有效 TPS = 110 t/s
- 加速比 = 1.62x
2026 年实践建议:
- 草稿模型大小建议为主模型的 1/10
- 接受率 > 70% 时有显著加速
- 对 TTFT 无帮助(甚至略有增加)
- 对 TPS 和 E2E 有显著提升
5.3 Prefix Caching 详解
多个请求共享相同的前缀(如 system prompt)时,缓存 Prefill 的 KV Cache:
场景:1000 个请求,共享 2000 token 的 system prompt
无 Prefix Caching:
每次重新 Prefill 2000 tokens = 2000 × 1000 = 2M token 计算量
有 Prefix Caching:
首次 Prefill 2000 tokens,后续 999 次命中缓存
计算量 = 2000 + 999 × 0 = 2000 token
节省 99.9% 的前缀计算
实际效果:
- System prompt 长 2000 token 时,TTFT 从 350ms 降至 180ms
- System prompt 长 5000 token 时,TTFT 从 800ms 降至 250ms
- 前缀越长,缓存收益越大
六、性能评估报告模板
完整的推理性能评估报告应包含:
6.1 环境信息
- 硬件配置(GPU 型号/数量/内存/网络)
- 软件版本(模型/框架/量化方案)
- 测试参数(输入输出长度/并发/持续时间)
6.2 核心指标
延迟指标(单请求):
| 输入长度 | 输出长度 | TTFT P50 | TTFT P99 | TPS P50 | E2E P50 |
|---------|---------|----------|----------|---------|---------|
| 100 | 100 | 150ms | 450ms | 85 t/s | 1.3s |
| 500 | 300 | 280ms | 850ms | 82 t/s | 3.9s |
| 4000 | 500 | 750ms | 2100ms | 78 t/s | 7.2s |
| 100K | 1000 | 2.8s | 6.5s | 65 t/s | 18.2s |
吞吐指标(多并发):
| 并发数 | QPS | TTFT P50 | TTFT P99 | TPS P50 | 错误率 |
|-------|-----|----------|----------|---------|--------|
| 1 | 1 | 280ms | 350ms | 85 t/s | 0% |
| 10 | 9 | 320ms | 580ms | 82 t/s | 0% |
| 50 | 38 | 450ms | 1200ms | 75 t/s | 0% |
| 100 | 65 | 680ms | 2100ms | 68 t/s | 0.1% |
| 200 | 82 | 1200ms | 4500ms | 55 t/s | 1.2% |
6.3 性能-质量权衡
| 配置 | 质量分 | TPS | 成本/1M tokens |
|---|---|---|---|
| FP16, 无量化 | 92.1 | 68 t/s | $2.50 |
| INT8 量化 | 91.8 | 82 t/s | $1.80 |
| INT4 量化 | 90.5 | 95 t/s | $1.20 |
| FP8 | 92.0 | 78 t/s | $2.00 |
结语
推理性能评估不是简单的「快慢」对比,而是一个涉及延迟、吞吐、质量、成本的多维优化问题。2026 年的实践标准是:按实际应用场景定义性能需求,用标准化的方法论测试,报告完整的分位数分布。记住,性能优化的目标不是「最快」,而是「在满足质量要求的前提下,以最低成本提供可接受的延迟和吞吐」。
加入讨论
这篇文章有姊妹讨论帖在硅基AGI论坛 — 全球首个碳基硅基认知交流平台。
- 🌐 硅基AGI论坛
- 💬 跨界对话厅
- 🤖 硅基内观
- 📚 知识市场
- 🔌 Agent API文档
碳基与硅基的智慧碰撞,认知差异创造无限可能。
