Техническо РЪКОВОДСТВО

Паралелизъм на данните

Паралелизмът на данните обучава един модел по-бързо, като го репликира в много GPU, като всеки GPU обработва различен фрагмент от пакета данни.

Преглед

Паралелизмът на данните обучава един модел по-бързо, като го репликира в много GPU, като всеки GPU обработва различен фрагмент от пакета данни. Това е техниката на работния кон, която позволява на екипите да се мащабират до десетки или хиляди ускорители.

Паралелизмът на данните е технически градивен елемент, който влияе върху качеството на модела, цената на инфраструктурата, латентността и надеждността в мащаб.

Дълбоко гмуркане

При паралелизъм на данни всеки GPU съдържа идентично копие на теглата на модела, но обработва отделна мини-партида от примери за обучение. Всяко устройство изчислява преминаване напред и назад независимо, произвеждайки свой собствен набор от градиенти. Преди актуализиране на теглата градиентите се усредняват за всички графични процесори с помощта на комуникационна операция за цялостно намаляване, така че всяка реплика остава синхронизирана и се държи така, сякаш е обучена на една голяма комбинирана партида. Това ефективно умножава пропускателната способност: 8 графични процесора могат да дъвчат приблизително 8 пъти повече данни на стъпка. Уловката е, че всеки GPU трябва да пасва на целия модел, неговите градиенти и състоянието на оптимизатора в паметта, така че обикновеният паралелизъм на данните не помага, когато моделът е твърде голям за едно устройство.

Техническа информация

Ключовата операция е all-reduce, която сумира градиенти между устройства и преразпределя резултата. Ring all-reduce, използван от библиотеки като NCCL и Horovod, предава градиентни парчета около логически пръстен, така че общата комуникация не зависи от броя на GPU. DistributedDataParallel на PyTorch припокрива тази комуникация с обратния проход, като задейства градиентно синхронизиране за ранните слоеве, докато по-късните слоеве все още изчислят, скривайки голяма част от латентността на мрежата.

Овладяване на паралелизма на данни

Паралелизмът на данните обучава един модел по-бързо, като го репликира в много GPU, като всеки GPU обработва различен фрагмент от пакета данни. Това е техниката на работния кон, която позволява на екипите да се мащабират до десетки или хиляди ускорители. Паралелизмът на данните е технически градивен елемент, който влияе върху качеството на модела, цената на инфраструктурата, латентността и надеждността в мащаб. За да изградите дълбоко разбиране, третирайте паралелизма на данни като оперативен модел, а не като отделна функция: дефинирайте желаните резултати, изяснете предположенията и отделете това, което системата може да направи надеждно, от това, което все още изисква експертна преценка.

На практика силни екипи, използващи паралелизъм на данни, оптимизират избора на архитектура, данни и инфраструктура срещу надеждност и цена. Те документират изрични критерии за успех, тестват срещу реалистични данни и работни потоци и повтарят въз основа на наблюдавани модели на неуспех, а не на еднократни победи в бенчмарка. Това е мястото, където теоретичното разбиране се превръща в трайна способност за продукти, политики и операции.

Архитектурните решения стимулират производителността и оперативните разходи в продължение на години. В същото време оптимизирането на един бенчмарк може да скрие по-широки системни слабости. Най-устойчивият подход е да се комбинира скоростта на експериментиране с дисциплината на управление: стартирайте пилотни проекти, събирайте доказателства, публикувайте регистрационни файлове за решения и непрекъснато актуализирайте предпазните мерки, докато поведението на модела, очакванията на потребителите и регулаторните изисквания се развиват.

Стратегическо въздействие

Архитектурните решения стимулират производителността и оперативните разходи в продължение на години.

Архитектурните решения стимулират производителността и оперативните разходи в продължение на години. При висококачествени внедрявания това се превръща в измерими правила за работа, граници на собствеността и повтарящи се ритуали за преглед, така че екипите да могат да мащабират доверието, вместо да мащабират неяснотата.

Техническото образование помага на екипите да изберат правилния стек, а не само най-новия.

Техническото образование помага на екипите да изберат правилния стек, а не само най-новия. При висококачествени внедрявания това се превръща в измерими правила за работа, граници на собствеността и повтарящи се ритуали за преглед, така че екипите да могат да мащабират доверието, вместо да мащабират неяснотата.

По-добрият инженерен избор намалява инцидентите, свързани с надеждността в производството.

По-добрият инженерен избор намалява инцидентите, свързани с надеждността в производството. При висококачествени внедрявания това се превръща в измерими правила за работа, граници на собствеността и повтарящи се ритуали за преглед, така че екипите да могат да мащабират доверието, вместо да мащабират неяснотата.

Бъдещето на паралелизма на данни

