Паралел на напълно разделени данни
Напълно разделени паралелни данни (FSDP) е техника за разпределено обучение, която разделя параметрите на модела, градиентите и състоянията на оптимизатора в много графични процесори, така че всяко устройство съдържа само срез.
Преглед
It makes training huge models possible on hardware that could never fit the whole model in one GPU's memory.
Дълбоко гмуркане
Традиционният паралелизъм на данните запазва пълно копие на модела на всеки GPU, което губи памет и ограничава размера на модела. FSDP, популяризиран от PyTorch на Meta и вдъхновен от ZeRO на Microsoft, вместо това разделя три неща на различни устройства: параметри, градиенти и състояния на оптимизатора. По време на преминаването напред всеки графичен процесор временно събира пълните тегла за слоя, който изчислява, чрез събиране на всички, изпълнява изчислението, след което незабавно освобождава събраното копие. Обратното преминаване работи по подобен начин, последвано от намаляване на разпръскването, което разпределя градиентни срезове обратно към притежаващите ги графични процесори. Тъй като всяко устройство съхранява постоянно само част от модела, използването на паметта спада грубо линейно с броя на GPU, което позволява на екипите да обучават модели с десетки или стотици милиарди параметри.
Техническа информация
FSDP търгува с допълнителна комуникация за спестяване на памет. Теглата на всеки слой се реконструират при поискване с цялостно събиране непосредствено преди употреба и се изхвърлят веднага след това, докато градиентите се комбинират и разделят с намаляване-разпръскване. Комуникацията може да се припокрива с изчислението чрез предварително извличане на параметрите на следващия слой, докато текущият слой работи, като се скрие голяма част от латентността на мрежата. Настройването на детайлността на шардинга (политика за обвиване) балансира отпечатъка на паметта спрямо комуникационните разходи.
Стратегическо въздействие
Cost and budget
Архитектурните решения стимулират производителността и оперативните разходи в продължение на години.
Clearer decisions
Техническото образование помага на екипите да изберат правилния стек, а не само най-новия.
Quality control
По-добрият инженерен избор намалява инцидентите, свързани с надеждността в производството.
Бъдещето на напълно разделените паралелни данни
FSDP се превръща в стандарт за отворено обучение на голям модел, като FSDP2 в PyTorch подобрява използваемостта и шардинга по параметър. Очаквайте по-тясна интеграция с тензорен и тръбопроводен паралелизъм за модели с трилиони параметри, по-добра поддръжка за смесена прецизност и fp8 и по-интелигентно автоматично обвиване, което избира границите на шардинг вместо вас. Тъй като връзките между GPU като NVLink и InfiniBand стават по-бързи, комуникационните разходи за шардинг продължават да намаляват, което го прави практично във все по-големи мащаби.
Внедряване в реалния свят
Фина настройка на Llama модел със 70 милиарда параметъра в 8 графични процесора, които поотделно не могат да поддържат пълните тегла.
Предварително обучение на големи езикови модели в AI лаборатории чрез разделяне на състояния на оптимизатор (които доминират в паметта с Adam) в стотици ускорители.
Изследователи, използващи обвивката на FSDP на PyTorch, за да обучават трансформатори на зрение в университетски клъстер, без да купуват водещи 80GB GPU.
Комбиниране на FSDP с bfloat16 със смесена точност за грубо намаляване наполовина на паметта и ускоряване на производителността на обучението на мултимодални модели.
Рискове и предпазни огради
Оптимизирането на един бенчмарк може да скрие по-широки системни слабости.
Разходите за инфраструктура и поддръжка често се подценяват.
Пропуските в сигурността и видимостта могат да нарастват, когато системите стават по-сложни.
Пътна карта за изпълнение
Определете целите за латентност, качество и разходи преди внедряването.
Бенчмарк при реалистични условия на натоварване и данни.
Мониторинг на инструмента за грешки, отклонение и въздействие върху потребителя.
Подгответе пътеките за връщане назад и реакция на инцидент преди мащабиране.
Продължете да изследвате
Free newsletter
Get the daily AI briefing
Three verified AI stories every weekday morning, written in plain English. Free forever, no ads.
One email each weekday. Unsubscribe in one click. We never sell or share your address.
Test yourself
Take the Fully Sharded Data Parallel quiz
Instant feedback on every answer, and a shareable certificate with a verifiable ID once you pass a course.
Support free AI education. AI Understanding is a 501(c)(3) nonprofit — no ads, no paywall, ever. Make a donation
Next guide
Паралелизъм на данните
Frequently asked questions
What is Fully Sharded Data Parallel?
Напълно разделени паралелни данни (FSDP) е техника за разпределено обучение, която разделя параметрите на модела, градиентите и състоянията на оптимизатора в много графични процесори, така че всяко устройство съдържа само срез. Това прави възможно обучението на огромни модели на хардуер, който никога не може да побере целия модел в паметта на един GPU.
Какво FSDP разделя между GPU, което стандартният паралелизъм на данни НЕ прави?
FSDP разделя параметрите, градиентите и състоянията на оптимизатора на модела на различни устройства, докато стандартният паралелизъм на данните репликира пълния модел на всеки GPU.
Коя колективна операция използва FSDP, за да реконструира пълните тегла на слой точно преди да го изчисли?
Преди да се изпълни слой, FSDP извършва събиране на всички, за да събере временно пълните параметри от всички сегменти, след което ги освобождава след това.
Защо FSDP освобождава събраните пълни тегла веднага след изчислението на слоя?
Постоянното задържане само на фрагмент и временно събиране на пълни тежести е това, което поддържа използването на памет ниско и приблизително пропорционално на една част от модела.
FSDP до голяма степен е вдъхновен от кой по-ранен подход за оптимизиране на паметта?
Разделянето на параметри, градиенти и състояния на оптимизатора на FSDP следва точно идеите, въведени в ZeRO на Microsoft от библиотеката DeepSpeed.
Как FSDP скрива голяма част от латентността на мрежата от събиране на тежести?
FSDP извлича предварително параметрите на следващия слой, докато текущият слой все още изчислява, припокривайки комуникацията на всички събирания с полезна работа.