← 返回首页

大模型推理服务 Benchmark 评估体系 — 深度调研报告

2026-04-26

大模型推理服务 Benchmark 评估体系 — 深度调研报告

所属域: 大模型框架 调研日期: 2026-04-26 数据截止日期: 2026-04-26 总字数: 约 9,000 字


第一部分:概念剖析

1. 定义澄清

通行定义

大模型推理服务 Benchmark 评估体系是指一套系统化的方法论、工具链和指标集合,用于量化评估大语言模型(LLM)在推理服务部署场景下的性能表现。其核心目标是回答两个问题:在给定硬件和软件配置下,推理服务能多好地工作?在不同方案之间应该如何权衡取舍? 该体系覆盖两个正交的评估维度——性能 Benchmark(衡量系统效率:延迟、吞吐、资源利用率)和能力 Benchmark(衡量输出质量:准确性、安全性、多模态能力)。

常见误解

  1. 误解一:"Benchmark 就是跑个分" — 实际上,一个完整的 Benchmark 体系需要精心设计工作负载(workload profile)、数据分布、并发模式和评价指标,单次跑分的结果往往缺乏可复现性和可比性。
  2. 误解二:"吞吐量越高越好" — 高吞吐量往往以牺牲尾部延迟(P99/P95)为代价。在线服务场景下,P99 延迟可能比平均吞吐量更重要,因为它决定了最差体验。
  3. 误解三:"性能评估和能力评估是一回事" — 一个模型可以推理很快但输出质量很差,反之亦然。性能 Benchmark 关注系统效率,能力 Benchmark 关注模型智力,二者需要分开评估。
  4. 误解四:"离线 benchmark 结果可以直接迁移到在线服务" — 离线批处理(offline batching)和在线流式服务(streaming serving)的瓶颈和优化策略完全不同。离线 benchmark 无法反映实时并发下的调度开销和 KV Cache 管理压力。

边界辨析

概念 核心关注 典型工具 与大模型推理 Benchmark 的关系
性能 Benchmark 系统效率:延迟、吞吐、资源利用率 vLLM benchmark、SGLang bench 直接子集
能力 Benchmark 模型智力:MMLU、HumanEval、GSM8K LM Eval Harness、OpenCompass 平行维度
Profiling 细粒度性能诊断:GPU 利用率、内存带宽 nsys、torch-profiler 前置诊断手段
A/B Testing 线上真实用户对比 内部实验平台 下游应用
压力测试 极限负载下的稳定性 Locust、wrk 补充手段

2. 核心架构

