في هذه التدوينة، سأتناول تفاصيل ومبادئ طريقة LoRA (التكيف منخفض الرتبة لنماذج اللغة الكبيرة)، وذلك من خلال استعراض الورقة البحثية . يركز البحث بشكل أساسي على تقديم بنية جديدة تُقلل من تكلفة ضبط النموذج مع تحسين أدائه. لطالما احتلت عمليات الضبط الدقيق مكانة هامة في دراسات معالجة اللغة الطبيعية. لنفترض أن لديك نموذجًا مُدرَّبًا، وترغب في توسيع نطاق معرفته. يمكنك تحقيق ذلك من خلال الضبط الدقيق، دون الحاجة إلى تدريب النموذج من الصفر.
لنفترض أن نموذجًا ما يحتوي على n معلمة بعد التدريب وتحتاج إلى ضبطه بدقة. إذا استخدمت طريقة ضبط دقيقة كاملة، فسيتم تحديث جميع معلمات النموذج. عندما نفكر في النماذج التي تحتوي على مليارات المعلمات، فإن التحديث على جميع المعلمات سيخلق مشاكل تتعلق بالوقت والتخزين. في الورقة، تم التأكيد على نتائج الأداء الأفضل أو المتساوية لنماذج RoBERTa وDeBERTa وGPT-2 وGPT-3 باستخدام طريقة LoRA.
يذكر في الورقة أن طريقة LoRA مستوحاة من دراسات لي وآخرون (2018أ) وأغاجانيان وآخرون (2020). تؤكد هذه الدراسات أن نجاح النماذج ذات المعلمات المفرطة يعتمد في الواقع على بُعد جوهري منخفض. أصبحت هذه هي النقطة التي شكلت فرضية طريقة LoRA.
طريقة LoRA هي دراسة تعتمد بالكامل على تحليل الرتبة. في هذه الطريقة، تتم إضافة مصفوفتين متتاليتين بالتوازي مع بعض الطبقات الكثيفة في الشبكات العصبية كما هو موضح في الشكل 1. يتم تشكيل هذه المصفوفات المتتالية من خلال تكوين رتبة معين. يوضح الشكل أدناه كيف تبدو الطبقة الكثيفة بعد إضافة مصفوفات الرتبة المتتالية. يتم إرسال متغيرات الإدخال من خلال كل من مصفوفة الأوزان الأصلية قبل التدريب والمصفوفة الأولى للمصفوفات المتتالية. بعد ذلك، يتم حساب قيم الإخراج عن طريق جمع مخرجات هاتين المصفوفتين المتوازيتين.

طريقة LoRA
تحتوي الشبكات العصبية على العديد من الطبقات الكثيفة التي تُجري عمليات ضرب المصفوفات. وتكون مصفوفات الأوزان في هذه الطبقات مصفوفات كاملة الرتبة (أي أن جميع الصفوف والأعمدة مستقلة). لكن أغاجانيان وزملاؤه ذكروا في بحثهم أن نماذج اللغة المدربة مسبقًا تتميز بانخفاض "البُعد الجوهري". وقد ساهم هذا في صياغة فرضية LoRA. وبناءً على ذلك، تنص فرضية LoRA على أن النماذج قادرة على التعلم مع تغييرات منخفضة الأبعاد في مصفوفة الأوزان أثناء التكيف مع مهمة محددة.
تم إجراء التحديثات على هذه المصفوفة من خلال المصفوفات

