快速开始:稀疏性
稀疏性
ModelOpt的稀疏性功能是一种有效的技术,可以减少深度学习模型的内存占用并加速推理速度。ModelOpt提供了易于使用的API mts.sparsify()来对给定模型应用权重稀疏性。mts.sparsify()支持NVIDIA 2:4稀疏性稀疏模式和各种稀疏化方法,例如NVIDIA ASP和SparseGPT。
本指南提供了使用ModelOpt将权重稀疏性应用于PyTorch模型的快速入门。
PyTorch模型的训练后稀疏化(PTS)
mts.sparsify() 需要模型、适当的稀疏配置和前向循环作为输入。这里是一个使用mts.sparsify()通过SparseGPT方法将模型稀疏化为2:4稀疏模式的快速示例。
import modelopt.torch.sparsity as mts
# Setup the model
model = get_model()
# Setup the data loaders. An example usage:
data_loader = get_train_dataloader(num_samples=calib_size)
# Define the sparsity configuration
sparsity_config = {"data_loader": data_loader, "collect_func": lambda x: x}
# Sparsify the model and perform calibration (PTS)
model = mts.sparsify(model, mode="sparsegpt", config=sparsity_config)
注意
data_loader 仅在数据驱动的稀疏性情况下需要,例如用于校准的 SparseGPT。 sparse_magnitude 不需要 data_loader,因为它完全基于模型的权重。
注意
data_loader 和 collect_func 可以被一个 forward_loop 替代,该循环通过校准数据集迭代模型。
PyTorch模型的稀疏感知训练 (SAT)
在稀疏化模型后,您可以保存稀疏化模型的检查点,并将其用于微调稀疏化模型。查看 GitHub端到端示例 以了解更多关于SAT的信息。
- Next Steps
了解更多关于稀疏性和ModelOpt稀疏性的高级用法,请参阅 稀疏性指南。
查看GitHub上的端到端示例以了解PTS和SAT。