一、课程导论与前置准备: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. 基础篇(第1-5章):环境搭建、模型转换、基础推理
  2. 进阶篇(第6-15章):量化、并行、KV Cache 优化
  3. 实战篇(第16-25章):服务化部署、性能调优、监控
  4. 高阶篇(第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,兼容性最好。

安装步骤:

  1. 从 NVIDIA 官网下载 CUDA 12.1 runfile
  2. 执行 sudo sh cuda_12.1.0_*.run
  3. 配置环境变量:export PATH=/usr/local/cuda-12.1/bin:$PATH
  4. 安装 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 生态 课程目标与路径 环境搭建 模型转换 量化加速 模型下载 数据集 基础篇 进阶篇 Docker CUDA + Python

这张图把本章四个核心模块串起来了。你会发现,TensorRT-LLM 和 HuggingFace 是两条腿,课程目标是方向,环境搭建是地基。缺一个,你都跑不起来。

1.7 写在最后

这一章的内容,说白了就是「热身」。别觉得简单,我见过太多人因为环境没配好,卡在第一周。如果你在搭建过程中遇到问题,记住两个原则:

  • 优先用 Docker,别折腾原生安装
  • CUDA 版本一定要和驱动匹配

下一章,我们开始真正动手——把第一个 HuggingFace 模型转换成 TensorRT-LLM 引擎。

专注资料整理