TurboGPT: открытый проект обучения крошечного байтового GPT на CUDA C++

TurboGPT: открытый проект обучения крошечного байтового GPT на CUDA C++

TurboGPT представлен на Show HN как проект для обучения крошечной байтовой GPT-модели на CUDA C++. В README он описан одной строкой: «Tiny byte-level GPT training in CUDA C++. MIT» (то есть код открыт под лицензией MIT). В заголовке публикации на Show HN заявлено обучение трансформера размером 22KiB за 13 секунд, но в имеющемся тексте README ни размер модели, ни время обучения не упоминаются.\n\nСборка описана только для Windows: нужны инструменты C++ из Visual Studio 2022 и CUDA 13.4. Проект собирается командой .\build.ps1 -CudaArch 86, где CudaArch, вычислительная возможность (compute capability) видеокарты из списка NVIDIA. Значение 86 стоит в примере сборки. Запуск обучения выглядит так: .\build\turbogpt.exe --data hn1g.txt --log-to runs/ctx4.\n\nПо ходу запуска в каталоге runs/ctx4 сохраняется контрольная точка ctx4.pt, в которой лежат состояния модели, оптимизатора, планировщика скорости обучения и самого обучающего цикла. Продолжить обучение можно, передав --load CHECKPOINT.pt. Файл report.json строится на основе каталога с логами. Логи совместимы с TensorBoard: один отчёт на каждый батч, не более 8Mi отчётов, запись на диск происходит вместе с периодическими или итоговыми контрольными точками.\n\nЕдинственный приведённый результат качества: на наборе hn1g после 1.5G обучающих токенов получено 2.52435 BPB (метрика, бит на байт). Что содержится в hn1g, каков его размер, на какой видеокарте всё измерялось и с чем сравнивать это число, в README не сказано. Проверка проекта запускается командой python tests\verify.py.

Ключевые факты

  • TurboGPT, небольшая программа для обучения байтового GPT на CUDA C++, лицензия MIT.
  • Сборка описана только для Windows: Visual Studio 2022 (инструменты C++) и CUDA 13.4; в примере указан параметр -CudaArch 86.
  • Контрольная точка хранит состояния модели, оптимизатора, планировщика и обучающего цикла; обучение можно продолжить через --load.
  • Логи совместимы с TensorBoard: один отчёт на батч, не более 8Mi отчётов.
  • Результат в README: 2.52435 BPB на hn1g после 1.5G токенов; заявленные в заголовке Show HN 22KiB и 13 секунд в README не упоминаются.

Почему это важно

Проект показывает, как можно обучать совсем маленькую языковую модель на уровне байтов собственным кодом на CUDA C++, без больших фреймворков. Громкие цифры из заголовка Show HN (трансформер 22KiB, обучение за 13 секунд) в доступном тексте README не подтверждены, поэтому оценивать значимость стоит осторожно: подтверждён лишь сам факт открытого проекта и один результат в BPB.

Кому это важно

Тем, кто интересуется устройством обучения трансформеров на низком уровне, экспериментами с микромоделями и CUDA-кодом. Практически применять проект могут владельцы видеокарт NVIDIA под Windows: в README описана только такая сборка.

Как это применить

Собрать проект командой .\build.ps1 -CudaArch N, подставив вычислительную возможность своей видеокарты (в примере, 86), затем запустить .\build\turbogpt.exe --data hn1g.txt --log-to runs/ctx4. Для продолжения обучения использовать --load CHECKPOINT.pt, для просмотра кривых, логи в формате TensorBoard, для проверки, python tests\verify.py. Код открыт под лицензией MIT.

Можно ли доверять

Текст README короткий: в нём нет имени автора, описания набора hn1g, определения BPB, сравнения с другими реализациями и названия видеокарты, на которой получены цифры. Результат 2.52435 BPB нельзя ни с чем сопоставить. Утверждения из заголовка Show HN про 22KiB и 13 секунд в README не подтверждены.

Риски и подводные камни

Заявленные в заголовке параметры не подтверждены текстом README. Указана только сборка под Windows с Visual Studio 2022 и CUDA 13.4, инструкций для других систем нет. Число параметров и архитектура модели (слои, головы, длина контекста) не описаны. Число отчётов в логах ограничено значением 8Mi.