Готуємо моделі з AutoModel та Accelerator

Ефективне тренування моделей ШІ з PyTorch

Dennis Lee

Data Engineer, Amazon

Познайомтеся з інструктором!

$$

  • Інженер даних

Фотографія інструктора

Піктограма сервера

Ефективне тренування моделей ШІ з PyTorch

Познайомтеся з інструктором!

$$

  • Інженер даних
  • Дата-сайєнтист

Фотографія інструктора

Піктограми сервера та лампочки

Ефективне тренування моделей ШІ з PyTorch

Познайомтеся з інструктором!

$$

  • Інженер даних
  • Дата-сайєнтист
  • Канд. техн. наук (електротехніка)

Фотографія інструктора

Піктограми сервера, лампочки та академічної шапочки

Ефективне тренування моделей ШІ з PyTorch

Познайомтеся з інструктором!

$$

  • Інженер даних
  • Дата-сайєнтист
  • Канд. техн. наук (електротехніка)

Фотографія інструктора

Піктограми сервера, лампочки та академічної шапочки

$$

$$

$$

Радий поділитися найкращими практиками!

Ефективне тренування моделей ШІ з PyTorch

Наш план до ефективного навчання ШІ

  • Розподілене навчання моделей ШІ

Ноутбук

Ефективне тренування моделей ШІ з PyTorch

Наш план до ефективного навчання ШІ

  • Розподілене навчання моделей ШІ

Ноутбук і людина, що очікує

Ефективне тренування моделей ШІ з PyTorch

Наш план до ефективного навчання ШІ

  • Розподілене навчання моделей ШІ

Ноутбук, людина, що очікує, і мікросхема пам’яті

  • ↓ ↓ Час навчання для великих мовних моделей

Календар

Ефективне тренування моделей ШІ з PyTorch

Наш план до ефективного навчання ШІ

Блок-схема тем курсу: підготовка даних, розподілене навчання, ефективне навчання та оптимізатори.

$$

  • Підготовка даних: розміщення даних на кількох пристроях
Ефективне тренування моделей ШІ з PyTorch

Наш план до ефективного навчання ШІ

Блок-схема тем курсу: підготовка даних, розподілене навчання, ефективне навчання та оптимізатори.

$$

  • Підготовка даних: розміщення даних на кількох пристроях
  • Розподілене навчання: масштабування на кілька пристроїв
Ефективне тренування моделей ШІ з PyTorch

Наш план до ефективного навчання ШІ

Блок-схема тем курсу: підготовка даних, розподілене навчання, ефективне навчання та оптимізатори.

$$

  • Підготовка даних: розміщення даних на кількох пристроях
  • Розподілене навчання: масштабування на кілька пристроїв
  • Ефективне навчання: оптимізація використання пристроїв
Ефективне тренування моделей ШІ з PyTorch

Наш план до ефективного навчання ШІ

Блок-схема тем курсу: підготовка даних, розподілене навчання, ефективне навчання та оптимізатори.

$$

  • Підготовка даних: розміщення даних на кількох пристроях
  • Розподілене навчання: масштабування на кілька пристроїв
  • Ефективне навчання: оптимізація використання пристроїв
  • Оптимізатори: прискорення навчання
Ефективне тренування моделей ШІ з PyTorch

CPU

  • Більшість ноутбуків мають CPU

         

Ноутбук із CPU

GPU

  • GPU можуть навчати великі моделі

         

Ноутбук із GPU

Ефективне тренування моделей ШІ з PyTorch

CPU проти GPU

CPU

  • Більшість ноутбуків мають CPU
  • Створені для загальних обчислень
  • Кращі в керуванні потоком

         

Ноутбук для щоденних завдань

GPU

  • GPU можуть навчати великі моделі
  • Спеціалізуються на масово-паралельних обчисленнях
  • Відмінні в матричних операціях

         

Ноутбук для паралельних обчислень

Ефективне тренування моделей ШІ з PyTorch

Розподілене навчання

Схема розподіленого навчання з реплікацією моделі та шардуванням даних.

  • Шардування даних: кожен пристрій паралельно обробляє підмножину даних
Ефективне тренування моделей ШІ з PyTorch

Розподілене навчання

Схема розподіленого навчання з реплікацією моделі та шардуванням даних.

  • Шардування даних: кожен пристрій паралельно обробляє підмножину даних
  • Реплікація моделі: кожен пристрій виконує прямий/зворотний проходи
  • Агрегація градієнтів: призначений пристрій збирає градієнти
  • Синхронізація параметрів: призначений пристрій ділиться оновленими параметрами
Ефективне тренування моделей ШІ з PyTorch

Без зайвих зусиль: використання попередньо натренованих моделей

  • Використовуйте попередньо натреновані моделі 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

Розміщення на пристроях з 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

Перейдемо до практики!

Ефективне тренування моделей ШІ з PyTorch

Preparing Video For Download...