ZeRO
Важность ZeRO в том, что он позволяет обучать модели с сотнями миллиардов параметров на доступном железе. Без него пришлось бы покупать суперкомпьютеры с терабайтами памяти; с ним хватает связки обычных серверных GPU. Это удешевляет исследования и делает большие языковые модели реальностью для университетов и небольших компаний.
Как это работает интуитивно? Представьте огромную книгу, которую нужно прочитать группе людей. В глупом варианте каждый получает полную копию — это быстро тратит бумагу. Умный вариант: книгу разрезают на главы, каждый читает свою, но на середине они перекидываются страницами, чтобы собрать общий смысл. Так и ZeRO: распределяет не только вычисления, но и саму память. На каждом этапе обучения карты обмениваются только теми данными, которые нужны сейчас, а не хранят всё постоянно.
Прикладной пример: при обучении языковой модели GPT-3 потребовалось бы около 3 терабайт памяти. С ZeRO это удалось сделать на кластере из сотен GPU среднего класса, где каждая карта несла лишь свою долю нагрузки, а не дублировала всю сеть. Именно ZeRO лежит в основе многих современных открытых моделей, таких как BLOOM или LLaMA.
Коротко: ZeRO — это способ не тратить память впустую и обучать гигантские сети на скромном оборудовании. Технология уже стала стандартом в индустрии, и без неё нынешний бум больших моделей был бы невозможен.
Поделиться