Low-Rank Adaptation (LoRA) — التكييف منخفض الرتبة

From Systems analysis wiki
Jump to navigation Jump to search

Low-Rank Adaptation (LoRA) — هو أسلوب للضبط الدقيق الفعال من حيث المعلمات (PEFT)، يسمح بتكييف نماذج اللغة الكبيرة (LLM) مع مهام جديدة بأقل تكاليف حسابية. قُدمت هذه التقنية لأول مرة في ورقة بحثية من قبل إدوارد هو (Edward Hu) وزملائه في عام 2021[1].

التدريب الدقيق الكامل (full fine-tuning) للنماذج الكبيرة مثل LLaMA أو GPT يتطلب موارد هائلة، مما يجعله غير متاح لمعظم الباحثين والمطورين. تحل تقنية LoRA هذه المشكلة من خلال السماح بضبط جزء صغير فقط من معلمات النموذج، مع الحفاظ على جودة وأداء عاليين يضاهيان التدريب الدقيق الكامل[2].

مبدأ العمل

الفكرة الأساسية لـ LoRA هي عدم تغيير الأوزان الأصلية للنموذج المدرب مسبقًا، بل إضافة مصفوفة "تصحيحية" صغيرة إليها. بدلاً من تدريب مصفوفة الأوزان الضخمة `W` مباشرة، تمثل LoRA التغيير فيها كحاصل ضرب مصفوفتين صغيرتين منخفضتي الرتبة.

بشكل رسمي، إذا كانت مصفوفة الأوزان الأصلية للطبقة `W_0` بحجم `d × k`، فإن تحديثها يُعبَّر عنه كالتالي: `ΔW = BA`، حيث `B` مصفوفة بأبعاد `d × r`، و`A` مصفوفة بأبعاد `r × k`. الرتبة `r` هي معلم فائق (hyperparameter) وأصغر بكثير من `d` و `k` (`r << d, k`). أثناء عملية الضبط الدقيق، يتم تجميد الأوزان الأصلية `W_0`، ويتم تدريب المصفوفتين `A` و `B` فقط. تُحسب مصفوفة الأوزان النهائية كالتالي: `W = W_0 + BA`.

هذا يسمح بتقليل عدد المعلمات القابلة للتدريب بآلاف المرات. على سبيل المثال، عند ضبط نموذج GPT-3 (175 مليار معلمة)، تقلل LoRA عدد المعلمات القابلة للتدريب بمقدار 10,000 مرة وتخفض متطلبات ذاكرة GPU بمقدار 3 مرات[1].

المزايا الرئيسية

  • توفير الموارد: يقلل بشكل كبير عدد المعلمات القابلة للتدريب (بنسبة تصل إلى 90% وأكثر)، مما يقلل بشكل كبير من استهلاك ذاكرة الفيديو (VRAM) ويسرع عملية التدريب.
  • عدم وجود تأخير في الاستدلال (inference): بعد تدريب المصفوفتين `B` و `A`، يمكن "دمجهما" مع المصفوفة الرئيسية `W_0` عن طريق حساب `W = W_0 + BA`. وبهذه الطريقة، لا تضاف أي حسابات إضافية أو تأخير أثناء استخدام النموذج[1].
  • النمطية والتبديل السريع بين المهام: تمثل محولات LoRA المدربة ملفات صغيرة (بضع ميغابايت). هذا يسمح بتخزين العشرات من المحولات لمهام مختلفة بسهولة والتبديل بينها بسرعة دون تغيير النموذج الأساسي[3].

القيود والتعديلات

على الرغم من أن LoRA فعالة جدًا، إلا أن طبيعتها منخفضة الرتبة قد تكون قيدًا للمهام التي تتطلب حفظ كمية كبيرة من المعلومات الجديدة. لحل هذه المشكلة وغيرها، تم اقتراح تعديلات مختلفة.

QLoRA - كيولورا

