本文经自动驾驶之心公众号授权转载,转载请联系出处。
TensorRT-LLM是NVIDIA推出的一款高性能深度学习推理优化库,专注于提升大型语言模型(LLM)在NVIDIA GPU上的推理速度和效率。如果您绕不开Nvidia的芯片,那么一定要好好了解这款推理库。
项目链接:https://github.com/NVIDIA/TensorRT-LLM
一、TensorRT-LLM的优势
TensorRT-LLM(TensorRT for Large Language Models)旨在解决大型语言模型在实际应用中面临的性能瓶颈问题。通过提供一系列专为LLM推理设计的优化工具和技术,TensorRT-LLM能够显著提升模型的推理速度,降低延迟,并优化内存使用。
二、TensorRT-LLM的核心功能
1)易于使用的Python API
- TensorRT-LLM提供了一个简洁易用的Python API,允许用户定义大型语言模型并构建包含先进优化的TensorRT引擎。
- 该API设计类似于PyTorch,使得具有PyTorch经验的开发者能够轻松迁移和集成。
2)模型优化
- TensorRT-LLM支持多种量化选项(如FP16、INT8等),用户可以根据具体需求选择合适的配置,实现性能与精度的平衡。
- 通过层级融合、内核选择和精度调整等优化技术,TensorRT-LLM能够显著提升模型的推理速度。
3)内存管理
- TensorRT-LLM通过智能内存分配和分页注意力机制,优化了内存使用,降低了内存占用。
4)多线程并行与硬件加速
- 支持多线程并行处理,提高处理速度。
- 充分利用NVIDIA GPU的计算能力,加速模型推理。
5)动态批处理
- TensorRT-LLM支持动态批处理,通过同时处理多个请求来优化文本生成,减少了等待时间并提高了GPU利用率。
6)多GPU与多节点推理
- 支持在多个GPU或多个节点上进行分布式推理,提高了吞吐量并减少了总体推理时间。
7)FP8支持
- 配备TensorRT-LLM的NVIDIA H100 GPU能够轻松地将模型权重转换为新的FP8格式,并自动编译模型以利用优化的FP8内核。这得益于NVIDIA Hopper架构,且无需更改任何模型代码。
8)最新GPU支持
- TensorRT-LLM 支持基于 NVIDIA Hopper、NVIDIA Ada Lovelace、NVIDIA Ampere、NVIDIA Turing 和 NVIDIA Volta 架构的GPU。
三、TensorRT-LLM支持部署的模型
1)LLM系列
2)多模态大模型
四、量化相关
INT8 SmoothQuant (W8A8)
SmoothQuant技术在:https://arxiv.org/abs/2211.10438中被介绍。它是一种使用INT8对激活和权重进行推理的方法,同时保持网络(在下游任务中)的准确性。如研究论文所述,必须对模型的权重进行预处理。TensorRT-LLM包含用于准备模型以使用SmoothQuant方法运行的脚本。
关于如何为GPT、GPT-J和LLaMA启用SmoothQuant的示例,可以在版本的examples/quantization
文件夹中找到。
INT4和INT8仅权重量化 (W4A16和W8A16)
INT4和INT8仅权重量化技术包括对模型的权重进行量化,并在线性层(Matmuls)中动态地对这些权重进行反量化。激活使用浮点数(FP16或BF16)进行编码。要使用INT4/INT8仅权重量化方法,用户必须确定用于量化和反量化模型权重的缩放因子。
GPTQ和AWQ (W4A16)
GPTQ和AWQ技术分别在https://arxiv.org/abs/2210.17323和https://arxiv.org/abs/2306.00978中介绍。TensorRT-LLM支持在线性层中使用每组缩放因子和零偏移来实现GPTQ和AWQ方法。有关详细信息,请参阅WeightOnlyGroupwiseQuantMatmulPlugin
插件和相应的weight_only_groupwise_quant_matmul
Python函数。
代码中包括将GPTQ应用于GPT-NeoX和LLaMA-v2的示例,以及使用AWQ与GPT-J的示例。这些示例是实验性实现,并可能在未来的版本中有所改进。
FP8 (Hopper)
TensorRT-LLM包含为GPT-NeMo、GPT-J和LLaMA实现的FP8。这些示例可以在examples/quantization
中找到。
五、TensorRT-LLM支持的硬件和软件
六、TensorRT-LLM的应用场景
TensorRT-LLM在多个领域展现了其强大的应用能力,包括但不限于:
- 在线客服系统:通过实时的对话生成,提供无缝的人工智能辅助服务。
- 搜索引擎:利用模型对查询进行增强,提供更精准的搜索结果。
- 自动代码补全:在IDE中集成模型,帮助开发者自动完成代码编写。
- 内容创作平台:自动生成文章摘要或建议,提升创作者的工作效率。