HyperAI

تضمين الوضع الدوراني (RoPE)

تضمين الوضع الدوراني (RoPE) هو ورقة بحثية بعنوانروفورمر: محول محسّن مع تضمين موضع روتراي"طريقة ترميز الموضع التي يمكنها دمج اعتماد معلومات الموضع النسبي في الاهتمام الذاتي وتحسين أداء بنية المحول.إنه ترميز موضعي يستخدم على نطاق واسع في النماذج الكبيرة، بما في ذلك على سبيل المثال لا الحصر Llama وBaichuan وChatGLM وQwen وما إلى ذلك. ونظرًا لقيود موارد الحوسبة، يتم تدريب معظم النماذج الكبيرة الحالية بأطوال سياق أصغر. أثناء الاستدلال، إذا تم تجاوز طول التدريب المسبق، فسيتم تقليل أداء النموذج بشكل كبير. ونتيجة لذلك، ظهرت العديد من الأعمال التي تعتمد على استقراء طول RoPE، بهدف تمكين النماذج الكبيرة من تحقيق نتائج أفضل تتجاوز طول ما قبل التدريب. لذلك، من المهم فهم المبادئ الأساسية لـ RoPE لاستقراء طول نموذج قاعدة RoPE.

المبدأ الأساسي لـRoPE

المبدأ الأساسي لـ RoPE هو ترميز كل موضع كمتجه دوران يرتبط طوله واتجاهه بمعلومات الموضع. على وجه التحديد، بالنسبة لتسلسل بطول n، يقوم RoPE بتشفير كل موضع i كمتجه دوران pe_i، والذي يتم تعريفه على النحو التالي:

pe_i = (sin(iأوميغا)، جتا(iأوميغا))

هنا، أوميغا هي المعلمة الفائقة التي تتحكم في تردد متجه الدوران.

مزايا الحبل

ما يجعل RoPE فريدًا هو قدرته على دمج التبعيات الواضحة للموضع النسبي بسلاسة في آلية الاهتمام الذاتي للنموذج. يتمتع هذا النهج الديناميكي بثلاث مزايا:

  • المرونة في طول التسلسل:تتطلب التضمينات الموضعية التقليدية عادةً تحديد طول تسلسل أقصى، مما يحد من قدرتها على التكيف. ومن ناحية أخرى، يعتبر RoPE مرنًا للغاية. يمكنه إنشاء تضمينات موضعية أثناء التنقل لتسلسلات ذات طول تعسفي.
  • تقليل التبعيات بين الرموز:RoPE ذكي جدًا في نمذجة العلاقات بين الرموز. مع ابتعاد الرموز عن بعضها البعض في التسلسل، يعمل RoPE بشكل طبيعي على تقليل التبعيات الرمزية بينها. يتوافق هذا النمط التدريجي من التلاشي مع الطريقة التي يفهم بها البشر اللغة.
  • تعزيز الاهتمام الذاتي:يزود RoPE آلية الاهتمام الذاتي الخطي بتشفير الموضع النسبي، وهي ميزة غير موجودة في تشفير الموضع المطلق التقليدي. يتيح هذا التحسين استغلالًا أكثر دقة لتضمينات الرموز.

تنفيذ ترميز الدوران (مأخوذ من روفورمر)

إن ترميز الموضع المطلق التقليدي يشبه تحديد ظهور الكلمة في الموضع 3 أو 5 أو 7، بغض النظر عن السياق. في المقابل،يتيح RoPE للنموذج فهم كيفية ارتباط الكلمات ببعضها البعض.يتعرف على أن الكلمة A تظهر غالبًا بعد الكلمة B وقبل الكلمة C. هذا الفهم الديناميكي يعزز أداء النموذج.

تنفيذ RoPE

قم بتحليل الكود الخاص بترميز الموضع الدوراني (RoPE) لفهم كيفية تنفيذه.

  • precompute_theta_pos_frequencies تحسب الوظيفة قيمة خاصة لـRoPE. أولا قم بتعريف theta المعلمات الفائقة للتحكمسعة الدوران. القيم الأصغر تنتج دورات أصغر. ثم يستخدم الحسابزاوية دوران المجموعةtheta . وتقوم الوظيفة أيضًا بإنشاء قائمة بالمواضع في التسلسل وتحسب زاوية الدوران عن طريق أخذ حاصل الضرب الخارجي لقائمة المواضع وزاوية الدوران.المبلغ الذي يجب تدوير كل موضع فيه. وأخيرًا، يقوم بتحويل هذه القيم إلى أرقام مركبة في شكل إحداثيات قطبية ذات حجم ثابت، وهي أشبه بالشيفرة لتمثيل الموضع والدوران.
  • apply_rotary_embeddings تأخذ الوظيفة القيم العددية وتكملها بمعلومات الدوران. يقوم أولاً بإدخال القيمةالبعد الأخير ينقسم إلىيمثل الأجزاء الحقيقية والخيالية من. يتم بعد ذلك دمج هذه الأزواج في عدد مركب واحد. بعد ذلك، الوظيفةاضرب العدد المركب المحسوب مسبقًا في المدخلات، تطبيق الدوران بشكل فعال. وأخيرًا، يقوم بتحويل النتائج إلى أرقام حقيقية وإعادة تشكيل البيانات، وإعدادها لمزيد من المعالجة.

مراجع

【1】https://www.bolzjb.com/archives/PiBBdbZ7.html