Efficient AI

Блок 2. Нейронные сети. Ускорение нейронных сетей
Где мы?
  • 📍Вводная
  • Блок 1
  • Блок 2
  • 🫠
  • 🏝️1 мая
  • 🌹9 мая
  • Блок 3
  • ☠️Экзамен
Содержание
  • Как ускоряют инференс?
  • Как ускоряют тренировку?
Как усоряют инференс?
  • Меньше модель
  • Быстрее вычислитель
Как уменьшить модель?
  • Размер модели
  • Тип данных
Как ускорить вычислитель?
  • Hardware-friendly вычисления
  • Системные оптимизации
Уменьшаяем модель: дистилляция знаний
kd
Уменьшаяем модель: дистилляция знаний

$$ L = \alpha L_{KL} + \beta L_{CE} + \gamma L_{MSE} + \delta L_{entropy} $$

Уменьшаяем модель: прунинг и разрежённость
  • Структурный прунинг
  • Полуструктурный прунинг
  • Неструктурный прунинг
Уменьшаяем модель: прунинг и разрежённость

$$ \min_{w} L(D, W \odot M) \text{ при } ||M||_0 \le k $$

Уменьшаяем модель: прунинг и разрежённость
2:4
Уменьшаяем модель: компактные числа с плавающей точкой
fp
Уменьшаяем модель: целые числа и квантизация
Quantization
Уменьшаяем модель: целые числа и квантизация

$$ x_q = \text{int}\left(\frac{x}{s}\right) - z $$

$$ x_{d} = s (x_q + z) $$

$$ s = \frac{\beta - \alpha}{2^{n} - 1} $$

Уменьшаяем модель: целые числа и квантизация
STE
Уменьшаяем модель: аппроксимация
k-SVD

Перерыв
Ускоряем тренировку: чекпоинтинг градиентов
gradient checkpoining
Ускоряем тренировку: параллелизм
data parallelism

Data-параллелизм

Ускоряем тренировку: параллелизм
model parallelism

Model-параллелизм

Ускоряем тренировку: параллелизм
pipeline parallelism

Pipeline-параллелизм

Ускоряем тренировку: микробатчи
microbatching
Ускоряем тренировку: шардирование от Microsoft aka ZeRO
zero
Ускоряем тренировку: эффективный fine-tuning
peft
constantine.korikov@gmail.com