Alterna · учебный материал

19.4 Этапы вычисления на разных устройствах

Первый этап передаёт результат следующему. При заполнении и освобождении цепи некоторые устройства временно ждут.

Что в этом материале

Содержание и основные понятия

На предыдущей странице: одна таблица разделена на части.
Первый этап передаёт результат следующему. При заполнении и освобождении цепи некоторые устройства временно ждут.
Можно делить данные, таблицы или этапы. Частичные результаты надо соединять. Разные modality сначала превращаются в вектора подходящей ширины, а эксперты выбираются по ограниченному маршруту.
Для изменения рисунка включитеJavaScript; расчёт и теория доступны далее.
Layers становятся стадиями, batch — потоком micro-batches
Pipeline parallel размещает последовательные группы layers на разных devices. Micro-batches проходят stages как детали конвейера. Пока pipeline заполняется и опустошается, часть stages простаивает — возникает bubble. GPipe использует micro-batching и activation checkpointing для обучения больших моделей. F17.
Для упрощённого forward-only расписания с
p
равными stages и
m
micro-batches требуется
m+p-1
ticks, а доля занятости одной стадии:
U
=
m
m
+
p
−
1
.
U=\frac{m}{m+p-1}.
U
=
m
+
p
−
1
m
​
.
Увеличение
m
уменьшает относительный bubble, но хранит больше in-flight activations и может изменить batch semantics. Реальные training schedules добавляют backward и разные варианты 1F1B/interleaving.
Что показывает модель.
Gantt view показывает diagonal wave, пустые bubble cells и передачи activations. Баланс стадий важнее одинакового числа layers: разные layers могут иметь разную стоимость. Slowest stage определяет steady-state cadence.
Граница применимости.
Формула не включает backward, recomputation, network overlap и imbalance. Pipeline увеличивает latency отдельного micro-batch и усложняет fault recovery. Activation transfer может стать bottleneck даже при равных compute times.
stages_19d,microbatches_19d=3,4
ticks_19d=microbatches_19d+stages_19d-1
utilization_19d=microbatches_19d/ticks_19d
assert ticks_19d==6 and abs(utilization_19d-2/3)<1e-12
Код повторяет только что разобранные операции.
Полный проверяемыйPython-пример главы
доступен отдельным файлом; показанный короткий фрагмент не заменяет его реализацию.
Microbatches не могут одновременно появиться во всех stages.
Разные нейронные участки для разных токенов. Как этот вопрос продолжает полученный результат?
Python-примеры главы 19
Академическая база →

Структурная карта учебников