Low-Rank Adaptation (LoRA) (HE)

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` היא היפר-פרמטר והיא קטנה משמעותית (`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).
  • יצירת מודלים לסיווג וגנרציה של טקסט בתחומים מתמחים.
  • התאמה אישית של מודלים לסגנון או פורמט נתונים ספציפי.

קישורים

  • תיעוד רשמי של ספריית PEFT מאת Hugging Face

ספרות

  • 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. [1]
  2. Mao, K., et al. «A Survey on LoRA of Large Language Models». arXiv:2407.11046. [2]
  3. Noble, Joshua. «What is LoRA (Low-Rank Adaption)?». IBM Technology. [3]
  4. Dettmers, T., et al. «QLoRA: Efficient Finetuning of Quantized LLMs». arXiv:2305.14314. [4]
  5. Jiang, Z., et al. «MoRA: High-Rank Updating for Parameter-Efficient Fine-Tuning». arXiv:2405.12130. [5]
  6. «LoRA (Low-Rank Adaptation)». Hugging Face LLM Course. [6]