LoRA: التكييف من الرتبة المنخفضة للنماذج اللغوية الكبيرة

يتمثل مفهوم مهم في معالجة اللغة الطبيعية في التدريب المسبق على نطاق واسع على بيانات مجال عام، ثم التكيّف مع مهام أو مجالات محددة. ومع استمرار تدريب نماذج أكبر، يصبح التخصيص الكامل (أي إعادة تدريب جميع معاملات النموذج) أقل جدوى. وباستخدام نموذج GPT-3 بـ 175 مليار معامل كمثال: فإن نشر نسخ مستقلة من النماذج المُعدّلة، وكل منها يحتوي على 175 مليار معامل، يكون مكلفًا بشكل مفرط. نقترح طريقة تُعرف بـ "التكيّف من الرتبة المنخفضة" أو LoRA، والتي تقوم بثبيت معاملات النموذج المُدرّب مسبقًا، وتُدخل مصفوفات قابلة للتدريب تُمثّل تحليلًا لرتبة منخفضة في كل طبقة من بنية Transformer، مما يقلل بشكل كبير من عدد المعاملات القابلة للتدريب في المهام اللاحقة. مقارنةً بالتدريب المُعدّل لنموذج GPT-3 بـ 175 مليار معامل باستخدام خوارزمية Adam، يمكن لـ LoRA تقليل عدد المعاملات القابلة للتدريب بنسبة تصل إلى 10,000 مرة، وتقليل متطلبات ذاكرة GPU بنسبة 3 أضعاف. وتحقيق أداء مماثل أو أفضل من التدريب المُعدّل من حيث جودة النموذج على نماذج RoBERTa وDeBERTa وGPT-2 وGPT-3، رغم امتلاكها لعدد أقل من المعاملات القابلة للتدريب، وتحقيق معدل تدريب أعلى، وبخلاف الـ adapters، لا تضيف أي تأخير إضافي أثناء الاستدلال. كما نقدّم دراسة تجريبية حول ظاهرة نقص الرتبة في تكيّف نماذج اللغة، والتي تُضيء على فعالية طريقة LoRA. ونُطلق حزمة تُسهّل دمج LoRA مع نماذج PyTorch، ونُقدّم تنفيذنا ونقاط التحقق (checkpoints) للنماذج RoBERTa وDeBERTa وGPT-2 عبر الرابط: https://github.com/microsoft/LoRA.