Андрей Карпати создал GPT на Python без библиотек Обложка: Skyread

Андрей Карпати создал GPT на Python без библиотек

Новости
Главное:

  • Андрей Карпати создал минималистичную реализацию GPT на чистом Python, уложив всю архитектуру в 243 строки кода без внешних библиотек.
  • В проекте реализован собственный движок автоматического дифференцирования, архитектура Transformer с некоторыми отличиями от классического GPT-2, и все компоненты для обучения и генерации текста.
  • Проект позиционируется как образовательный арт-проект, демонстрирующий ключевые алгоритмы GPT, но не предусматривает практического использования из-за низкой производительности.

Основатель AI-образовательного стартапа Eureka Labs Андрей Карпати представил microGPT — компактную и полностью функциональную реализацию модели GPT, написанную на чистом Python. Интересной особенностью проекта стало отсутствие внешних зависимостей и использование только стандартных библиотек Python, таких как math, random, os и argparse. Таким образом, весь алгоритмический фундамент GPT умещён в 243 строках кода.

MicroGPT включает все необходимые для работы языковой модели компоненты: собственный движок автоматического дифференцирования, посимвольный токенизатор с BOS/EOS-токенами, архитектуру Transformer с multi-head attention, а также RMSNorm вместо LayerNorm, активацию squared ReLU вместо GeLU и оптимизатор Adam. По словам Карпати, проект близок к минимально возможному упрощению — он не видит вариантов с дальнейшим сокращением кода без потери функционала.

Для обучения по умолчанию используется датасет с именами из предыдущего проекта makemore, однако код универсален и может обрабатывать любой текстовый корпус. Карпати отмечает, что microGPT — это прежде всего образовательный арт-проект, нацеленный показать ключевые механизмы GPT. Полноценное практическое применение ограничено из-за отсутствия ускорения через GPU и специализированные библиотеки, что приводит к продолжительным вычислениям даже на простых задачах.

Этот проект стал продолжением серии минималистичных разработок Карпати, среди которых micrograd — движок автоградиента в менее чем 100 строках, и minGPT — компактная реализация GPT на PyTorch. MicroGPT выдвигает концепцию ещё дальше, устраняя необходимость в сторонних числовых библиотеках и реализуя все математические операции на скалярных вычислениях чистого Python.

MicroGPT уже привлекает внимание сообщества GitHub своими масштабами и демонстрирует, что принципы LLM можно свести к крайне минималистичному программному обеспечению. Такой подход приближает понимание внутренней работы языковых моделей, делая их более доступными для образовательных целей и изучения.

Tagged