[Перевод] Скрытая структура генерации текста ИИ. Как контекст меняет продолжение

Скрытая структура генерации текста ИИ. Как контекст меняет продолжение
Сложный
8 мин
256
Аналитика
Перевод
Иногда нескольких слов достаточно, чтобы довольно точно предположить, что будет дальше. В других случаях для этого требуется больше информации.

Предположим, вы прочитали только несколько последних слов абзаца. У вас, вероятно, появится несколько вариантов возможного продолжения, но если затем показать предшествующие предложения или всю страницу целиком, эти ожидания могут измениться. Одни грамматические продолжения хорошо предсказуемы, а другие допускают несколько правдоподобных вариантов.
Однако язык не существует в изоляции. Несколько слов могут указывать на ближайшую грамматическую структуру, но именно более широкий контекст определяет их значение в пределах всего фрагмента.
Насколько изменятся грамматические ожидания GPT-2, если оставить последние слова перед следующим предсказанием неизменными, но предоставить модели разный объём предшествующего текста?
Чтобы ответить на этот вопрос, я провёл один эксперимент; для нескольких тысяч фрагментов я оставлял одинаковыми последние восемь токенов и последовательно увеличивал доступный предшествующий контекст до 16, 32, 64, 128 и в итоге 1024 токенов. Локальная концовка всегда оставалась прежней. Менялся только объем истории, доступной GPT-2. Я ожидал, что увеличение контекста сделает следующий грамматический выбор модели более предсказуемым. Результаты оказались несколько иными.
Наблюдение № 1: увеличение контекста не всегда повышает определённость
Дополнительный контекст не просто повышает или снижает уверенность модели в следующем грамматическом продолжении, он меняет само пространство возможных продолжений. Для каждой входной последовательности я вычислил энтропию , затем я сгруппировал результаты по длине контекста, чтобы проследить, как меняется широта грамматического выбора GPT-2 по мере добавления предшествующего текста.
Я предполагал, что расширение контекста будет постепенно сужать набор грамматических вариантов. Но результаты показали другую закономерность. Когда длина контекста увеличивалась с 8 примерно до 64 токенов, энтропия части речи следующего токена росла. Только при дальнейшем увеличении контекста она начинала стабилизироваться, а затем снижалась.
Иными словами, сначала дополнительная информация давала модели больше грамматических вариантов, а не меньше. Одно из возможных объяснений состоит в том, что очень короткий контекст ограничивает модель локальными и достаточно шаблонными грамматическими конструкциями. Когда становится доступна более значительная часть текста, семантическая и дискурсивная информация делает правдоподобным более широкий набор продолжений. При дальнейшем расширении контекста эти варианты стабилизируются, поскольку общая структура фрагмента становится понятнее.
Однако энтропия показывает только то, насколько широко распределена вероятность. По ней нельзя определить, рассматривает ли GPT-2 один и тот же набор грамматических вариантов при разной длине контекста, поэтому я проанализировал распределения другим способом.
Для каждого размера контекста я проверил, насколько часто наиболее вероятная часть речи совпадала с предсказанием, полученным при использовании только восьми токенов. Затем повторил сравнение, выбрав в качестве опорного результата полный контекст длиной 1024 токена. Кроме того, я сопоставил грамматические распределения вероятностей с помощью дивергенции Дженсена-Шеннона (JS-дивергенции), которая оценивает различие между двумя вероятностными распределениями. Это позволило проверить не только изменение наиболее вероятного грамматического варианта, но и перестройку всего множества возможных продолжений.
Оба способа анализа показали сходную картину. По мере добавления контекста совпадение с предсказанием на коротком контексте последовательно снижалось, а различие между грамматическими распределениями росло. При сравнении с самым длинным контекстом наблюдалась обратная зависимость: совпадение увеличивалось, а дивергенция уменьшалась.
Следовательно, GPT-2 не просто становилась более или менее уверенной в одном и том же наборе вариантов, менялись сами варианты. Продолжение, выглядевшее правдоподобным при наличии лишь нескольких предшествующих слов, могло потерять вероятность после добавления окружающих предложений. Вместо него более вероятным становилось другое грамматическое направление.
Контекст работает не как регулятор уверенности, а как фактор, который постоянно перестраивает грамматические варианты продолжения.

