глоссарий

Pipeline parallelism

Pipeline parallelism

Pipeline parallelism — это приём обучения нейросетей, при котором огромную модель разрезают на последовательные части и распределяют их по разным видеокартам. Вместо того чтобы держать всю сеть в памяти одной GPU, каждая карта отвечает за свой блок слоёв. Это важно потому, что современные модели слишком велики: даже одна видеокарта с 80 гигабайтами не вмещает веса. Без этого подхода обучение больших языковых моделей просто не состоялось бы.

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

Прикладной пример — обучение GPT-подобной модели на кластере. Допустим, сеть состоит из 40 слоёв и весит 120 гигабайт. Её распределяют на четыре GPU по десять слоёв. Первая карта обрабатывает входные последовательности, передаёт второй, и так далее. В результате модель обучается за приемлемое время и не требует покупки сверхдорогих устройств.

Итог: pipeline parallelism — один из главных инструментов, позволяющих обучать современные нейросети. Он разумно делит модель, ускоряет вычисления и делает возможным использование нескольких карт одновременно.