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

19.3 Одна таблица разделена на части

Разные устройства вычисляют разные столбцы результата. После этого столбцы соединяются в правильном порядке.

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

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

На предыдущей странице: одинаковые модели видят разные примеры.
Разные устройства вычисляют разные столбцы результата. После этого столбцы соединяются в правильном порядке.
Можно делить данные, таблицы или этапы. Частичные результаты надо соединять. Разные modality сначала превращаются в вектора подходящей ширины, а эксперты выбираются по ограниченному маршруту.
Для изменения рисунка включитеJavaScript; расчёт и теория доступны далее.
Одна matrix operation распределяется между devices
Когда layer не помещается на одном device, weight matrix делят. При column partition
W=[W_1|W_2]
каждый device вычисляет
xW_i
, а outputs конкатенируются. При row partition локальные partial sums нужно сложить collective operation. Megatron-LM использует согласованные column/row splits внутри Transformer layers. F16.
x
[
W
1
∣
W
2
]
=
[
x
W
1
∣
x
W
2
]
,
[
x
1
x
2
]
[
W
1
W
2
]
=
x
1
W
1
+
x
2
W
2
.
x[W_1|W_2]=[xW_1|xW_2],
\qquad
\begin{bmatrix}x_1&x_2\end{bmatrix}
\begin{bmatrix}W_1\\W_2\end{bmatrix}=x_1W_1+x_2W_2.
x
[
W
1
​
∣
W
2
​
]
=
[
x
W
1
​
∣
x
W
2
​
]
,
[
x
1
​
​
x
2
​
​
]
[
W
1
​
W
2
​
​
]
=
x
1
​
W
1
​
+
x
2
​
W
2
​
.
Sharding обязан сохранять axis semantics, bias и порядок features. Collective communication находится на critical path каждого layer, поэтому topology interconnect существенно влияет на latency.
Что показывает модель.
Визуальная модель переключает column/row split и показывает, где нужен concat, а где sum. Shape ledger подписывает global и local tensors. Numerically identical algebra может различаться последними bits из-за порядка floating-point reduction.
Граница применимости.
Fixture заранее вычисляет local slices без сети и не измеряет speedup. Tensor parallel degree ограничивается shapes, kernel sizes и interconnect. Слишком мелкие shards уменьшают arithmetic intensity; больше devices может замедлить один request.
x_19c=[2,3]; W_19c=[[1,0,1,2],[0,1,3,4]]
dense_19c=[sum(x_19c[r_19c]*W_19c[r_19c][c_19c] for r_19c in range(2)) for c_19c in range(4)]
left_19c=dense_19c[:2]; right_19c=dense_19c[2:]; gathered_19c=left_19c+right_19c
assert gathered_19c==dense_19c==[2,3,11,16]
Код повторяет только что разобранные операции.
Полный проверяемыйPython-пример главы
доступен отдельным файлом; показанный короткий фрагмент не заменяет его реализацию.
Column partition даёт разные output columns одной dense операции.
Этапы вычисления на разных устройствах. Как этот вопрос продолжает полученный результат?
Python-примеры главы 19
Академическая база →

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