Преглед
ZeRO (Оптимизатор на нулево излишък) елиминира разточителното дублиране на паметта на паралелизма на данни чрез разделяне на състоянието на оптимизатора, градиентите и теглата между GPU. Позволява ви да обучавате огромни модели с простотата на паралелизма на данни, но част от паметта на GPU.
ZeRO and Sharded Optimizers е технически градивен елемент, който влияе върху качеството на модела, цената на инфраструктурата, латентността и надеждността в мащаб.
Дълбоко гмуркане
При обикновения паралелизъм на данни всеки GPU съхранява излишно пълно копие на състоянието на оптимизатора, градиентите и параметрите, което е изключително разточително, особено за Adam, където състоянието на оптимизатора може да бъде няколко пъти по-голямо от размера на самия модел. ZeRO, въведен от Microsoft в DeepSpeed, премахва този излишък чрез разделяне на тези тензори между GPU, така че всяко устройство притежава само срез. ZeRO идва в три прогресивни етапа: Етап 1 разделя състоянието на оптимизатора, Етап 2 добавя градиентно шардинг, а Етап 3 разделя самите параметри. При необходимост графичните процесори събират липсващите срезове чрез комуникация, изчисляват и след това ги освобождават. Резултатът е драстично по-ниска памет на GPU, което позволява обучение с милиарди до трилиони параметри, като същевременно се запазва лесният програмен модел на паралелизъм на данните.
Техническа информация
ZeRO търгува с допълнителна комуникация за спестяване на памет. В Етап 3, преди преминаването напред на даден слой, събирането на всички елементи събира пълните параметри на този слой върху всеки GPU; след това непритежаваните срезове се изхвърлят, за да се възстанови паметта. Градиентите са намалено разпръснати, така че всеки графичен процесор запазва само среза на градиента, съответстващ на параметрите, които притежава. FSDP на PyTorch (Fully Sharded Data Parallel) прилага същата идея нативно, обгръщайки модули за сегментиране и повторно шардиране в движение.
Овладяване на оптимизаторите ZeRO и Sharded
ZeRO (Оптимизатор на нулево излишък) елиминира разточителното дублиране на паметта на паралелизма на данни чрез разделяне на състоянието на оптимизатора, градиентите и теглата между GPU. Позволява ви да обучавате огромни модели с простотата на паралелизма на данни, но част от паметта на GPU. ZeRO and Sharded Optimizers е технически градивен елемент, който влияе върху качеството на модела, цената на инфраструктурата, латентността и надеждността в мащаб. За да изградите дълбоко разбиране, третирайте ZeRO и Sharded Optimizer като оперативен модел, а не като отделна функция: дефинирайте желаните резултати, изяснете предположенията и отделете това, което системата може да направи надеждно от това, което все още изисква експертна преценка.
На практика силни екипи, използващи ZeRO и Sharded Optimizers, оптимизират избора на архитектура, данни и инфраструктура срещу надеждност и цена. Те документират изрични критерии за успех, тестват срещу реалистични данни и работни потоци и повтарят въз основа на наблюдавани модели на неуспех, а не на еднократни победи в бенчмарка. Това е мястото, където теоретичното разбиране се превръща в трайна способност за продукти, политики и операции.
Архитектурните решения стимулират производителността и оперативните разходи в продължение на години. В същото време оптимизирането на един бенчмарк може да скрие по-широки системни слабости. Най-устойчивият подход е да се комбинира скоростта на експериментиране с дисциплината на управление: стартирайте пилотни проекти, събирайте доказателства, публикувайте регистрационни файлове за решения и непрекъснато актуализирайте предпазните мерки, докато поведението на модела, очакванията на потребителите и регулаторните изисквания се развиват.
Стратегическо въздействие
Архитектурните решения стимулират производителността и оперативните разходи в продължение на години.
Архитектурните решения стимулират производителността и оперативните разходи в продължение на години. При висококачествени внедрявания това се превръща в измерими правила за работа, граници на собствеността и повтарящи се ритуали за преглед, така че екипите да могат да мащабират доверието, вместо да мащабират неяснотата.
Техническото образование помага на екипите да изберат правилния стек, а не само най-новия.
Техническото образование помага на екипите да изберат правилния стек, а не само най-новия. При висококачествени внедрявания това се превръща в измерими правила за работа, граници на собствеността и повтарящи се ритуали за преглед, така че екипите да могат да мащабират доверието, вместо да мащабират неяснотата.
По-добрият инженерен избор намалява инцидентите, свързани с надеждността в производството.
По-добрият инженерен избор намалява инцидентите, свързани с надеждността в производството. При висококачествени внедрявания това се превръща в измерими правила за работа, граници на собствеността и повтарящи се ритуали за преглед, така че екипите да могат да мащабират доверието, вместо да мащабират неяснотата.
Внедряване в реалния свят
Използване на DeepSpeed ZeRO Stage 2 за фина настройка на езиков модел с много милиарди параметри, който иначе би препълнил GPU паметта.
Обучение с PyTorch FSDP, който разделя параметри, градиенти и състояние на оптимизатора между GPU и ги събира на слой при поискване.
Прилагане на ZeRO-Offload за прехвърляне на състоянието на оптимизатора към паметта на процесора, позволявайки на един GPU да обучи модел, многократно по-голям от неговата VRAM.
Мащабиране на модел с трилион параметри със ZeRO-Infinity чрез поточно предаване на сегменти на параметри от NVMe хранилище, когато GPU и CPU паметта се изчерпят.
Модели на изпълнение
ZeRO и Sharded Optimisers на практика
Използване на DeepSpeed ZeRO Stage 2 за фина настройка на езиков модел с много милиарди параметри, който иначе би препълнил GPU паметта.
Използване на DeepSpeed ZeRO Stage 2 за фина настройка на езиков модел с много милиарди параметри, който иначе би препълнил паметта на GPU. Екипите обикновено получават по-добри резултати, когато дефинират праговете на качеството предварително, поддържат път на човешка ескалация за крайни случаи и проследяват както печалбите в производителността, така и разходите за грешки във времето.
ZeRO и Sharded Optimisers на практика
Обучение с PyTorch FSDP, който разделя параметри, градиенти и състояние на оптимизатора между GPU и ги събира на слой при поискване.
Обучение с PyTorch FSDP, който разделя параметри, градиенти и състояние на оптимизатора в GPU и ги събира на слой при поискване. Екипите обикновено получават по-добри резултати, когато дефинират прагове за качество предварително, поддържат път на човешка ескалация за крайни случаи и проследяват както печалбите в производителността, така и разходите за грешки с течение на времето.
ZeRO и Sharded Optimisers на практика
Прилагане на ZeRO-Offload за прехвърляне на състоянието на оптимизатора към паметта на процесора, позволявайки на един GPU да обучи модел, многократно по-голям от неговата VRAM.
Прилагането на ZeRO-Offload за насочване на състоянието на оптимизатора към паметта на процесора, позволявайки на един GPU да обучи модел, многократно по-голям от неговата VRAM Екипите обикновено получават по-добри резултати, когато дефинират прагове за качество предварително, поддържат път на човешка ескалация за крайни случаи и проследяват както печалбите в производителността, така и разходите за грешки във времето.
ZeRO и Sharded Optimisers на практика
Мащабиране на модел с трилион параметри със ZeRO-Infinity чрез поточно предаване на сегменти на параметри от NVMe хранилище, когато GPU и CPU паметта се изчерпят.
Мащабиране на модел с трилион параметри със ZeRO-Infinity чрез поточно предаване на сегменти на параметри от NVMe хранилище, когато паметта на GPU и CPU се изчерпи. Екипите обикновено получават по-добри резултати, когато дефинират прагове за качество предварително, поддържат път на човешка ескалация за крайни случаи и проследяват както печалбите в производителността, така и разходите за грешки във времето.
Рискове и предпазни огради
Оптимизирането на един бенчмарк може да скрие по-широки системни слабости.
Разходите за инфраструктура и поддръжка често се подценяват.
Пропуските в сигурността и видимостта могат да нарастват, когато системите стават по-сложни.
Пътна карта за изпълнение
Определете целите за латентност, качество и разходи преди внедряването.
Определете целите за латентност, качество и разходи преди внедряването. Отнасяйте се към всяка стъпка като към вход за доказателства: ако критериите не са изпълнени, поставете на пауза разпространението, запълнете празнината и едва след това разширете използването.
Бенчмарк при реалистични условия на натоварване и данни.
Бенчмарк при реалистични условия на натоварване и данни. Отнасяйте се към всяка стъпка като към вход за доказателства: ако критериите не са изпълнени, поставете на пауза разпространението, запълнете празнината и едва след това разширете използването.
Мониторинг на инструмента за грешки, отклонение и въздействие върху потребителя.
Мониторинг на инструмента за грешки, отклонение и въздействие върху потребителя. Отнасяйте се към всяка стъпка като към вход за доказателства: ако критериите не са изпълнени, поставете на пауза разпространението, запълнете празнината и едва след това разширете използването.
Подгответе пътеките за връщане назад и реакция на инцидент преди мащабиране.
Подгответе пътеките за връщане назад и реакция на инцидент преди мащабиране. Отнасяйте се към всяка стъпка като към вход за доказателства: ако критериите не са изпълнени, поставете на пауза разпространението, запълнете празнината и едва след това разширете използването.