План проектирования крупномасштабной кластерной учебной платформы (Wanka) MegaScale: масштабирование большой языковой модели. Учебное видеоруководство.
План проектирования крупномасштабной кластерной учебной платформы (Wanka) MegaScale: масштабирование большой языковой модели. Учебное видеоруководство.

1. Зачем нужен обучающий кластер Wanka:

Я не буду на этом акцентировать внимание, потому что большая языковая модель — это здорово.,машинный перевод,Диалог человека и компьютера демонстрирует большой потенциал и прикладную ценность.。Размер модели и размер обучающих данных определяют возможности модели.,Для реализации современных моделей,Люди работали над триллионами токенов для обучения больших моделей с триллионами параметров. Это требует создания крупномасштабного кластера искусственного интеллекта с десятками тысяч графических процессоров для обучения LLM (большая языковая модель).

2. Проблемы обучающего кластера Ванка:

1、Достичь больших масштабовВысокая эффективность обучения;(Можно ли эффективно использовать вычислительную мощность Ванки?)

2、Достичь больших масштабовтренировка высокой стабильности;(Слишком много карт, и каждая из них может работать неправильно.,Легко вызвать различные поломки)

3. Принципы построения обучающего кластера Ванка:

1. Совместное проектирование алгоритмов и систем.

2. Уменьшите объем/время связи, дублирование связи и вычислений.

3. Оптимизировать процесс расчета без снижения точности

4. Глубокая наблюдаемость

Факторы, которые следует учитывать при разработке учебного кластера Ванка:

1. Алгоритм

2. Распределенное параллельное решение

3. Загрузка данных

4. Сеть и общение

5. Оператор нижнего уровня

6、Отказоустойчивость кластераи мониторинг производительности

Видеоурок

1.1 Проблемы, принципы проектирования, соображения и причины для крупномасштабной учебной платформы кластера Wanka MegaScale MegaScale: масштабирование большого размера Language_bilibili_bilibili

1.2 Большая языковая модель Оптимизация обучения LLM, параллельное внимание, скользящее окно, увеличение размера пакета единичных обучающих данных, ускоренное обучение Wanka Мегамасштабное масштабирование Large_bilibili_bilibili

1.3 Распределенное обучение Wanka, параллельная оптимизация данных ZeRO, параллельная связь и загрузка данных_bilibili_bilibili

1,5 миллиона карточек, тензор обучения, параллельная оптимизация, нарезка данных, расчет, параллельная связь, крупномасштабный кластер_bilibili_bilibili

1.6 Масштабная оптимизация загрузки обучающих данных, устранение избыточных загрузчиков, параллельная загрузка данных, кластер Wanka MegaScale_bilibili_bilibili 1.7 Масштабное обучение кластеров, оптимизация инициализации связи, топология сети_bilibili_bilibili

1.8 Управление перегрузкой сети крупномасштабного кластера ECMP PFC DCQCN NCCL Тайм-аут связи retransmission_bilibili_bilibili

1.9 Почему объединение базовых операторов может ускорить расчет_bilibili_bilibili

1.10 Ванкакластер Отказоустойчивость кластера Мониторинг производительности Обнаружение сердцебиения самодиагностика Восстановление_Билибили_bilibili

Видеоуроки все еще обновляются

4.1 Оптимизация алгоритма LLM

Оптимизация алгоритма выполняется без ущерба для точности модели для достижения высокой эффективности обучения в масштабе.

4.1.1 Механизм параллельного внимания (параллельное внимание)

Добавьте комментарий к изображению, не более 140 слов (по желанию)

Как показано в формуле (1) выше, результат, рассчитанный с помощью Attention, вводится как LN, и LN вычисляется. После расчета LN он вводится как MLP, а затем рассчитывается MLP. Это последовательный процесс расчета.

В улучшенной формуле (2) после расчета LN MLP и Внимание могут рассчитываться параллельно. Следовательно, параллельное внимание может сократить время вычислений.

Видеоурок:1.2 Большая языковая модель Оптимизация обучения LLM, параллельное внимание, скользящее окно, увеличение размера пакета единичных обучающих данных, ускоренное обучение Wanka Мегамасштабное масштабирование Large_bilibili_bilibili

4.1.2 Внимание к скользящему окну (SWA)

