Rotary Positional Embedding (RoPE)
RoPE mã hóa thông tin vị trí của token bằng ma trận xoay kết hợp một cách tự nhiên sự phụ thuộc vị trí
tương đối rõ ràng.
RoPE Module
Rotary encoding biến đổi các cặp đặc trưng bằng cách xoay trong mặt phẳng 2D. Nghĩa là, nó tổ chức d
đặc trưng như d/2 cặp. Mỗi cặp có thể được coi là tọa độ trong mặt phẳng 2D và mã hóa xoay nó theo
một góc tùy thuộc vào vị trí của token.
For a pair of features
Giả sử, x_m(1) và x_m(2) là hai đặc trưng của key hoặc value của bất kì head nào ở vị trí m.
Hoặc để đơn giản, giả sử x chỉ có 2 đặc trưng. Khi đó, biến đổi sẽ là:
(nhân ma trận - matmul)
Trong đó, θ (theta) là một góc không đổi. Các cặp đặc trưng khác được chuyển đổi tương tự.
Attention is relative
Đối với mỗi cặp đặc trưng, dot-product attention score giữa 2 vị trí m và n sẽ là:
Điều này cho thấy rằng, đối với dot-product attention, rotary encoding mang lại relative attention (sự chú
ý tương đối)
For all features
Các đặc trưng được nhóm thành từng cặp và xử lý như trên. Họ sử dụng θ khác nhau cho mỗi cặp.
Bài báo gốc gợi ý sử dụng Θ =
Cho d/2 cặp features
Chúng tôi ghép đặc trưng i với đặc trưng i + 2d.
Vì vậy, đối với vị trí m chúng ta biến đổi:
thành :
Trong đó, d là số lượng features d
base là hằng số dùng để tính Θ
Biểu thị cho mỗi cặp token trong một câu.
Ví dụ như một số cách để biểu thị hai token có khoảng cách 3.