25 августа 2026 в русскоязычных ИИ-лентах снова всплыл слоган из поста LLMScience 1043: how-to-train-your-gpt, обучи своего GPT, с нуля. Рядом в поиске стоят «как обучить GPT», «маленькая GPT своими руками» и «Karpathy train gpt». Живой репозиторий с этим именем есть. Это не Карпаты и не генератор имён. Ниже сверка с raiyanyahya/how-to-train-your-gpt и файлом main.py. Задача вечера: прогнать обучение маленькой модели у себя, а не сесть на 12 глав как на семестр.

Какой репозиторий настоящий

Оригинал создан 3 мая 2026. Автор Raiyan Yahya, лицензия MIT, копирайт 2026 в LICENSE. Последний пуш на master на день сверки: 15 июля 2026. По GitHub API 25 августа 2026 у репозитория 3064 звезды, 378 форков, одна открытая issue. Язык на карточке Jupyter Notebook, рабочий вход это один Python-файл. README обещает учебник на 12 глав и больше 7500 строк пояснений. Для вайб-кодера это полка справочника, не обязательный маршрут.

Чужие копии рядом путают выдачу. aisoftware/how-to-train-your-gpt на сверке с нулём звёзд. Форки вроде NavyaNaik повторяют README. Клонируйте raiyanyahya/how-to-train-your-gpt. Это не зеркало nanoGPT и не nanochat. Карпаты в 2026 учит претрейн GPT-2 класса на узле 8×H100. Здесь ноутбук, PyTorch и модель на 17 млн параметров.

Не курс, не игра, не microgpt-c

Название рифмуется с мультфильмом. Репозиторий не про драконов и не про игру. Внутри decoder-only трансформер, цикл AdamW и генерация текста. 12 markdown-глав легко прочитать как университет. Так делать не стоит, если вопрос звучит «как обучить GPT с нуля» и у вас есть два часа. Главы полезны, когда лосс не падает или вы не понимаете, зачем RoPE. Сначала вы запускаете скрипт. Потом читаете кусок, который сломался. Тот же цикл, что при сборке сайта с агентом: вайб-кодинг, как собрать сайт с нуля через AI.

Отдельная путаница с microgpt-c. Тот текст про порт microgpt Карпаты на чистый C: 4192 параметра, посимвольный словарь, имена, SIMD, без PyTorch. How to Train Your GPT другая полка. Здесь BPE через tiktoken, Wikipedia, десятки миллионов весов, обучение на CPU или GPU. C-файл учит прочитать forward и Adam. Этот репозиторий учит прогнать настоящий (маленький) языковой претрейн. Оба «с нуля». Разный нуль.

Что лежит в репозитории. Сверка 25 августа 2026

Состав master, который мы открыли:

Внешний рантайм есть: PyTorch, Hugging Face datasets, OpenAI tiktoken. Это не «с нуля» в смысле micrograd без pip. Это «с нуля» в смысле: веса считает ваш цикл, а не скачанный ChatGPT. Архитектура в README заявлена как публично задокументированный decoder-only стек в духе LLaMA 3, Mistral и Qwen 2.5: RoPE, RMSNorm, SwiGLU, pre-norm, AdamW, mixed precision, связывание весов эмбеддинга и головы.

Вайб-путь: клонировали, запустили, смотрите лосс

Нужны git, Python 3 и сеть. GPU не обязателен для крошечного конфига. В корне:

  1. git clone https://github.com/raiyanyahya/how-to-train-your-gpt.git
  2. cd how-to-train-your-gpt
  3. venv, затем pip install -r requirements.txt
  4. python main.py

Скрипт сам выбирает устройство: CUDA, Apple MPS или CPU. Дефолт в main.py это tiny: d_model=256, 4 головы, 4 слоя, окно 128 токенов, batch 4, накопление градиента 2, 500 шагов, warmup 50, lr 3e-4. README пишет около 17 млн параметров и «несколько минут на CPU». На GPU тот же прогон занимает секунды. Данные: первые 5000 документов Salesforce/wikitext, сплит wikitext-103-raw-v1. Первый запуск качает корпус. Без сети обучение не стартанёт.

Токенизатор в рабочем файле не обучается. Глава 2 разбирает BPE на пальцах, а SimpleTokenizer берёт готовую кодировку GPT-2 через tiktoken, словарь 50 257. Это честный короткий путь: вы учите веса модели, не словарь OpenAI. Если цель вечера именно «свой BPE», читайте главу и пишите отдельный скрипт. Не ждите, что python main.py вырастит токенизатор с нуля.

Каждые 50 шагов печатается лосс. После цикла скрипт пишет loss_curve.png, гоняет три промпта и кладёт checkpoints/model.pt. Промпты зашиты: история ИИ, начало вселенной, важное научное открытие. Генерация: 50 новых токенов, temperature 0.8, top-k 50. KV-кэш глава 9 объясняет, в generate() его нет. Каждый новый токен гоняет весь префикс заново. Для окна 128 это терпимо. Для продукта это не инференс. Как мерить живой ответ: time to first token и запуск инференса LLM.

17 миллионов и 151 миллион. Не включайте большое сразу

