Андрей Карпати, создатель AI-образовательного проекта Eureka Labs, представил microGPT — реализацию обучения и инференса GPT, написанную на 243 строках Python без дополнительных зависимостей. В коде используются только стандартные модули: math, random, os и argparse.
Данный файл содержит все необходимые компоненты для работы языковой модели: автоматическое дифференцирование, посимвольный токенизатор с токенами начала и конца, архитектуру Transformer с multi-head attention, RMSNorm, squared ReLU, оптимизатор Adam и генерацию текста. Отличия от традиционного GPT-2 незначительны — замена LayerNorm на RMSNorm и использование squared ReLU вместо GeLU.
По словам Карпати, этот проект является «арт-проектом», демонстрирующим, что алгоритмический контент для обучения GPT можно уместить в компактный код. microGPT обучается по умолчанию на датасете имен с предыдущего проекта makemore, но также поддерживает другие текстовые корпуса.
Это продолжение минималистичных инициатив Карпати: ранее он выпустил micrograd и minGPT. microGPT убирает даже зависимости от NumPy и PyTorch, реализуя операции на чистом Python, хотя проект не подходит для практического использования из-за длительного времени обучения без GPU. Тем не менее, microGPT привлекает внимание на GitHub.