Rotary position embeddings, yang umum disebut RoPE, memasukkan posisi ke attention dengan merotasi pasangan channel query dan key memakai sudut yang ditentukan oleh posisi token. Rotasi dilakukan sebelum dot product query-key. Posisi karena itu tidak direpresentasikan dengan menambahkan satu vektor terpisah ke representasi setiap token.
Perbedaan ini berdampak langsung pada inferensi. Key yang sudah berada di cache telah memuat rotasi untuk posisi yang diberikan kepadanya. Memakai ulang key tersebut pada koordinat sequence lain tanpa transformasi yang ekuivalen akan mengubah komputasi attention, meskipun konten token sama.
RoPE menerapkan rotasi yang bergantung pada posisi
Untuk satu pasangan channel dua dimensi, rotasi pada posisi m dapat ditulis sebagai
R(mθ) = [[cos(mθ), -sin(mθ)],
[sin(mθ), cos(mθ)]]dengan θ sebagai frekuensi untuk pasangan channel tersebut. Query q dan key k menjadi
q_m = R(mθ) q
k_n = R(nθ) ksebelum dot product dihitung.
Sifat aljabar yang relevan berasal dari rotasi ortogonal:
q_m^T k_n
= q^T R(mθ)^T R(nθ) k
= q^T R((n - m)θ) kPada bentuk pasangan yang diidealkan ini, bagian skor yang bergantung pada posisi ditentukan oleh offset relatif n - m. Implementasi transformer nyata memakai banyak frekuensi pada berbagai pasangan channel, tetapi identitas rotasi yang sama menjadi inti mekanismenya.
RoPE tidak membuat seluruh model menjadi invariant terhadap translasi posisi. Representasi token yang masuk ke proyeksi attention sudah dipengaruhi layer sebelumnya, causal context, normalisasi, dan parameter model. Aljabar di atas menjelaskan transformasi posisi di dalam skor query-key, bukan perilaku keseluruhan jaringan.
Pergeseran posisi bersama mempertahankan selisih fase
Anggap kedua posisi digeser dengan integer s yang sama:
m' = m + s
n' = n + sMaka
n' - m' = n - msehingga rotasi relatif pada dot product untuk pasangan query-key tersebut tidak berubah.
Sifat ini lebih sempit daripada pernyataan bahwa posisi absolut tidak pernah berpengaruh. Vektor hasil rotasi R(mθ)q dan R(nθ)k masing-masing tetap berubah ketika keduanya digeser. Dot product mempertahankan fase relatif karena rotasi saling menghilangkan secara aljabar pada operasi tersebut.
Batas ini relevan saat sistem menyimpan key yang sudah dirotasi, mencampur state cache dengan state yang baru dihitung, menerapkan scaling khusus arsitektur, atau mengekspos identifier posisi secara terpisah dari urutan token. Implementasi serving harus mempertahankan sistem koordinat yang dimaksud model, bukan mengandalkan klaim luas bahwa RoPE hanya memakai posisi relatif.
KV cache mengikat key pada posisi yang diberikan
Serving autoregresif umumnya menyimpan key dan value token sebelumnya agar setiap langkah decoding tidak menghitung ulang seluruh prefix. Pada RoPE, cached key biasanya disimpan setelah rotasi berbasis posisi, meskipun tata letak cache yang tepat bergantung pada implementasi.
Jika cached key dibuat untuk posisi n, bentuk terotasinya memuat R(nθ). Memperlakukan tensor yang sama seolah berada pada posisi n + s tidak otomatis menerapkan R(sθ). Cached key dan query baru kemudian dapat memakai koordinat yang tidak konsisten.
Masalah ini terpisah dari identitas prefix. Dua request dapat memiliki token ID yang sama tetapi mendapatkan posisi efektif berbeda akibat token yang disisipkan, token yang dihapus, penanganan special token, sequence packing, atau logika serving. Cache hanya dapat dipakai ulang ketika state yang disimpan kompatibel dengan state model yang dibutuhkan request baru, termasuk konvensi posisinya.
Sebagian sistem dapat mentransformasi cached state ketika koordinat digeser, dan sebagian arsitektur memakai varian RoPE dengan aturan scaling tambahan. Transformasi semacam itu bergantung pada model dan implementasi. Menyalin entri cache yang sudah dirotasi ke koordinat baru tanpa memperhitungkan aturan tersebut secara umum tidak ekuivalen.
Position ID tetap merupakan input semantik
API framework sering mengekspos position_ids, cache position, atau indeks sequence terkait. Pada RoPE, nilai ini dapat terlihat seperti bookkeeping karena tidak ada tabel additive position embedding yang diindeks. Nilai tersebut tetap menentukan sudut rotasi dan karena itu memengaruhi skor attention.
Ketidakcocokan dapat sulit terlihat. Shape tensor tetap valid, matrix multiplication tetap berjalan, dan cache dapat memiliki panjang yang diharapkan. Kesalahannya bersifat semantik: rotasi query dan key merepresentasikan koordinat yang berbeda dari sequence yang dimaksud.
Konvensi padding dan packing juga perlu diperlakukan secara eksplisit. Sebuah batch dapat memakai indeks tensor fisik yang berbeda dari posisi token logis. Apakah posisi padding mengonsumsi koordinat RoPE bergantung pada model dan implementasi serving. Pemetaan yang benar adalah pemetaan yang digunakan oleh kontrak inferensi checkpoint, bukan aturan universal yang diturunkan dari shape batch.
Ekstensi context mengubah rezim rotasi
Frekuensi RoPE ditentukan oleh arsitektur model. Perluasan context yang dapat dipakai dapat melibatkan perubahan pemetaan posisi atau frequency scaling pada implementasi yang mendukung varian tersebut. Metode ini bukan sekadar mengalokasikan attention mask yang lebih besar. Transformasi posisi yang diberikan kepada model ikut berubah.
Position index yang lebih besar dan diterima runtime karena itu belum membuktikan bahwa checkpoint akan berperilaku sesuai maksud arsitekturnya pada indeks tersebut. Arsitektur, konfigurasi, dan kode inferensi harus sepakat mengenai varian RoPE beserta parameternya.
Batas ini penting ketika checkpoint dipindahkan antar-runtime. Dua runtime dapat memakai dimensi tensor dan bobot yang sama tetapi menghasilkan output berbeda jika interpretasi terhadap RoPE scaling, rotary dimension, frequency base, atau koordinat cache tidak sama.
Tata letak rotasi merupakan bagian dari kompatibilitas checkpoint
Deskripsi matematis mengelompokkan channel menjadi pasangan dua dimensi, tetapi software dapat menyusun pasangan tersebut dengan tata letak berbeda. Satu implementasi dapat memasangkan komponen yang bersebelahan; implementasi lain dapat membagi vektor menjadi dua bagian lalu merotasi komponen yang bersesuaian. Keduanya dapat menerapkan transformasi rotary, tetapi tidak dapat dipertukarkan kecuali checkpoint dan tata letak bobot memang mengharapkan konvensi yang sama.
Rotary dimension juga dapat mencakup seluruh atau hanya sebagian dari setiap attention head. Frekuensi, parameter base, varian scaling, dan presisi numerik dapat memengaruhi nilai sine dan cosine yang dihasilkan.
Karena itu, implementasi RoPE merupakan bagian dari semantik model, bukan optimasi serving yang bebas diganti. Kernel fusion dapat menggabungkan rotasi dengan projection, attention, atau penulisan cache, tetapi hasil akhirnya tetap harus sesuai dengan transformasi yang dimaksud checkpoint dalam toleransi numerik runtime.
Batas praktisnya tegas: fase relatif menjelaskan satu sifat penting skor RoPE, sementara koordinat cache, tata letak rotary, konfigurasi frekuensi, dan aturan context scaling tetap menjadi persyaratan kompatibilitas konkret. Shape tensor yang sama belum cukup ketika semantik posisinya berbeda.