ДалееСледующее руководство
Параллелизм данных
Технический
Техническое РУКОВОДСТВО
Fully Sharded Data Parallel (FSDP) — это метод распределенного обучения, который распределяет параметры модели, градиенты и состояния оптимизатора по множеству графических процессоров, поэтому каждое устройство содержит только часть.
Прослушайте это руководствоОзвучено ИИ · ~2 min
Это делает возможным обучение огромных моделей на оборудовании, которое никогда не сможет поместить всю модель в память одного графического процессора.
Традиционный параллелизм данных сохраняет полную копию модели на каждом графическом процессоре, что приводит к нерациональному использованию памяти и ограничению размера модели. FSDP, популяризированный PyTorch от Meta и вдохновленный ZeRO от Microsoft, вместо этого распределяет три вещи по устройствам: параметры, градиенты и состояния оптимизатора. Во время прямого прохода каждый графический процессор временно собирает полные веса для слоя, который он вычисляет, посредством общего сбора, запускает вычисление, а затем немедленно освобождает собранную копию. Обратный проход работает аналогично, за которым следует уменьшение-разброс, который распределяет срезы градиента обратно на соответствующие графические процессоры. Поскольку каждое устройство постоянно хранит только часть модели, использование памяти падает примерно линейно с количеством графических процессоров, что позволяет командам обучать модели с десятками или сотнями миллиардов параметров.
Точная настройка модели Llama с 70 миллиардами параметров для 8 графических процессоров, которые по отдельности не могут выдержать полный вес.
Предварительное обучение больших языковых моделей в лабораториях искусственного интеллекта путем разделения состояний оптимизатора (которые доминируют в памяти Адама) по сотням ускорителей.
Исследователи используют оболочку FSDP PyTorch для обучения преобразователей зрения в университетском кластере, не покупая флагманские графические процессоры с памятью 80 ГБ.
Сочетание FSDP с bfloat16 смешанной точности позволяет примерно вдвое сократить объем памяти и повысить производительность обучения на мультимодальных моделях.
FSDP становится стандартом для открытого обучения больших моделей, а FSDP2 в PyTorch повышает удобство использования и позволяет сегментировать данные по каждому параметру. Ожидайте более тесной интеграции с тензорным и конвейерным параллелизмом для моделей с триллионом параметров, лучшей поддержки смешанной точности и fp8, а также более умной автоматической упаковки, которая выбирает границы сегментирования за вас. Поскольку соединения между графическими процессорами, такие как NVLink и InfiniBand, становятся все быстрее, стоимость связи при сегментировании продолжает сокращаться, что делает его практичным во все больших масштабах.
Бесплатная рассылка
Три проверенных AI-истории каждое утро буднего дня, написанные простым английским. Бесплатно навсегда, без рекламы.
Одно электронное письмо каждый будний день. Отписаться в один клик. Мы никогда не продаем и не передаем ваш адрес.
Проверьте себя
Мгновенная обратная связь по каждому ответу и общий сертификат с проверяемым идентификатором после прохождения курса.
Поддержите бесплатное образование в области искусственного интеллекта. AI Understanding — это некоммерческая организация 501(c)(3). Никакой рекламы и платного доступа. Сделать пожертвование
Fully Sharded Data Parallel (FSDP) — это метод распределенного обучения, который распределяет параметры модели, градиенты и состояния оптимизатора по множеству графических процессоров, поэтому каждое устройство содержит только часть. Это делает возможным обучение огромных моделей на оборудовании, которое никогда не сможет поместить всю модель в память одного графического процессора.
FSDP распределяет параметры модели, градиенты и состояния оптимизатора между устройствами, тогда как стандартный параллелизм данных копирует полную модель на каждом графическом процессоре.
Перед запуском слоя FSDP выполняет сбор всех параметров, чтобы временно собрать полные параметры из всех сегментов, а затем освобождает их.
Постоянное хранение только фрагмента и временный сбор полных весов — это то, что сохраняет использование памяти на низком уровне и примерно пропорционально одной части модели.
Шардинг параметров, градиентов и состояний оптимизатора в FSDP во многом соответствует идеям, представленным в ZeRO Microsoft из библиотеки DeepSpeed.
FSDP предварительно выбирает параметры следующего уровня, пока текущий уровень все еще выполняет вычисления, перекрывая всеобщую связь полезной работой.
Продолжайте учиться
Другие руководства, выбранные по этой теме
ДалееСледующее руководство
Параллелизм данных
Технический