📘 TensorRT-LLM 编译
30 章 · 从零到生产
🎯 友好色系
01
TensorRT-LLM 初探:什么是 TensorRT-LLM?为什么需要它?核心优势与适用场景。
概念
动机
02
环境准备:Docker 镜像拉取、CUDA/cuDNN/TensorRT 版本匹配、验证安装。
环境
Docker
03
模型仓库与转换:HuggingFace 模型下载、ONNX 导出、TensorRT-LLM 检查点格式。
转换
格式
04
第一个编译任务:使用 trtllm-build 编译 LLaMA 模型,理解输入输出路径。
编译
入门
05
配置详解(上):模型结构参数(num_layers, num_heads, hidden_size)的配置与影响。
参数
结构
06
配置详解(下):精度控制(FP16/INT8/INT4)、量化策略(SmoothQuant, AWQ, GPTQ)。
精度
量化
07
编译流程拆解:权重绑定、层融合、图优化、内存优化,每一步在做什么?
流程
优化
08
插件系统:FlashAttention、PageAttention、GQA/MQA 等 Kernel 插件的启用。
插件
Kernel
09
多卡与张量并行:TP(张量并行)与 PP(流水线并行)的原理与配置。
并行
多卡
10
批处理策略:动态批处理(Dynamic Batching)、连续批处理(Inflight Batching)的配置。
批处理
吞吐
11
KV Cache 优化:Paged KV Cache、KV Cache 量化、缓存复用策略。
KV Cache
显存
12
模型编译实战(一):编译 LLaMA-7B,从配置文件到引擎生成。
实战
LLaMA
13
模型编译实战(二):编译 ChatGLM3-6B,处理非标准架构。
实战
ChatGLM
14
模型编译实战(三):编译 Qwen-7B,处理 MoE 架构。
实战
MoE
15
模型编译实战(四):编译 Mixtral-8x7B,处理大模型分布式编译。
分布式
Mixtral
16
运行时引擎加载:C++ Runtime API 与 Python Bindings 的加载与推理。
Runtime
推理
17
服务化部署:使用 Triton Inference Server 集成 TensorRT-LLM 后端。
部署
Triton
18
性能基准测试:吞吐量、首 token 延迟、端到端延迟的测量方法。
基准
延迟
19
性能调优(上):调整 max_batch_size、max_input_len、max_output_len。
调优
参数
20
性能调优(下):调整 GPU 频率、使用 CUDA Graph、优化 Host Memory。
调优
CUDA Graph
21
量化实战(一):使用 SmoothQuant 对 LLaMA 进行 INT8 量化编译。
SmoothQuant
INT8
22
量化实战(二):使用 AWQ 对 LLaMA 进行 INT4 量化编译。
AWQ
INT4
23
量化实战(三):使用 GPTQ 对 LLaMA 进行 INT4 量化编译。
GPTQ
INT4
24
量化对比:FP16 vs INT8 vs INT4 的精度与性能权衡分析。
对比
权衡
25
常见错误排查:OOM 错误、形状不匹配、精度异常、版本冲突。
排错
OOM
26
自定义模型支持:注册自定义模型、编写模型定义文件。
自定义
扩展
27
多模态模型编译:LLaVA 等视觉语言模型的编译要点。
多模态
LLaVA
28
安全与最佳实践:模型加密、容器化部署、日志监控。
安全
最佳实践
29
社区生态与工具:TensorRT-LLM 官方示例、NeMo、vLLM 对比。
生态
对比
30
综合实战:从零编译并部署一个生产级 LLaMA-70B 服务。
综合
生产级