Ultralytics YOLO27: Вступи в список ожидания.
Лицензия YOLO
Назад к глоссарию Ultralytics

Rotary Position Embedding (RoPE)

Вращательное позиционное встраивание (RoPE) поворачивает векторы запроса и ключа в соответствии с позицией токена, поэтому оценки внимания зависят от относительного расстояния. Используется в большинстве открытых LLM.

Ротационное позиционное кодирование (RoPE) передаёт трансформеру информацию о порядке токенов, поворачивая каждый вектор запроса и ключа на угол, пропорциональный позиции токена. Самовнимание само по себе не может определить порядок слов, поэтому моделям нужно как-то передать информацию о позициях. При использовании RoPE оценка внимания между запросом в позиции m и ключом в позиции n зависит только от смещения m − n. RoPE представили в 2021 году вместе с моделью RoFormer, а популяризировали GPT-J и GPT-NeoX от EleutherAI. Сейчас RoPE — стандартный способ позиционного кодирования в открытых больших языковых моделях (LLM), включая Llama, Mistral, Qwen, Gemma и DeepSeek.

Как работает RoPE#

RoPE делит каждый вектор запроса и ключа размерности d на d/2 пар признаков и представляет каждую пару как точку на плоскости. В позиции m пара i поворачивается на угол m·θᵢ, где θᵢ = base^(−2i/d), а значение base в исходной статье равно 10 000. Первые пары поворачиваются быстро и различают близкие позиции, а последние — медленно и позволяют различать токены, отстоящие друг от друга на тысячи позиций. Поворот запроса на mθ и ключа на nθ приводит к тому, что их скалярное произведение зависит только от разности (m − n)θ; длина вектора при этом не меняется. Поворот применяется внутри каждого слоя внимания после проекций запроса и ключа; векторы значений не поворачиваются, а к эмбеддингам токенов на входе ничего не добавляется:

Приведённый ниже фрагмент реализует поворот с помощью комплексных чисел, как в эталонном коде Llama от Meta, и проверяет свойство относительных позиций:

import torch

torch.manual_seed(0)
dim = 64
freqs = 10000 ** (-torch.arange(0, dim, 2) / dim)  # one rotation frequency per pair of features


def rope(x, pos):
    """Rotate each consecutive feature pair of x by the angle pos * frequency."""
    pairs = torch.view_as_complex(x.reshape(-1, 2))
    return torch.view_as_real(pairs * torch.polar(torch.ones_like(freqs), pos * freqs)).flatten()


q, k = torch.randn(2, dim)
# The same query and key, three tokens apart, at two different places in the sequence
print(f"positions 5 and 2:     {rope(q, 5) @ rope(k, 2):.4f}")
print(f"positions 105 and 102: {rope(q, 105) @ rope(k, 102):.4f}")
print(f"positions 5 and 4:     {rope(q, 5) @ rope(k, 4):.4f}")  # one token apart
print(f"Vector length kept: {rope(q, 5).norm():.4f} vs {q.norm():.4f}")

Для обеих пар, отстоящих на три токена друг от друга, выводится -8.2811 — независимо от того, находятся ли они в позициях 5 и 2 или 105 и 102. Для тех же векторов, отстоящих на один токен, выводится -11.4563. Длина повёрнутого вектора запроса остаётся равной 8.3705.

RoPE и другие методы позиционного кодирования#

  • Синусоидальное абсолютное кодирование: исходный трансформер один раз добавляет к входным эмбеддингам фиксированные векторы синуса и косинуса перед первым слоем. Относительное расстояние приходится выводить из смешанного сигнала.
  • Обучаемые абсолютные эмбеддинги: BERT и GPT-2 обучают по одному вектору на позицию — до 512 и 1 024 позиций соответственно — и не имеют эмбеддингов для позиций за этими пределами.
  • Относительные смещения позиций: T5 и ALiBi добавляют к оценкам внимания обучаемое или фиксированное смещение, зависящее от расстояния. RoPE кодирует относительное расстояние самим поворотом и не добавляет параметров.

Расширение контекстного окна#

Модель, обученная с RoPE на последовательностях длиной L, никогда не видела углы поворота для позиций за пределами L, поэтому при встрече с такими позициями качество внимания ухудшается. Методы расширения контекста изменяют масштаб углов, не обучая модель с нуля. Интерполяция позиций сжимает новые позиции до обученного диапазона и позволила расширить контекстное окно моделей Llama до 32 768 токенов за 1 000 шагов дообучения. Масштабирование с учётом NTK и YaRN сильнее растягивают медленные низкочастотные пары, чем быстрые; YaRN расширил контекст Llama 2 до 128K токенов, используя в 10 раз меньше обучающих токенов, чем предыдущие методы. Во время предварительного обучения Llama 3 увеличила базовое значение с 10 000 до 500 000, поэтому самые медленные пары поворачиваются меньше на токен, и удалённые позиции остаются различимыми.

