大模型推理引擎对比:vLLM vs TensorRT-LLM vs llama.cpp,2026 年生产环境怎么选?

阿里云上云采购季 2核2G云服务器99元/年 续费同价

同一张 A100,不同引擎吞吐量差 5 倍!选错推理引擎 = 白烧 GPU 钱。

你有没有遇到过这种情况:花大价钱买了一张 A100,部署了一个开源大模型,结果并发上不去、首 Token 延迟爆炸、显存利用率只有 40%。

问题往往不在模型,在推理引擎。

今天我把 vLLM、TensorRT-LLM、llama.cpp 三大引擎拉出来正面 PK,从性能、易用性、兼容性三个维度告诉你 2026 年到底怎么选。

一张表看懂三大引擎

特性 vLLM TensorRT-LLM llama.cpp
开发者 UC Berkeley NVIDIA 社区(ggerganov)
核心优化 PagedAttention Kernel融合+图优化 CPU推理+量化
部署复杂度 ⭐⭐ 简单 ⭐⭐⭐⭐ 复杂 ⭐ 极简
GPU加速 ✅ 优秀 ✅ 极致 ⚠️ 支持但不强
CPU推理 ❌ 不推荐 ❌ 不支持 ✅ 最强
模型兼容性 ⭐⭐⭐⭐ 广 ⭐⭐⭐ 有限 ⭐⭐⭐⭐⭐ 最广
并发吞吐 ⭐⭐⭐⭐ 高 ⭐⭐⭐⭐⭐ 最高 ⭐⭐ 低
首Token延迟 ⭐⭐⭐ 中等 ⭐⭐⭐⭐ 低 ⭐⭐ 偏高
量化支持 AWQ, GPTQ, FP8 FP8, INT4, INT8 GGUF(Q2-Q8), AWQ
适合场景 GPU云服务/API 极致性能要求 本地/边缘设备

vLLM:开箱即用的 GPU 推理王者

vLLM 的核心杀招是 PagedAttention——把 KV Cache 像操作系统管理内存一样分页管理,显存利用率直接翻倍。

# 安装
pip install vllm

# 启动 OpenAI 兼容 API 服务
python -m vllm.entrypoints.openai.api_server \
    --model Qwen/Qwen2.5-7B-Instruct \
    --gpu-memory-utilization 0.90 \
    --max-model-len 8192 \
    --tensor-parallel-size 1
# Python SDK 调用 - vllm_api_client.py
from openai import OpenAI

client = OpenAI(
    base_url="http://localhost:8000/v1",  # vLLM 自带 OpenAI 兼容接口
    api_key="not-needed",
)

# 单次推理
response = client.chat.completions.create(
    model="Qwen/Qwen2.5-7B-Instruct",
    messages=[{"role": "user", "content": "用Python写一个快速排序"}],
    temperature=0.7,
    max_tokens=512,
)
print(response.choices[0].message.content)

# 并发压测(测吞吐)
import time, concurrent.futures

def call_api(prompt):
    return client.chat.completions.create(
        model="Qwen/Qwen2.5-7B-Instruct",
        messages=[{"role": "user", "content": prompt}],
        max_tokens=256,
    )

prompts = ["解释量子计算" for _ in range(100)]

start = time.time()
with concurrent.futures.ThreadPoolExecutor(max_workers=20) as executor:
    results = list(executor.map(call_api, prompts))
elapsed = time.time() - start

print(f"100请求 / {elapsed:.1f}秒 = {100/elapsed:.1f} req/s")

适合你如果:有 GPU 服务器、需要 OpenAI 兼容 API、不想折腾编译、团队不熟悉 CUDA。

TensorRT-LLM:NVIDIA 亲儿子,性能天花板

TensorRT-LLM 是 NVIDIA 官方出的,底层做了 kernel 融合、FP8 量化、inflight batching 等极致优化。同硬件下性能通常比 vLLM 高 20-40%,但代价是部署流程复杂。

# 第一步:获取 TensorRT-LLM 镜像(推荐 Docker)
docker pull nvcr.io/nvidia/tensorrt-llm/release:0.14.0

# 第二步:转换模型(以 Qwen2.5-7B 为例)
docker run --gpus all -v /data/models:/models nvcr.io/nvidia/tensorrt-llm/release:0.14.0 \
    python examples/qwen/convert_checkpoint.py \
        --model_dir /models/Qwen2.5-7B-Instruct \
        --output_dir /models/trt_checkpoint \
        --dtype float16 \
        --tp_size 1

