GPT - всё ещё не ИИ, а 200 строк кода на python

200 строк кода на чистом python, реализующие суть GPT-2

Рис 1. Минималистичные 200 строк кода на чистом python без внешних зависимостей и какой-либо оптимизации, в которых реализована суть алгоритмов обучения и генерации, а также архитектура модели GPT-2

Сегодня я наткнулся на интересный код на Github - это проект microgpt, реализующий логику GPT-2 в 200 строках кода на python. Изучив его, вдохновился и решил написать этот пост.

LLM - это ИИ или не ИИ?#

Сегодня так много разговоров про ИИ, а LLM демонстрируют такие возможности, что, даже будучи разработчиком и математиком-программистом по образованию, я начинаю забывать суть и порой наделяю их человеческими способностями, а в диалогах с ними ожидаю чуда, на которое модели не способны.

Поэтому стоит напомнить себе, что LLM - это большая языковая модель, а не интеллект в привычном для нас понимании (к единой дефиниции которого мы, кажется, всё ещё не пришли, но важно не это).

Устройство LLM#

По сути своей LLM - большая матрица из чисел и алгоритм (обучения и генерации), который:

  • в процессе обучения эти числа подбирает
  • а в процессе генерации использует

Числа в матрице подбираются таким образом, чтобы в процессе генерации модель могла выдавать результат, который мы от неё ожидаем.

И сделать это она может не потому, что понимает (в человеческой интерпретации) смысл, а потому что числа в матрице отражаются статистические закономерности тех текстов, на которых модель обучалась. То есть, она просто запоминает зависимости и выдаёт результаты на их основе.

Проект MicroGPT - GPT в миниатюре#

Для того, чтобы минималистично продемонстрировать суть внутреннего устройства GPT, один из со-авторов GPT-2 - Andrej Karpathy, написал максимально простой код на python, иллюстрирующий принципы работы GPT и позволяющий обучить простой трансформер на базе из 32000 реальных имён, чтобы на выходе получить от модели новые имена.

Так родился проект microgpt[1]. Опубликованный менее суток назад как Gist, он уже имеет 4400 звёзд на Github. Уверен, цифра быстро наберёт десятки тысяч, а код будет перенесён на другие языки и разойдётся по разным устройствам, для которых реальные LLM были неподъёмны ни по производительности, ни по затратам памяти.

Способ объяснить сложное#

Я очень люблю подобные проекты, потому что они позволяют на простом примере разобраться во внутреннем устройстве сложных систем, видя их в миниатюре и более того - позволяя с ними поиграть путём перенастройки параметров и доработки алгоритмов.

Понятно, что даже описанная мной ранее GPT-4o является намного более сложной моделью и использует оптимизированные алгоритмы, позволяющие работать с миллиардами чисел в практически реальнои времени. Но её суть остаётся очень близкой к приведённым 200 строкам кода на python.

Важные выводы#

Взглянув на код и пояснения к нему, становится явно видно, что никакой магии в GPT нет, и это чистая математика. При этом она во многом отражает суть работы человеческой памяти, поскольку в основе лежат математические модели нейронов, синапсов и сигналов.

1. LLM и творчество#

И даже то, что мы называем творчеством, модель, как будто бы, может воспроизвести через параметр temperature, который не очень интуитивно-понятно назван, но отражает степень случайности, которая в процессе генерации результата вносится в закономерности, выученные моделью по исходным данным.

2. Галлюцинации - это норма#

Но на этом возможности моделей заканчиваются, т.к. отделить фантазию от реальности они не могут. Для них и то, и то - факт, подчиняющийся статистическим закономерностям. А значит - имеющий право на жизнь. Поэтому то, что для нас галлюцинации LLM, для самой LLM - обычный результат работы и попробуй объясни ей, что это ошибка.

3. Более простые модели и методы#

Потому во многих ситуациях, чтобы избежать подобных проблем, стоит использовать более простые и предсказуемые методы и модели. Которые ещё и ресурсов жрут кратно меньше.

4. GPT, как и в целом LLM, подходят не для всего#

Например, задачи классификации мне приходилось решать гораздо более легковесными и быстрыми моделями - типа CNN, RNN, LSTM. А это значит, что они и намного дешевле, и ресурсов таких не требуют.

5. Детерминированные алгоритмы - быстро, точно, объяснимо#

Кстати, одной из инженерных сложностей использования LLM является сложная интерпретируемость полученных результатов. Возможно, этот проект для кого-то раскроет внутреннюю суть работы LLM и GPT в частности, но радикально эту проблему, конечно, не решит.

Поэтому для задач с низким числом параметров или линейной разделимостью пространства решений могут подойти и детерминированные алгоритмы, которые будут отрабатывать мгновенно, чётко, объяснимо и с минимальными затратами памяти.

LLM в бизнесе#

Завершить хочется мыслью, что использовать везде LLM - это как гвозди микроскопом забивать - неудобно, дорого и неэффективно.

Но наблюдать за тем, как бизнесы видят в этом магию и пытаются решить таким образом все задачи - приходится постоянно.

Возможно, это как раз те самые 67% из обзора на PWC CEO Survey 2026, которые пока не получили от ИИ желаемого эффекта.

Источники#

[1] - Страница проекта microgpt на сайте автора Andrej Karpathy



Авторы

Logo Юрий Абдуллин @yury_ea
CCO/CTO, IT-предприниматель, ментор IT-стартапов.
25 лет в разработке информационных систем (обо мне)


Открыты к новым проектам

Выполняем профессиональную разработку информационных систем, сервисов и платформ:

  • дорабатываем MVP до полноценных систем
  • проектириуем и внедряем ИИ-агентов
  • проводим аудит кода и процессов
  • обеспечиваем качественный QA и DevOps

Выполненные проекты IT/AI-интегратор Заказать разработку