TensorRT-LLM 架构
TensorRT-LLM 是一个用于组装优化解决方案以执行大型语言模型(LLM)推理的工具包。它提供了一个模型定义API来定义模型,并为NVIDIA GPU编译高效的TensorRT引擎。它还包含Python和C++组件,用于构建运行时以执行这些引擎,以及Triton Inference Server的后端,以便轻松创建基于Web的LLM服务。TensorRT-LLM支持多GPU和多节点配置(通过MPI)。
作为用户,创建推理解决方案的第一步是定义自己的模型或选择一个预定义的网络架构(请参阅models以获取TensorRT-LLM支持的模型列表)。一旦定义,该模型必须使用训练框架进行训练(训练不在TensorRT-LLM的范围内)。对于预定义的模型,可以从各种提供商下载检查点。为了说明这一点,TensorRT-LLM中的许多示例使用从Hugging Face中心获得的模型权重,并使用NVIDIA Nemo或PyTorch进行训练。
配备了模型定义和权重后,用户必须使用TensorRT-LLM的模型定义API以能够被TensorRT编译成高效引擎的方式重新创建模型。为了便于使用,TensorRT-LLM已经支持了一些标准模型。
与用于描述模型的模型定义API一起,TensorRT-LLM为用户提供了创建执行高效TensorRT引擎的运行时的组件。运行时组件提供了波束搜索,以及广泛的采样功能,如top-K和top-P采样。完整的列表可以在C++ GPT运行时的文档中找到。C++运行时是推荐的运行时。
TensorRT-LLM 还包括用于 NVIDIA Triton 推理服务器的 Python 和 C++ 后端,以组装用于 LLM 在线服务的解决方案。C++ 后端实现了飞行批处理,如 Executor API 文档中所述,是推荐的后端。
模型权重
TensorRT-LLM 是一个用于大语言模型(LLM)推理的库,因此要使用它,你需要提供一组训练好的权重。你可以使用自己在像 NVIDIA NeMo 这样的框架中训练的模型权重,或者从像 Hugging Face Hub 这样的仓库中拉取一组预训练的权重。