Repolode
huggingface

huggingface/nanotron

Минималистичная библиотека Hugging Face для предобучения LLM на базе трансформеров с 3D-параллелизмом (DP, TP, PP) на кластерах с несколькими GPU.

Звёзды
2,855
Форки
342
Открытые issues
159
Последний коммит
в прошлом месяце

Что это?

Nanotron — библиотека на Python для предобучения языковых моделей на базе трансформеров на пользовательских наборах данных. Она призвана обеспечить простой и понятный API для обучения, который масштабируется на системы с несколькими GPU и узлами.

Библиотека реализует параллелизм по данным, тензорам и конвейеру, а также экспертный параллелизм для моделей Mixture-of-Experts. В ней доступны расписания конвейера AFAB и 1F1B, оптимизатор ZeRO-1, накопление градиентов в FP32 и явные API для TP и PP, призванные упростить отладку. В примерах конфигураций представлены небольшая модель Llama, Mamba, MoE, DoReMi и масштабирование с помощью spectral µTransfer.

Обучение запускается с помощью YAML-файлов конфигурации и torchrun, а чекпойнты можно создавать отдельным скриптом. В проекте также есть ссылка на Ultrascale Playbook с данными бенчмарков для моделей разных размеров и разного количества узлов.

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

  • 013D-параллелизм, объединяющий параллелизм по данным, тензорам и конвейеру
  • 02Экспертный параллелизм для моделей Mixture-of-Experts
  • 03Расписания конвейера AFAB и 1F1B
  • 04Оптимизатор ZeRO-1 с накоплением градиентов в FP32
  • 05Параметризация spectral µTransfer для масштабирования моделей

Сценарии использования

  • Предобучение пользовательской языковой модели в стиле Llama на оборудовании с несколькими GPU
  • Эксперименты с архитектурами Mixture-of-Experts или Mamba в небольшом масштабе
  • Масштабирование обучения трансформеров на несколько узлов с помощью Slurm

Быстрый старт

  1. 1

    Создать виртуальное окружение Python с помощью uv

    uv venv nanotron --python 3.11 && source nanotron/bin/activate && uv pip install --upgrade pip
  2. 2

    Установить PyTorch

    uv pip install torch --index-url https://download.pytorch.org/whl/cu124
  3. 3

    Установить основные зависимости

    uv pip install -e .
  4. 4

    Обучить небольшую модель Llama на одном узле с 8 GPU

    CUDA_DEVICE_MAX_CONNECTIONS=1 torchrun --nproc_per_node=8 run_train.py --config-file examples/config_tiny_llama.yaml

Что важно знать

  • Примеры обучения рассчитаны на оборудование NVIDIA с несколькими GPU, например узел с 8 H100.
  • Настройка требует нескольких дополнительных шагов, включая установку CUDA wheels для PyTorch и сборку flash-attn.
  • Некоторые функции, такие как обучение FP8 и ZeRO-3, пока остаются в дорожной карте.

Темы

Частые вопросы

Что такое nanotron?
Минималистичная библиотека Hugging Face для предобучения LLM на базе трансформеров с 3D-параллелизмом (DP, TP, PP) на кластерах с несколькими GPU. Nanotron — библиотека на Python для предобучения языковых моделей на базе трансформеров на пользовательских наборах данных. Она призвана обеспечить простой и понятный API для обучения, который масштабируется на системы с несколькими GPU и узлами.
nanotron можно использовать бесплатно? Какая у него лицензия?
nanotron распространяется с открытым исходным кодом под лицензией Apache-2.0. Перед использованием в коммерческих продуктах проверьте условия лицензии.
nanotron всё ещё поддерживается?
Обновлялся за последние 6 месяцев. Последний коммит в nanotron — 8 окт. 2026 г..
Для чего можно использовать nanotron?
Предобучение пользовательской языковой модели в стиле Llama на оборудовании с несколькими GPU Эксперименты с архитектурами Mixture-of-Experts или Mamba в небольшом масштабе Масштабирование обучения трансформеров на несколько узлов с помощью Slurm
Как установить nanotron?
Создать виртуальное окружение Python с помощью uv: uv venv nanotron --python 3.11 && source nanotron/bin/activate && uv pip install --upgrade pip Установить PyTorch: uv pip install torch --index-url https://download.pytorch.org/whl/cu124 Установить основные зависимости: uv pip install -e . Обучить небольшую модель Llama на одном узле с 8 GPU: CUDA_DEVICE_MAX_CONNECTIONS=1 torchrun --nproc_per_node=8 run_train.py --config-file examples/config_tiny_llama.yaml
Где скачать nanotron?
Исходный код и инструкции по установке — на GitHub: https://github.com/huggingface/nanotron

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты

Практическое руководство и кодовая база на PyTorch для обучения LLM-трансформера с нуля: предобучение, SFT, reward modeling, DPO/PPO/GRPO и генерация.

13,2 тыс.+128 за неделю1,8 тыс.PythonMITАктивно поддерживаетсяОбновлён в прошлом месяце