Добавьте комментарий к изображению, не более 140 слов (по желанию)

Поскольку предложение представляет собой временной ряд, когда мы прогнозируем следующее слово на основе существующей последовательности, чем раньше слово, тем слабее корреляция со словом, которое я хочу предсказать. Мы можем установить окно и игнорировать слова перед окном, чтобы уменьшить объем вычислений. Каждый раз, когда предсказано слово, окно перемещается на один кадр назад, чтобы предсказать следующий, поэтому оно называется скользящим окном.

Например, если мы предсказываем следующее слово «Маленький, который любит ходить в гости», мы можем напрямую использовать всю последовательность «Маленький, который любит ходить в гости», чтобы предсказать слово «лошадь». Мы не можем предсказать «лошадь», используя слово «любовь». Расстояние слишком велико, а корреляция слишком слаба. Мы можем установить длину окна 4 и предсказать слово «лошадь», используя «маленький, который приходит в дверь», игнорируя «любовь» и уменьшая объем вычислений. Но мы предсказали слово «лошадь». При предсказании следующего слова мы игнорируем слова «любовь» и «чуань» и напрямую используем «дверную пони», чтобы предсказать следующее слово. Проведите пальцем назад на один пробел? и игнорировать слово «строка». Вот почему его называют раздвижным окном.

4.1.3 Оптимизатор LAMB

Масштабное обучение ограничено размером партии. В частности, увеличение размера пакета может повлиять на сходимость модели. LAMB может масштабировать размер пакета до 4 раз без потери точности. Почему увеличение количества обучающих данных в пакете сокращает время обучения Ха-ха-ха, Сяо Пони, который любит к нам приходить, заботливо нарисовал для всех картинку (почему так продуманно, без лайков не могу объяснить), как показано на рисунке ниже. Для обучения одних и тех же данных требуется время:

Добавьте комментарий к изображению, не более 140 слов (по желанию)

4.2 Решение для распределенного обучения

4.2.1 Перекрытие параллельной передачи данных

Добавьте комментарий к изображению, не более 140 слов (по желанию)

Добавьте комментарий к изображению, не более 140 слов (по желанию)

Фактически, DDP и FSDP Pytorch уже выполнили перекрытие обучения и связи, как показано на рисунке выше. Например, во время процесса обратного расчета связь «Уменьшение-разброс» передается после завершения части расчета. во время последующего обратного процесса вычислений одновременно для связи происходит перекрытие вычислительной связи.

Но с этим есть проблема, то есть после того, как я завершу обратный расчет, произойдет связь «Уменьшение-разброс». Прежде чем начнется прямой расчет, для выполнения расчета потребуется хотя бы одна операция «Всесобрать». нет перекрытия связи.

Таким образом, в ходе этих двух коммуникационных процессов,Предварительная загрузка данных,Приди и уступи дорогуСвязь пересекается с загрузкой данных

Видеоурок:1.3 Распределенное обучение Wanka, параллельная оптимизация данных ZeRO, параллельная связь и загрузка данных_bilibili_bilibili

4.2.2 Перекрытие параллельных коммуникаций конвейера

Добавьте комментарий к изображению, не более 140 слов (по желанию)

При параллелизме прямого конвейера, когда один графический процессор завершает расчет и одновременно отправляет данные следующему графическому процессору, выполняется следующий расчет. То есть отправка данных пересекается с прямыми вычислениями.