Наблюдение № 2: контекст перестраивает внутреннее состояние модели
Ещё более интересные изменения происходили внутри трансформера. Представление последнего токена в GPT-2 ведёт себя как сжатое состояние языка. Когда я обучал диагностические классификаторы предсказывать тип следующего слова, представление последнего токена содержало особенно много грамматической информации. Объединение представлений нескольких токенов не улучшало качество таких предсказаний.
Однако в тех экспериментах использовался относительно локальный контекст. Поэтому возник следующий вопрос: продолжает ли состояние последнего токена меняться, когда модель получает информацию из более удалённых частей последовательности?
Чтобы это проверить, я сравнил представления последнего токена при последовательном увеличении объема предшествующего контекста. Различие измерялось с помощью косинусного расстояния. Значение, близкое к нулю, означает, что два представления направлены почти одинаково. Чем больше значение, тем сильнее различаются их направления. Если состояние последнего токена продолжает учитывать информацию из более длинной истории, его представление должно постепенно удаляться от представления, полученного только на локальном контексте.
Именно такую закономерность я и обнаружил.
С увеличением длины контекста расстояние между представлениями последнего токена последовательно росло. Хотя локальная концовка оставалась полностью неизменной, внутреннее представление этой концовки в GPT-2 менялось по мере добавления предшествующего текста.
Сила эффекта зависела от слоя. Слабее всего изменение проявлялось в слое 4, сильнее всего в слое 6. Одно из возможных объяснений заключается в том, что по мере прохождения информации через средние слои более дальний контекст все заметнее отражается в представлении последнего токена:
в слое 4 представление остаётся относительно стабильным и привязанным к локальному контексту, сохраняя больше информации о ближайшей грамматической структуре;
в слое 5 в представлении последнего токена начинает заметнее проявляться промежуточная контекстная информация;
в слое 6 наблюдается наиболее выраженная перестройка под влиянием дальнего контекста.

Состояние последнего токена продолжает изменяться по мере появления все более удаленного контекста. Получая больше информации о предшествующем тексте, модель перестраивает это состояние так, чтобы закодировать сведения, полезные для выбора следующего грамматического продолжения.
Связь с моделями пространства состояний
Наблюдаемое поведение напомнило мне о другом семействе архитектур нейронных сетей, которое я изучаю, — моделях пространства состояний (SSM)
В SSM информация из предыдущих элементов последовательности включается в изменяющееся скрытое состояние, которое помогает определить следующий элемент. Я не утверждаю, что GPT-2 буквально работает как SSM. Трансформеры и модели пространства состояний используют принципиально разные способы обработки последовательностей. Тем не менее результаты эксперимента указывают на интересную параллель.
Возможно, представление последнего токена полезно рассматривать как изменяющееся контекстное состояние. По мере добавления истории это состояние перестраивается, даже если слова непосредственно перед точкой предсказания остаются неизменными. В таком случае следующее предсказание определяется не только ближайшими словами, но и внутренним представлением всего пути, который к ним привёл.
Наблюдение № 3: разные части грамматики по-разному зависят от контекста
Предыдущие результаты показали, что добавление контекста меняет и грамматические ожидания GPT-2, и лежащее в их основе внутреннее состояние. Но одинаково ли контекст влияет на все виды грамматического выбора?
Чтобы ответить на этот вопрос, я разделил результаты по частям речи и проследил, как меняется каждая грамматическая категория при увеличении контекста. Для них сравнивались энтропия, совпадение предсказаний при разной длине контекста и степень смещения вероятностных распределений.
Грамматические категории разделились на три основные группы, каждая из которых по-своему реагировала на дополнительный контекст.
Структурно стабильная грамматика
При анализе грамматических графов, я обнаружил, что значительная часть грамматической активности модели сосредоточена внутри относительно устойчивого каркаса. В новом эксперименте проявился ещё один вид стабильности: некоторые грамматические категории оказались менее чувствительны к дополнительному контексту, чем остальные.
В эту группу вошли:
существительное;
предлог или послелог;
определитель;
вспомогательный глагол.
Для этих категорий были характерны сравнительно низкая JS-дивергенция, медленный рост энтропии и более высокая доля совпадений при разной длине контекста. Их грамматические вероятности менялись постепенно, а предпочтительный вариант продолжения чаще сохранялся даже после добавления предшествующего текста.
Особенно стабильными оказались существительные. Для них наблюдались одни из самых низких значений дивергенции относительно короткого опорного контекста и достаточно высокая доля совпадений при его расширении.
Вероятно, эти категории сильнее ограничены локальной грамматической структурой. Слов непосредственно рядом с точкой предсказания часто достаточно, чтобы определить, насколько грамматически допустимы существительное, вспомогательный глагол или предлог. Более широкий смысл текста все еще может влиять на эти категории, но их грамматическое поведение менее чувствительно к дальнему контексту.
Форматирование и границы текста
Третья группа отличалась от первых двух. В нее вошли:
SPACE;
PUNCT;
SYM.
Эти категории в основном описывают форматирование, границы и структурные элементы текста. Особенно интересным оказалось поведение SPACE. В отличие от многих других категорий, с увеличением контекста она становилась более предсказуемой: на длинных контекстах ее энтропия последовательно снижалась.
Возможное объяснение состоит в том, что длинные фрагменты дают GPT-2 больше информации о структуре и стиле документа. По мере того как модель распознает способ организации текста, некоторые решения, связанные с форматированием, становятся более ограниченными.

