Как обучают гигантов: Разбор технологий Llama 3 и системного параллелизма

Stanford Online 43 тыс. 1 ч 12 мин 5 мин 02.09.2025
Главное

В рамках курса Stanford CS231n прошла лекция, посвященная одной из самых актуальных тем в современном машинном обучении — крупномасштабному распределенному обучению. Эксперты обсуждают, как за последние 10 лет индустрия перешла от обучения моделей на одном графическом процессоре (GPU) к кластерам, объединяющим десятки тысяч устройств. В качестве сквозного примера используется архитектура Llama 3 405B от Meta, на примере которой разбираются алгоритмы, позволяющие эффективно использовать вычислительные мощности уровня экзофлопс.

🖥️ Анатомия GPU: От графики к тензорным ядрам 3:06

Современные нейросети обучаются на специализированных сопроцессорах — GPU (Graphics Processing Units). Изначально созданные для рендеринга пикселей, они превратились в универсальные параллельные процессоры. Особую роль в этом сыграла компания NVIDIA и её основатель Дженсен Хуанг (Jensen Huang), чьё имя носит аудитория в Стэнфорде, где проходит лекция .

Архитектура современного флагмана NVIDIA H100 демонстрирует сложную иерархию памяти и вычислительных блоков:

Лектор подчеркивает, что именно тензорные ядра являются «магическим ингредиентом» производительности. Они работают в смешанной точности (mixed precision): умножение происходит в 16-битных форматах, а сложение — в 32-битных . Ошибка в коде PyTorch, связанная с приведением типов, может привести к тому, что вычисления уйдут на обычные FP32-ядра, что замедлит процесс в 20 раз .

🏗️ От одного чипа к экзомасштабным кластерам 15:20

За последние 12 лет пиковая производительность одного устройства выросла примерно в 1000 раз: от 5 терафлопс у NVIDIA K40 (2013 год) до почти 5000 терафлопс у новой архитектуры Blackwell (B200) . Однако настоящий масштаб достигается за счет объединения устройств в огромные дата-центры, которые следует воспринимать как один гигантский компьютер .

Структура кластера Llama 3 (Meta) служит эталоном современной инфраструктуры:

  1. Server (Узел): 8 GPU в одном корпусе. Скорость общения между ними — 900 ГБ/с .
  2. Rack (Стойка): 2 сервера (16 GPU), высота около 2 метров .
  3. Pod (Под): 192 стойки (3072 GPU) с высокоскоростными интерконнектами .
  4. Cluster (Кластер): 8 подов, в сумме 24 576 GPU .

Общая мощность такого кластера составляет 24 экзофлопса (10 в 18-й степени операций в секунду) . Помимо NVIDIA, на рынке присутствуют Google с их собственными чипами TPU (Tensor Processing Units), AMD с ускорителем MI325X и AWS с чипом Trainium . Однако, по мнению спикера, NVIDIA и Google остаются безусловными лидерами отрасли.

🔄 Пять степеней параллелизма 27:42

Обучение гигантских моделей требует разделения вычислений по четырем осям тензора (Batch, Sequence, Dimension) и оси слоев (Layer) . Это порождает пять основных стратегий параллелизма:

1. Data Parallelism (DP)

Самый простой метод: каждая GPU получает свою часть мини-батча, но хранит полную копию весов модели . После вычисления градиентов устройства выполняют операцию all-reduce, чтобы усреднить результаты и синхронно обновить веса. Проблема DP — ограниченность памятью одной GPU. 1 миллиард параметров требует около 8 ГБ памяти (с учетом градиентов и состояния оптимизатора), поэтому модель на 10-15 миллиардов параметров просто не поместится в одну H100 .

2. Fully Sharded Data Parallelism (FSDP)

Решение проблемы памяти: веса модели, градиенты и состояния оптимизатора распределяются («шардируются») между всеми GPU . В процессе прямого прохода слой за слоем нужные веса временно копируются на все устройства, используются и сразу удаляются. Это позволяет тренировать модели любого размера, ограничиваясь лишь суммарной памятью всего кластера .

3. Pipeline Parallelism (PP)

Слои нейросети делятся между группами GPU. Например, первые 10 слоев на первой видеокарте, следующие 10 — на второй. Чтобы GPU не простаивали в ожидании данных от предыдущих слоев (проблема «пузыря»), батч данных разбивается на «микро-батчи», которые запускаются каскадом .

4. Tensor Parallelism (TP)

Разделение конкретных матричных операций внутри одного слоя между несколькими GPU . Каждое устройство вычисляет лишь часть результата одного умножения матриц. Это требует очень быстрого соединения между чипами, поэтому обычно ограничено пределами одного сервера (8 GPU).

5. Context Parallelism (CP)

Относительно новый метод, необходимый для работы с длинными текстами (100k+ токенов). Последовательность данных разбивается на части, и разные GPU отвечают за разные фрагменты текста в одной и той же модели .

📈 MFU: Главная метрика эффективности 58:17

При настройке десятков параметров (размер батча, степень шардирования, количество микро-батчей) исследователи ориентируются на MFU (Model FLOPs Utilization) .

По словам лектора, MFU выше 30% считается хорошим результатом, а выше 40% — выдающимся . В отчете Llama 3 указано, что Meta удалось достичь 38-43% MFU на кластере из 16 000 GPU . Парадоксально, но на новых поколениях железа MFU часто падает: вычислительная мощность чипов растет быстрее (в 3 раза), чем пропускная способность памяти и интерконнекта (в 2 раза), что создает «узкое горлышко» в коммуникациях .

🛠️ Практические советы и компенсация памяти 53:36

Для тех, кто планирует обучение, лектор предлагает следующий «рецепт масштабирования»:

В завершение подчеркивается: современное глубокое обучение — это не только математика нейросетей, но и сложнейшая дисциплина на стыке компьютерной архитектуры и системного программирования.

💬 Цитаты

«Сегодня мы стараемся воспринимать весь дата-центр как один огромный компьютер.»

Лектор Stanford Online 22:15

«Если ваш MFU ниже 30%, значит, в вашей системе есть серьезное «узкое горлышко».»

Лектор Stanford Online 1:01:46
👥 Спикер
🔗 Упомянутые сайты и проекты
📖 Термины
FLOPs
Количество операций с плавающей запятой в секунду, мера производительности.
Binning (Биннинг)
Процесс сортировки чипов по качеству: если часть ядер не работает, чип продают как менее мощную модель.
All-reduce
Алгоритм коммуникации между GPU для суммирования данных от всех участников и рассылки результата обратно.
📊 Цифры
🗓 Хронология
  1. 2013 Выпуск GPU NVIDIA K40 (5 терафлопс).
  2. 2023 Выход GPT-4 и публикация отчета, скрывающего архитектурные детали.
  3. Апрель 2024 Выпуск открытой модели Llama 3 от Meta.
  4. Апрель 2025 Анонс Llama 4 (по упоминанию в лекции).
⚖️ Другая сторона
Искусственный интеллект NVIDIA H100 Llama 3 FSDP Tensor Cores Model FLOPs Utilization