Открыть сервисСервис

Авторегрессионное внимание

Авторегрессионное внимание — это механизм обработки последовательностей данных, при котором каждый элемент выходной последовательности вычисляется на основе всех предыдущих элементов входной последовательности с использованием взвешенной суммы значений, где веса определяются степенью релевантности (внимания) между текущим элементом и каждым из предыдущих. Данный механизм является ключевым компонентом архитектур авторегрессионных моделей, таких как трансформеры (GPT, LLaMA) и рекуррентные нейронные сети, и лежит в основе генерации текста, речи и других последовательных данных.

История и происхождение

Концепция внимания в машинном обучении была впервые предложена в 2014 году Дмитрием Бахданау и соавторами в работе «Neural Machine Translation by Jointly Learning to Align and Translate» для улучшения качества машинного перевода. Однако первоначальные реализации использовали двунаправленное или глобальное внимание, где каждый элемент последовательности мог обращаться ко всем элементам, включая будущие. Авторегрессионное внимание как самостоятельный механизм сформировалось в 2017 году с выходом статьи «Attention Is All You Need» от команды Google Research (Ашвиш Васуани и соавторы), где был представлен трансформер с каузальным (причинно-следственным) маскированием. Это маскирование запрещает модели «заглядывать вперёд» при генерации, обеспечивая авторегрессионное свойство: предсказание следующего токена зависит только от предыдущих.

Принцип работы

Авторегрессионное внимание базируется на трёх основных компонентах: запросы (queries), ключи (keys) и значения (values). Для каждого элемента последовательности вычисляются три вектора путём умножения входного представления на обучаемые матрицы весов. Затем для каждого запроса вычисляется оценка внимания (score) по отношению ко всем ключам, соответствующим предыдущим элементам (включая текущий). Полученные оценки нормализуются с помощью функции softmax, превращаясь в веса внимания. Взвешенная сумма значений с этими весами даёт выходной вектор для текущего элемента.

Каузальное маскирование

Ключевое отличие авторегрессионного внимания от обычного — применение каузальной маски (causal mask). Это верхняя треугольная матрица, где все элементы выше главной диагонали приравниваются к минус бесконечности (или нулю после softmax). Таким образом, при вычислении внимания для позиции i модель может обращаться только к позициям ≤ i, игнорируя будущие токены. Это обеспечивает авторегрессионность: предсказание на шаге t не может использовать информацию с шагов > t.

Многоголовое внимание

В архитектуре трансформера авторегрессионное внимание часто реализуется как многоголовое (multi-head attention). Входные последовательности проецируются в несколько параллельных подпространств (голов), в каждом из которых независимо вычисляется каузальное внимание. Результаты всех голов конкатенируются и проецируются обратно в исходную размерность. Это позволяет модели одновременно учитывать различные аспекты взаимосвязей между элементами.

Виды и модификации

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

  • Полное авторегрессионное внимание: каждая позиция обращается ко всем предыдущим. Вычислительная сложность — O(n²), где n — длина последовательности. Применяется в моделях малого и среднего размера (например, GPT-2).
  • Разреженное внимание: вместо всех предыдущих элементов учитываются только некоторые, например, ближайшие соседи или элементы с шагом (dilated attention). Используется в моделях Longformer и BigBird для обработки длинных последовательностей.
  • Окно внимания: внимание ограничено фиксированным окном из k предыдущих элементов. Сложность — O(n·k). Применяется в моделях типа Transformer-XL и Compressive Transformer.
  • Скользящее внимание: комбинация окна и глобального внимания к специальным токенам (например, [CLS]). Используется в модели Longformer.
  • Линейное внимание: замена softmax на ядерные аппроксимации (например, линейное внимание из работы «Transformers are RNNs»), снижающая сложность до O(n). Применяется в моделях Performer, Linformer.

Применение

