Если спрятать один конкретный факт в массиве текста и попросить языковую модель отыскать его, Gemini начинает ошибаться уже на рубеже в 50 000 токенов. При этом в технических характеристиках заявлено окно в целый миллион.
Подобные эксперименты ставит Михаил Бурцев — исследователь искусственного интеллекта, создатель проекта DeepPavlov в МФТИ, изучающий трансформеры и память нейросетей. Если очень грубо приравнять токен к одному слову, миллион токенов — это солидная стопка книг. Результаты тестов его научной группы показывают: модель в состоянии удержать такую стопку в памяти, но прочесть её по-настоящему уже не способна.
С этой проблемой сталкивался любой, кто хоть раз вёл долгую непрерывную переписку с нейросетью в течение дня. Через какое-то время ответы становятся всё более расплывчатыми, а модель начинает путаться в показаниях и противоречить сама себе. Практический совет Бурцева предельно прост: диалог стоит регулярно сбрасывать и начинать разговор с чистого листа, поскольку нейросеть «начинает путаться в собственных мыслях» и перестает отличать важное от второстепенного.
Почему так происходит? Память любого трансформера можно разделить на два типа. Первый — долговременная память: весь массив данных, усвоенный за время обучения, от оцифрованных книг до веток Reddit. Чтобы извлечь эти знания, механизм внимания не задействуется. Второй тип — кратковременная, или эпизодическая память: всё, что модель помнит о текущей задаче и контексте прямо сейчас. За неё как раз отвечает механизм внимания, изначально создававшийся для совсем коротких фрагментов. Когда внимание только придумали для машинного перевода, типичное предложение насчитывало всего около 15 слов, а 30 слов уже считались длинным текстом.
Затем объемы входных данных резко выросли: сначала до 300 слов, потом до 3000 и 30 000. В современных моделях работают десятки так называемых «голов» внимания на каждом из сотни слоев, и каждая голова следит за своим фрагментом текста. Однако на выходе общий ресурс внимания фиксирован и распределяется по всей странице. Чем длиннее становится текст, тем более тонким слоем размазывается этот ресурс.
Сам Бурцев сравнивает это с человеческим восприятием. Найти слово в коротком абзаце не составляет труда. Но попробуйте удержать в голове целую книгу, чтобы найти в ней одну деталь: по мере чтения вы неизбежно забудете то, что было в самом начале. Модель теряет концентрацию точно так же, как человек.
Исследователи решили проверить это экспериментально. Они прятали факты в текстах разной длины и просили нейросеть их найти. На отметке в 100 000 или даже 50 000 токенов Gemini справлялась с поиском с большим трудом. Из заявленного окна в миллион токенов модель эффективно использовала лишь от 5 до 10% объема.
Затем задачу усложнили. Нейросети дали два факта и задали вопрос, для ответа на который требовалось сопоставить оба условия — одного было недостаточно. Полезная длина контекста тут же сократилась еще сильнее. А когда модели понадобилось связать три факта, она начала спотыкаться уже на отрезке примерно в две тысячи слов. На бумаге — миллион токенов, на деле — пара тысяч, как только от модели требуется рассуждение.
Научная группа Бурцева опубликовала эти результаты в июне 2024 года. В статье отмечается, что популярные языковые модели эффективно задействуют лишь 10–20% своего контекста, причем точность ответов резко падает по мере усложнения логики рассуждений. В другой работе под руководством Чэн-Пин Се, вышедшей в апреле 2024 года, выяснилось, что среди моделей с заявленным контекстом от 32 000 токенов и выше с этим объемом на практике справляется лишь около половины.
Выход ли в том, чтобы бесконечно увеличивать окно контекста? Бурцев предлагает другой путь. Разработанный его группой рекуррентный трансформер памяти оставляет окно небольшим, порядка тысячи токенов, а длинный текст нарезает на тысячу таких частей. Обработав один фрагмент, модель сохраняет короткую заметку в специальные токены памяти и передает их следующему блоку. Вниманию не приходится растягиваться, оно не размывается, а вычислительные затраты перестают расти пропорционально квадрату длины текста.
С помощью такого подхода ученым удалось заставить модель ответить на вопрос по массиву в 50 миллионов токенов. По оценке Бурцева, это в пять раз превышает объем Британской энциклопедии и в пятьдесят раз — окно Gemini. Платить за это приходится некоторой потерей универсальности: модель физически не может вместить все нюансы в короткие служебные заметки. За прошедшие два года, по его словам, никто так и не запустил нейросеть на еще большем объеме данных.
Дело тут вовсе не в ошибках инженеров, создававших модели с контекстом в миллион токенов. Проблема кроется в самом механизме архитектуры: его задача — взвешивать каждый элемент относительно всех остальных, но когда элементов оказывается слишком много, он просто перестает взвешивать их точно.
Если у вас очень длинная последовательность, то всё ваше внимание расплывается, вы теряете фокус внимания. Модель точно так же теряет фокус внимания, как и человек.
— Михаил Бурцев, «Мыслить как ученый», 74:53

Окна, заметно превосходящие миллион токенов, пока толком никто и не пытается создавать: реальных задач, где это действительно необходимо, практически нет.