Об этом проекте
nanoGPT — это легковесный и высокопроизводительный репозиторий для обучения и доводки средних языковых моделей GPT (Generative Pre-trained Transformer). Это переработанная версия minGPT, разработанная с приоритетом практической производительности и минимально возможным кодом, сохраняя при этом читаемость.
Основные возможности:
- **Обучение**: Основной скрипт `train.py` (~300 строк) реализует полный цикл обучения. Он воспроизводит GPT-2 (124M) на OpenWebText на одном узле с 8x A100 40GB в течение примерно 4 дней с помощью PyTorch DDP.
- **Доводка**: Поддерживает инициализацию из предобученных проверочных точек OpenAI GPT-2 (gpt2, gpt2-medium, gpt2-large, gpt2-xl) и доводку на настраиваемых наборах данных, таких как текст Шекспира.
- **Генерация/инференс**: Скрипт `sample.py` генерирует текст из обученных или предобученных моделей с настраиваемыми подсказками, количеством образцов и лимитом токенов.
- **Эффективность**: По умолчанию использует PyTorch 2.0's `torch.compile()` для значительного ускорения (например, снижает время итерации с ~250мс до ~135мс на A100).
- **Много-GPU/много-узлов**: Распределенное обучение с помощью `torchrun` с поддержкой многоузловых настроек.
- **Гибкая конфигурация**: Гиперпараметры можно настроить с помощью файлов конфигурации в директории `config/` или аргументов командной строки.
- **Поддержка CPU/MPS**: Работает на CPU для экспериментов и Metal Performance Shaders (MPS) на Apple Silicon для ускорения на 2-3x.
Примеры рабочих процессов включают обучение модели GPT на уровне символов на данных Шекспира в течение нескольких минут на одном GPU или воспроизведение benchmarks GPT-2 на OpenWebText с большим железом.
Зависимости: PyTorch, NumPy, transformers от Hugging Face, datasets, tiktoken, wandb и tqdm.
Примечание: На ноябрь 2025 года nanoGPT была заменена nanochat и считается устаревшей, хотя и сохранена для справки.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.