Ха-ха-ха,Можно ли использовать ту же технику в обратном порядке?,Следующий обратный расчет выполняется при отправке данных. Я видел несколько сообщений в блоге, в которых говорилось,Вот прием и обратный путь,Лично я так не думаю.,Расчеты можно производить только после получения данных.,Все еще здесьsendиbackwardперекрытие。(Ха-ха-ха, студенты должны быть уверены в себе, иметь смелость бросать вызов экспертам и просто вовремя исправлять их, если они допускают ошибки. Ха-ха-ха, если мой маленький пони, который любит заглядывать, ошибается, худшее, что он может сделать, — это опубликовать видео, чтобы извиниться и признать, что у него это плохо получается.

Поскольку прямые и обратные вычисления относительно независимы, можно ли перекрывать прямой прием приема и обратный обратный расчет, а также обратный расчет приема и процесс прямого вычисления перекрываться. Разве здесь не перекрываются получение и вычисления?

4.2.3 Перекрытие тензорной параллельной связи

Добавьте комментарий к изображению, не более 140 слов (по желанию)

Суть здесь заключается в сегментировании данных, когда тензоры параллельны: (1) Для части связи allgather allgather вычисляет первый срез данных, чтобы последующие вычисления были параллельны связи (2) Для части связи «Уменьшение-разброс» «Уменьшите»; -Scatter-связь осуществляется после расчета первой части, чтобы последующие расчеты и связь были параллельны.

Видеоурок:1,5 миллиона карточек, тензор обучения, параллельная оптимизация, нарезка данных, расчет, параллельная связь, крупномасштабный кластер_bilibili_bilibili

4.3 Предварительная обработка данных и оптимизация загрузки

4.3.1 Асинхронная предварительная обработка данных

Асинхронная предварительная обработка данных, предварительная обработка/загрузка данных начинается, когда обучение завершает градиент синхронизации связи.

4.3.2 Устранение избыточных загрузчиков данных

Каждый графический процессор имеет собственный загрузчик данных, который сначала считывает данные в память процессора. Одна и та же параллельная группа тензоров имеет один и тот же вход, поэтому для загрузки данных в память ЦП необходим только один загрузчик данных, а затем каждый графический процессор загружает данные в свою собственную видеопамять.

Видеоурок:1.6 Масштабная оптимизация загрузки обучающих данных, устранение избыточных загрузчиков, параллельная загрузка данных, кластер Wanka MegaScale_bilibili_bilibili

4.4 Оптимизация инициализации связи

По мере увеличения размера кластера инициализация коллективной группы связи становится трудоемкой и неудобной, что влияет на настройку параметров и отладку.

(1) Когда на этапе синхронизации используется блокировка, она основана на внутренней реализации TCPStore в Pytorch, которая работает в однопоточном режиме с блокировкой чтения и записи. Замените TCPStore на Redis, который является неблокирующим и асинхронным.

(2) Уменьшите ненужную синхронизацию при блокировке глобального барьера.

4.5 Кластер

4.5.1 Топология кластера

Коммутаторы уровня 3 соединены по топологии, аналогичной CLOS. Два уровня являются позвоночно-листовыми, как показано на рисунке, а третий уровень показан на рисунке ниже.

Добавьте комментарий к изображению, не более 140 слов (по желанию)

Добавьте комментарий к изображению, не более 140 слов (по желанию)

4.5.2 Уменьшение коллизий хэшей ECMP

ECMP (многопутевая маршрутизация с равной стоимостью) — многопутевая балансировка нагрузки с равной стоимостью. Например, есть два пути, по которым можно добраться. ECMP вычисляет хеш-значение на основе IP, номера порта и т. д. (Это обсуждается в Интерпретации исходного кода NCCL 1).

Определите, какой путь выбрать, вычислив значение хеш-функции. Поскольку IP, номер порта и т. д. абсолютно одинаковы, вычисленное значение хеш-функции также составляет одну страницу, что может гарантировать, что один и тот же сеанс всегда будет проходить по одному и тому же пути, и предотвратить прерывание сеанса.

Я действительно не понимаю, как уменьшить конфликты хешей ECMP. Я исследую это позже, когда у меня будет время.

4.5.3 Контроль перегрузок

IB (Infiniband) не очень дорог и является частным протоколом, но он обязательно будет быстрым. Ethernet ссылается на него и разрабатывает RoCE v2. Что касается IB, он наследует ограничения сети без потерь IB и предлагает PFC (управление потоком на основе приоритетов). Когда буфер коммутатора вот-вот переполнится, PFC напрямую уведомляет восходящий порт и грубо приостанавливает любую передачу данных.

Появилось DCQCN (квантовое уведомление о перегрузке центра обработки данных). DCQCN включает в себя три компонента: сетевую карту отправителя, коммутатор и сетевую карту получателя.

1. Недостаточно кэша коммутатора. Пересылаемые пакеты данных помечаются вероятностью в зависимости от степени перегрузки, что указывает на то, что коммутатор вот-вот выйдет из строя.

2. Принимающая сетевая карта получает помеченный пакет данных и знает, что коммутатор умирает, поэтому отправляет пакет данных отправляющей сетевой карте.

3. Когда принимающая сетевая карта получает пакет данных, который коммутатор не может обработать, она замедляет отправку в соответствии с вероятностью. Я какое-то время не получал пакетов от коммутатора, поэтому начал его ускорять.

4.5.4 Настройка тайм-аута повторной передачи

Параметры в NCCL можно настроить для управления таймером повторной передачи и счетчиком повторов, а адаптивная повторная передача сетевой карты включена.

4.6 Операторы низкого уровня

Добавьте комментарий к изображению, не более 140 слов (по желанию)

Объединение операторов оптимизирует процесс вычислений. Например, в первом приведенном выше расчете X изначально умножалось дважды, чтобы получить Y. Сначала оно было умножено на 2, а затем умножено на 4. Операторы были объединены, и X было умножено на 8 за один раз, что уменьшило объем вычислений. .

Слияние операторов может не только оптимизировать процесс вычислений, но иногда также оптимизировать процесс чтения и записи. Например, во втором вычислении выше сначала прочитайте X и умножьте его на 2, чтобы получить результат, затем прочитайте X и сложите результат, чтобы получить Y. После слияния вам нужно прочитать X только один раз.

4.5 Отказоустойчивость Кластера

1.10 Ванкакластер Отказоустойчивость кластера Мониторинг производительности Обнаружение сердцебиения самодиагностика Восстановление_Билибили_bilibili

Добавьте комментарий к изображению, не более 140 слов (по желанию)

4.5.1 Обнаружение сердцебиения

Сообщения Heartbeat отслеживают отклонения и выдают ранние предупреждения при их обнаружении.

Мониторинг на миллисекундном уровне: IP-адрес, имя модуля, информация об оборудовании, состояние обучения, трафик RDMA и немедленный сигнал тревоги при обнаружении ошибок или аномалий трафика.

4.5.2 Самодиагностика

Легкая диагностика неисправностей программного и аппаратного обеспечения позволяет быстро и автоматически обнаруживать проблемы.

Тест внутренней сети хоста: (1) тест пропускной способности сетевой карты RDMA для конечной точки хоста (узла памяти и графического процессора).

(2) Проверка соединения и пропускной способности между разными сетевыми картами RDMA на одном хосте.

Тест NCCL: (1) общий тест между графическими процессорами на сервере.

(2) Тестирование сервера allreduce под тем же коммутатором.

Примечание. Allreduce также можно использовать для тестирования различных базовых операторов связи. Базовые операторы связи и протоколы связи с сокращением и без сокращения, такие как alltoall, различаются.

4.5.3 Восстановление

Двухэтапная контрольно-пропускная точка, быстрое сохранение и вызов

Двухэтапное быстрое сохранение Checkpoint: первый этап Checkpoint записывается в память хоста;

Одновременно с обучением модели второго этапа Checkpoint записывается из памяти в HDFS.

Двухэтапный быстрый вызов контрольной точки: на первом этапе один графический процессор считывает контрольную точку из HDFS;

На втором этапе данные передаются всем остальным графическим процессорам, которым требуются те же данные.

4.5.4 Визуализация мониторинга производительности

При мониторинге производительности необходимо обращать внимание на зависимость между графическим процессором и графическим процессором. Он не основан напрямую на скорости работы графического процессора для определения производительности графического процессора. Когда входные данные для GPUA предоставляются GPUB, возможно, сам GPUA работает медленно и его производительность низкая, или же GPUB работает медленно, из-за чего создается впечатление, что GPUA работает медленно.

Добавьте комментарий к изображению, не более 140 слов (по желанию)

Добавьте комментарий к изображению, не более 140 слов (по желанию)

в заключение:

Хотя точность обучения модели остается неизменной, достигается коэффициент использования вычислительной мощности Model FLOPs Utilization (MFU) 55,2%, что в 1,34 раза выше, чем у самой совершенной среды обучения с открытым исходным кодом Megatron LM.

Добавьте комментарий к изображению, не более 140 слов (по желанию)

Добавьте комментарий к изображению, не более 140 слов (по желанию)

Добавьте комментарий к изображению, не более 140 слов (по желанию)

Оригинальная ссылка:

[2402.15627] MegaScale: Scaling Large Language Model Training to More Than 10,000 GPUs (arxiv.org)

boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose