Что на самом деле значит GPT и почему ИИ-инжиниринг остаётся инжинирингом
Разбираем Generative Pre-trained Transformer, механизм внимания, fit и predict и объясняем, почему хорошая работа с ИИ по-прежнему держится на обычном инженерном здравом смысле и правильных вопросах.
Многие разработчики могут рассказать, что делает GPT, но не могут объяснить, что это такое. Годами говоришь "GPT", "LLM", "трансформер", "эмбеддинги" и "RAG", и кажется, что понимаешь, пока не пройдёшь структурированный курс по ИИ-инжинирингу и не выяснишь, что под каждым из этих слов есть целый подвал. Чтобы это понять, хватает семидневного спринта.
Generative, pre-trained, transformer
Аббревиатура GPT расшифровывается как Generative Pre-trained Transformer. Звучит просто, пока не спросишь, что делает каждое слово.
Generative значит, что модель порождает контент. Для языковой модели это текст, который строится через предсказание того, что должно идти дальше, по закономерностям, усвоенным раньше. Pre-trained значит, что перед вами не пустая модель: большое обучение на огромных объёмах данных уже прошло до вашего первого промпта.
Transformer — слово, на котором люди спотыкаются. Похоже на название продукта, но на деле это целая архитектура, и одна из центральных идей в ней — внимание.
Внимание и задача о рукопожатиях
Задачка про рукопожатия неплохо даёт первое представление о внимании. Соберите в комнате пять человек и пусть каждый пожмёт руку каждому. Первый пожимает четыре руки, второй четыре, и так далее, что даёт:
5 × 4 = 20
Здесь каждое рукопожатие посчитано дважды, поэтому делим пополам:
20 / 2 = 10
В общем виде количество равно N(N - 1) / 2. Это упражнение по комбинаторике, но оно описывает и кое-что большее, а именно число связей между токенами. Механизм внимания не идёт по предложению слева направо, считая каждое слово островом. Ему нужно решить, какие части входа важны для каких других частей.
Здесь появляются Query, Key и Value. Считайте их грубой системой поиска:
- Query — то, что вы ищете.
- Key — то, какая информация доступна.
- Value — то, что в итоге возвращается.
Настоящая математика гораздо тяжелее, но эта картинка даёт точку опоры. И она подсказывает привычку, которую стоит сохранить: если вы не можете сказать, что делает кусок кода или формулы, скорее всего, вы его ещё не понимаете.
Что входит в семидневный спринт
Материал выходит далеко за пределы трансформеров: структуры данных Python, Pandas, пропущенные значения, выбросы, предобработка, модели машинного обучения, метрики оценки, API, деплой и RAG. Код, который раньше казался чем-то, что просто набираешь, начинает иметь последствия. Возьмём такую строку:
model.fit(X_train, y_train)
Вы наверняка видели этот шаблон сотню раз. Он означает, что модель обучается на переданных вами тренировочных данных и выводит свои параметры из этих примеров. Следующая строка — совсем другая операция:
model.predict(X_test)
Здесь вы просите обученную модель применить усвоенное и выдать предсказания для данных, на которых она никогда не училась. Обе строки выглядят почти тривиально. Сложно как раз понять, что за ними стоит.
ИИ-инжиниринг остаётся инжинирингом
Главный урок не про какую-то библиотеку. Модель не отменяет необходимости в хорошем проектировании ПО, и вам по-прежнему приходится разбираться с:
- проверкой и очисткой входных данных и качеством самих данных
- API и обработкой ошибок
- скоростью, тестированием и деплоем
- мониторингом и безопасностью
- постоянным потоком компромиссов
Иногда правильное инженерное решение — вообще не использовать ИИ. То, что LLM способна решить задачу, не делает её подходящим инструментом. Если детерминированное правило справляется надёжно, дёшево и так, что люди могут его проверить, прикрученная сверху вероятностная модель обычно делает систему не лучше, а менее понятной.
Хорошие вопросы важнее модных слов
За семь дней никто не станет экспертом. Зато вы получите более точные вопросы, а они ценнее очередного списка терминов:
- Что на самом деле делает эта строка кода?
- Зачем в архитектуре именно этот компонент?
- Как ведёт себя система, когда на вход приходит мусор?
- Куда в итоге попадают мои данные?
- Чему модель учится на своих примерах?
- Может ли обычный код сделать это без модели?
Цель не в том, чтобы звучать так, будто разбираешься в ИИ. Цель — понимать достаточно, чтобы строить с ним ответственно, и первый шаг здесь — скромное открытие, что GPT означает Generative Pre-trained Transformer.