Авторегрессионное внимание является основой для большинства современных генеративных языковых моделей:

  • Генерация текста: модели семейства GPT (OpenAI), LLaMA (Meta — организация признана экстремистской и запрещена в РФ), YandexGPT, GigaChat. Они используют авторегрессионное внимание для последовательного предсказания следующего токена.
  • Машинный перевод: авторегрессионные декодеры в архитектурах «кодер-декодер» (например, Transformer-base) применяют каузальное внимание в декодере для генерации перевода.
  • Синтез речи: модели WaveNet, Tacotron 2 и их производные используют авторегрессионное внимание для генерации аудиосигнала по спектрограммам или тексту.
  • Генерация кода: модели Codex, StarCoder применяют авторегрессионное внимание для генерации программного кода по описанию на естественном языке.
  • Предсказание временных рядов: в финансовом анализе, метеорологии и прогнозировании спроса авторегрессионное внимание используется для моделирования зависимостей между последовательными наблюдениями.

Преимущества и недостатки

Преимущества

  • Гибкость: модель может динамически выбирать, на какие предыдущие элементы обращать внимание, в отличие от фиксированных окон в рекуррентных сетях.
  • Параллелизация: в отличие от рекуррентных нейронных сетей, вычисление внимания для всех позиций может быть распараллелено (при условии, что известна вся последовательность). Однако при авторегрессионной генерации последовательность строится пошагово, что ограничивает параллелизм.
  • Долгосрочные зависимости: при отсутствии ограничений на длину контекста модель может учитывать связи между далёкими элементами последовательности.

Недостатки

  • Вычислительная сложность: полное авторегрессионное внимание имеет квадратичную сложность O(n²), что делает его непригодным для очень длинных последовательностей (более 10 000 токенов) без модификаций.
  • Потребление памяти: хранение матрицы внимания размером n×n требует значительных объёмов оперативной памяти при больших n.
  • Последовательная генерация: несмотря на параллелизм при обучении, на этапе инференса модель генерирует токены по одному, что замедляет работу по сравнению с неавторегрессионными методами (например, маскированное внимание в BERT).
  • Проблема «забывания»: при очень длинных последовательностях модель может терять информацию о ранних элементах, хотя механизм внимания частично решает эту проблему.

Критика и альтернативы

Авторегрессионное внимание критикуется за высокую вычислительную стоимость и неэффективность при работе с длинными последовательностями. В ответ на это были разработаны альтернативные подходы:

  • Неавторегрессионные модели (например, BERT, T5) используют двунаправленное внимание, что позволяет генерировать последовательность за один шаг, но требует дополнительных механизмов для обеспечения согласованности.
  • Модели с рекуррентными блоками (например, RWKV, Mamba) комбинируют идеи рекуррентных нейронных сетей и внимания, достигая линейной сложности O(n) при сохранении качества.
  • Сжатие контекста (например, Compressive Transformer) агрегирует информацию из длинных последовательностей в сжатые представления, уменьшая размер матрицы внимания.

Интересные факты

  • В 2023 году компания Google представила модель PaLM 2, использующую авторегрессионное внимание с комбинацией разреженных и оконных механизмов для обработки последовательностей длиной до 32 000 токенов.
  • Модель GPT-4 (OpenAI) по неподтверждённым данным использует смесь экспертов (Mixture of Experts) с авторегрессионным вниманием, что позволяет масштабировать модель до триллионов параметров.
  • В 2024 году российские разработчики из компании «Яндекс» представили модель YandexGPT 2, которая использует модифицированное авторегрессионное внимание с адаптивным окном для снижения вычислительных затрат.

Источники

  • Vaswani, A., et al. (2017). «Attention Is All You Need». Advances in Neural Information Processing Systems.
  • Bahdanau, D., et al. (2014). «Neural Machine Translation by Jointly Learning to Align and Translate». arXiv:1409.0473.
  • Child, R., et al. (2019). «Generating Long Sequences with Sparse Transformers». arXiv:1904.10509.
  • Beltagy, I., et al. (2020). «Longformer: The Long-Document Transformer». arXiv:2004.05150.
  • Katharopoulos, A., et al. (2020). «Transformers are RNNs: Fast Autoregressive Transformers with Linear Attention». arXiv:2006.16236.
  • Gu, A., & Dao, T. (2023). «Mamba: Linear-Time Sequence Modeling with Selective State Spaces». arXiv:2312.00752.
Заметили ошибку или не согласны с информацией в статье? Напишите нам support@bfometr.ru