Repolode
karpathy

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. 1

    Установите зависимости uv с дополнительным компонентом для GPU

    uv sync --extra gpu
  2. 2

    Активируйте виртуальное окружение

    source .venv/bin/activate
  3. 3

    Запустите скрипт обучения speedrun (рассчитан на узел 8XH100; занимает около 1,5 часа)

    bash runs/speedrun.sh
  4. 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 обновляется ежедневно.

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