Rotary Position Embedding (RoPE)
يدوّر تضمين الموضع الدوّار (RoPE) متجهات الاستعلام والمفتاح بحسب موضع الرمز، بحيث تعتمد درجات الانتباه على المسافة النسبية. يُستخدم في معظم نماذج اللغة الكبيرة المفتوحة.
يوفر التضمين الموضعي الدوراني (RoPE) لـTransformer معلومات عن ترتيب الرموز عبر تدوير كل متجه استعلام ومفتاح بزاوية تتناسب مع موضع الرمز. ولا يستطيع الانتباه الذاتي وحده تمييز ترتيب الكلمات، لذا ينبغي للنماذج إدخال معلومات الموضع بطريقة ما؛ ومع RoPE تعتمد درجة الانتباه بين استعلام عند الموضع m ومفتاح عند الموضع n على إزاحتهما m − n فقط. وقد قُدّم RoPE عام 2021 مع نموذج RoFormer، وذاع استخدامه بفضل GPT-J وGPT-NeoX من EleutherAI، وأصبح الآن الترميز الموضعي القياسي في النماذج اللغوية الكبيرة (LLMs) المفتوحة، بما فيها 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 والترميزات الموضعية الأخرى#
- الترميز المطلق الجيبي: يضيف Transformer الأصلي متجهات ثابتة من الجيب وجيب التمام إلى تضمينات الإدخال مرة واحدة، قبل الطبقة الأولى. لذا يجب استنتاج المسافة النسبية من الإشارة الممزوجة.
- التضمينات المطلقة المتعلّمة: يتعلم BERT وGPT-2 متجهًا واحدًا لكل موضع، حتى 512 و1,024 موضعًا، ولا يتوفر لهما تضمين لأي موضع يتجاوز هذا الحد.
- انحيازات الموضع النسبي: يضيف T5 وALiBi انحيازًا متعلمًا أو ثابتًا قائمًا على المسافة إلى درجات الانتباه. أما RoPE فيرمّز المسافة النسبية من خلال الدوران نفسه ولا يضيف أي معلمات.
توسيع نافذة السياق#
لم يشاهد نموذج دُرّب باستخدام RoPE على تسلسلات بطول L زوايا الدوران للمواضع التي تتجاوز L، ويتدهور الانتباه عند مواجهتها. تعيد أساليب توسيع السياق تحجيم الزوايا بدلًا من إعادة التدريب من الصفر. تضغط استيفاء المواضع المواضع الجديدة ضمن النطاق المدرّب، ووسّعت نماذج Llama نافذة السياق إلى 32,768 رمزًا خلال 1,000 خطوة من الضبط الدقيق. وتُمدد أساليب التحجيم المراعي لـ NTK وYaRN الأزواج البطيئة منخفضة التردد أكثر من الأزواج السريعة، كما وسّعت YaRN نموذج Llama 2 إلى 128K رمزًا باستخدام رموز تدريب أقل بعشر مرات من الأساليب السابقة. ورفع Llama 3 قيمة base من 10,000 إلى 500,000 أثناء التدريب المسبق، لذا تدور الأزواج الأبطأ بمقدار أقل لكل رمز وتظل المواضع البعيدة قابلة للتمييز.
RoPE في نماذج الرؤية#
تحتاج الصور إلى إحداثيين، لذا تستخدم محوّلات الرؤية ترميز RoPE ثنائي الأبعاد، أي المحوري: يدور نصف أزواج السمات في كل رأس وفقًا لإحداثي عمود الرقعة، والنصف الآخر وفقًا لإحداثي صفها. ويضيف Qwen2-VL محورًا زمنيًا ثالثًا لـالفيديو في ترميز M-RoPE متعدد الوسائط. ويطبّق SAM 2 من Meta، الذي يعمل ضمن حزمة Ultralytics، ترميز RoPE المحوري في الطبقات الأربع لآلية الانتباه إلى الذاكرة، حيث تنتبه سمات إطار الفيديو الحالي إلى السمات المخزنة للإطارات السابقة. وتحصل مفاتيح كل إطار مخزّن على شبكة الزوايا نفسها التي تحصل عليها استعلامات الإطار الحالي، لذا يعتمد الانتباه بين مفاتيح الإطار المخزّن واستعلامات الإطار الحالي على الإزاحة المكانية بين الرقع.










