動的量子化の適用

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...