Разная грамматика — разная зависимость от контекста
Контекст не просто перестраивает грамматическое продолжение GPT-2 в целом — разные его составляющие меняются с разной скоростью.
Некоторые грамматические категории сохраняют относительную стабильность даже после добавления сотен токенов. Другие существенно меняются по мере накопления семантической и дискурсивной информации. Категории, связанные с форматированием и границами текста, следуют собственной закономерности. Следовательно, чувствительность грамматики к контексту неоднородна.
Что дальше
Эксперимент выявил более динамичную связь между грамматикой и контекстом, чем я предполагал.
По мере расширения контекста грамматический выбор GPT-2 не становится однозначно более предсказуемым. Меняется само распределение возможных продолжений. Это видно и в выходных данных модели, и во внутренних состояниях трансформера. Кроме того, влияние контекста неодинаково для разных частей грамматики: одни категории остаются стабильными, а другие гораздо сильнее зависят от общего смысла и структуры фрагмента.
Вместе с результатами статьи эти данные начинают подкреплять общую гипотезу, которую я развиваю в ходе исследования:
Генерацию языка, возможно, можно разделить на два взаимодополняющих компонента.
Основная идея не в том, что генерация целиком относится к одному из этих компонентов. Язык, по-видимому, переходит между ними. Это наблюдение определяет следующий этап исследования.
Я хочу изучить фреймворк генерации с учетом грамматики, способный работать как с предсказуемыми, так и с неопределенными областями языка. Предполагается создать прозрачный управляющий слой поверх существующей языковой модели. Когда генерация входит в область со стабильным и хорошо предсказуемым грамматическим поведением, дальнейший процесс можно направлять с помощью облегченных представлений состояния. Если система достигает точки, в которой допустимы несколько продолжений или требуется учитывать более широкий контекст, большая часть управления возвращается базовой языковой модели. Вместо того чтобы считать все этапы генерации одинаково сложными, система будет адаптироваться к структуре текущей задачи.
Если этот подход сработает, он может привести к созданию более интерпретируемых и пригодных для аудита систем генерации языка. Кроме того, он потенциально позволит сократить избыточные вычисления в тех областях генерации, где продолжение уже хорошо предсказуемо.
KioskNews shows a cleaned-up reading view extracted from the publisher’s page — the original always lives on their site, not ours.