OpenBMB/BMTrain

Efficient Training (including pre-training and fine-tuning) for Big Models

Обучение⭐ 624Pythonпоследний релиз: v1.0.1
Открыть на GitHub ↗

Что это за инструмент

BMTrain — это инструмент для эффективного распределенного обучения больших языковых моделей (LLM) с поддержкой оптимизаций ZeRO и тензорной параллельности.

Зачем нужен

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

Что можно реализовать

  • Предобучение (pre-training) больших моделей с десятками миллиардов параметров
  • Дообучение (fine-tuning) LLM с использованием оптимизаций ZeRO-2 и ZeRO-3
  • Интеграция с библиотеками OpenPrompt и OpenDelta для параметрически-эффективного обучения
  • Распределенное обучение на кластерах GPU с минимальными изменениями в коде PyTorch

Ключевые возможности

  • Поддержка ZeRO-2 и ZeRO-3 оптимизаций для экономии памяти
  • Тензорная параллельность (Tensor parallel support)
  • Специальные классы bmt.Block и TransformerBlockList для перекрытия вычислений и коммуникации
  • Простая миграция: замена torch.nn.Module на bmt.DistributedModule и torch.nn.Parameter на bmt.DistributedParameter
  • Совместимость с экосистемой OpenBMB (OpenPrompt, OpenDelta)

👤 Кому подойдёт: Исследователи и разработчики, занимающиеся обучением и дообучением больших языковых моделей (LLM) на распределенных GPU-кластерах

Релизы

v1.0.1minor
🕐 16 мес назад · релиз на GitHub ↗

Выпуск v1.0.1: BMT.Block теперь принимает kwargs в forward, обновлены документация и CI-воркфлоу.

  • Added: BMT.Block теперь поддерживает передачу kwargs в функцию forward.
  • Added: Обновлена документация и примечания к релизу.
  • Обновлён CI-воркфлоу проекта.