Почему ChatGPT начинает путаться в длинных диалогах
Пользователи больших языковых моделей часто замечают странный эффект: чем длиннее становится диалог, тем выше вероятность, что модель начнёт забывать детали, противоречить самой себе или хуже выполнять инструкции.
Это выглядит парадоксально. Современные модели заявляют поддержку контекстов в сотни тысяч и даже миллионы токенов. Почему же они всё равно теряют нить разговора?
У трансформера есть два типа памяти
По словам Михаила Бурцева, память языковой модели можно условно разделить на два типа.
Первый тип — долговременная память. Это всё, что модель выучила во время обучения на огромных массивах текстов. Такая информация хранится в весах нейросети.
Второй тип — кратковременная, или эпизодическая память. Это информация из текущего диалога или документа, с которым модель работает прямо сейчас.
Именно за эту кратковременную память отвечает механизм внимания.
Когда механизм внимания создавался для машинного перевода, предложения обычно состояли из 10–15 слов. Для таких масштабов он работал прекрасно.
Но затем контексты начали расти: сначала до сотен слов, потом до тысяч, а затем и до десятков тысяч токенов.
Почему длинные контексты становятся проблемой
Главная проблема состоит в том, что по мере роста контекста внимание начинает «размазываться».
Вместо того чтобы фокусироваться на наиболее важных фрагментах, модель вынуждена распределять внимание между всё большим количеством элементов.
Бурцев сравнивает это с человеческим вниманием: одно дело — найти слово в абзаце, и совсем другое — найти его в целой книге.
По мере роста объёма текста модели становится всё сложнее отличать важное от второстепенного.
Из-за этого она может забывать детали, хуже связывать информацию из разных частей документа и чаще ошибаться.
Есть и вычислительная проблема
У механизма внимания есть ещё одно ограничение: вычислительная сложность.
Скоринговая функция внимания вычисляет взаимодействия между всеми токенами в контексте. Поэтому объём вычислений растёт как квадрат длины последовательности.
Если удвоить размер контекста, вычислений потребуется примерно в четыре раза больше.
А это означает больше времени, больше памяти и больше потребления электроэнергии.
Именно поэтому длинные контексты оказываются дорогими не только с точки зрения качества работы модели, но и буквально с точки зрения инфраструктуры.
Миллион токенов не означает миллион токенов
По словам Бурцева, исследования показывают, что модели с технической поддержкой контекста в миллион токенов на практике эффективно используют лишь небольшую часть этого объёма.
Если задача требует связать несколько фактов из разных мест документа, эффективный размер контекста может сокращаться ещё сильнее.
При усложнении задачи модель начинает путаться уже на существенно меньших объёмах текста.
Интересно и другое наблюдение: начало и конец контекста модели запоминают лучше, чем середину. Постановка задачи и итоговый результат оказываются заметнее, чем путь между ними.
Возможно, именно поэтому многие пользователи периодически начинают новый чат: очень длинный разговор со временем становится менее удобным и для человека, и для модели.
Можно ли решить проблему длинных контекстов?
Именно этой проблемой занимается команда Михаила Бурцева.
Один из предложенных ими подходов — рекуррентный трансформер.
Его идея состоит в том, чтобы обрабатывать длинную последовательность не целиком, а по частям, сохраняя специальную память между сегментами текста.
Например, модель может обработать первую тысячу токенов, записать важную информацию в память, затем перейти к следующей тысяче токенов и продолжить работу уже с учётом накопленного контекста.
Такой подход позволяет избежать квадратичного роста вычислений и сохранять внимание сфокусированным.
По словам Бурцева, на этой архитектуре удалось обработать последовательность длиной 50 миллионов токенов и отвечать на вопросы по ней. Для сравнения: это примерно в пять раз больше объёма Британской энциклопедии.
Полную версию разговора с исследователем ИИ Михаилом Бурцевым о памяти языковых моделей, рекуррентных трансформерах и будущем искусственного интеллекта можно послушать в подкасте «Мыслить как учёный».