NVIDIA开发的开源大语言模型推理优化库,通过TensorRT技术为GPU推理提供最先进的性能优化

Apache-2.0C++TensorRT-LLMNVIDIA 11.6k Last Updated: September 12, 2025

TensorRT-LLM项目详细介绍

项目概述

TensorRT-LLM是NVIDIA开发的开源库,专门用于优化大语言模型(LLM)在NVIDIA GPU上的推理性能。它提供易于使用的Python API来定义大语言模型,并支持最先进的优化技术,以在NVIDIA GPU上高效执行推理。

核心特性

1. 高级优化技术

TensorRT-LLM提供多种先进的优化功能,包括:

  • 自定义注意力内核:专门优化的注意力机制实现
  • 动态批处理(Inflight Batching):实时处理不同长度的输入序列
  • 分页KV缓存:高效的键值缓存管理
  • 投机解码(Speculative Decoding):通过预测多个token来加速生成
  • 多种量化支持:FP8、FP4、INT4 AWQ、INT8 SmoothQuant等

2. 量化技术详解

TensorRT-LLM提供业界领先的统一量化工具包,显著加速深度学习/生成AI在NVIDIA硬件上的部署,同时保持模型精度。

主要量化方法:

  • FP8:在大批量推理场景中通常提供最佳性能和精度,适用于批量大小≥16的场景
  • INT8 SmoothQuant:权重平滑和INT8通道量化,激活范围张量级标定
  • INT4 AWQ:权重重新缩放和块级量化到INT4,推荐用于小批量推理场景(批量大小≤4)
  • W4A8 AWQ:权重量化到INT4,激活量化到INT8

性能提升:

根据基准测试,量化技术可以带来显著的性能提升:

  • FP8量化:相比FP16基准,Llama 3 8B模型可获得1.45倍加速,70B模型可获得1.81倍加速
  • INT4 AWQ:在批量大小为1的场景下,70B模型可获得高达2.66倍的性能提升
  • 内存优化:所有量化版本的Llama 3 70B模型都可以在单个NVIDIA H100 GPU上运行,而FP16精度需要至少两个GPU

3. 多GPU和多节点支持

TensorRT-LLM包含预处理和后处理步骤以及多GPU多节点通信原语,通过简单开源的模型定义API实现突破性的LLM推理性能。

4. 广泛的硬件支持

TensorRT-LLM支持基于NVIDIA Hopper、NVIDIA Ada Lovelace和NVIDIA Ampere架构的GPU。特别是:

  • H100 GPU:支持FP8格式的自动转换和优化内核
  • H200 GPU:在Llama2-13B上可达到近12,000 token/秒的性能
  • RTX系列:支持消费级GPU的大模型推理

安装和使用

Docker安装(推荐)

# 运行预构建的Docker容器
docker run --ipc host --gpus all -it nvcr.io/nvidia/tensorrt-llm/release

LLM API使用示例

from tensorrt_llm import BuildConfig, SamplingParams
from tensorrt_llm._tensorrt_engine import LLM

def main():
    build_config = BuildConfig()
    build_config.max_batch_size = 256
    build_config.max_num_tokens = 1024
    
    # 支持HuggingFace模型名称、本地HF模型路径或TensorRT模型优化器量化检查点
    llm = LLM(model="TinyLlama/TinyLlama-1.1B-Chat-v1.0", 
              build_config=build_config)
    
    # 示例提示词
    prompts = [
        "Hello, my name is",
        "The capital of France is",
        "The future of AI is",
    ]
    
    # 创建采样参数
    sampling_params = SamplingParams(temperature=0.8, top_p=0.95)
    
    for output in llm.generate(prompts, sampling_params):
        print(f"Prompt: {output.prompt!r}, Generated text: {output.outputs[0].text!r}")

在线服务部署

# 启动OpenAI兼容的服务器
trtllm-serve --model TinyLlama/TinyLlama-1.1B-Chat-v1.0 --port 8000

量化工作流程

基本量化命令

# FP8量化
python quantize.py --model_dir $MODEL_PATH --qformat fp8 --kv_cache_dtype fp8 --output_dir $OUTPUT_PATH

# INT4 AWQ量化
python quantize.py --model_dir $MODEL_PATH --qformat int4_awq --awq_block_size 64 --tp_size 4 --output_dir $OUTPUT_PATH

# INT8 SmoothQuant量化
python quantize.py --model_dir $MODEL_PATH --qformat int8_sq --kv_cache_dtype int8 --output_dir $OUTPUT_PATH

# 自动量化(多种方法组合)
python quantize.py --model_dir $MODEL_PATH --autoq_format fp8,int4_awq,w4a8_awq --output_dir $OUTPUT_PATH --auto_quantize_bits 5 --tp_size 2

支持的模型

TensorRT-LLM支持大量流行的LLM架构,包括但不限于:

  • Llama系列:Llama 2, Llama 3, Llama 3.1, Llama 3.3
  • Falcon系列:包括Falcon-180B
  • GPT系列:ChatGPT相关架构
  • Gemma系列:Google的开源模型
  • Mixtral系列:混合专家模型
  • DeepSeek系列:包括DeepSeek R1
  • CodeLlama:代码生成专用模型

生态系统集成

NVIDIA生态系统

  • NVIDIA NeMo:端到端框架,用于构建、定制和部署生成式AI应用
  • Triton Inference Server:生产级推理服务器
  • NVIDIA Dynamo:数据中心规模的分布式推理服务框架

第三方集成

  • HuggingFace Hub:提供预量化模型
  • LlamaIndex:RAG应用开发
  • SageMaker LMI:AWS托管推理

性能基准

性能提升示例:

  • 相比CPU平台:推理速度提升高达36倍
  • 相比RTX无优化:Windows RTX平台上大语言模型速度提升高达4倍
  • Falcon-180B:在单个H200 GPU上使用INT4 AWQ实现推理
  • Llama-70B:相比A100实现6.7倍速度提升

最佳实践建议

量化方法选择

根据不同场景选择合适的量化方法:

  1. 小批量推理(批量大小≤4):

    • 推荐使用权重量化方法(如INT4 AWQ)
    • 主要考虑内存带宽限制
  2. 大批量推理(批量大小≥16):

    • 优先选择FP8量化,通常提供最佳性能和精度
    • 如果结果不满足需求,可尝试INT8 SmoothQuant,然后是AWQ和/或GPTQ
  3. 特定领域应用

    • 对于代码补全等高度特化的应用,建议使用领域相关的数据集进行校准

技术优势

  1. 易用性:提供高级Python API,简化LLM定义和优化过程
  2. 性能:包含所有主流优化技术,如内核融合、量化、运行时优化等
  3. 扩展性:支持从单GPU到多节点的各种部署场景
  4. 兼容性:与PyTorch深度集成,支持主要的推理生态系统
  5. 开源:完全开源,社区驱动的持续发展

未来发展

TensorRT-LLM通过开源模块化模型定义API提高易用性和扩展性,用于定义、优化和执行新架构和增强功能,可随着LLM的发展轻松定制。

项目持续发展方向包括:

  • 更多模型架构支持
  • 更先进的量化技术
  • 更好的多节点扩展能力
  • 更紧密的生态系统集成

Star History Chart