Глоссарий
RoPE: позиционные повороты вместо позиционных эмбеддингов
Коротко: RoPE это способ кодирования позиции токена поворотом пар его координат на угол, пропорциональный позиции. Точечное свойство: скалярное произведение двух повёрнутых векторов зависит только от разницы их позиций, поэтому относительное расстояние между токенами встраивается в attention автоматически. RoPE применяется к Q и K, но не к V, и кэшируется вместе с K в KV-кэше. Практически все современные открытые модели, включая Qwen и Llama, используют RoPE.
RoPE (Rotary Position Embedding) заменяет вопрос «добавить позицию к вектору» на «повернуть вектор». Пары соседних координат вращаются на угол m умножить theta_i, где m это позиция токена, а theta_i это геометрическая прогрессия базовых частот от 10000 в степени минус 2i/d.
Ключевая математика: поворот ортогонален, поэтому повёрнутые Q и K дают при умножении фазовый сдвиг, равный разности позиций. Attention видит не абсолютные номера токенов, а расстояния между ними. На инференсе cos и sin предвычисляются в кэш-таблицу один раз, и каждый шаг декодинга только смотрит в неё по номеру позиции нового токена.