В том же main.py закомментирован конфиг «GPT-2 scale»: 768 размерности, 12 голов, 12 слоёв, окно 1024, 50 000 шагов, warmup 2000, накопление 8. README даёт 151 млн параметров. Число больше классических 124M у GPT-2 small, потому что SwiGLU держит лишнюю матрицу в FFN. README прямо говорит: для этого конфига нужна видеокарта. На CPU это не вечер, это ночь впустую.

Практическая развилка:

Не прыгайте с tiny на 151M «потому что в главе 7 нарисовано 768». Tiny существует, чтобы вы увидели падение лосса сегодня. Большой конфиг без железа и без данных сверх 5000 кусков WikiText даст дорогой шум.

Что внутри модели, если открыть main.py

Файл читается сверху вниз. RoPE крутит пары координат, а не прибавляет обучаемый вектор позиции. RMSNorm без mean-centering. FFN это SwiGLU: SiLU на одном линейном слое, умножение на второй, проекция назад. Блок pre-norm: норма, внимание, residual, норма, FFN, residual. Голова языка делит матрицу с эмбеддингом токенов. Оптимизатор AdamW, decay только у матриц с размерностью больше 1, cosine с разогревом, clip градиента 1.0, AMP на CUDA и MPS.

Это ближе к открытым моделям 2024-2026, чем к лекции «Let's build GPT» 2023 года, где были обучаемые позиции и GELU. Учебный ход Карпаты в nanoGPT другой: минимальный GPT-2, чтобы код был короче. Цель автора другая. В README он пишет, что сам не до конца понимал внимание и разбирал его с ИИ. Репозиторий родился как вайб-конспект, который вырос в публичный учебник. Отсюда тон «объясняем как пятилетке» в главах. В коде тон другой: обычный PyTorch без сюсюканья.

Чего в main.py нет, хотя главы это обещают. Нет обучения своего BPE. Нет KV-кэша на инференсе. Нет Flash Attention. Нет GQA. Fine-tuning лежит отдельной папкой и на дефолтный прогон не влияет. Если пост в ленте обещает «напишете каждый токен BPE сами и получите LLaMA», сверяйте с файлом, который реально исполняется.

Что вы получите после 500 шагов

Лосс должен поехать вниз. Текст после tiny-прогона будет английским крошевом с проблесками энциклопедического корпуса. «The history of artificial intelligence» не превратится в статью. Модель видела 5000 кусков WikiText, окно 128 и 500 обновлений. Это демонстрация, что градиент живой, не способ заменить облачный чат и не способ писать код.

Имеет смысл один осмысленный форк: подставить свой узкий корпус вместо WikiText. Логи, README студии, набор SKU, внутренние FAQ. Тогда крошечная GPT учит ваш язык, не «науку из Википедии за 500 шагов». Меняйте load_training_data, не архитектуру. Окно 128 и словарь GPT-2 останутся узким местом для русского: tiktoken режет кириллицу на мелкие куски, контекст кончается быстро. Для эксперимента на ноутбуке это нормально. Для продукта нет.

Когда нужна модель, которая уже пишет код на одной 3090, это не претрейн с нуля. Это готовые веса: Qwen 3.8-27B на RTX 3090. How to Train Your GPT закрывает вопрос «как устроена петля». Qwen закрывает вопрос «чем кодить локально». Путать их дорого: вы неделю учите 17M на WikiText и удивляетесь, что агент не чинит баг.

Что это даёт вайб-кодеру

Большую часть недели вы вызываете чужой API. Один вечер на этот репозиторий имеет смысл, если нужно одно из трёх: увидеть, как лосс связан с текстом; перестать путать «свой GPT» с 4k параметрами на именах; понять, какие ручки (temperature, top-k, окно, шаги) вообще существуют, пока вы крутите их в Cursor. MIT, один входной файл, свой чекпоинт. Это узкий кейс. Это не «ChatGPT дома за 17 миллионов».

Чего не делать. Не начинать с главы 0 и не отмечать 12 галочек как аттестацию. Не арендовать H100, чтобы прогнать tiny. Не публиковать сэмплы 500 шагов как «нашу LLM». Не ждать, что KV-кэш из учебника сам появится в generate(). Если форк разъехался (лосс NaN, CUDA OOM на 151M, пустой датасет из-за офлайна), чините петлю, а не добавляйте MoE из папки explainers.

Коротко

How to Train Your GPT на 25 августа 2026 это живой репозиторий Raiyan Yahya: MIT, PyTorch, 445 строк main.py, tiny на 17 млн, опциональные 151 млн, WikiText, tiktoken GPT-2. Мы сверили GitHub API (3064 звезды), LICENSE 2026 и дефолтный конфиг. Пост LLMScience 1043 закрывается этим репозиторием, не Карпаты. Запрос «обучить GPT с нуля» здесь значит прогнать маленький претрейн у себя. «GPT Карпаты на C» ведёт к microgpt-c. «Свой ChatGPT за 100 долларов» ведёт к nanochat. «Локальная модель для кода» ведёт к готовым весам вроде Qwen, не к 500 шагам на Википедии.

Клонируйте, запустите python main.py, посмотрите лосс, подставьте свой корпус. Главы читайте точечно, когда код уже отработал. Первичный код: raiyanyahya/how-to-train-your-gpt.