В современном машинном обучении языковые модели сталкиваются с серьезным технологическим ограничением: они катастрофически теряют качество, если длина обрабатываемого текста превышает размер обучающей выборки. Популярный ИТ-исследователь и блогер Янник Килчер (Yannic Kilcher) представил подробный разбор революционной научной работы «Train Short, Test Long: Attention with linear biases enables input length extrapolation», за авторством Офира Пресса (Ophir Press), Ноа А. Смита (Noah A. Smith) и Майка Льюиса (Mike Lewis). В видеоролике детально описывается метод ALiBi — изящная и простая модификация механизма внимания, которая позволяет трансформерам успешно экстраполировать контекст на последовательности, превосходящие обучающие в 2–10 раз и более.
🧩 Проблема позиционного кодирования в трансформерах 0:00
Архитектура трансформеров, представленная в культовой статье 2017 года «Attention Is All You Need», фундаментально ориентирована на работу с множествами (set models), а не с упорядоченными последовательностями. Сама по себе нейросеть не обладает встроенным пониманием того, в каком порядке идут слова. Если поменять токены местами, математический результат вычисления скалярного произведения векторов Query (запрос) и Key (ключ) в механизме внимания останется прежним.
Чтобы превратить модель множества в модель последовательности, базовые токеновые эмбеддинги (аналогичные классическим Word2Vec или GloVe) необходимо дополнять информацией о позиции слова в тексте. Исторически для этого применялись различные подходы:
- Простая конкатенация: добавление к вектору одного измерения с порядковым номером токена (например, 0, 1, 2...). По словам Янника Килчера, этот метод работает плохо из-за специфики линейного пространства модели.
- Синусоидальные кодирования (Sinusoidal Encodings): метод из оригинальной статьи 2017 года, использующий многомерные векторы, компоненты которых рассчитываются по формулам синусоид разной частоты. Это позволяет модели теоретически вычислять абсолютные и относительные расстояния между токенами.
Однако синусоидальный метод полностью провалился на задаче экстраполяции длины контекста. Как утверждает Янник Килчер, для этого есть две ключевые причины: функции, выученные на таких эмбеддингах, плохо переносятся на более длинные последовательности, а добавление позиционной информации на самом нижнем уровне заставляет модель тратить ресурсы на её «протаскивание» через все вышележащие слои нейросети.
🛠 Эволюция подходов и архитектурные улучшения 9:30
За последние годы исследователи нащупали несколько важных улучшений в архитектуре позиционного кодирования:
- Послойная инъекция: передача позиционной информации на каждый слой трансформера отдельно, чтобы избавить сеть от необходимости хранить её в промежуточных вычислениях.
- Изоляция векторов Value (значение): позиционные данные внедряются строго в векторы Query и Key. Векторы Value остаются «чистыми» от пространственных координат, благодаря чему информационный поток между слоями не зашумляется.
При сравнении современных подходов на тесте с базовым распределением в 1012 токенов выявляются критические недостатки существующих решений:
- Sinusoidal embeddings: показатель перплексии (perplexity — метрика качества предсказания текста, где меньше означает лучше) мгновенно улетает в бесконечность, как только длина контекста превышает обучающую хотя бы в 1.1 раза.
- Rotary embeddings (используются в GPT-J): работают чуть лучше синусоидальных, но тоже демонстрируют резкую деградацию при двукратном увеличении длины текста.
- T5 Bias (используется в T5): показывает неплохие результаты экстраполяции, но требует обучения параметров, расходует много памяти, замедляет вычисления и все равно со временем деградирует.
На этом фоне метод ALiBi выделяется тем, что его эмбеддинги являются фиксированными (необучаемыми), не занимают оперативную память, не замедляют процесс обучения, но при этом обеспечивают стабильную экстраполяцию на экстремально длинные последовательности.
📉 Как устроен алгоритм ALiBi: линейное смещение внимания 13:40
В контексте авторегрессионного языкового моделирования (где применяется причинно-следственное, или казуальное внимание, кодируемое треугольной матрицей) механизм ALiBi предлагает радикально простое математическое решение. Вместо модификации самих входных векторов метод вводит штраф за расстояние непосредственно в процессе расчета матрицы внимания.
Пошаговая структура вычисления ALiBi
- Шаг 1. Расчет базового внимания. Для текущего токена вычисляется скалярное произведение его вектора Query ($Q_i$) на векторы Key ($K_j$) всех предыдущих токенов.
- Шаг 2. Вычисление линейного смещения. Из полученного значения скалярного произведения вычитается расстояние между позициями токенов, умноженное на специфический коэффициент наклона $m$.
- Шаг 3. Применение Softmax. Итоговая матрица со смещениями передается в функцию Softmax для формирования финального распределения вероятностей.
Математически это выглядит как вычитание значения $m \cdot \text{distance}$. Поскольку операция происходит до Softmax (который возводит значения в экспоненту), вычитание в логарифмическом пространстве эквивалентно делению в линейном пространстве вероятностей. Таким образом, чем дальше токен находится в прошлом, тем сильнее искусственно занижается его весовое значение в механизме внимания.
Метод распределения параметров наклона ($m$) по головам внимания 20:05
Коэффициент наклона $m$ является уникальной константой для каждой отдельной головы внимания (Attention Head) в слое. Авторы работы предложили фиксированную схему назначения этих коэффициентов. Для модели с 8 головами внимания коэффициенты $m$ представляют собой геометрическую прогрессию, которая начинается с $1/2$ и уменьшается вдвое с каждым шагом:
$$\frac{1}{2}, \frac{1}{4}, \frac{1}{8}, \frac{1}{16}, \frac{1}{32}, \frac{1}{64}, \frac{1}{128}, \frac{1}{256}$$
Для моделей с 16 головами применяется аналогичный, слегка скорректированный паттерн. Янник Килчер выразил личную симпатию к такому подходу, отметив, что параллельные архитектурные элементы (такие как головы внимания) обязательно должны содержать внутренние функциональные различия. В противном случае они начинают опираться исключительно на случайный шум инициализации весов, превращаясь в банальный ансамбль одинаковых моделей. Различные наклоны $m$ заставляют одни головы фокусироваться только на локальном контексте (крутой наклон штрафа), а другие — удерживать в фокусе далекую историю (пологий наклон).
🧪 Экспериментальные результаты и «проклятие ранних токенов» 23:40
Тестирование на датасете WikiText показало убедительное превосходство ALiBi над классической синусоидальной моделью. Нейросеть с ALiBi, обученная на контексте скромной длины в 512 токенов, при тестировании на длинных текстах продемонстрировала перплексию даже более низкую, чем базовая синусоидальная модель, изначально обученная на этих длинных текстах. По мере увеличения длины входной последовательности перплексия ALiBi плавно снижается или остается стабильной.
Янник Килчер призывает воспринимать академические графики с определенной долей скепсиса, напоминая о склонности авторов статей делать условия для базовых моделей чуть хуже ради выигрышного контраста. Тем не менее, экономический эффект очевиден: обучение на коротких последовательностях происходит значительно быстрее, а на инференсе модель безболезненно масштабируется.
В экспериментах обнаружился парадоксальный феномен — качество предсказания текста (перплексия) улучшалось по мере продвижения вглубь сверхдлинного контекста, выходящего за рамки обучения. Авторы исследования объясняют это так называемым «проклятием ранних токенов» (early token curse), связанным со спецификой разбиения валидационных данных.
Из «будущего» в видео монтируется специальное аудиодополнение от Янника Килчера. Он поясняет:
«Что здесь происходит на самом деле? Трансформер вовсе не обретает способность внезапно рассуждать и связывать глубокие логические смыслы на огромном расстоянии. Далекое прошлое затухает из-за штрафов настолько сильно, что модель его просто игнорирует, концентрируясь на свежем контексте. Но это технически спасает её от аппаратного сбоя и поломки генерации, позволяя при этом выуживать критически важные триггеры из глубин истории, если они имеют аномально высокий изначальный вес внимания».
В заключение ведущий отмечает, что ALiBi тестировался преимущественно на авторегрессионных задачах. Ему было бы крайне интересно увидеть, как этот метод покажет себя в не-авторегрессионных сценариях (например, в задачах QA-анализа документов), где критически важно не просто занулять прошлые токены, а полноценно интегрировать информацию со всех участков огромного текста. Код проекта полностью открыт и легко встраивается в любую стандартную архитектуру трансформера.