مفصولة برتبة منخفضة. هنا، B هي مصفوفة dxr، A هي مصفوفة rxk، بينما r (الرتبة) أصغر كثيرًا من d وk. أثناء الضبط الدقيق، يتم منع تحديثات التدرج إلى Wo. يتم ضرب كل من مصفوفات Wo و∆W بنفس قيم الإدخال ويتم تلخيص النتائج ويتم تكوين الناتج h= w0 + ∆Wx = w0 +BAx.
في بداية التدريب، استخدموا تهيئة غاوسية عشوائية لقيم المصفوفة A وتهيئة صفرية كاملة لقيم المصفوفة B. بعبارة أخرى، BA تساوي صفرًا في البداية.
تطبيق LoRA في هندسة المحولات
توجد 4 مصفوفات وزن Wq وWk وWv وWo في وحدة الانتباه الذاتي ومصفوفتان وزن في وحدة MLP في بنية المحول. أثناء تكيف LoRA، قاموا بتجميد الأوزان في وحدة MLP، وطبقوا الطريقة على أوزان الانتباه من أجل الحفاظ على التدريب بسيطًا.
المزايا
- تتمثل أكبر المزايا التي توفرها LoRA في استخدامات الذاكرة والتخزين. على سبيل المثال، في المقالة، تم ذكر أنه بالنسبة لنموذج المحول الكبير المدرب باستخدام Adam، يتم تقليل استخدام VRAM بنسبة تصل إلى 2/3 إذا كانت << r d. وذلك لأن حالات المحسن لا يتم الاحتفاظ بها للمعلمات المجمدة.
- بالنسبة لنموذج GPT-3 175B، انخفض استهلاك VRAM من 1.2 تيرابايت إلى 350 جيجابايت.
- في السيناريو الذي تم فيه تغيير r=4 وأوزان مصفوفات القيمة والاستعلام فقط، تم تقليل حجم نقطة التفتيش من 350 جيجابايت إلى 35 ميجابايت. وقد مكّن هذا من إجراء التدريب باستخدام عدد أقل من وحدات معالجة الرسوميات.
- بالإضافة إلى ذلك، نظرًا لعدم وجود تحديث تدرج في معظم المعلمات، تم تحقيق تسارع بنسبة 25% عند تدريب GPT-3 175B باستخدام LoRA مقارنة بعملية الضبط الدقيق الكاملة.
وتذكر المقالة أيضًا أنه إذا كانت هناك حاجة إلى عملية الضبط الدقيق للغة مختلفة، فيجب استخدام النموذج بأكمله بدلاً من LoRA.
معرفة اضافية
ما هي الرتبة
الرتبة هي العدد الإجمالي للأعمدة أو الصفوف المستقلة خطيًا في المصفوفة. لنفترض أن لدينا مصفوفة تحتوي على n عمودًا، وجميع الأعمدة مستقلة عن بعضها البعض، عندها يمكننا القول إن رتبة الأعمدة لهذه المصفوفة هي n. وبالمثل، إذا كانت جميع صفوف مصفوفة تحتوي على n صفًا مستقلة عن بعضها البعض، فيمكننا القول أيضًا إن رتبة الصفوف لهذه المصفوفة هي n.
يجب أن تكون رتبة الصف ورتبة العمود في المصفوفة متساوية. على سبيل المثال، يمكننا النظر إلى المصفوفة أدناه.
المصفوفة أ = [[1,2,5], [ 2, 4, 10] ]
إذا نظرنا إلى المصفوفة بعناية، يمكننا أن نرى أن الصف الثاني هو ضعف الصف الأول. وبالمثل، فإن العمودين الثاني والثالث من المصفوفة هما 2 و1 أضعاف العمود الأول، على التوالي. بعبارة أخرى، بينما يوجد متجهان على نفس الخط على أساس الصف في المصفوفة، وثلاثة متجهات مختلفة على خط آخر على أساس العمود، يوجد متجه فريد واحد فقط على أساس كل صف وعمود. وهذا يعني أن رتبة المصفوفة هي 2.
لكي نجد الرتبة، نحول المصفوفة إلى شكلها المتدرج، ثم نحسب عدد الصفوف التي تتكون من قيمة واحدة على الأقل غير صفرية.
ما هي مصفوفة الرتبة المنخفضة
في المصفوفات، يمكن أن تكون المرتبة مساوية لعدد الأعمدة أو الصفوف أو أقل منها. تسمى المصفوفات التي تحتوي على صفوف أو أعمدة مستقلة خطيًا أصغر من العدد الحالي للصفوف أو الأعمدة بمصفوفات ذات مرتبة منخفضة. تسمى المصفوفات التي تكون فيها جميع الصفوف أو الأعمدة مستقلة بمصفوفات ذات مرتبة كاملة.
ما هو التحليل إلى عوامل/تحليل الرتب؟
يمكننا إعادة كتابة مصفوفة رتبتها r على الصورة B=LR^T بتحليلها إلى مصفوفتين L و R. هنا، L مصفوفة ذات أبعاد m×r، بينما R^T مصفوفة ذات أبعاد r×n. تُعرف هذه العملية بتحليل الرتبة.
أهمية تحليل العوامل المرتبة:
تكمن أهمية عملية تحليل الرتبة في أنها تتيح لنا تقسيم المصفوفة إلى مصفوفتين أصغر، L و R، وتخزينهما في مساحة أقل. هذا يعني أنه يمكنك تخزين المصفوفة B بتخزين عواملها L و R. يقلل هذا من متطلبات تخزين B إلى (m+n)r بدلاً من mn. ومن الجدير بالذكر أيضًا أنه بعد تحليل المصفوفة إلى هاتين المصفوفتين الصغيرتين، يُمكن إجراء العديد من العمليات الحسابية عليها دون الحاجة إلى إعادة إنتاج المصفوفة نفسها. لهذا السبب، عند التعامل مع مصفوفة منخفضة الرتبة، يُعتبر تحليل الرتبة دائمًا خطوة أولى مهمة. بعد تحليل الرتبة، يُمكن إجراء العمليات الحسابية بسرعة أكبر وباستخدام ذاكرة أقل.
علاوة على ذلك
للحصول على معلومات أكثر تفصيلاً حول المصفوفات منخفضة الرتبة، يمكنك قراءة مدونة إيثان آر. إيبرلي وورقة بحثية حول LoRA . بالإضافة إلى ذلك، يمكنك الاطلاع على تطبيقات LoRA البرمجية بالتفصيل في مستودع microsoft/LoRA على GitHub.
جيزيم أبالي، ماجستير في العلوم / قائد الفريق