Фреймворк с определениями современных моделей машинного обучения для текста, изображений, аудио и мультимодальных задач — для обучения и инференса.
karpathy/nanochat
Минималистичный, удобный для модификации инструментарий для полного цикла работы с LLM — от токенизации и предобучения до дообучения, оценки и чата; запускается на одном узле с GPU.
- Звёзды
- 58,786
- Форки
- 8,229
- Открытые issues
- 122
- Последний коммит
- в прошлом месяце
Что это?
nanochat — экспериментальный инструментарий для обучения больших языковых моделей, рассчитанный на запуск на одном узле с GPU и построенный на небольшой, понятной кодовой базе. Он охватывает токенизацию, предобучение, дообучение, оценку и инференс; в проект также входит простой CLI для общения с обученными моделями.
Основной параметр управления сложностью — `--depth`: он задаёт число слоёв трансформера. Ширина модели, число голов внимания, скорость обучения, длительность обучения и weight decay вычисляются автоматически, чтобы модели любой глубины были оптимальны по вычислительным затратам. Заявленная цель проекта — добиться возможностей на уровне GPT-2, потратив несколько десятков долларов на облачный GPU; за временем обучения до этой цели следит публичная таблица лидеров.
В репозитории есть скрипты для скоростного обучения на узле с 8xH100, экспериментов с законами масштабирования и сериями моделей, пример для CPU и Apple Silicon с гораздо меньшей моделью, а также документация по работе с точностью bf16, fp16 и fp32.
Ключевые возможности
- 01Охватывает токенизацию, предобучение, дообучение, оценку и инференс в одной кодовой базе.
- 02Размер модели задаётся единственным параметром --depth, остальные гиперпараметры вычисляются автоматически.
- 03Включает CLI для общения с обученными моделями.
- 04Запускается на одном GPU; если доступен только один GPU, вместо параллельного обучения используется градиентное накопление.
- 05Поддерживает CUDA GPU, а для CPU и MPS предусмотрен вариант с меньшей моделью.
- 06Предоставляет таблицу лидеров GPT-2 speedrun, где отслеживается реальное время обучения.
Сценарии использования
- Разобраться, как устроен полный конвейер обучения LLM, изучив небольшую кодовую базу.
- Проводить небольшие эксперименты по предобучению на одном GPU.
- Проверять изменения архитектуры или оптимизатора в быстрых запусках с заданной глубиной модели.
- Обучить небольшую чат-модель от начала до конца при ограниченном бюджете.
Быстрый старт
- 1
Установите зависимости uv с дополнительным компонентом для GPU
uv sync --extra gpu - 2
Активируйте виртуальное окружение
source .venv/bin/activate - 3
Запустите скрипт обучения speedrun (рассчитан на узел 8XH100; занимает около 1,5 часа)
bash runs/speedrun.sh - 4
Общайтесь с обученной моделью через CLI
python -m scripts.chat_cli
Что важно знать
- Полный speedrun GPT-2 рассчитан на узел с GPU 8XH100 и обойдётся примерно в 48 долларов или больше за время работы облачного GPU.
- Для предварительного обучения требуются значительные ресурсы GPU; на GPU с менее чем 80 ГБ VRAM нужно настроить размер пакета.
- Большая часть кода написана на PyTorch, но автор не проводил полноценное тестирование бэкендов без CUDA, таких как MPS и XPU.
Темы
Частые вопросы
- Что такое nanochat?
- Минималистичный, удобный для модификации инструментарий для полного цикла работы с LLM — от токенизации и предобучения до дообучения, оценки и чата; запускается на одном узле с GPU. nanochat — экспериментальный инструментарий для обучения больших языковых моделей, рассчитанный на запуск на одном узле с GPU и построенный на небольшой, понятной кодовой базе. Он охватывает токенизацию, предобучение, дообучение, оценку и инференс; в проект также входит простой CLI для общения с обученными моделями.
- nanochat можно использовать бесплатно? Какая у него лицензия?
- nanochat распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- nanochat всё ещё поддерживается?
- Обновлялся за последние 6 месяцев. Последний коммит в nanochat — 7 сент. 2026 г..
- Для чего можно использовать nanochat?
- Разобраться, как устроен полный конвейер обучения LLM, изучив небольшую кодовую базу. Проводить небольшие эксперименты по предобучению на одном GPU. Проверять изменения архитектуры или оптимизатора в быстрых запусках с заданной глубиной модели. Обучить небольшую чат-модель от начала до конца при ограниченном бюджете.
- Как установить nanochat?
- Установите зависимости uv с дополнительным компонентом для GPU: uv sync --extra gpu Активируйте виртуальное окружение: source .venv/bin/activate Запустите скрипт обучения speedrun (рассчитан на узел 8XH100; занимает около 1,5 часа): bash runs/speedrun.sh Общайтесь с обученной моделью через CLI: python -m scripts.chat_cli
- Где скачать nanochat?
- Исходный код и инструкции по установке — на GitHub: https://github.com/karpathy/nanochat
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
Библиотека для оптимизации глубокого обучения, упрощающая и ускоряющая распределённое обучение и инференс больших моделей.
Официальная реализация FlashAttention — точного и экономного по памяти attention-ядра для обучения и инференса Transformer-моделей на GPU.
Бесплатный фреймворк с открытым исходным кодом для дообучения и постобучения больших языковых моделей с настройкой через YAML-файлы.
Практическое руководство и кодовая база на PyTorch для обучения LLM-трансформера с нуля: предобучение, SFT, reward modeling, DPO/PPO/GRPO и генерация.
Учебник из 12 глав с комментариями: в нём показано, как с нуля создать и обучить небольшую GPT-модель в стиле LLaMA на Python и PyTorch.