Pipeline parallelism
Как устроен pipeline на интуитивном уровне? Представьте автомобильный конвейер. Одна бригада ставит двигатель, следующая красит кузов, третья устанавливает салон. Работа не ждёт, пока первая машина пройдёт все этапы: как только первая бригада закончила с одной машиной, она берётся за следующую. Так же с нейросетью: первые слои обрабатывают одну порцию данных, передают результат вторым слоям, а сами сразу принимают новую порцию. Данные текут по «трубе» из видеокарт непрерывно, и карты почти никогда не простаивают.
Прикладной пример — обучение GPT-подобной модели на кластере. Допустим, сеть состоит из 40 слоёв и весит 120 гигабайт. Её распределяют на четыре GPU по десять слоёв. Первая карта обрабатывает входные последовательности, передаёт второй, и так далее. В результате модель обучается за приемлемое время и не требует покупки сверхдорогих устройств.
Итог: pipeline parallelism — один из главных инструментов, позволяющих обучать современные нейросети. Он разумно делит модель, ускоряет вычисления и делает возможным использование нескольких карт одновременно.
Поделиться