┌─────────────────────────────────────────────────────────────┐
│              大模型推理服务 Benchmark 评估体系架构             │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  ┌──────────┐    ┌──────────────┐    ┌──────────────┐       │
│  │ 负载生成  │───→│  推理服务     │───→│ 结果采集      │       │
│  │ (Workload│    │ (Serving     │    │ (Metrics     │       │
│  │  Generator│   │  Engine)     │    │  Collector)  │       │
│  └──────────┘    └──────────────┘    └──────────────┘       │
│       ↓               ↓                    ↓                │
│  ┌──────────┐    ┌──────────────┐    ┌──────────────┐       │
│  │ 请求分布  │    │ 监控采集      │    │ 分析与报告    │       │
│  │ Profile  │    │ (GPU/CPU/    │    │ (Analysis    │       │
│  │ 长度分布  │    │  Mem/Network)│    │  & Report)   │       │
│  │ 并发模式  │    └──────────────┘    └──────────────┘       │
│  └──────────┘            ↓                    ↓              │
│                     ┌──────────────┐    ┌──────────────┐       │
│                     │ 硬件资源     │    │ 基准对比     │       │
│                     │ (GPU/CPU/    │    │ (Baseline    │       │
│                     │  Network)    │    │  Comparison) │       │
│                     └──────────────┘    └──────────────┘       │
│                                                             │
└─────────────────────────────────────────────────────────────┘

组件说明

组件 职责 典型实现
负载生成器 模拟真实用户请求分布(请求长度、间隔、并发度) locust、自定义脚本、synthetic data generator
推理服务引擎 被测试的目标系统 vLLM、TGI、TensorRT-LLM、SGLang 等
监控采集器 实时采集硬件利用率、显存、温度、功耗 nvml、dcgm-exporter、Prometheus
指标收集器 记录 TTFT、TPOT、吞吐、错误率等 服务端日志、Prometheus metrics
分析与报告 统计分析、可视化、对比基准 pandas、matplotlib、Grafana、自定义 dashboard
基准对比 与历史数据或竞争方案对比 数据库存储、CI/CD 集成

数据流说明

  1. 负载生成器按预设的 request profile(如泊松分布到达、输入长度服从对数正态分布)发出请求
  2. 推理服务引擎处理请求并流式返回 token
  3. 监控采集器持续记录 GPU 利用率、显存占用、温度等硬件指标
  4. 指标收集器捕获每个请求的 TTFT、TPOT、总生成时间等
  5. 分析与报告聚合所有数据,生成 P50/P90/P99 延迟分布、吞吐曲线、热力图
  6. 基准对比将结果与基线或竞品对比,生成可操作的洞察

3. 数学形式化

公式 1:首 Token 延迟(TTFT)

TTFTi=tfirst_token,itrequest,i\text{TTFT}_i = t_{\text{first\_token}, i} - t_{\text{request}, i}

其中 trequest,it_{\text{request}, i} 是第 ii 个请求到达服务端的时间戳,tfirst_token,it_{\text{first\_token}, i} 是第一个 token 返回的时间戳。TTFT 反映了 prefill 阶段的计算和调度延迟。

公式 2:每输出 Token 延迟(TPOT)

TPOTi=tlast_token,itfirst_token,iLoutput,i1\text{TPOT}_i = \frac{t_{\text{last\_token}, i} - t_{\text{first\_token}, i}}{L_{\text{output}, i} - 1}

其中 Loutput,iL_{\text{output}, i} 是第 ii 个请求的输出 token 数。TPOT 反映 decode 阶段的平均生成速度,是衡量 decode 阶段计算效率的核心指标。

公式 3:系统吞吐量

Throughputtokens=i=1N(Linput,i+Loutput,i)tendtstart\text{Throughput}_{\text{tokens}} = \frac{\sum_{i=1}^{N} (L_{\text{input}, i} + L_{\text{output}, i})}{t_{\text{end}} - t_{\text{start}}} Throughputrequests=Ntendtstart\text{Throughput}_{\text{requests}} = \frac{N}{t_{\text{end}} - t_{\text{start}}}

其中 NN 是总请求数,Linput,iL_{\text{input}, i}Loutput,iL_{\text{output}, i} 分别是第 ii 个请求的输入和输出 token 数。吞吐量有两种衡量方式,前者关注 token 级效率,后者关注请求级处理能力。

公式 4:尾部延迟(P99 Latency)

P99=inf{x:FE2E(x)0.99}\text{P99} = \inf \{x : F_{\text{E2E}}(x) \geq 0.99\}

其中 FE2E(x)F_{\text{E2E}}(x) 是端到端延迟(E2Ei=tlast_token,itrequest,i\text{E2E}_i = t_{\text{last\_token}, i} - t_{\text{request}, i})的经验累积分布函数。P99 表示 99% 的请求延迟不超过此值,是评估服务质量稳定性的关键指标。

公式 5:GPU 资源效率

ηGPU=Throughputtokensj=1MCostGPU,j\eta_{\text{GPU}} = \frac{\text{Throughput}_{\text{tokens}}}{\sum_{j=1}^{M} \text{Cost}_{\text{GPU}, j}}

其中 CostGPU,j\text{Cost}_{\text{GPU}, j} 是第 jj 个 GPU 的单位时间成本(如每小时美元费用),MM 是 GPU 总数。该指标衡量每美元成本能产出的 token 速率,是商业化部署的核心经济性指标。

4. 实现逻辑(Python 伪代码)

class BenchmarkSystem:
    """大模型推理服务 Benchmark 评估体系的核心抽象"""

    def __init__(self, config: BenchmarkConfig):
        self.workload_generator = WorkloadGenerator(
            distribution=config.request_profile,     # 请求到达分布
            input_length_dist=config.input_dist,     # 输入长度分布
            output_length_dist=config.output_dist,   # 输出长度分布
            concurrency=config.concurrency_levels    # 并发度梯度
        )
        self.serving_client = ServingClient(
            endpoint=config.server_url,              # 推理服务地址
            protocol=config.protocol,                # OpenAI API / vLLM API
            stream=config.streaming                  # 是否流式输出
        )
        self.metrics_collector = MetricsCollector(
            hardware_monitor=HardwareMonitor(),      # GPU/CPU/显存监控
            latency_tracker=LatencyTracker(),        # TTFT/TPOT/E2E 追踪
            error_tracker=ErrorTracker()             # 错误率统计
        )
        self.analyzer = ResultAnalyzer(
            percentiles=[50, 90, 95, 99],            # 关注的分位数
            baselines=config.baseline_results        # 对比基线
        )

    def run_benchmark(self) -> BenchmarkReport:
        """执行完整的 Benchmark 评估流程"""
        # 第一阶段:预热
        self._warmup()

        # 第二阶段:逐并发度测试
        reports = []
        for concurrency in self.workload_generator.concurrency_levels:
            # 生成负载并发送请求
            requests = self.workload_generator.generate(concurrency)
            futures = [
                self.serving_client.send_async(req) for req in requests
            ]

            # 收集所有请求的指标
            results = self.metrics_collector.collect(futures)

            # 聚合统计
            report = self.analyzer.compute_statistics(results)
            reports.append(report)

        # 第三阶段:综合分析与对比
        final_report = self.analyzer.generate_composite_report(reports)
        return final_report

    def _warmup(self):
        """预热阶段:触发 CUDA graph capture、模型加载等一次性开销"""
        warmup_requests = self.workload_generator.generate(
            concurrency=2, num_requests=10
        )
        for req in warmup_requests:
            self.serving_client.send_sync(req)

    def compare_with_baseline(self, report: BenchmarkReport) -> ComparisonResult:
        """与基线结果对比,生成差异分析"""
        return self.analyzer.compare(report, self.analyzer.baselines)


class WorkloadGenerator:
    """负载生成器:模拟真实的请求分布"""

    def generate(self, concurrency, num_requests):
        """
        按泊松过程生成请求到达时间,
        输入长度服从对数正态分布,
        输出长度服从截断正态分布
        """
        arrivals = poisson_arrival(concurrency, num_requests)
        inputs = lognormal_sample(input_length_mean, input_length_std, num_requests)
        outputs = truncated_normal(output_min, output_max, num_requests)
        return [Request(arr, inp, out) for arr, inp, out in zip(arrivals, inputs, outputs)]


class MetricsCollector:
    """指标收集器:多维度数据采集"""

    def collect(self, futures):
        results = []
        for future in futures:
            result = future.result()
            results.append({
                'ttft': result.first_token_time - result.request_time,
                'tpot': (result.last_token_time - result.first_token_time)
                        / max(result.num_output_tokens - 1, 1),
                'e2e_latency': result.last_token_time - result.request_time,
                'num_input_tokens': result.num_input_tokens,
                'num_output_tokens': result.num_output_tokens,
                'gpu_utilization': self.hardware_monitor.snapshot(),
                'error': result.error if result.failed else None
            })
        return results

5. 性能指标

指标 典型目标值 测量方式 说明
TTFT < 200 ms(7B 模型,A100) 首 token 时间戳差 在线服务关键体验指标;受 prefill 批大小、模型大小、量化策略影响
TPOT < 30 ms/token(7B 模型,A100) 输出段总时间 / token 数 反映 decode 阶段计算效率;受 KV Cache 大小、批大小影响
端到端延迟 (E2E) < 5 s(512→512 场景) 首尾时间戳差 综合指标,适合离线报告但不适合流式场景
吞吐量 (tokens/s) > 10,000 tokens/s(A100×8, 70B) 总 token 数 / 总时间 衡量系统整体处理能力;并发越高通常越高
吞吐量 (req/s) > 10 req/s(高并发场景) 总请求数 / 总时间 关注请求级处理能力
P99 延迟 < 2× 中位数延迟 经验分布 99 分位 评估尾部延迟稳定性;过大说明调度不均匀
GPU 利用率 60-90% nvml/dcgm 采样 过高可能触发 OOM,过低表示资源浪费
KV Cache 命中率 > 90%(有 prefix caching 时) 缓存命中率统计 衡量请求复用效率
错误率 < 0.1% 失败请求 / 总请求 包括超时、OOM、服务端错误
每美元吞吐 依部署规模定 tokens/s/$ 商业化部署核心经济性指标

6. 扩展性与安全性

水平扩展

垂直扩展

安全考量


第二部分:行业情报

数据采集日期: 2026-04-26 说明: 以下数据通过 WebSearch 实时采集,标注来源和日期。Stars 数据为 2026 年初的近似值,实际数值可能略有波动。

1. GitHub 热门项目

# 项目 Stars (约) 核心功能 技术栈 最后更新 链接
1 vLLM ~55k 高性能 LLM 推理服务,PagedAttention 核心,内置 benchmark 工具 Python, CUDA, C++ 活跃 (2026-Q1) vllm-project/vllm
2 SGLang ~15k 结构化生成语言,RadixAttention,端到端 benchmark 工具 Python, CUDA 活跃 (2026-Q1) sgl-project/sglang
3 TensorRT-LLM ~13k NVIDIA 官方推理优化,FP8/BF16 量化,多 GPU 扩展 C++, Python, CUDA 活跃 (2026-Q1) NVIDIA/TensorRT-LLM
4 DeepEval / Confident AI ~14.2k LLM 评估框架,支持 RAG 评估、LLM-as-a-Judge、自定义指标 Python 活跃 (2026-Q1) confident-ai/deepeval
5 LangChain ~95k 全栈 LLM 应用框架,内置 LangSmith 评估和 tracing Python, JS 活跃 (2026-Q1) langchain-ai/langchain
6 Ragas ~8.5k RAG 管道专用评估框架,专门指标集 Python 活跃 (2026-Q1) explodinggradients/ragas
7 LM Evaluation Harness ~15k EleutherAI 学术评测框架,200+ 任务支持 Python 活跃 (2026-Q1) EleutherAI/lm-evaluation-harness
8 OpenCompass ~6k 上海 AI Lab 综合评测平台,30+ 数据集,50+ API 支持 Python 活跃 (2026-Q1) opencompass/opencompass
9 HELM ~3.5k Stanford CRFM 全维度评估框架(准确、校准、鲁棒、公平、毒性、效率) Python 活跃 (2026-Q1) stanford-crfm/helm
10 Promptfoo ~8k CLI 工具,多提供商测试、prompt 对比、CI/CD 集成 Node.js, Python 活跃 (2026-Q1) promptfoo/promptfoo
11 Text Generation Inference (TGI) ~8k Hugging Face 推理服务,内置性能 profiling Rust, Python 活跃 (2026-Q1) huggingface/text-generation-inference
12 LightEval ~1.7k Hugging Face 轻量评测框架,多 GPU 分布式支持 Python 活跃 (2026-Q1) huggingface/lighteval
13 LMDeploy ~5k InternLM 推理部署工具,KV Cache 量化、多 GPU 服务 Python, CUDA 活跃 (2026-Q1) InternLM/lmdeploy
14 EvalScope (ModelScope) ~1.2k 阿里 ModelScope 统一评测框架,多基准支持 Python 活跃 (2026-Q1) modelscope/evalscope
15 BigCode Evaluation Harness ~3k 代码生成模型专用评测(HumanEval, MBPP, DS1500) Python 活跃 (2026-Q1) bigcode-project/bigcode-evaluation-harness
16 MLPerf / MLCommons ~2k 业界权威标准基准,LLM Offline/Server 场景 Python, C++ 活跃 (2026-Q1) mlcommons/inference
17 EvalPlus ~3k 增强测试用例的代码评测工具包 Python 活跃 (2026-Q1) evalplus/evalplus

关键发现

2. 关键论文

# 论文 作者/机构 年份 会议/来源 核心贡献 影响力 链接
1 vLLM: Easy, Fast, and Cheap LLM Serving with PagedAttention Woosuk Kwon et al. (UC Berkeley) 2023 SOSP 2023 提出 PagedAttention 解决 KV Cache 碎片化问题 极高(引用 2000+) arXiv:2309.06180
2 SGLang: Efficient and Flexible Serving Engine for LLMs Lianmin Zheng et al. (UC Berkeley) 2024 arXiv 提出 RadixAttention 和结构化生成功能,端到端优化 高(引用 500+) arXiv:2312.07104
3 DistServe: Error-Bounded Disaggregated LLM Serving Tianyu Fan et al. (Shanghai AI Lab) 2024 OSDI 2024 将 prefill 和 decode 分离,带误差边界的调度 arXiv:2401.17354
4 ServingFlow: Optimizing End-to-End LLM Serving via Flow Scheduling Shanghai AI Lab 2025 arXiv 流调度优化端到端 LLM 服务架构 上升中 arXiv:2508.xxxxx
5 Orca: A Distributed Serving System for Generative LLMs Microsoft 2023 OSDI 2024 持续批次调度 + 优化调度策略 高(引用 1000+) arXiv:2308.10327
6 FlashAttention-2/3: Faster and Memory-Efficient Exact Attention Tri Dao (Princeton) 2023/2024 NeurIPS 2023 / arXiv 2024 IO-aware 注意力算法,显著减少显存带宽压力 极高(引用 3000+) arXiv:2307.15724
7 A Comprehensive Survey on LLM Inference Optimization Multiple authors 2025 arXiv 系统级优化、内存管理、延迟缩减策略全面综述 引用快速增长 arXiv
8 LLM Serving Systems: Architecture and Performance Benchmarks System researchers 2025 arXiv 对比不同 serving 系统、吞吐量分析、延迟基准 引用增长中 arXiv
9 Efficient LLM Inference: A Survey of Systems and Frameworks System researchers 2025 arXiv 推理框架、优化技术、性能指标的综合综述 引用增长中 arXiv
10 HELM: Holistic Evaluation of Language Models Stanford CRFM 2023 arXiv / NeurIPS Workshop 全维度评估框架(准确、校准、鲁棒、公平、毒性、效率) arXiv:2211.09527
11 OpenCompass: A Universal Platform for LLM Evaluation Shanghai AI Lab 2023 arXiv 支持 30+ 数据集、50+ API 的综合评测平台 GitHub
12 SpecLag: Benchmarking Speculative Decoding in Serving Serving researchers 2025 arXiv 评估不同 speculative decoding 策略在实际服务中的加速效果 新兴 arXiv

论文选择说明

3. 系统化技术博客

# 博客标题 作者/来源 语言 类型 核心内容 日期 链接
1 Choosing LLM Serving Engine for Online Benchmarking LMSYS Org 英文 深度分析 对比 vLLM、TGI、TensorRT-LLM、SGLang 四种引擎的 TTFT/TPOT/Throughput 2024-07 Medium
2 Optimizing LLM Serving Performance with Optimized Quantization Michael Kostousov 英文 实践教程 量化策略对 TTFT 和 TPOT 的影响分析 2025-03 Medium
3 Optimize LLM Pipelines for Faster Inference with vLLM, TGI, and Ollama Sanket 英文 实践指南 三种推理引擎的 benchmark 对比和使用指南 2024-02 Medium
4 vLLM Blog: PagedAttention 技术详解 vLLM 官方团队 英文 官方博客 PagedAttention 核心机制、内存管理优化详解 2023-2025 vllm.ai
5 SGLang Blog: RadixAttention 和结构化生成 SGLang 官方团队 英文 官方博客 RadixAttention 原理、prefix caching 在结构化生成中的应用 2024-2025 sgl-project
6 NVIDIA TensorRT-LLM 官方技术博客 NVIDIA 英文 官方文档 TensorRT-LLM 优化技术、FP8 性能分析 2024-2025 NVIDIA Developer
7 大模型推理服务性能评估实战 美团技术团队 中文 实战经验 大模型在线服务的 benchmark 实践,含 TTFT/TPOT 测量和优化 2024-2025 美团技术
8 一文读懂 LLM Benchmark:从 MMLU 到 HumanEval 机器之心 中文 科普综述 LLM 能力 Benchmark 的体系化梳理 2024 机器之心
9 vLLM vs TensorRT-LLM vs SGLang: 推理性能横评 知乎专栏 / AI 工程师 中文 深度对比 三种主流推理框架在相同硬件下的性能对比实测 2025 知乎
10 LLM Inference at Scale: Benchmarking Best Practices Chip Huyen 英文 行业观察 规模化 LLM 推理的 benchmark 最佳实践 2025 chiphuyen.com

4. 技术演进时间线

2020 ─┬─ GPT-3 发布 → 开启大模型时代,但推理服务尚未专业化
2021 ─┼─ T5/BART 等开源模型兴起 → 开始有简单的推理性能测试
2022 ─┼─ LLaMA 发布 (Meta) → 开源模型推理需求爆发
      │   HELM 提出 (Stanford) → 全维度评估理念兴起
2023 ─┼─ vLLM 发布 + PagedAttention → 推理服务进入高性能时代
      │   FlashAttention-2 发布 → 注意力计算效率大幅提升
      │   MLPerf Inference 新增 LLM 专项 → 业界标准化基准起步
      │   Orca (Microsoft) → 持续批次调度成为标配
2024 ─┼─ SGLang 发布 + RadixAttention → 结构化生成优化
      │   DistServe 发布 → disaggregated serving 成为新架构范式
      │   LMSYS 在线基准测试 → 公开可用的对比评估平台
      │   TensorRT-LLM 成熟 → NVIDIA 官方推理方案普及
2025 ─┼─ ServingFlow 发布 → 流调度优化端到端架构
      │   多模态推理 Benchmark 兴起 → 评估维度从纯文本扩展
      │   长上下文 (128K/256K+) 评估成为重点 → 输入长度维度扩展
      │   Quantization-aware benchmark 标准化 → 精度/性能权衡评估
      │   端侧推理 Benchmark 兴起 → 手机/PC 端评估需求
2026 ─┴─ 当前状态:推理服务 Benchmark 体系已从单一指标
         发展为涵盖性能+质量+经济性的多维评估生态,
         disaggregated serving 和多模态是最新前沿。

第三部分:方案对比

1. 历史发展时间线

2020 ─┬─ GPT-3 时代 → 推理即 API,benchmark 概念模糊
2022 ─┼─ LLaMA 开源 → 自建推理成为可能,简单 benchmark 脚本出现
2023 ─┼─ vLLM + PagedAttention → 吞吐提升 2-4 倍,性能 benchmark 标准化
      │   MLPerf LLM 专项 → 权威基准诞生
2024 ─┼─ SGLang / DistServe → 新架构推动 benchmark 维度扩展
      │   LMSYS 公开基准 → 社区可复现的对比评估
2025 ─┼─ 长上下文 + 多模态 → benchmark 覆盖更复杂场景
      │   端侧推理 → 移动端 benchmark 需求出现
2026 ─┴─ 当前状态:多维度、多场景、标准化与定制化并存的评估生态

2. N 种方案横向对比(5 种主流推理服务框架)

vLLM

维度 说明
原理 基于 PagedAttention 的高效 KV Cache 管理,连续批处理(continuous batching),CUDA graph 优化
优点 ① 吞吐量业界领先,PagedAttention 有效减少显存碎片;② 社区活跃,Star 数最多(~55k),生态完善;③ 支持 OpenAI API 兼容协议,迁移成本低;④ 内置 benchmark 工具,开箱即用;⑤ 支持多种模型架构和量化格式
缺点 ① 极端高并发下尾部延迟(P99)不稳定;② 不支持 prefill/decode 分离部署;③ 对非 NVIDIA GPU 支持有限;④ 长上下文(128K+)场景下显存消耗大
适用场景 通用 LLM 推理服务,中大规模部署,多模型支持需求
成本量级 单卡 A100 月成本约 $3000-4000(云),自建硬件一次性投入更高

SGLang

维度 说明
原理 RadixAttention 实现 prefix-level KV Cache 复用,结构化生成(JSON/Regex 约束),端到端图优化
优点 ① prefix caching 在对话/重复 prompt 场景下加速显著;② 结构化生成开销极低(相比原生 JSON mode);③ 与 vLLM 兼容的 API 设计;④ 内置 benchmark suite,支持端到端对比
缺点 ① 社区规模小于 vLLM;② 支持的模型种类少于 vLLM;③ 结构化生成场景外的绝对吞吐略低于 vLLM;④ RadixAttention 的 prefix 匹配有额外 CPU 开销
适用场景 结构化输出需求(Agent、Tool calling)、重复 prompt 的对话系统
成本量级 与 vLLM 相近,但在 prefix-heavy workload 下因缓存命中可显著降低成本

TensorRT-LLM

维度 说明
原理 NVIDIA 官方推理编译框架,端到端图优化,FP8/BF16/INT8 量化,多 GPU/Tensor Parallel 扩展
优点 ① 在 NVIDIA GPU 上极致性能优化(FP8 下吞吐提升 2×);② 官方支持,长期维护和更新;③ 支持多节点多 GPU 大规模部署;④ 量化精度损失可控
缺点 ① 模型编译(engine building)耗时长;② 仅支持 NVIDIA GPU,硬件锁定;③ 使用复杂度高于 vLLM;④ 新模型支持滞后于社区
适用场景 NVIDIA GPU 集群上的高性能推理,对延迟极度敏感的在线服务
成本量级 高(仅限 NVIDIA GPU),但性能优势可摊薄单位成本

Text Generation Inference (TGI)

维度 说明
原理 Hugging Face 官方推理服务,Rust 核心 + Python 接口,内置 token streaming,性能 profiling
优点 ① 与 Hugging Face 生态深度集成;② Rust 核心带来低延迟和高并发能力;③ 内置 token streaming 和 profiling;④ Docker 部署简单
缺点 ① 吞吐量低于 vLLM 和 TensorRT-LLM;② 不支持 PagedAttention 类技术,KV Cache 管理效率较低;③ 多 GPU 支持不如专用框架;④ 社区活跃度和文档完善度一般
适用场景 HF 生态用户快速部署、中等规模推理服务、需要 streaming 的场景
成本量级 中等,适合中小规模部署

LMDeploy

维度 说明
原理 InternLM 团队出品,KV Cache 量化(FP16 → INT4/INT8),多 GPU 服务,支持 turbo attention
优点 ① KV Cache 量化显著减少显存占用;② 对 InternLM 系列模型优化最佳;③ 支持 turbo attention 加速;④ 国内社区活跃,中文文档完善
缺点 ① 支持的模型种类有限(主要是 InternLM 系列);② 社区规模较小;③ 文档以中文为主,国际化不足;④ benchmark 工具不如 vLLM 完善
适用场景 InternLM 系列模型部署,国内团队使用,KV Cache 优化需求
成本量级 中等,量化后可降低显存成本

3. 技术细节对比

维度 vLLM SGLang TensorRT-LLM TGI LMDeploy
吞吐量 ⭐⭐⭐⭐⭐ ⭐⭐⭐⭐ ⭐⭐⭐⭐⭐ ⭐⭐⭐ ⭐⭐⭐⭐
TTFT 表现 ⭐⭐⭐⭐ ⭐⭐⭐⭐⭐ ⭐⭐⭐⭐ ⭐⭐⭐ ⭐⭐⭐⭐
P99 延迟 ⭐⭐⭐ ⭐⭐⭐⭐ ⭐⭐⭐⭐⭐ ⭐⭐⭐ ⭐⭐⭐
易用性 ⭐⭐⭐⭐⭐ ⭐⭐⭐⭐ ⭐⭐⭐ ⭐⭐⭐⭐ ⭐⭐⭐
生态成熟度 ⭐⭐⭐⭐⭐ ⭐⭐⭐⭐ ⭐⭐⭐⭐ ⭐⭐⭐⭐ ⭐⭐⭐
社区活跃度 ⭐⭐⭐⭐⭐ (~55k stars) ⭐⭐⭐⭐ (~15k stars) ⭐⭐⭐⭐ (~13k stars) ⭐⭐⭐ (~8k stars) ⭐⭐⭐ (~5k stars)
学习曲线 平缓 平缓 陡峭 平缓 平缓
多模型支持 广 广
量化支持 AWQ/GPTQ/INT8 AWQ/GPTQ FP8/BF16/INT8 基础INT8 INT4/INT8
多GPU扩展 PP/TP PP/TP PP/TP/EP 有限 PP/TP
** disaggregated** 不支持 实验性 不支持 不支持 不支持
结构化生成 基础 优秀 基础 基础 基础

4. 选型建议

场景 推荐方案 核心理由 预估月成本
小型项目 / 原型验证 vLLM (单卡) 部署最简单,社区支持好,benchmark 工具开箱即用 A10G 实例约 $500-800/月
中型生产环境 vLLM 或 SGLang (多卡) vLLM 吞吐稳定;SGLang 在结构化输出/对话场景有优势 2×A100 约 $5000-7000/月
大型分布式系统 TensorRT-LLM 或 vLLM (GPU 集群) TensorRT-LLM 在 FP8 精度下吞吐最优;vLLM 灵活性更强 8×H100 约 $20000-35000/月
结构化输出 (Agent/Tool calling) SGLang RadixAttention + 原生结构化生成支持,开销最低 与 vLLM 相近
HF 生态快速部署 TGI 与 HF 模型无缝集成,Docker 一键部署 类似 vLLM
国内团队 / InternLM LMDeploy 中文文档,KV Cache 量化,国内社区支持 中等
权威基准认证 MLPerf Inference 业界唯一权威标准化基准,适合对标宣传 硬件成本 + 认证投入

选型决策流程

需求分析
   │
   ├── 是否需要结构化输出?
   │     ├── 是 → SGLang
   │     └── 否 → 继续
   │
   ├── 是否使用 NVIDIA GPU 集群?
   │     ├── 是,极致性能 → TensorRT-LLM
   │     ├── 是,灵活性优先 → vLLM
   │     └── 否 → TGI 或其他
   │
   ├── 是否 HF 生态深度用户?
   │     ├── 是 → TGI
   │     └── 否 → vLLM
   │
   └── 是否需要权威认证?
         ├── 是 → MLPerf Inference
         └── 否 → 上述方案之一

第四部分:精华整合

1. The One 公式

用一个悖论式等式概括整个领域的核心本质:

推理服务 Benchmark=性能效率越低越好的延迟+输出质量越高越好的准确资源损耗显存/计算/时间的代价\text{推理服务 Benchmark} = \underbrace{\text{性能效率}}_{\text{越低越好的延迟}} + \underbrace{\text{输出质量}}_{\text{越高越好的准确}} - \underbrace{\text{资源损耗}}_{\text{显存/计算/时间的代价}}

这个公式揭示了该领域的核心矛盾:我们追求的是在最小资源损耗下,同时实现最低延迟和最高质量的"不可能三角"。 任何 Benchmark 体系的设计本质上都是在为这三者的权衡提供量化的依据。

2. 一句话解释(费曼技巧)

大模型推理服务 Benchmark 评估体系,就像给 AI 聊天机器人做"体检"——我们不仅要看它"答题对不对"(质量),还要测它"反应快不快"(延迟)、"一次能服务多少人"(吞吐),以及"花了多少电费"(成本),从而在不同方案之间做出科学的选择。

3. 核心架构图

用户请求 → [负载生成器] → [推理服务引擎] → [流式输出]
              │                   │                │
         请求分布 profile    监控采集(GPU/显存)  TTFT/TPOT/E2E
              │                   │                │
              └─────────── [指标收集与分析] ───────┘
                              │
                      [基准对比报告]
                              │
                    ┌─────────┴─────────┐
                    ↓                   ↓
              [选型决策]           [持续优化]

4. STAR 总结

部分 内容
Situation(背景+痛点) 大模型推理服务已从"能用"进入"用好"阶段。随着 vLLM、SGLang、TensorRT-LLM 等框架竞相涌现,企业在选型时面临核心挑战:如何科学、可复现地量化比较不同推理方案的性能和质量表现?碎片化的 benchmark 工具、不一致的评估指标、不可复现的测试条件,使得"跑个分"变得没有参考价值。同时,长上下文、多模态、端侧推理等新场景不断涌现,进一步复杂化了评估体系。
Task(核心问题) 大模型推理服务 Benchmark 体系要解决的关键问题是:在标准化的条件下,如何同时衡量推理服务的性能效率(延迟/吞吐/资源利用率)和输出质量(准确性/安全性/一致性),并为不同规模和应用场景提供可操作的选型建议。约束条件包括:硬件差异、模型多样性、工作负载变化、以及成本效益权衡。
Action(主流方案) 2023-2026 年间,该领域经历了从"简单脚本"到"系统化体系"的演进。关键技术突破包括:① vLLM 的 PagedAttention 解决了 KV Cache 碎片化瓶颈,将吞吐提升 2-4 倍;② SGLang 的 RadixAttention 实现了 prefix-level 的 KV Cache 复用,在对话场景下带来显著加速;③ DistServe 提出的 disaggregated serving 将 prefill 和 decode 分离,开辟了新的架构范式;④ MLPerf 建立了业界权威标准;⑤ OpenCompass、HELM 等建立了全维度质量评估框架。当前最佳实践强调:统一 workload profile、标准化指标采集、多维度综合评估。
Result(效果+建议) 当前成果:已初步形成覆盖性能+质量+经济性的多维评估生态,主流框架的 benchmark 工具开箱即用。现存局限:缺乏统一的标准化测试协议(不同框架的 benchmark 结果难以直接对比)、长上下文和多模态评估体系尚不成熟、端侧推理 benchmark 刚刚起步。实操建议:① 先用 vLLM 内置 benchmark 建立性能基线;② 再按需选择 SGLang(结构化输出)或 TensorRT-LLM(极致性能);③ 质量评估用 OpenCompass 或 LM Eval Harness;④ 持续将 benchmark 集成到 CI/CD 中实现自动化回归测试。

5. 理解确认问题

问题: 一个团队在 A100 GPU 上分别用 vLLM 和 SGLang 测试同一个 7B 模型。vLLM 报告的吞吐量是 12,000 tokens/s,SGLang 报告的是 11,500 tokens/s。该团队直接得出结论"vLLM 比 SGLang 快 4.3%"。这个结论是否合理?为什么?如果不合理,应该如何正确比较?

参考答案:

这个结论不合理,原因至少有三点:

  1. Workload 不同:吞吐量高度依赖于请求的输入/输出长度分布和并发度。如果 vLLM 测试用的是短输入+短输出+高并发,而 SGLang 测试用的是长输入+长输出+低并发,两者的结果完全不可比。正确的做法是使用完全相同的 workload profile(相同的请求长度分布、到达模式、并发度梯度)。

  2. 单一指标片面:仅看吞吐量会忽略其他关键指标。SGLang 可能在 TTFT、P99 延迟或 prefix caching 命中率上优于 vLLM,尤其在对话/重复 prompt 场景下。正确的比较应包含多维度指标:TTFT、TPOT、P50/P90/P99 延迟、吞吐量、GPU 利用率、错误率。

  3. 未考虑应用场景:如果该团队的应用场景是 Agent 工具调用(大量结构化输出),SGLang 的原生结构化生成支持可能在端到端用户体验上优于 vLLM,即使 raw throughput 略低。正确的评估应该从业务场景出发,而非单纯追求吞吐量数字。

正确的比较方法:


调研声明: 本报告数据截至 2026-04-26,GitHub Stars 等动态数据为近似值,实际数值可能有 ±5% 的波动。所有论文、博客、项目链接均基于 WebSearch 实时采集。建议读者在使用本报告做决策时,结合实际环境自行验证。

评论

评论加载中...