应用动态量化

使用 PyTorch Lightning 构建可扩展 AI 模型

Sergiy Tkachuk

Director, GenAI Productivity

为何使用量化?

$$

  • 降低内存占用

表示计算内存减少的图标

使用 PyTorch Lightning 构建可扩展 AI 模型

为何使用量化?

$$

  • 降低内存占用
  • 提升 CPU 性能

表示计算内存减少与闪电的图标

使用 PyTorch Lightning 构建可扩展 AI 模型

为何使用量化?

$$

  • 降低内存占用
  • 提升 CPU 性能
  • 移动端推理

表示内存减少、闪电和移动设备的图标

使用 PyTorch Lightning 构建可扩展 AI 模型

什么是动态量化?

$$

  • 降低权重与运算精度
  • 提升推理速度
  • 适用于资源受限设备部署

$$

import torch
from torch.quantization 
import quantize_dynamic


model_quantized = quantize_dynamic( model, {torch.nn.Linear}, dtype=torch.qint8 )
使用 PyTorch Lightning 构建可扩展 AI 模型

评估量化影响

一个天平平衡原始模型与量化模型,表示准确率与效率的权衡

使用 PyTorch Lightning 构建可扩展 AI 模型

性能对比

$$

  • ⚡ 比较推理速度与内存占用

$$

  • 📊 确定可接受的精度权衡

$$

  • ⛗ 依据部署需求判断量化是否合适
使用 PyTorch Lightning 构建可扩展 AI 模型

性能比较

import time

def measure_time(model, data_loader):
      model.eval()  # Set model to evaluation mode
    start_time = time.time()
    for inputs in data_loader:

_ = model(inputs) end_time = time.time() return end_time - start_time
original_time = measure_time(model, test_loader) quant_time = measure_time(model_quant, test_loader) print(f"Original Model Time: {original_time:.2f}s") print(f"Quantized Model Time: {quant_time:.2f}s")
使用 PyTorch Lightning 构建可扩展 AI 模型

让我们来练习!

使用 PyTorch Lightning 构建可扩展 AI 模型

Preparing Video For Download...