RoPE в моделях компьютерного зрения#

Изображения требуют двух координат, поэтому визуальные трансформеры используют двумерное, или осевое, RoPE: половина пар признаков каждой головы поворачивается по столбцу патча, а половина — по строке. Qwen2-VL добавляет третью, временную ось для видео в мультимодальном M-RoPE. SAM 2 от Meta, доступная в пакете Ultralytics, применяет осевое RoPE в четырёх слоях своего механизма внимания к памяти, где признаки текущего видеокадра обращаются к сохранённым признакам предыдущих кадров. Ключи каждого сохранённого кадра получают ту же сетку углов, что и запросы текущего кадра, поэтому внимание между ними зависит от пространственного смещения патчей.

Explore solutions

Компьютерное зрение в спорте

Компьютерное зрение в спорте

Узнай, как Ultralytics YOLO обеспечивает компьютерное зрение в спорте: отслеживание игроков и мяча, аналитика результатов, полезные выводы для тренеров и реабилитация спортсменов.
Подробнее
Компьютерное зрение для аэросъёмки

Компьютерное зрение для аэросъёмки

Преобразуй изображения с дронов и других воздушных платформ в аналитические данные в реальном времени для сельского хозяйства, аквакультуры, экологического мониторинга, охраны природы и геопространственного анализа с помощью Ultralytics YOLO.
Подробнее
Компьютерное зрение в аэрокосмической отрасли

Компьютерное зрение в аэрокосмической отрасли

Используй модели Ultralytics YOLO для мониторинга с воздуха с помощью ИИ для компьютерного зрения. Применяй решения компьютерного зрения для дронов, аэрокосмических рабочих процессов, охраны окружающей среды и геопространственных отраслей.
Подробнее
Компьютерное зрение в сфере безопасности

Компьютерное зрение в сфере безопасности

Защити любой объект с помощью моделей Ultralytics YOLO. ИИ на базе компьютерного зрения обеспечивает мониторинг периметра, обнаружение угроз, распознавание номерных знаков и безопасность на рабочем месте.
Подробнее
Компьютерное зрение в робототехнике

Компьютерное зрение в робототехнике

Создавай более интеллектуальные машины с моделями Ultralytics YOLO. ИИ на базе компьютерного зрения в робототехнике обеспечивает автономную навигацию, восприятие, отслеживание объектов и управление в реальном времени.
Подробнее
Компьютерное зрение в логистике

Компьютерное зрение в логистике

Оптимизируй логистику с моделями Ultralytics YOLO. Визуальный AI обеспечивает проверку посылок, сортировку, отслеживание транспорта и мониторинг безопасности на складе в реальном времени.
Подробнее
Компьютерное зрение в розничной торговле

Компьютерное зрение в розничной торговле

Переосмысли розничную торговлю с моделями Ultralytics YOLO. Визуальный AI обеспечивает отслеживание запасов, мониторинг полок, управление очередями и более глубокое понимание поведения покупателей.
Подробнее
Компьютерное зрение в здравоохранении

Компьютерное зрение в здравоохранении

Создавай решения для здравоохранения с моделями Ultralytics YOLO. Визуальный AI в здравоохранении ускоряет медицинскую визуализацию, улучшает диагностику и мониторинг пациентов.
Подробнее
Компьютерное зрение в производстве

Компьютерное зрение в производстве

Оптимизируй производство с моделями Ultralytics YOLO. Компьютерное зрение на базе ИИ обеспечивает контроль качества, обнаружение дефектов, контроль использования СИЗ и автоматизацию сборочных линий.
Подробнее
Компьютерное зрение в автомобильной отрасли

Компьютерное зрение в автомобильной отрасли

Применяй компьютерное зрение в автомобильной отрасли с моделями Ultralytics YOLO. Компьютерное зрение на базе ИИ повышает безопасность дорожного движения, улучшает помощь водителю и автоматизацию автомобилей, делая дороги умнее.
Подробнее
Компьютерное зрение в сельском хозяйстве

Компьютерное зрение в сельском хозяйстве

Внедряй ИИ для компьютерного зрения в умное сельское хозяйство с моделями Ultralytics YOLO. Используй их для мониторинга посевов, отслеживания скота и точного земледелия, чтобы повысить урожайность и эффективность.
Подробнее

Давай вместе строить будущее ИИ!

Начни свой путь в будущее машинного обучения