# 第三步:构建 TensorRT 引擎
trtllm-build \
    --checkpoint_dir /models/trt_checkpoint \
    --output_dir /models/trt_engine \
    --gemm_plugin float16 \
    --max_batch_size 64 \
    --max_input_len 4096 \
    --max_output_len 2048

# 第四步:启动推理服务
python examples/run.py \
    --engine_dir /models/trt_engine \
    --tokenizer_dir /models/Qwen2.5-7B-Instruct \
    --max_output_len 2048
# TensorRT-LLM Python 调用示例
from tensorrt_llm.runtime import ModelRunner, SamplingConfig

runner = ModelRunner.from_dir(
    engine_dir="/models/trt_engine",
    rank=0,
)

# 推理
input_ids = tokenizer.encode("用Python写一个快速排序")
sampling_config = SamplingConfig(
    max_new_tokens=512,
    temperature=0.7,
    top_p=0.9,
)

output = runner.generate(
    batch_input_ids=[input_ids],
    sampling_config=sampling_config,
)
print(tokenizer.decode(output[0]))

适合你如果:对延迟极度敏感(如实时对话)、吞吐要求最高、有专职 MLOps 团队、预算充足买得起高端 GPU。

llama.cpp:CPU 推理之王,没有显卡也能跑

llama.cpp 用纯 C/C++ 实现,通过 GGUF 量化格式让大模型在 CPU 上也能跑出不错的速度。很多人觉得它只是「穷人的玩具」,实际上在 Mac 统一内存架构上跑 70B 模型效果非常好。

# 编译安装
git clone https://github.com/ggerganov/llama.cpp
cd llama.cpp && make -j

# 下载 GGUF 格式模型(以 Qwen2.5-7B Q4_K_M 为例)
# 从 HuggingFace 下载: Qwen/Qwen2.5-7B-Instruct-GGUF

# CPU 推理(纯 CPU 模式)
./llama-cli \
    -m ./models/Qwen2.5-7B-Instruct-Q4_K_M.gguf \
    -p "用Python写一个快速排序" \
    -n 512 \
    --temp 0.7 \
    -t 8  # 使用8个CPU线程

# 启动 HTTP API 服务
./llama-server \
    -m ./models/Qwen2.5-7B-Instruct-Q4_K_M.gguf \
    --host 0.0.0.0 --port 8080 \
    -ngl 33  # 如果有 GPU,指定多少层放 GPU(33=全部)
# llama.cpp OpenAI 兼容 API 调用
from openai import OpenAI

client = OpenAI(
    base_url="http://localhost:8080/v1",
    api_key="not-needed",
)

response = client.chat.completions.create(
    model="local-model",
    messages=[{"role": "user", "content": "用Python写一个快速排序"}],
    max_tokens=512,
)
print(response.choices[0].message.content)

适合你如果:没 GPU / 预算有限、需要在 Mac 上跑大模型、边缘设备部署、对模型兼容性要求极高(几乎支持所有开源模型)。

实测性能对比(A100 80GB + Qwen2.5-7B)

我在同一台 A100 上跑了压测,结果如下:

指标 llama.cpp(CUDA) vLLM TensorRT-LLM(FP16) TensorRT-LLM(FP8)
单并发 Token/s 52 98 118 185
32 并发 Token/s 380 2150 2780 4200
首 Token 延迟(ms) 180 95 72 48
显存占用(GB) 14.2 15.8 16.5 11.2
部署耗时(分钟) 5 10 45 60+
最大支持并发 ~40 ~128 ~256 ~256

结论:单卡场景 vLLM 最均衡;追求极致性能上 TensorRT-LLM + FP8;没 GPU 或者做本地部署选 llama.cpp。

2026 年选型决策树

你有 GPU 吗?
├── 没有 → llama.cpp(CPU推理/Mac 都可以)
└── 有 GPU
    ├── 追求极致性能/有专职团队 → TensorRT-LLM + FP8
    ├── 需要快速上线/团队不大 → vLLM
    └── 同时需要 GPU+CPU+边缘端统一 → llama.cpp(统一GGUF格式)

我一直推荐大部分团队从 vLLM 入手:5 分钟部署、OpenAI 兼容、性能不差。等业务量上来再评估要不要上 TensorRT-LLM。别一上来就搞最复杂的方案,研发资源也是成本。


👤 作者简介

一枚在大中原腹地(河南)卖公有云的从业者,主营腾讯云/阿里云/火山云,曾踩坑无数,现专注AI大模型应用落地。关注公众号「公有云cloud」,围观AI前沿动态~

博客:y1cloud.cn

发表评论