GPT - всё ещё не ИИ, а 200 строк кода на python
Сегодня я наткнулся на интересный код на Github - это проект microgpt [1], реализующий логику GPT-2 в 200 строках кода на python. Изучив его, вдохновился и решил написать этот пост.
LLM - это ИИ или не ИИ?
Сегодня так много разговоров про ИИ, а LLM демонстрируют такие возможности, что, даже будучи разработчиком и математиком-программистом по образованию, я начинаю забывать суть и порой наделяю их человеческими способностями, а в диалогах с ними ожидаю чуда, на которое модели не способны.
Поэтому стоит напомнить себе, что LLM - это большая языковая модель, а не интеллект в привычном для нас понимании (к единой дефиниции которого мы, кажется, всё ещё не пришли, но важно не это).
Устройство LLM
По сути своей LLM - большая матрица из чисел и алгоритм (обучения и генерации), который:
- в процессе обучения эти числа подбирает
- а в процессе генерации использует
Числа в матрице подбираются таким образом, чтобы в процессе генерации модель могла выдавать результат, который мы от неё ожидаем.
И сделать это она может не потому, что понимает (в человеческой интерпретации) смысл, а потому что числа в матрице отражаются статистические закономерности тех текстов, на которых модель обучалась. То есть, она просто запоминает зависимости и выдаёт результаты на их основе.
Проект MicroGPT - GPT в миниатюре
Для того, чтобы минималистично продемонстрировать суть внутреннего устройства GPT, один из со-авторов GPT-2 - Andrej Karpathy, написал максимально простой код на python, иллюстрирующий принципы работы GPT и позволяющий обучить простой трансформер на базе из 32000 реальных имён, чтобы на выходе получить от модели новые имена.
Так родился проект microgpt. Опубликованный менее суток назад как Gist, он уже имеет 4400 звёзд на Github. Уверен, цифра быстро наберёт десятки тысяч, а код будет перенесён на другие языки и разойдётся по разным устройствам, для которых реальные LLM были неподъёмны ни по производительности, ни по затратам памяти.
Способ объяснить сложное
Я очень люблю подобные проекты, потому что они позволяют на простом примере разобраться во внутреннем устройстве сложных систем, видя их в миниатюре и более того - позволяя с ними поиграть путём перенастройки параметров и доработки алгоритмов.
Понятно, что даже описанная мной ранее GPT-4o является намного более сложной моделью и использует оптимизированные алгоритмы, позволяющие работать с миллиардами чисел в практически реальнои времени. Но её суть остаётся очень близкой к приведённым 200 строкам кода на python.
Важные выводы
Взглянув на код и пояснения к нему, становится явно видно, что никакой магии в GPT нет, и это чистая математика. При этом она во многом отражает суть работы человеческой памяти, поскольку в основе лежат математические модели нейронов, синапсов и сигналов.
Does the model “understand” anything? That’s a philosophical question, but mechanically: no magic is happening. The model is a big math function that maps input tokens to a probability distribution over the next token. During training, the parameters are adjusted to make the correct next token more probable. Whether this constitutes “understanding” is up to you, but the mechanism is fully contained in the 200 lines above.
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