AutoModelとAcceleratorによるモデルの準備

PyTorch による効率的な AI モデルトレーニング

Dennis Lee

Data Engineer, Amazon

講師紹介

$$

  • データエンジニア

講師の写真

サーバーのアイコン

PyTorch による効率的な AI モデルトレーニング

講師紹介

$$

  • データエンジニア
  • データサイエンティスト

講師の写真

サーバーと電球のアイコン

PyTorch による効率的な AI モデルトレーニング

講師紹介

$$

  • データエンジニア
  • データサイエンティスト
  • 電気工学の博士号取得

講師の写真

サーバー、電球、卒業帽のアイコン

PyTorch による効率的な AI モデルトレーニング

講師紹介

$$

  • データエンジニア
  • データサイエンティスト
  • 電気工学の博士号取得

講師の写真

サーバー、電球、卒業帽のアイコン

$$

$$

$$

ベストプラクティスをお伝えできることを楽しみにしています!

PyTorch による効率的な AI モデルトレーニング

効率的なAIトレーニングへのロードマップ

  • 分散AIモデルトレーニング

ノートパソコン

PyTorch による効率的な AI モデルトレーニング

効率的なAIトレーニングへのロードマップ

  • 分散AIモデルトレーニング

ノートパソコンと待機中の人物

PyTorch による効率的な AI モデルトレーニング

効率的なAIトレーニングへのロードマップ

  • 分散AIモデルトレーニング

ノートパソコン、待機中の人物、メモリチップ

  • ↓ ↓ 大規模言語モデルのトレーニング時間

カレンダー

PyTorch による効率的な AI モデルトレーニング

効率的なAIトレーニングへのロードマップ

コーストピックのフローチャート:データ準備、分散トレーニング、効率的トレーニング、オプティマイザー

$$

  • データ準備:複数デバイスへのデータ配置
PyTorch による効率的な AI モデルトレーニング

効率的なAIトレーニングへのロードマップ

コーストピックのフローチャート:データ準備、分散トレーニング、効率的トレーニング、オプティマイザー

$$

  • データ準備:複数デバイスへのデータ配置
  • 分散トレーニング:複数デバイスへのスケーリング
PyTorch による効率的な AI モデルトレーニング

効率的なAIトレーニングへのロードマップ

コーストピックのフローチャート:データ準備、分散トレーニング、効率的トレーニング、オプティマイザー

$$

  • データ準備:複数デバイスへのデータ配置
  • 分散トレーニング:複数デバイスへのスケーリング
  • 効率的トレーニング:利用可能なデバイスの最適化
PyTorch による効率的な AI モデルトレーニング

効率的なAIトレーニングへのロードマップ

コーストピックのフローチャート:データ準備、分散トレーニング、効率的トレーニング、オプティマイザー

$$

  • データ準備:複数デバイスへのデータ配置
  • 分散トレーニング:複数デバイスへのスケーリング
  • 効率的トレーニング:利用可能なデバイスの最適化
  • オプティマイザー:トレーニングの高速化
PyTorch による効率的な AI モデルトレーニング

CPU

  • ほとんどのノートパソコンにはCPUが搭載されています

         

CPUを搭載したノートパソコン

GPU

  • GPUは大規模モデルのトレーニングが可能です

         

GPUを搭載したノートパソコン

PyTorch による効率的な AI モデルトレーニング

CPUとGPUの比較

CPU

  • ほとんどのノートパソコンにはCPUが搭載されています
  • 汎用コンピューティング向けに設計
  • 優れた制御フロー

         

日常的なタスクに使用されるノートパソコン

GPU

  • GPUは大規模モデルのトレーニングが可能です
  • 高度な並列コンピューティングに特化
  • 行列演算に優れています

         

並列コンピューティングに使用されるノートパソコン

PyTorch による効率的な AI モデルトレーニング

分散トレーニング

モデルレプリケーションとデータシャーディングを示す分散トレーニングの図

  • データシャーディング:各デバイスがデータの一部を並列処理
PyTorch による効率的な AI モデルトレーニング

分散トレーニング

モデルレプリケーションとデータシャーディングを示す分散トレーニングの図

  • データシャーディング:各デバイスがデータの一部を並列処理
  • モデルレプリケーション:各デバイスがフォワード/バックワードパスを実行
  • 勾配集約:指定デバイスが勾配を集約
  • パラメーター同期:指定デバイスが更新済みパラメーターを共有
PyTorch による効率的な AI モデルトレーニング

事前学習済みモデルの活用による効率化

  • 事前学習済みTransformerモデルの活用
  • AutoModelForSequenceClassification を呼び出してモデルパラメーターを初期化
  • 設定の表示
from transformers import AutoModelForSequenceClassification
model = AutoModelForSequenceClassification.from_pretrained(model_name)

print(model.config)
DistilBertConfig {
  "architectures": ["DistilBertForMaskedLM"],
  "dim": 768,
  "dropout": 0.1,
  "hidden_dim": 3072,
  ...
PyTorch による効率的な AI モデルトレーニング

Acceleratorによるデバイス配置

  • Hugging Faceのクラス 🤗
  • Accelerator はコンピューター上の利用可能なデバイスを自動検出
  • デバイス配置とデータ並列化の自動化:accelerator.prepare()
  • モデル(型:torch.nn.Module)を最初の利用可能なGPUに配置
  • GPUが見つからない場合はCPUにフォールバック
from accelerate import Accelerator
accelerator = Accelerator()
model = accelerator.prepare(model)

print(accelerator.device)
cpu
PyTorch による効率的な AI モデルトレーニング

練習しましょう!

PyTorch による効率的な AI モデルトレーニング

Preparing Video For Download...