Positional encoding: кодирование порядка токенов

Термин глоссария

Positional encoding


Positional encoding — метод, который добавляет модели информацию о позиции токенов в последовательности для корректной обработки порядка.

Определение

Positional encoding — это механизм, который позволяет трансформерным моделям учитывать порядок токенов. Поскольку self-attention не имеет встроённого понятия последовательности, positional encoding явно добавляет координаты позиции каждого токена. Кодировка включается в скрытые представления модели и влияет на веса внимания, позволяя системе понимать относительные и абсолютные зависимости.

Как работает

Основная идея заключается в добавлении векторной позиции к эмбеддингу токена. Существует два ключевых подхода: фиксированные кодировки и обучаемые кодировки.

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

На практике позиционный вектор просто прибавляется (или конкатенируется) к эмбеддингу токена, после чего подаётся в слои self-attention. Это формирует «координатную сетку» внутри представлений модели.

Где применяется

  • Все трансформеры: языковые, мультимодальные, аудио-, видео- и кодовые модели.
  • Системы обработки последовательностей переменной длины.
  • Модели со сверхдлинными контекстами.
  • Архитектуры, работающие с временными рядами.
  • Обработка структурированных последовательностей: логи, события, команды.
  • Визуальные трансформеры — кодирование координат патчей.

Практические примеры использования

В языковых моделях positional encoding позволяет корректно понимать порядок слов, токенов и зависимостей: без этого self-attention не различает, что идёт раньше или позже.

В длительных контекстах применяются RoPE и ALiBi: они масштабируются на тысячи и десятки тысяч токенов, сохраняя относительные отношения между токенами и снижая деградацию внимания.

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

В моделях для временных рядов позиционные кодировки указывают, где в последовательности находится значение, позволяя распознавать тренды и временные зависимости.

Преимущества и ограничения

  • Плюс: позволяет attention-механизму обрабатывать порядок токенов.
  • Плюс: универсальный механизм для всех типов последовательностей.
  • Плюс: поддерживает как абсолютные, так и относительные зависимости.
  • Плюс: RoPE и ALiBi масштабируются на длинные контексты.
  • Минус: фиксированные кодировки плохо масштабируются.
  • Минус: обучаемые эмбеддинги не интерполируются за пределами обученных длин.
  • Минус: неудачный выбор схемы ограничивает длину контекста.
  • Минус: несовместимость некоторых схем между моделями и форматами внимания.

Связанные термины

  • Self-attention
  • Transformer architecture
  • RoPE
  • ALiBi
  • Relative positional encoding
  • Token embeddings
  • Long-context architectures

Категория термина

Архитектуры моделей