Training

PyTorch

Основной фреймворк для глубокого обучения с динамическими графами вычислений на Python.

Что такое PyTorch

PyTorch — открытый фреймворк для глубокого обучения от Meta, стандарт де-факто в ML-исследованиях и всё более в production. Ключевое отличие от TensorFlow первых версий — динамические вычислительные графы (eager execution): код выполняется немедленно, как обычный Python, что делает отладку интуитивной.

Большинство ML-библиотек (Hugging Face Transformers, vLLM, DeepSpeed, TRL) используют PyTorch в качестве бэкенда.

Ключевые концепции

Тензор — многомерный массив (аналог NumPy), но с поддержкой GPU и автодифференцирования:

import torch

# Создание тензора на GPU
x = torch.randn(4, 512, dtype=torch.bfloat16, device="cuda")

# Операции выполняются на GPU
y = x @ x.T  # матричное умножение

Autograd — автоматическое вычисление градиентов:

x = torch.randn(3, requires_grad=True)
loss = (x**2).sum()
loss.backward()  # вычислить dl/dx
print(x.grad)    # градиент: 2x

torch.compile (PyTorch 2.0+) — JIT-компиляция модели для ускорения:

model = torch.compile(model)  # 20–40% ускорение для инференса

Установка

# CUDA 12.1
pip install torch --index-url https://download.pytorch.org/whl/cu121

# Проверка
python -c "import torch; print(torch.cuda.is_available())"  # True

Связанные термины

  • CUDA — платформа, используемая PyTorch для GPU-вычислений
  • mixed precision — BF16/FP16 обучение в PyTorch
  • FSDP — встроенный в PyTorch механизм распределённого обучения
  • DeepSpeed — надстройка над PyTorch для распределённого обучения

Готовы запустить GPU-задачу?

Запустить GPU-сервер