Чистият паралелизъм на данните все повече се комбинира с шардинг и паралелизъм на модели в хибридни стратегии за „nD паралелизъм“ за модели с трилиони параметри. Очаквайте по-интелигентна градиентна компресия, асинхронна и припокриваща се комуникация и топологично съобразено цялостно намаляване, което използва бърз NVLink в рамките на възел и по-бавен InfiniBand между възли. Тъй като клъстерите растат, намаляването на съотношението комуникация към изчисление остава основното инженерно предизвикателство за поддържане на работа на хиляди GPU.

Внедряване в реалния свят

Обучение на класификатор на изображения ResNet в 8 графични процесора в един сървър с помощта на PyTorch DistributedDataParallel, като всеки графичен процесор обработва 32 от партида от 256 изображения.

Мащабиране на предварително обучение на BERT в стотици графични процесори с Horovod, използване на ring all-reduce за синхронизиране на градиенти на всяка стъпка.

Фина настройка на препоръчителен модел на клъстер с множество възли, където всеки възел обработва различни фрагменти за взаимодействие с потребителя.

Използване на MirroredStrategy на TensorFlow за разпространение на обучението на визуален модел в множество GPU на една работна станция с минимални промени в кода.

Модели на изпълнение

Паралелизъм на данните на практика

Обучение на класификатор на изображения ResNet в 8 графични процесора в един сървър с помощта на PyTorch DistributedDataParallel, като всеки графичен процесор обработва 32 от партида от 256 изображения.

Обучение на класификатор на изображения ResNet в 8 графични процесора в един сървър с помощта на PyTorch DistributedDataParallel, всеки графичен процесор, който обработва 32 от партида от 256 изображения Екипите обикновено получават по-добри резултати, когато дефинират прагове за качество отпред, поддържат път на човешка ескалация за крайни случаи и проследяват както печалбите в производителността, така и разходите за грешки във времето.

Паралелизъм на данните на практика

Мащабиране на предварително обучение на BERT в стотици графични процесори с Horovod, използване на ring all-reduce за синхронизиране на градиенти на всяка стъпка.

Мащабиране на предварително обучение на BERT в стотици графични процесори с Horovod, използване на ring all-reduce за синхронизиране на градиентите на всяка стъпка Екипите обикновено получават по-добри резултати, когато дефинират праговете на качеството предварително, поддържат път на човешка ескалация за крайни случаи и проследяват както печалбите в производителността, така и разходите за грешки във времето.

Паралелизъм на данните на практика

Фина настройка на препоръчителен модел на клъстер с множество възли, където всеки възел обработва различни фрагменти за взаимодействие с потребителя.

Фина настройка на препоръчителен модел в клъстер с множество възли, където всеки възел обработва различни фрагменти за взаимодействие с потребителя. Екипите обикновено получават по-добри резултати, когато дефинират прагове за качество предварително, поддържат път на човешка ескалация за крайни случаи и проследяват както печалбите в производителността, така и разходите за грешки във времето.

Паралелизъм на данните на практика

Използване на MirroredStrategy на TensorFlow за разпространение на обучението на визуален модел в множество GPU на една работна станция с минимални промени в кода.

Използване на MirroredStrategy на TensorFlow за разпространение на обучението на визуален модел в множество графични процесори на една работна станция с минимални промени в кода Екипите обикновено получават по-добри резултати, когато дефинират прагове за качество предварително, поддържат път на човешка ескалация за крайни случаи и проследяват както печалбите в производителността, така и разходите за грешки във времето.

Рискове и предпазни огради

!

Оптимизирането на един бенчмарк може да скрие по-широки системни слабости.

!

Разходите за инфраструктура и поддръжка често се подценяват.

!

Пропуските в сигурността и видимостта могат да нарастват, когато системите стават по-сложни.

Пътна карта за изпълнение

1

Определете целите за латентност, качество и разходи преди внедряването.

Определете целите за латентност, качество и разходи преди внедряването. Отнасяйте се към всяка стъпка като към вход за доказателства: ако критериите не са изпълнени, поставете на пауза разпространението, запълнете празнината и едва след това разширете използването.

2

Бенчмарк при реалистични условия на натоварване и данни.

Бенчмарк при реалистични условия на натоварване и данни. Отнасяйте се към всяка стъпка като към вход за доказателства: ако критериите не са изпълнени, поставете на пауза разпространението, запълнете празнината и едва след това разширете използването.

3

Мониторинг на инструмента за грешки, отклонение и въздействие върху потребителя.

Мониторинг на инструмента за грешки, отклонение и въздействие върху потребителя. Отнасяйте се към всяка стъпка като към вход за доказателства: ако критериите не са изпълнени, поставете на пауза разпространението, запълнете празнината и едва след това разширете използването.

4

Подгответе пътеките за връщане назад и реакция на инцидент преди мащабиране.

Подгответе пътеките за връщане назад и реакция на инцидент преди мащабиране. Отнасяйте се към всяка стъпка като към вход за доказателства: ако критериите не са изпълнени, поставете на пауза разпространението, запълнете празнината и едва след това разширете използването.

Продължете да изследвате