BMTrain: большой модели — эффективное обучение
BMTrain — это набор инструментов для эффективного обучения больших моделей.
Основные разделы сайта:
Последние новости:
— 14 июня 2022 года выпущена версия BMTrain 0.1.7. Поддерживается оптимизация ZeRO-2!
— 30 марта 2022 года вышла версия BMTrain 0.1.2. Адаптирована работа с инструментами OpenPrompt и OpenDelta.
— 16 марта 2022 года опубликована версия BMTrain 0.1.1. Это первый стабильный выпуск, в котором исправлены проблемы бета-версии.
— 11 февраля 2022 года представлена первая бета-версия BMTrain 0.0.15.
Обзор
BMTrain — это эффективный инструмент для обучения больших моделей с сотнями миллиардов параметров. BMTrain позволяет обучать модели распределённо, сохраняя при этом лаконичность кода.
Документация
На сайте readthedocs.io можно найти дополнительную информацию об инструменте.
Установка
Есть два способа установки:
Установка BMTrain может занять несколько минут, так как требует компиляции C/CUDA исходного кода. Рекомендуется компилировать BMTrain непосредственно в тренировочной среде, чтобы избежать потенциальных проблем с разными средами.
Использование
Шаги по использованию BMTrain:
Включите BMTrain.
Используйте оптимизацию ZeRO.
Оптимизируйте связь.
Если вы не используете смешанную точность обучения, вам не нужно масштабировать потери, просто установите loss_scale в None в конструкторе OptimManger(loss_scale=None). Это также является параметром по умолчанию для конструктора OptimManager.
Если вы используете смешанную точность обучения, масштабирование потерь — это распространённая техника в смешанной точности обучения. Мы масштабировали потери в optim_manager.backward(loss), чтобы избежать переполнения градиента. Просто установите loss_scale на число с плавающей запятой в конструкторе OptimManager. Loss_scale будет автоматически настраиваться в процессе обучения на основе градиента.
Мы обучили модель GPT-2 с 13 миллиардами параметров, используя 4 сервера, каждый сервер имеет 8 видеокарт V100. Мы протестировали пропускную способность каждого GPU во время процесса обучения, результаты приведены в таблице ниже.
Структура модели:
Размер пакета | 8 | 16 | 24 | 32 |
---|---|---|---|---|
BMTrain | 24,15 | 26,94 | 29,42 | 28,28 |
ZeRO3(mp=1) | 14,88 | 21,69 | 24,38 | - |
ZeRO3(mp=4) | 15,51 | - | - | - |
ZeRO3(mp=8) | 15,51 | - | - | - |
ZeRO2(mp=1) | - | - | - | - |
ZeRO2(mp=4) | 22,85 | - | - | - |
ZeRO2(mp=8) | 21,33 | - | - | - |
ZeROa(mp=b) означает DeepSpeed + Megatron ZeRO stage a и параллелизм моделей = b.
Знак «-» в таблице означает превышение объёма памяти.
Мы уже перенесли большинство распространённых моделей NLP в BMTrain. Вы можете найти список поддерживаемых моделей в проекте ModelCenter.
Приглашаем участников вносить свой вклад, следуя нашему руководству по внесению вклада.
Вы также можете связаться с нами через другие платформы:
Этот инструмент использует лицензию Apache 2.0 с открытым исходным кодом.
Пакет инструментов BMTrain вносит изменения в PyTorch на нижнем уровне. Если ваша программа выдаёт неожиданные результаты, вы можете сообщить соответствующую информацию в issue.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )