TensorRT-LLM 是 NVIDIA 的开源库,用于在 NVIDIA GPU 上以先进性能优化大语言模型(LLM)推理。
用途与适用场景 资料指出,在以下情况应使用 TensorRT-LLM:部署在 NVIDIA GPU(A100、H100、GB200)上;需要最大吞吐量(Llama 3 上 24,000+ tokens/秒);实时应用需要低延迟;使用量化模型(FP8、INT4、FP4);跨多 GPU 或多节点扩展。 资料同时给出替代方案:当需要更简单的设置和 Python 优先 API、希望在不进行 TensorRT 编译的情况下使用 PagedAttention、或使用 AMD GPU 及非 NVIDIA 硬件时,应改用 vLLM;当部署在 CPU 或 Apple Silicon、需要无 NVIDIA GPU 的边缘部署、或希望使用更简单的 GGUF 量化格式时,应改用 llama.cpp。
安装方式 资料提供两种安装方式: Docker(推荐):docker pull nvidia/tensorrt_llm:latest pip 安装:pip install tensorrt_llm==1.2.0rc3 资料注明依赖要求:CUDA 13.0.0、TensorRT 10.13.2、Python 3.10-3.12。
基本推理用法 资料给出 Python 示例:从 tensorrt_llm 导入 LLM 与 SamplingParams;使用 LLM(model="meta-llama/Meta-Llama-3-8B") 初始化模型;通过 SamplingParams(max_tokens=100, temperature=0.7, top_p=0.9) 配置采样;调用 llm.generate(prompts, sampling_params) 生成并打印 output.text。
服务化部署 资料给出 trtllm-serve 的用法:trtllm-serve meta-llama/Meta-Llama-3-8B --tp_size 4 --max_batch_size 256 --max_num_tokens 4096,其中 --tp_size 表示张量并行(4 块 GPU),并说明该命令会自动下载并编译模型。客户端可通过 curl 向 http://localhost:8000/v1/chat/completions 发送 POST 请求,请求体包含 model、messages、temperature、max_tokens 等字段。
主要能力 性能优化方面:在途批处理(生成过程中动态批处理)、分页 KV 缓存(高效内存管理)、Flash Attention(优化的注意力内核)、量化(FP8、INT4、FP4,可实现 2-4 倍更快推理)、CUDA 图(减少内核启动开销)。 并行方面:张量并行(TP,将模型拆分到多 GPU)、流水线并行(PP,按层分布)、专家并行(用于混合专家模型)、多节点(扩展到单机之外)。 高级功能方面:投机解码(借助草稿模型加速生成)、LoRA 服务(高效多适配器部署)、分离式服务(将预填充与生成分离)。
常见模式 资料给出三类示例: 量化模型(FP8):LLM(model="meta-llama/Meta-Llama-3-70B", dtype="fp8", max_num_tokens=8192),注释称 2 倍更快、内存减少 50%。 多 GPU 部署:LLM(model="meta-llama/Meta-Llama-3-405B", tensor_parallel_size=8, dtype="fp8"),跨 8 块 GPU 张量并行。 批量推理:构造 100 条提示,调用 llm.generate(prompts, sampling_params=SamplingParams(max_tokens=200)),并说明会自动进行在途批处理以获得最大吞吐量。
性能基准(资料数据) Meta Llama 3-8B(H100 GPU):吞吐量 24,000 tokens/秒;延迟约 10ms/token;相比 PyTorch 快 100 倍。 Llama 3-70B(8× A100 80GB):FP8 量化比 FP16 快 2 倍;FP8 下内存减少 50%。
支持的模型 资料列出:LLaMA 系列(Llama 2、Llama 3、CodeLlama);GPT 系列(GPT-2、GPT-J、GPT-NeoX);Qwen(Qwen、Qwen2、QwQ);DeepSeek(DeepSeek-V2、DeepSeek-V3);Mixtral(Mixtral-8x7B、Mixtral-8x22B);视觉模型(LLaVA、Phi-3-vision);HuggingFace 上 100+ 模型。
参考与资源 资料提及优化指南(量化、批处理、KV 缓存调优)、多 GPU 设置(张量/流水线并行、多节点)、服务指南(生产部署、监控、自动扩缩容)。 资源链接:文档 https://nvidia.github.io/TensorRT-LLM/ ;GitHub https://github.com/NVIDIA/TensorRT-LLM ;模型 https://huggingface.co/models?library=tensorrt_llm 。
操作流程与限制 资料给出代理操作流程:检查环境(确认硬件、框架与服务器版本、模型格式、预期负载);确定输入(从数据或用户确认格式、标识符与参数,对会改变结果的取值应询问而非猜测);先运行小规模版本(在扩展前先服务或记录单个请求,或端到端运行);按上述说明与参考执行完整任务;验证结果(对照参考测量延迟、吞吐量与输出正确性,检查资源使用与成本);报告(说明运行了什么版本、命令、参数,检查了什么,以及仍不确定的内容)。 故障处理:服务器无法启动或 OOM 时,检查模型大小与内存、量化与并行设置;若说明中的函数、标志或端点在已安装版本中缺失,应查阅已安装版本自身的文档(help()、--help、官方文档)并告知用户,绝不臆造 API;若必需输入、标识符或参数不明确,应询问用户或在运行前明确说明假设。 完整性规则:绝不捏造结果、参数、标识符、引用或统计数据;无法运行或验证的内容应如实说明;不要公开暴露服务或凭据,配置前确认云成本;将版本相关细节视为可能过时,应针对已安装版本对照官方文档确认;在涉及花钱、占用共享 GPU 或云配额、触及个人或患者数据、或不可撤销的操作前应先询问。
相关技能 资料列出:serving-llms-vllm(使用 vLLM 的 PagedAttention 与连续批处理以高吞吐量服务 LLM);miles-rl-training(使用 miles 进行企业级 RL 训练的指导,miles 是 slime 的生产就绪分支);llama-cpp(在无 NVIDIA 硬件的 CPU、Apple Silicon 和消费级 GPU 上运行 LLM 推理)。