QLoRA (Quantized Low-Rank Adaptation - التكييف المكمّى منخفض الرتبة) هي واحدة من أشهر التعديلات، تم اقتراحها في عام 2023. تجمع هذه التقنية بين LoRA والتكميم بـ 4-بت للنموذج الأساسي[4]. هذا يسمح بتقليل متطلبات الذاكرة بشكل أكبر، مما يجعل من الممكن ضبط نماذج تحتوي على عشرات المليارات من المعلمات (مثل نماذج 65B) على وحدة معالجة رسوميات (GPU) استهلاكية واحدة. على أساس QLoRA، تم إنشاء نموذج Guanaco على وجه الخصوص، والذي أظهر نتائج تضاهي ChatGPT.

تعديلات أخرى

  • MoRA (High-Rank Updating): اقتُرحت للمهام التي تظهر فيها LoRA أداءً غير كافٍ بسبب قيود الرتبة. تستخدم MoRA أساليب تسمح بتحديث الأوزان برتبة عالية، مع الحفاظ على الكفاءة من حيث عدد المعلمات[5].

التنفيذ والتطبيق

انتشرت تقنية LoRA على نطاق واسع بفضل فعاليتها وسهولة دمجها. لعبت مكتبة PEFT (Parameter-Efficient Fine-Tuning) من شركة Hugging Face دورًا رئيسيًا في نشرها. توفر PEFT واجهة موحدة لتطبيق LoRA وغيرها من أساليب PEFT على النماذج من منظومة Transformers[6].

تُستخدم LoRA بنشاط في:

  • تكييف روبوتات الدردشة والأنظمة الحوارية (على سبيل المثال، الضبط الدقيق لنماذج LLaMA وMistral).
  • إنشاء نماذج لتصنيف وتوليد النصوص في مجالات متخصصة.
  • تخصيص النماذج لتناسب أسلوبًا معينًا أو تنسيق بيانات محدد.

روابط

المراجع

  • Hu, E.J. et al. (2021). LoRA: Low-Rank Adaptation of Large Language Models. arXiv:2106.09685.
  • Dettmers, T. et al. (2023). QLoRA: Efficient Finetuning of Quantized LLMs. arXiv:2305.14314.
  • Zhang, Q. et al. (2023). AdaLoRA: Adaptive Budget Allocation for Parameter-Efficient Fine-Tuning. arXiv:2303.10512.
  • Chen, Y. et al. (2023). LongLoRA: Efficient Fine-Tuning of Long-Context Large Language Models. arXiv:2309.12307.
  • Mao, K. et al. (2024). A Survey on LoRA of Large Language Models. arXiv:2407.11046.
  • Jiang, T. et al. (2024). MoRA: High-Rank Updating for Parameter-Efficient Fine-Tuning. arXiv:2405.12130.
  • Liu, Z. et al. (2024). ALoRA: Allocating Low-Rank Adaptation for Fine-Tuning Large Language Models. arXiv:2403.16187.
  • Liu, J. et al. (2025). RoRA: Efficient Fine-Tuning of LLM with Reliability Optimization for Rank Adaptation. arXiv:2501.04315.
  • Albert, P. et al. (2025). RandLoRA: Full-Rank Parameter-Efficient Fine-Tuning of Large Models. arXiv:2502.00987.
  • Tastan, N. et al. (2025). LoFT: Low-Rank Adaptation That Behaves Like Full Fine-Tuning. arXiv:2505.21289.

هوامش

  1. 1.0 1.1 1.2 Hu, E.J., et al. «LoRA: Low-Rank Adaptation of Large Language Models». arXiv:2106.09685. [١]
  2. Mao, K., et al. «A Survey on LoRA of Large Language Models». arXiv:2407.11046. [٢]
  3. Noble, Joshua. «What is LoRA (Low-Rank Adaption)?». IBM Technology. [٣]
  4. Dettmers, T., et al. «QLoRA: Efficient Finetuning of Quantized LLMs». arXiv:2305.14314. [٤]
  5. Jiang, Z., et al. «MoRA: High-Rank Updating for Parameter-Efficient Fine-Tuning». arXiv:2405.12130. [٥]
  6. «LoRA (Low-Rank Adaptation)». Hugging Face LLM Course. [٦]