ДалееСледующее руководство
Тензорный параллелизм для больших моделей
Технический
Техническое РУКОВОДСТВО
Когда модель слишком велика для размещения на одном графическом процессоре, параллелизм модели и конвейера разделяет саму модель на несколько устройств.
Прослушайте это руководствоОзвучено ИИ · ~2 min
Именно это делает физически возможным обучение гигантских языковых моделей с сотнями миллиардов параметров.
Модельный параллелизм разделяет одну модель на несколько графических процессоров, поэтому ни одному устройству не нужно удерживать весь вес. Есть два основных вкуса. Тензорный (внутриуровневый) параллелизм разделяет математические вычисления внутри слоя, например, разделение большого матричного умножения на графические процессоры, каждый из которых вычисляет часть выходных данных. Конвейерный (межуровневый) параллелизм назначает разные последовательные уровни разным графическим процессорам, поэтому блок слоев 1 находится на графическом процессоре 0, блок 2 — на графическом процессоре 1 и т. д., а активации передаются вперед, как на конвейере. Проблема с наивной конвейерной обработкой — это «пузырь»: пока графический процессор 0 работает над первым пакетом, последующие графические процессоры простаивают. Конвейерная обработка разбивает каждую партию на микропартии, поэтому все этапы остаются занятыми, что значительно повышает эффективность использования.
Обучение моделей в стиле GPT с помощью NVIDIA Megatron-LM, которая распределяет внимание каждого слоя преобразователя и матрицы прямой связи между графическими процессорами посредством тензорного параллелизма.
Использование GPipe для размещения разных слоев гигантского видения или языковой модели на отдельных ускорителях, в то время как микропакетная обработка занимает их.
Механизм конвейера DeepSpeed разделяет модель с несколькими сотнями миллиардов параметров на этапы по множеству узлов.
Сочетание тензорного параллелизма внутри одного сервера с 8 графическими процессорами и конвейерного параллелизма, охватывающего несколько серверов, для обучения модели, слишком большой для одной машины.
Фреймворки все чаще автоматизируют сложную проблему принятия решения о том, как разделить модель между устройствами, используя профилирование и поиск для балансировки вычислений и связи. Ожидайте более тесной интеграции тензора, конвейера и параллелизма данных (3D-параллелизм), более разумного микропакетного планирования, практически исключающего «пузыри» конвейера, и аппаратного обеспечения с более быстрыми межсоединениями, поэтому разделение одного слоя между чипами становится дешевле и рутиннее для все более крупных моделей.
Бесплатная рассылка
Три проверенных AI-истории каждое утро буднего дня, написанные простым английским. Бесплатно навсегда, без рекламы.
Одно электронное письмо каждый будний день. Отписаться в один клик. Мы никогда не продаем и не передаем ваш адрес.
Проверьте себя
Мгновенная обратная связь по каждому ответу и общий сертификат с проверяемым идентификатором после прохождения курса.
Поддержите бесплатное образование в области искусственного интеллекта. AI Understanding — это некоммерческая организация 501(c)(3). Никакой рекламы и платного доступа. Сделать пожертвование
Когда модель слишком велика для размещения на одном графическом процессоре, параллелизм модели и конвейера разделяет саму модель на несколько устройств. Именно это делает физически возможным обучение гигантских языковых моделей с сотнями миллиардов параметров.
Параллелизм модели и конвейера разделяет саму модель на различные устройства, позволяя обучать сети, гораздо большие, чем может вместить один графический процессор.
Тензорный параллелизм разделяет вычисления внутри одного слоя, например, разделяя большую матрицу весов, чтобы каждый графический процессор вычислял часть выходных данных.
На ранних этапах конвейера последующие этапы еще не получают входных данных и простаивают, тратя время графического процессора; этот праздный разрыв называется пузырем.
Разделение пакета на микропакеты позволяет нескольким микропакетам одновременно выполнять разные этапы, сохраняя занятость всех графических процессоров и сокращая время простоя.
Тензорный параллелизм часто взаимодействует для рекомбинации результатов частичной матрицы, поэтому он размещается там, где пропускная способность соединения самая высокая, внутри узла через NVLink.
Продолжайте учиться
Другие руководства, выбранные по этой теме
ДалееСледующее руководство
Тензорный параллелизм для больших моделей
Технический