Шардинг в LLM: как распределить вычисления между GPU
Больших нейросети требуют распределения матриц между множеством ускорителей. Это называется шардингом. От того, как правильно разделены данные, зависит скорость

Масштабирование больших языковых моделей требует более чем одного GPU или TPU. Одна из ключевых техник для этого — шардинг: распределение матриц и векторов между несколькими ускорителями так, чтобы вычисления выполнялись эффективно и согласованно.
Почему матрицы не помещаются в памяти
При работе с действительно большими нейронными сетями матрицы весов и активаций практически никогда целиком не влезают в память одного GPU или TPU. Вес современной LLM может быть измерен в сотнях миллиардов параметров, каждый из которых требует нескольких байт памяти. Один ускоритель просто не справляется. Поэтому приходится разделять — шардировать — эти матрицы между несколькими чипами.
Как работает шардинг Представьте матрицу A размера [I, J].
Её можно разделить несколькими способами: По строкам (row-wise) — первый ускоритель берёт строки 1–N, второй строки N+1–2N и так далее По столбцам (column-wise) — аналогично, но по вертикали Блочное разделение — матрица делится на прямоугольные блоки и распределяется по сетке чипов По диагонали и другим паттернам — более сложные схемы для специфических операций Служба каждого ускорителя — выполнить операцию над своей частью матрицы, а затем синхронизировать результаты с соседями.
На что влияет качество шардинга
От грамотного выбора стратегии шардинга зависит: Скорость тренировки — минимизация времени на коммуникацию между GPU Эффективность памяти — правильное заполнение буферов на каждом чипе Пропускная способность — колличество данных, которые нужно передавать между ускорителями Локальность вычислений — сколько работы может выполниться без синхронизации Плохой шардинг может привести к ситуации, когда ускорители большую часть времени ждут друг друга или пропускают пропускную способность связей между ними. Хороший шардинг старается минимизировать эти потери и держать все чипы в работе одновременно.
Что это значит
Шардинг — не просто техническая оптимизация, это основа для экономики масштабирования. Правильное распределение вычислений позволяет использовать кластеры из сотен и тысяч GPU так, чтобы суммарная скорость приближалась к идеальной и вычислительные ресурсы не тратились впустую на ожидание коммуникации.