Как на самом деле работают большие языковые модели вроде GPT
При первом знакомстве большие языковые модели кажутся волшебством: вы задаёте вопрос, а в ответ приходит что-то, что выглядит как настоящее понимание. Когда вы примерно представляете, что происходит внутри, волшебство исчезает, но на его место приходит кое-что полезнее: понимание того, в чём эти системы действительно хороши и где они незаметно вас подведут.
Главный фокус: предсказание следующего слова
По своей сути большая языковая модель делает одну вещь: по последовательности текста предсказывает, какое слово (технически — «токен», обычно слово или часть слова) вероятнее всего будет следующим. И всё. Сгенерировать одно слово, добавить его к последовательности, предсказать следующее, повторить. Целое эссе получается из того, что модель решает одну и ту же узкую задачу предсказания снова и снова — тысячи раз за один ответ.
Убедительность этому придаёт масштаб. Эти модели обучали на огромных объёмах текста — книгах, статьях, коде, диалогах — и подстраивали их внутренние параметры, пока предсказания не начинали хорошо совпадать с этим текстом. Если сделать это в достаточно большом масштабе, «предсказание следующего слова» оказывается по-настоящему мощным приёмом для создания текста, который выглядит связным, осведомлённым и часто точным.
Откуда на самом деле берётся «понимание»
У модели нет убеждений, нет фактов в справочной таблице и нет модели мира в том смысле, в каком она есть у человека. У неё есть очень тонкое чутьё на то, какие слова статистически склонны следовать за какими, с учётом всего, что она видела при обучении. Когда она правильно объясняет, как работает автомобильный двигатель, она не вспоминает факт, а выдаёт последовательность слов, которую обучение сделало наиболее вероятной, — и она совпадает с верной информацией, потому что модель видела много точных текстов об автомобильных двигателях.
Это различие важно, потому что объясняет и сильные стороны, и хорошо известный способ сбоя.
Почему эти модели иногда всё выдумывают
«Галлюцинация» — когда модель уверенно утверждает что-то ложное — это не баг в смысле сломанного кода. Это прямое следствие того, как устроена система. Модель всегда выдаёт статистически наиболее правдоподобное следующее слово, независимо от того, соответствует ли оно чему-то истинному. Если тема малоизвестна или на вопрос в обучающих данных нет чёткого фактического ответа, модель всё равно выдаст гладкий, уверенно звучащий ответ — потому что её оптимизировали на беглость, а не на истинность. У неё нет способа проверить, правда ли то, что она только что сказала.
Что это значит на практике
- Эти модели сильны в языковых задачах — суммаризации, перефразировании, написании черновиков, переводе, объяснении понятия по-новому. Такие задачи по сути сводятся к созданию хорошего текста, а именно для этого модели и созданы.
- Как источник фактов они слабее — особенно для всего конкретного, свежего или узкоспециального. Задали фактический вопрос с чётким проверяемым ответом — проверьте ответ, а не принимайте его на веру.
- Они не знают, чего не знают. На вопрос, для которого у модели нет надёжной основы, она ответит так же гладко, как на тот, по которому у неё отличные обучающие данные. Уверенность ответа — не признак точности.
- Опора на источники решает многое. Если в момент ответа передавать модели ваши собственные проверенные документы, а не полагаться только на то, что она запомнила при обучении, выдуманных ответов становится намного меньше: модель работает с реальным исходным текстом, а не гадает.
Практический вывод для создания продукта
Большая языковая модель — чрезвычайно способный текстовый движок, а не оракул. Функции продукта, которые опираются на её языковые способности, — черновики, суммаризация, переписывание, структурирование — обычно работают отлично. Функции, которые предполагают, что она «знает» ваши данные, ваши правила или ваших клиентов, нужно строить с опорой на источники, ограничителями и чётким планом на случай ошибки, а не просто подключать к модели и выпускать.
Работа над опорой на источники и ограничителями — основная часть того, что нужно, чтобы ИИ-функция действительно выдерживала продакшен. В Burncode на эту часть проекта уходит больше всего времени — уже после того, как первое демо впечатлило всех в комнате.