Полностью сегментированный параллелизм данных
Fully Sharded Data Parallel (FSDP) — это метод распределенного обучения, который распределяет параметры модели, градиенты и состояния оптимизатора по множеству графических процессоров, поэтому каждое устройство содержит только часть.
Обзор
It makes training huge models possible on hardware that could never fit the whole model in one GPU's memory.
Глубокое погружение
Традиционный параллелизм данных сохраняет полную копию модели на каждом графическом процессоре, что приводит к нерациональному использованию памяти и ограничению размера модели. FSDP, популяризированный PyTorch от Meta и вдохновленный ZeRO от Microsoft, вместо этого распределяет три вещи по устройствам: параметры, градиенты и состояния оптимизатора. Во время прямого прохода каждый графический процессор временно собирает полные веса для слоя, который он вычисляет, посредством общего сбора, запускает вычисление, а затем немедленно освобождает собранную копию. Обратный проход работает аналогично, за которым следует уменьшение-разброс, который распределяет срезы градиента обратно на соответствующие графические процессоры. Поскольку каждое устройство постоянно хранит только часть модели, использование памяти падает примерно линейно с количеством графических процессоров, что позволяет командам обучать модели с десятками или сотнями миллиардов параметров.
Техническая информация
FSDP обменивает дополнительную связь на экономию памяти. Веса каждого слоя реконструируются по требованию с правом сбора всех данных перед использованием и отбрасываются сразу после этого, в то время как градиенты объединяются и разделяются с помощью уменьшения-разброса. Обмен данными может перекрываться с вычислениями путем предварительной выборки параметров следующего уровня во время работы текущего уровня, что скрывает большую часть задержки в сети. Настройка степени детализации сегментирования (политики упаковки) позволяет сбалансировать объем памяти и затраты на связь.
Стратегическое воздействие
Стоимость и бюджет
Архитектурные решения влияют на производительность и эксплуатационные расходы на протяжении многих лет.
Более четкие решения
Техническое образование помогает командам выбрать правильный стек, а не только самый новый.
Контроль качества
Лучший инженерный выбор снижает вероятность возникновения проблем с надежностью на производстве.
Будущее полностью сегментированного параллельного обмена данными
FSDP становится стандартом для открытого обучения больших моделей, а FSDP2 в PyTorch повышает удобство использования и позволяет сегментировать данные по каждому параметру. Ожидайте более тесной интеграции с тензорным и конвейерным параллелизмом для моделей с триллионом параметров, лучшей поддержки смешанной точности и fp8, а также более умной автоматической упаковки, которая выбирает границы сегментирования за вас. Поскольку соединения между графическими процессорами, такие как NVLink и InfiniBand, становятся все быстрее, стоимость связи при сегментировании продолжает сокращаться, что делает его практичным во все больших масштабах.
Реальная реализация
Точная настройка модели Llama с 70 миллиардами параметров для 8 графических процессоров, которые по отдельности не могут выдержать полный вес.
Предварительное обучение больших языковых моделей в лабораториях искусственного интеллекта путем разделения состояний оптимизатора (которые доминируют в памяти Адама) по сотням ускорителей.
Исследователи используют оболочку FSDP PyTorch для обучения преобразователей зрения в университетском кластере, не покупая флагманские графические процессоры с памятью 80 ГБ.
Сочетание 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
Следующее руководство
Параллелизм данных
Часто задаваемые вопросы
What is Fully Sharded Data Parallel?
Fully Sharded Data Parallel (FSDP) — это метод распределенного обучения, который распределяет параметры модели, градиенты и состояния оптимизатора по множеству графических процессоров, поэтому каждое устройство содержит только часть. Это делает возможным обучение огромных моделей на оборудовании, которое никогда не сможет поместить всю модель в память одного графического процессора.
Что FSDP распределяет между графическими процессорами, чего НЕ делает стандартный параллелизм данных?
FSDP распределяет параметры модели, градиенты и состояния оптимизатора между устройствами, тогда как стандартный параллелизм данных копирует полную модель на каждом графическом процессоре.
Какую коллективную операцию использует FSDP для восстановления полных весов слоя непосредственно перед его вычислением?
Перед запуском слоя FSDP выполняет сбор всех параметров, чтобы временно собрать полные параметры из всех сегментов, а затем освобождает их.
Почему FSDP освобождает собранные полные веса сразу после вычисления слоя?
Постоянное хранение только фрагмента и временный сбор полных весов — это то, что сохраняет использование памяти на низком уровне и примерно пропорционально одной части модели.
Какой более ранний подход к оптимизации памяти во многом вдохновил FSDP?
Шардинг параметров, градиентов и состояний оптимизатора в FSDP во многом соответствует идеям, представленным в ZeRO Microsoft из библиотеки DeepSpeed.
Как FSDP скрывает большую часть задержки в сети от сбора весов?
FSDP предварительно выбирает параметры следующего уровня, пока текущий уровень все еще выполняет вычисления, перекрывая всеобщую связь полезной работой.