一、课程导论与前置准备:TensorRT-LLM简介、HuggingFace生态概览、课程目标与学习路径、环境搭建
1.1 为什么我要讲这门课?
说实话,我入行深度学习部署快六年了。从最早的 TensorRT 5 开始,一路踩坑踩到今天。大模型爆发那会儿,我还在用 PyTorch 的 FP16 硬扛推理,结果显存直接爆了。后来 NVIDIA 出了 TensorRT-LLM,我才真正感受到「推理优化」这四个字的分量。
这门课,说白了就是把我这些年踩过的坑、总结的经验,一次性倒给你。你不需要再走一遍我走过的弯路。
1.2 TensorRT-LLM 到底是什么?
TensorRT-LLM 是 NVIDIA 专门为大语言模型推理打造的工具。它不是一个简单的优化库,而是一整套推理加速方案。
我习惯把它理解成「大模型的编译器+运行时」。它能把 HuggingFace 上那些动辄几十亿参数的模型,转换成能在 GPU 上高效运行的引擎。
核心能力:
- 支持 GPT、LLaMA、Falcon、ChatGLM 等主流架构
- 内置 FP8、INT4、INT8 量化
- 支持 inflight batching(动态批处理)
- 多 GPU 张量并行
嗯,这里要注意:TensorRT-LLM 不是 TensorRT 的简单升级版。它的底层做了大量针对 Transformer 的优化,比如 FlashAttention 的集成、KV Cache 的管理。我在项目中遇到过,直接用 TensorRT 跑 LLaMA-70B,延迟比 TensorRT-LLM 高了将近 3 倍。
1.3 HuggingFace 生态概览
HuggingFace 现在已经是 NLP 领域的 GitHub 了。你想想看,几乎所有开源的大模型,都能在 HuggingFace 上找到。
我个人习惯把 HuggingFace 生态分成三层:
| 层级 | 组件 | 作用 |
|---|---|---|
| 模型层 | Transformers 库 | 加载、推理、微调模型 |
| 数据层 | Datasets 库 | 数据集下载与预处理 |
| 部署层 | PEFT + TRL | 高效微调与对齐 |
为什么 HuggingFace 和 TensorRT-LLM 能结合?因为 TensorRT-LLM 的模型转换入口,就是 HuggingFace 的 checkpoint 格式。说白了,你从 HuggingFace 下载模型,然后交给 TensorRT-LLM 去优化。
我的建议: 不要试图自己从头训练大模型。直接从 HuggingFace 拉预训练模型,然后做量化+部署,这是目前最务实的路线。
1.4 课程目标与学习路径
这门课的目标很明确:让你能独立完成从 HuggingFace 模型到 TensorRT-LLM 生产部署的全流程。
具体来说,学完你能做到:
- 用 TensorRT-LLM 转换并运行 GPT、LLaMA、ChatGLM
- 配置 INT4/INT8 量化,把显存占用砍掉一半
- 搭建支持并发请求的推理服务
- 排查部署中的常见问题(OOM、精度下降、延迟抖动)
学习路径我建议这样走:
- 基础篇(第1-5章):环境搭建、模型转换、基础推理
- 进阶篇(第6-15章):量化、并行、KV Cache 优化
- 实战篇(第16-25章):服务化部署、性能调优、监控
- 高阶篇(第26-30章):多模态、自定义算子、生产案例
我曾经带过一个团队,他们直接跳过了基础篇去搞量化,结果模型精度掉了 5 个点,排查了三天才发现是转换参数配错了。所以,别急,一步步来。
1.5 环境搭建(Docker、CUDA、Python 依赖)
环境搭建是这门课的第一个坑。我见过太多人卡在这一步。
警告: 不要试图在 Windows 上直接装 TensorRT-LLM。官方只支持 Linux。我建议直接用 Docker。
1.5.1 Docker 环境
NVIDIA 官方提供了 TensorRT-LLM 的 Docker 镜像。我个人习惯用这个:
# 拉取 TensorRT-LLM 镜像(约 8GB)
docker pull nvidia/cuda:12.1.0-devel-ubuntu22.04
# 启动容器
docker run --gpus all -it \
-v /path/to/your/code:/workspace \
nvidia/cuda:12.1.0-devel-ubuntu22.04 \
/bin/bash
嗯,这里要注意:镜像里的 CUDA 版本必须和你的驱动兼容。可以用 nvidia-smi 查看驱动支持的 CUDA 版本。
1.5.2 CUDA 与 cuDNN
TensorRT-LLM 需要 CUDA 11.8 或 12.x。我建议直接用 12.1,兼容性最好。
安装步骤:
- 从 NVIDIA 官网下载 CUDA 12.1 runfile
- 执行
sudo sh cuda_12.1.0_*.run - 配置环境变量:
export PATH=/usr/local/cuda-12.1/bin:$PATH - 安装 cuDNN 8.9(TensorRT-LLM 依赖)
避坑指南: 我曾经在 Ubuntu 20.04 上装 CUDA 12.1,结果 gcc 版本太旧编译不过。解决方案:sudo apt install gcc-11 g++-11,然后指定 CC 环境变量。
1.5.3 Python 依赖
建议用 conda 创建虚拟环境:
conda create -n trtllm python=3.10
conda activate trtllm
# 安装核心依赖
pip install torch==2.1.0 --index-url https://download.pytorch.org/whl/cu121
pip install tensorrt-llm==0.7.0
pip install transformers==4.36.0
pip install datasets==2.15.0
pip install accelerate==0.25.0
验证安装:
python -c "import tensorrt_llm; print(tensorrt_llm.__version__)"
# 输出应为 0.7.0 或更高
1.6 本章知识体系
下面这张图,是我用 SVG 画的本章知识结构。你可以把它当成一张地图,后面每章都会在这张图上展开。
这张图把本章四个核心模块串起来了。你会发现,TensorRT-LLM 和 HuggingFace 是两条腿,课程目标是方向,环境搭建是地基。缺一个,你都跑不起来。
1.7 写在最后
这一章的内容,说白了就是「热身」。别觉得简单,我见过太多人因为环境没配好,卡在第一周。如果你在搭建过程中遇到问题,记住两个原则:
- 优先用 Docker,别折腾原生安装
- CUDA 版本一定要和驱动匹配
下一章,我们开始真正动手——把第一个 HuggingFace 模型转换成 TensorRT-LLM 引擎。