NVIDIA/TensorRT-LLMView GitHub Homepage for Latest Official Releases
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倍速度提升
最佳实践建议
量化方法选择
根据不同场景选择合适的量化方法:
小批量推理(批量大小≤4):
- 推荐使用权重量化方法(如INT4 AWQ)
- 主要考虑内存带宽限制
大批量推理(批量大小≥16):
- 优先选择FP8量化,通常提供最佳性能和精度
- 如果结果不满足需求,可尝试INT8 SmoothQuant,然后是AWQ和/或GPTQ
特定领域应用:
- 对于代码补全等高度特化的应用,建议使用领域相关的数据集进行校准
技术优势
- 易用性:提供高级Python API,简化LLM定义和优化过程
- 性能:包含所有主流优化技术,如内核融合、量化、运行时优化等
- 扩展性:支持从单GPU到多节点的各种部署场景
- 兼容性:与PyTorch深度集成,支持主要的推理生态系统
- 开源:完全开源,社区驱动的持续发展
未来发展
TensorRT-LLM通过开源模块化模型定义API提高易用性和扩展性,用于定义、优化和执行新架构和增强功能,可随着LLM的发展轻松定制。
项目持续发展方向包括:
- 更多模型架构支持
- 更先进的量化技术
- 更好的多节点扩展能力
- 更紧密的生态系统集成