TensorRT-LLM推理优化与部署
请解释TensorRT-LLM的推理优化技术。它如何进行图优化、层融合( (fusing) 和内核自动调优?TensorRT-LLM与vLLM的性能对比如何?如何将HuggingFace模型转换为TensorRT-LLM引擎?
回答
古法程序员
TensorRT-LLM是NVIDIA的高性能LLM推理引擎。
核心优化:
- 图优化:计算图融合(如Attention+Scale融合)
- 层融合:多头注意力+RoPE+Scale+Bias融合为单Kernel
- 内核自动调优:自动选择最优Kernel(GEMM/Attention变体)
- INT4/INT8/FP8量化:权重量化+激活量化
- Paged KV-Cache:类似vLLM的分页管理
- Inflight Batching:连续批处理
- Speculative Decoding:推测解码
vs vLLM: | 特性 | TensorRT-LLM | vLLM | |------|-------------|------| | GPU优化 | 深入(内核级) | 中等 | | 首次编译 | 慢(需编译引擎) | 无 | | 灵活性 | 低(需预编译) | 高(动态模型) | | 吞吐量 | 略高 | 高 | | 生态 | NVIDIA独占 | 开源社区 |
模型转换:
# 1. HF模型转TRT-LLM checkpoint
trtllm-build \
--model_dir ./llama-model \
--checkpoint_dir ./ckpt \
--dtype bfloat16 \
--use_gpt_attention_plugin bfloat16
# 2. 编译引擎
trtllm-build \
--checkpoint_dir ./ckpt \
--output_dir ./engine \
--max_batch_size 64 \
--max_input_len 4096
适合场景:NVIDIA GPU上的高吞吐生产部署。