ДалееСледующее руководство
Параллелизм модели и конвейера
Технический
Техническое РУКОВОДСТВО
Способ разделить математические вычисления внутри одного слоя нейронной сети на несколько графических процессоров, чтобы модель, слишком большая для одного устройства, могла работать.
Прослушайте это руководствоОзвучено ИИ · ~2 min
Это важно, потому что передовые модели содержат сотни миллиардов параметров, которые ни один графический процессор не может хранить или вычислять достаточно быстро в одиночку.
Тензорный параллелизм (также называемый параллелизмом внутриуровневых моделей) распределяет отдельные весовые матрицы между графическими процессорами, а не размещает целые слои на отдельных устройствах. В преобразователе большие матричные умножения — проекции внимания и MLP с прямой связью — разделяются: например, первая весовая матрица MLP разделена по столбцам, а вторая — по строкам, поэтому каждый графический процессор вычисляет срез, а одно сокращение всех чисел объединяет результаты. Внимание распределяется между головами, причем каждый графический процессор обрабатывает свое подмножество. Поскольку каждый графический процессор выполняет часть каждого уровня одновременно, тензорный параллелизм уменьшает объем памяти каждого графического процессора и ускоряет вычисления, но требует частого обмена данными с высокой пропускной способностью между графическими процессорами на каждом уровне. Вот почему он обычно ограничивается узлом, подключенным через NVLink, и сочетается с конвейером и параллелизмом данных для очень больших заданий по обучению и обслуживанию.
Обучение модели со 175B параметрами путем разделения весовых матриц каждого слоя на 8 графических процессоров в одном узле, подключенном к NVLink, с помощью Megatron-LM.
Обслуживание модели чата с 70B параметрами в vLLM с tensor_parallel_size=4, чтобы веса соответствовали четырем графическим процессорам и реагировали в режиме реального времени.
Разделение голов трансформатора внимания между графическими процессорами, чтобы каждое устройство вычисляло подмножество, а затем объединяло выходные данные для следующего уровня.
Сочетание тензорного параллелизма внутри узлов и конвейерного параллелизма между узлами для обучения моделей с триллионом параметров на больших кластерах графических процессоров.
Тензорный параллелизм остается основополагающим, но все чаще его смешивают с «3D-параллелизмом» (тензор + конвейер + данные) и объединяют с экспертным параллелизмом для моделей «Смесь экспертов». Такие платформы, как Megatron-LM, DeepSpeed и vLLM, автоматизируют сегментирование. По мере того, как межсоединения графического процессора (NVLink, NVSwitch) и оптические сети становятся быстрее, ограничение на границу узла ослабляется, позволяя создавать более широкие тензорно-параллельные группы. Ожидайте более разумного автоматического распараллеливания, которое выбирает размеры сегментов и групп, чтобы минимизировать обмен данными для данной топологии кластера.
Бесплатная рассылка
Три проверенных AI-истории каждое утро буднего дня, написанные простым английским. Бесплатно навсегда, без рекламы.
Одно электронное письмо каждый будний день. Отписаться в один клик. Мы никогда не продаем и не передаем ваш адрес.
Проверьте себя
Мгновенная обратная связь по каждому ответу и общий сертификат с проверяемым идентификатором после прохождения курса.
Поддержите бесплатное образование в области искусственного интеллекта. AI Understanding — это некоммерческая организация 501(c)(3). Никакой рекламы и платного доступа. Сделать пожертвование
Способ разделить математические вычисления внутри одного слоя нейронной сети на несколько графических процессоров, чтобы модель, слишком большая для одного устройства, могла работать. Это важно, потому что передовые модели содержат сотни миллиардов параметров, которые ни один графический процессор не может хранить или вычислять достаточно быстро в одиночку.
Тензорный (внутриуровневый) параллелизм сегментирует весовые матрицы внутри слоя, поэтому каждый графический процессор вычисляет часть одного и того же слоя — в отличие от конвейерного параллелизма, при котором целые слои размещаются на разных графических процессорах.
Разделение первой матрицы по столбцам позволяет каждому графическому процессору локально применять нелинейность; разделение второго по строкам означает, что одно сокращение всех сумм суммирует частичные выходные данные, что сводит к минимуму синхронизацию.
Каждый уровень запускает коллективную связь (все-сокращение), поэтому тяжелый, чувствительный к задержкам трафик требует быстрых внутриузловых каналов, таких как NVLink, а не более медленных межузловых сетей.
Головки внимания независимы, поэтому они распределены по графическим процессорам — каждое устройство вычисляет несколько головок, а выходные данные объединяются.
All-reduce суммирует частичные выходные данные, вычисленные на каждом графическом процессоре, чтобы они согласовывались с результатом слоя; это происходит несколько раз для каждого слоя при прямом и обратном проходах.
Продолжайте учиться
Другие руководства, выбранные по этой теме
ДалееСледующее руководство
Параллелизм модели и конвейера
Технический