СледваСледващо ръководство
Паралелизъм на данните
технически
Техническо РЪКОВОДСТВО
Напълно разделени паралелни данни (FSDP) е техника за разпределено обучение, която разделя параметрите на модела, градиентите и състоянията на оптимизатора в много графични процесори, така че всяко устройство съдържа само срез.
Чуйте това ръководствоAI-разказан · ~2 min
Това прави възможно обучението на огромни модели на хардуер, който никога не може да побере целия модел в паметта на един GPU.
Традиционният паралелизъм на данните запазва пълно копие на модела на всеки GPU, което губи памет и ограничава размера на модела. FSDP, популяризиран от PyTorch на Meta и вдъхновен от ZeRO на Microsoft, вместо това разделя три неща на различни устройства: параметри, градиенти и състояния на оптимизатора. По време на преминаването напред всеки графичен процесор временно събира пълните тегла за слоя, който изчислява, чрез събиране на всички, изпълнява изчислението, след което незабавно освобождава събраното копие. Обратното преминаване работи по подобен начин, последвано от намаляване на разпръскването, което разпределя градиентни срезове обратно към притежаващите ги графични процесори. Тъй като всяко устройство съхранява постоянно само част от модела, използването на паметта спада грубо линейно с броя на GPU, което позволява на екипите да обучават модели с десетки или стотици милиарди параметри.
Фина настройка на Llama модел със 70 милиарда параметъра в 8 графични процесора, които поотделно не могат да поддържат пълните тегла.
Предварително обучение на големи езикови модели в AI лаборатории чрез разделяне на състояния на оптимизатор (които доминират в паметта с Adam) в стотици ускорители.
Изследователи, използващи обвивката на FSDP на PyTorch, за да обучават трансформатори на зрение в университетски клъстер, без да купуват водещи 80GB GPU.
Комбиниране на FSDP с bfloat16 със смесена точност за грубо намаляване наполовина на паметта и ускоряване на производителността на обучението на мултимодални модели.
FSDP се превръща в стандарт за отворено обучение на голям модел, като FSDP2 в PyTorch подобрява използваемостта и шардинга по параметър. Очаквайте по-тясна интеграция с тензорен и тръбопроводен паралелизъм за модели с трилиони параметри, по-добра поддръжка за смесена прецизност и fp8 и по-интелигентно автоматично обвиване, което избира границите на шардинг вместо вас. Тъй като връзките между GPU като NVLink и InfiniBand стават по-бързи, комуникационните разходи за шардинг продължават да намаляват, което го прави практично във все по-големи мащаби.
Безплатен бюлетин
Три проверени AI истории всяка делнична сутрин, написани на достъпен език. Безплатно завинаги, без реклами.
Един имейл всеки делничен ден. Отписване с едно кликване. Никога не продаваме и не споделяме вашия имейл адрес.
Тествайте себе си
Незабавна обратна връзка за всеки отговор и сертификат за споделяне с подлежащ на проверка идентификационен номер, след като преминете курс.
Подкрепете безплатното AI образование. AI Understanding е 501(c)(3) с нестопанска цел — без реклами, без платен достъп, никога. Направете дарение
Напълно разделени паралелни данни (FSDP) е техника за разпределено обучение, която разделя параметрите на модела, градиентите и състоянията на оптимизатора в много графични процесори, така че всяко устройство съдържа само срез. Това прави възможно обучението на огромни модели на хардуер, който никога не може да побере целия модел в паметта на един GPU.
FSDP разделя параметрите, градиентите и състоянията на оптимизатора на модела на различни устройства, докато стандартният паралелизъм на данните репликира пълния модел на всеки GPU.
Преди да се изпълни слой, FSDP извършва събиране на всички, за да събере временно пълните параметри от всички сегменти, след което ги освобождава след това.
Постоянното задържане само на фрагмент и временно събиране на пълни тежести е това, което поддържа използването на памет ниско и приблизително пропорционално на една част от модела.
Разделянето на параметри, градиенти и състояния на оптимизатора на FSDP следва точно идеите, въведени в ZeRO на Microsoft от библиотеката DeepSpeed.
FSDP извлича предварително параметрите на следващия слой, докато текущият слой все още изчислява, припокривайки комуникацията на всички събирания с полезна работа.
Продължавай да учиш
Още ръководства, избрани за тази тема
СледваСледващо ръководство
Паралелизъм на данните
технически