概述
NVIDIA TensorRT 模型优化器
随着生成式AI模型在复杂性和规模上的不断增长,最小化推理成本成为一个重大挑战。NVIDIA TensorRT模型优化器(简称Model Optimizer或ModelOpt)是一个包含最先进模型优化技术的库,包括量化和稀疏化以压缩模型。它接受torch或ONNX模型作为输入,并提供Python API,使用户能够轻松堆叠不同的模型优化技术,以生成优化和量化的检查点。与NVIDIA AI软件生态系统无缝集成,从Model Optimizer生成的量化检查点可以立即部署在下游推理框架中,如TensorRT-LLM或TensorRT(Linux)。ModelOpt与NVIDIA NeMo和Megatron-LM集成,用于训练中的循环优化技术。对于企业用户,8位量化与Stable Diffusion也可在NVIDIA NIM上使用。
对于Windows用户,TensorRT Model Optimizer for Windows(ModelOpt-Windows)在Windows RTX PC系统上提供了模型压缩技术,包括量化。ModelOpt-Windows针对高效量化进行了优化,具有本地GPU校准、减少系统和视频内存消耗以及快速处理时间的特点。它与Windows生态系统无缝集成,输出优化的ONNX模型以供Microsoft DirectML后端使用。此外,ModelOpt-Windows支持Microsoft Olive和ONNX Runtime等SDK,通过DirectML路径在各种独立硬件供应商上部署量化模型。
适用于Linux和Windows的TensorRT模型优化器对所有开发者免费提供,可在NVIDIA PyPI上获取。访问TensorRT Model Optimizer GitHub repository获取为NVIDIA GPU优化的端到端示例脚本和配方。
技术
量化
量化是一种针对大型模型的有效优化技术。使用模型优化器进行量化可以将模型大小压缩2到4倍,在保持模型质量的同时加速推理。模型优化器支持高性能的量化格式,包括FP8、INT8、INT4等,并支持先进的算法,如SmoothQuant、AWQ和双量化,提供易于使用的Python API。支持训练后量化(PTQ)和量化感知训练(QAT)。访问量化 格式 页面查看支持的格式列表。
稀疏性
稀疏化是一种进一步减少深度学习模型内存占用并加速推理的技术。
Model Optimizer 提供了 Python API mts.sparsify() 来自动对给定模型应用权重稀疏化。
mts.sparsify() API 支持
NVIDIA 2:4 稀疏模式和各种稀疏化方法,
例如 NVIDIA ASP 和
SparseGPT。它支持训练后稀疏化(PTS)和
稀疏感知训练(SAT)。推荐使用后者以最小化精度损失。
蒸馏
知识蒸馏是利用现有的预训练“教师”模型来训练一个更小、更高效的“学生”模型。
它允许提高传统训练的准确性和/或收敛速度。
教师和学生的特征图和logits分别成为(用户指定的)损失的目标和预测。
模型优化器允许将教师-学生知识蒸馏以最小侵入性的方式集成到现有的训练管道中
使用mtd.convert() API。
剪枝
剪枝是一种通过移除不必要的权重来减少模型大小并加速推理的技术。
Model Optimizer 提供了 Python API mtp.prune() 来剪枝线性和
卷积层,以及通过各种不同的先进算法剪枝 Transformer 注意力头、MLP 和深度。