אימון QLoRA ל-LLM: כימות יעיל עם LoRA למודלים גדולים

מודל גדול עונה בביטחון בדמו, אבל טועה בנתונים שלכם ולא מכיר את הטרמינולוגיה שלכם. אנחנו מבצעים כיוונון עדין למודלים עם כימות משקלים ומתאמים מקצה לקצה: ביקורת נתונים, הגדרה, הערכת איכות, מסירת מתאמים ותיעוד. עובדים על מלאי מוגבל של מאיצים — לוחות זמנים ואיכות צפויים.

תחומי פיתוח AI

שאלות נפוצות

העבודות האחרונות

  • פיתוח אפליקציית ווב עבור FEEDME
    פיתוח אפליקציית ווב עבור FEEDME
    1365
  • פיתוח חנות מקוונת לחברת FURNORO
    פיתוח חנות מקוונת לחברת FURNORO
    1330
  • עיצוב לוגו לחברת B2B Advance
    עיצוב לוגו לחברת B2B Advance
    776
  • פיתוח אפליקציית ווב עבור Enviok
    פיתוח אפליקציית ווב עבור Enviok
    1077
  • פיתוח לוגו חברת AIDER
    פיתוח לוגו חברת AIDER
    1022
  • פיתוח CRM עבור Chasseurs
    פיתוח CRM עבור Chasseurs
    1113

QLoRA: היכן נשבר כיוונון עדין רגיל של מודל גדול

כיוונון עדין מלא של מודל גדול מעדכן את כל המשקלים בבת אחת, ואיתם מחזיק בזיכרון גם את הגרדיאנטים ואת מצב האופטימייזר. לנפח המשקלים עצמם מתווספות אקטיבציות ביניים, וצריכת הזיכרון הכוללת עולה פי כמה על גודל המודל בקובץ.

הרצה על כרטיס אחד מסתיימת בהצפת זיכרון בזמן האימון: התהליך קורס באמצע האפוק, הצ'קפוינט לא נשמר, ועבודת השעות הקודמות הולכת לאיבוד.

מכאן מתחילה בחירה בין אפשרויות גרועות. מקטינים את גודל האצווה — האימון מתנהל עם חישובים חוזרים ונמשך הרבה יותר, וגרדיאנטים רועשים מפריעים להתכנסות. פורסים את השכבות על פני כמה מאיצים — משלמים על כך בתקשורת ביניהם ונתקלים באותה תקרה כשגדל אורך ההקשר.

מקצרים את ההקשר או מנקים את המדגם — ומאבדים בדיוק את החלק בתחום התוכן שלמענו נדרש כיוונון המודל לנתונים שלכם.

התוצאה הלא נעימה ביותר היא לא הקריסה, אלא ההידרדרות השקטה. ההרצה עוברת, ההפסדים על מדגם האימון יורדים, אבל על המדגם המוחזק הם נתקעים ברמה קבועה, והמודל מתחיל לשחזר ניסוחים מתוך ההוראות במקום את ההתנהגות הנדרשת. האבחון יקר: המשאבים כבר נוצלו, והתוצאה אינה שמישה.

השורש הוא שכיוונון עדין מלא משכתב את המודל כולו למען משימה שברוב המקרים דורשת תיקון של חלק קטן בלבד מההתנהגות. QLoRA פותרת זאת אחרת: משקלי הבסיס נשמרים בייצוג בסיביות נמוכות ומוקפאים, ואילו מה שמאומן הם אדפטרים קומפקטיים בדרגה נמוכה של LoRA — שבריר אחוז מכלל הפרמטרים. להלן נפרק כיצד זה בנוי והיכן נשארים האילוצים.

מה נותן כיוונון עדין עם קוונטיזציה של משקלים: אפקט מדיד

קוונטיזציה של משקלים מתרגמת את מודל הבסיס לייצוג בסיביות נמוכות, בעוד שכיוונון עדין עם LoRA משאיר את האדפטרים בדייקנות מלאה.

גרדיאנטים ומצבי אופטימייזר מחושבים רק עבור האדפטרים — שבריר אחוז מהפרמטרים — ולכן החיסכון בזיכרון בזמן האימון נמדד בפעמים: תצורה שנזקקה בעבר לצומת של כמה מאיצים רצה כעת על מאיץ אחד. המלאי שהתפנה מופנה לגודל אצווה גדול יותר ולאורך הקשר ארוך יותר.

זמן הכיוונון העדין של המודל יורד משתי סיבות: פחות התקנים — פחות החלפת גרדיאנטים, וצעד האופטימייזר מעדכן רק חלק קטן מהטנזורים. הרצה על קורפוס של מאות אלפי דוגמאות נכנסת למסגרת של שעות — השערות נבדקות בתוך יום.

שיעור ההרצות המוצלחות עולה: זיכרון השיא כבר לא נתקע בתקרת המאיץ, ונפילות בגלל מחסור בזיכרון עוברות ממצב תדיר למצב נדיר.

איכות התשובות של המודל נשמרת: משקלי הבסיס מוקפאים, והאבדן מקוונטיזציה נמדד על המדגם המוחזק לפני העלייה לפרודקשן.

במשימות תחומיות — ניתוח פניות, חילוץ שדות, תשובות מתוך בסיס ידע — הפער מכיוונון עדין מלא נשאר בתוך שולי הטעות, כל עוד דרגת האדפטרים, המודולים הנבחרים וקצב הלמידה מותאמים למשימה.

אפקט נפרד הוא יכולת השחזור: על סטאק Hugging Face אנו מנהלים גרסאות של תצורת ההרצה ושל האדפטרים עצמם בנפרד ממשקלי הבסיס. עדכון המודל הופך להחלפה של אדפטר, שהוא קל בסדרי גודל ממודל הבסיס, והחזרה לגרסה קודמת אורכת דקות.

QLoRA וחלופות: השוואת גישות ומגבלות

הבחירה בשיטת הכיוונון העדין של המודל נקבעת לפי שלושה צירים: הזיכרון הזמין במאיץ, היקף הנתונים ואחידותם, והדרישות לשחזור ולחזרה לאחור. להלן ארבע חלופות התאמה שביניהן באמת בוחרים בפרויקטים.

חלופה מתי מתאימה מגבלות
כיוונון עדין מלא תחום או שפה חדשים, הרבה נתונים, התנהגות המודל משתנה לעומק דרישות זיכרון מקסימליות, עבור כל משימה נשמר סט מלא של משקלים
אדפטרים של LoRA פורמט, סגנון, חילוץ ישויות; נדרשים עשרות וריאנטים למשימות שונות דרגת האדפטר מגבילה את היקף הידע החדש, ובנתונים עם שינוי חד האיכות יורדת
כיוונון עדין עם קוונטיזציה (QLoRA) מודל גדול והזיכרון מוגבל; האדפטר מאומן מעל משקלים בייצוג של 4 סיביות צעד האימון איטי יותר, והתוצאה רגישה להגדרת הקוונטיזציה
כיוונון פרומפטים סיווג ומשימות צרות, מעט דוגמאות מתויגות קולט ידע חדש בצורה חלשה, רגיש לניסוח הקלט

ההבדל בין QLoRA לאדפטרים הקלאסיים הוא שמשקלי הבסיס מוקפאים בייצוג של 4 סיביות מסוג NF4, ורק מטריצות בדרגה נמוכה מאומנות: דרישות הזיכרון יורדות, והאיכות נשארת קרובה לזו של כיוונון עדין מלא.

כלים ברמה של Hugging Face PEFT מאפשרים להחליף בין החלופות על אותה בסיס קוד, ולכן השיטה הפיכה: מתחילים מאדפטרים ועוברים לכיוונון עדין מלא רק כשקיים מחסור מוכח באיכות.

סדר העבודה: מביקורת נתונים ועד מסירת המודל

לפני האיטרציה הראשונה מגדירים מה נחשב לתוצאה: סוג המשימה, פורמט התשובה של המודל ומדד הקבלה. בלי זה, כיוונון הפרמטרים הופך לניסוי וטעייה עיוור. מכאן ממשיכים שלב-שלב, וכל שלב מסתיים בארטיפקט שאפשר לבדוק.

  1. ביקורת נתונים והגדרת המשימה. בודקים מה כבר קיים: לוגים, מסמכים, טבלאות. סופרים את ההיקף לפי מחלקות, מחפשים כפילויות, ערכים חסרים ודליפות של משתנה המטרה — מאפיין שמכיל בעקיפין את התשובה מאפס את המדד בקבלה.

  2. סכמת האימון. מחלקים את המדגם למדגם אימון ולמדגם מוחזק כך שלא יחתכו זה את זה לפי לקוחות או לפי זמן. מסכימים מראש איזו תשובה נחשבת נכונה ואיזו נחשבת לטעות מסוכנת.

  3. הכנת מערך הנתונים ותיוג דוגמאות. מנרמלים את הטקסטים לצורה אחידה, ויוצרים זוגות של «שאילתה — תשובת ייחוס». מקרים שנויים במחלוקת מתייגים לפי הנחיה כתובה, ומודדים את מידת ההסכמה בין המתייגים.

  4. הגדרת תצורת QLoRA. בוחרים את מודל הבסיס, את דרגת האדפטר, את השכבות הנבחרות ואת אורך ההקשר. בודקים התכנסות על חתך קטן לפני שמריצים את ההרצה המלאה.

  5. אימון ובדיקת איכות המודל. מנהלים את ההרצה עם הערכה ביניים על המדגם המוחזק, כדי לתפוס התאמת יתר לפני הסוף. בנפרד מחשבים מדדים על מקרים נדירים וקריטיים ומשווים למודל המקורי.

  6. מסירת המודל ללקוח. מוסרים את המשקלים, קובצי התצורה, סקריפט ההרצה והתיעוד. מעבירים את הידע לצוות: כיצד לעדכן נתונים, למה להסתכל בדוחות, ובאילו אותות לבצע כיוונון מחדש.

מה נשאר אצל הלקוח: אדפטרים, משקלים, תיעוד

האימון לא מסתיים ברגע שהמדד על מדגם הבקרה הגיע לרמה הרצויה. הערך הוא במה שנשאר אחר כך: ארטיפקטים שלפיהם הצוות שלכם יבצע בעצמו כיוונון מחדש של המודל על נתונים חדשים, יבדוק איכות ויחזור לגרסה קודמת — בלי שנדרש לכך.

  • אדפטרים שמורים — משקלי הכיוונון העדין ב-QLoRA בנפרד ממודל הבסיס: הצמדה לגרסת משקלי הבסיס, סכום ביקורת וציון על אילו נתונים הם הופקו.
  • תצורת האימון — דרגת האדפטר והיקפו, המודולים הנבחרים, סכמת הקוונטיזציה, קצב הלמידה, המתזמן ומספר האפוקים: לפי קובץ זה ההרצה חוזרת על עצמה בסביבה אחרת.
  • סכמת אימון המודל — כיצד נאסף ונוקה מערך הנתונים, כיצד חולק לאימון ולבקרה, כיצד תוקננו הדוגמאות ובאמצעות מה נעקבה התאמת יתר.
  • דוח מדדים — הדינמיקה לפי אפוקים, השוואה בין מודל הבסיס למודל שעבר כיוונון עדין על מערך הבקרה, ניתוח שגיאות לפי סוגי שאילתות ודוגמאות לתשובות לפני ואחרי.
  • מערך בדיקות רגרסיה — שאילתות קבועות שמולו נבדקת הגרסה החדשה לפני העלייה לאוויר.
  • מדריך הפעלה — חיבור האדפטר למודל הבסיס, מצבי ההסקה, עבודה עם הקשר ארוך ומגבלות זיכרון.
  • נהלי העבודה עם המודל — מתי ליזום כיוונון מחדש, אילו נתונים להוסיף, כיצד לנהל גרסאות של אדפטרים וכיצד לחזור לגרסה קודמת.

הכול מונח במאגר אחד עם תיאור המבנה: הכיוונון העדין נשאר ניתן לשחזור, והמודל — בתשתית שלכם.

מקרה בוחן: כיוונון עדין של מודל על מלאי מצומצם של מאיצים

הלקוח הגיע עם המשימה: מודל בן 13 מיליארד פרמטרים צריך להחזיק היטב מינוח ענפי ולהפיק תשובה בפורמט מוגדר בקפדנות, ולפי היכולת הקיימת — ארבעה מאיצים בסביבה סגורה. כיוונון עדין מלא על מלאי כזה לא עלה כלל: מצבי האופטימייזר והגרדיאנטים לא נכנסו לזיכרון, והתהליך קרס כבר בצעד הראשון.

העברנו את האימון למצב מקוונטז: מודל הבסיס נטען בייצוג של 4 סיביות, רק אדפטרים בדרגה נמוכה מאומנים, ומצבי האופטימייזר מחושבים עבור חלק קטן מהפרמטרים. נפח האימון הצטמצם בסדרי גודל, ואיכות התשובות החלה להיקבע לפי הנתונים ולא לפי עתודת החומרה.

מדדים לפני ואחרי: לפני — אפס הרצות מוצלחות על המלאי הקיים; אחרי — האימון מתנהל על שני מאיצים, ושניים נוספים נשארים להסקת המודל ולניסויים מקבילים. שיעור התשובות הנכונות על מערך שאלות ענפי עלה מ-61% ל-88%, ועמידה בפורמט — מ-70% ל-96%. אפוק אימון אחד אורך שליש מהזמן שנדרש לניסיון של כיוונון עדין מלא על אשכול בשכירות.

לוחות זמנים ומסירה

ההטמעה ארכה ארבעה שבועות: איסוף וניקוי מערך הנתונים, כיוונון דרגת האדפטרים וקצב הלמידה, וקבלה על מערך שאלות קבוע. המסירה כללה סקריפטים לאימון, תצורות של אדפטרים, נקודות ביקורת שמורות והוראות כיצד לחזור על ההרצה בלי שנדרש לכך.

QLoRA בפרויקט הזה הוא לא ניסוי, אלא מצב עבודה: הצוות הפנימי מבצע כיוונון מחדש של המודל על נתונים חדשים בעצמו, בלי להמתין לנו ובלי להרחיב את מלאי המאיצים.

במה QLoRA נבדלת מכיוונון עדין מלא בפועל?

כיוונון עדין מלא משנה את כל משקלי המודל: עבור כל פרמטר נשמרים גרדיאנטים ומצבי אופטימייזר, והזיכרון שנדרש לכך עולה פי כמה על משקל המודל עצמו. לכן הרצות כאלה נתקעות בצורך בכמה מאיצים ובסנכרון מבוזר, ולא בהיקף הנתונים. QLoRA משאירה את משקלי הבסיס מוקפאים ומאמנת רק אדפטרים בדרגה נמוכה.

מודל הבסיס נשמר בצורה מקוונטזת של 4 סיביות, והחישובים מתבצעים בדייקנות גבוהה יותר — הרווח בזיכרון הוא פי כמה, ולא באחוזים בודדים. משימה שנזקקה בעבר לכמה צמתים נפתרת על כרטיס אחד. המחיר לכך הוא פריסה מחדש של בלוקים מקוונטזים בכל צעד.

מבחינת מהירות, צעד אימון בודד ב-QLoRA איטי יותר: את המשקלים יש לפרוס תוך כדי ריצה. לעומת זאת, כל מחזור הכיוונון העדין לרוב קצר יותר — אין העברת גרדיאנטים בין צמתים ואין המתנה לסנכרון. לאחר מיזוג האדפטר עם מודל הבסיס, מהירות התשובה אינה משתנה.

דיוק האדפטר צפוי מראש: כשמצמצמים את התחום, הסגנון או את פורמט התשובה, הדרגה הנמוכה משיגה את הכיוונון העדין המלא. אם יש להטמיע במודל ידע חדש או להחליף שפה, החלופה המלאה מדויקת יותר — הדרגה מגבילה את היקף מה שהמודל מסוגל להוסיף.

גם אופן העדכון משתנה: כיוונון עדין מלא מניב תצלום חדש של המודל כולו, שנשמר ומנוהל בגרסאות בשלמותו. QLoRA מניבה קובץ אדפטר קומפקטי — אותו מחזיקים לצד הבסיס, מחליפים לפי משימות שונות ומחזירים לאחור בלי לבנות מחדש את המודל.

ספקות טכניים: מפרקים שאלות נפוצות

לפני ההתחלה בודקים הלקוחות את הסיכונים: האם המודל לא נסוג אחרי כיוונון עדין, האם יספיקו הנתונים שלהם ומה עם הגנת המידע הארגוני. להלן תשובות לספקות שעולים לרוב בשלב ההערכה.

האם האיכות במשימות כלליות תיפגע?

משקלי הבסיס מוקפאים, ורק אדפטרים בדרגה נמוכה מאומנים — הידע הכללי אינו נכתב מחדש. לפני העלייה לאוויר מריצים מערך אחיד של שאלות בקרה על הגרסה המקורית ועל זו שעברה כיוונון עדין: אם יש פערים — מפחיתים את מספר האפוקים או את תרומת האדפטר.

יש לנו מעט נתונים — האימון יספיק?

למשימה צרה די במאות בודדות של זוגות איכותיים «שאילתה — תשובה», שאותם משלימים בנתונים סינתטיים ובתיוג של פניות אמיתיות. אם הדוגמאות מועטות ממש, מצמצמים את המשימה לפעולה אחת — הדיוק עולה במקום להתפזר על פני כל התחום.

המודל כבר בפרודקשן — האם הכיוונון העדין ישבור אותו?

האימון מתנהל בסביבה נפרדת ואינו נוגע בשירות הפעיל. האדפטר מתחבר לאותו מודל בסיס, ולכן המעבר הוא החלפה של קובץ אחד, והחזרה לאחור היא החזרת הקודם — בלי השבתה ובלי הטמעה מחדש.

איזה ציוד נדרש ל-QLoRA ובאיזו תדירות לבצע כיוונון מחדש?

מספיק כרטיס אחד בדרגה מקצועית: הקוונטיזציה מכווצת את המשקלים, ואין צורך באשכול. הנתונים אינם יוצאים מהסביבה שלכם, ואת הכיוונון מחדש מפעילים לפי מדד — כשעולה שיעור הכישלונות, ולא לפי לוח שנה.

נדבר על המשימה: מהיכן מתחילה העבודה על המודל

מתחילים לא מהאימון, אלא מפירוק התרחיש: מה המודל צריך לעשות טוב יותר ממודל הבסיס, אילו תשובות נחשבות שגויות ובמה זה נמדד. כך הערכת משימת הכיוונון העדין נשענת על מדד איכות ולא על היקף מערך הנתונים, וההחלטה על QLoRA מתקבלת לגופו של עניין ולא כברירת מחדל.

מה אנחנו עושים כבר בשלב הראשוני:

  • מפרקים את התרחיש ומנסחים איזו תוצאה נחשבת לשיפור לעומת המודל המקורי;
  • בודקים את הנתונים: שלמות, כפילויות, איכות התיוג, חפיפות בין מדגם האימון למדגם הבדיקה;
  • מציעים סכמת אימון: אילו שכבות מתאימים דרך LoRA, אילו משקלים מחזיקים בצורה מקוונטזת, ואיזה גודל אדפטר מספיק;
  • בונים מערך בדיקה ומערך מדדים — שיעור התשובות הנכונות, עמידה בפורמט, יציבות על שאילתות נדירות;
  • מריצים הרצת אימון ניסיונית על חתך קטן: היא מראה אם המודל מתכנס ואיזה היקף נתונים באמת נדרש;
  • קובעים תוכנית עבודה לפי שלבים עם נקודות בקרה ותנאי עצירה ברור, אם האיכות אינה עולה.

הרצת ניסיון היא הדרך הזולה ביותר להסיר אי-ודאות: היא אורכת שעות ולא שבועות, ומספקת מספרים שאפשר לקבל לפיהם החלטה על התחלת הפרויקט. מכאן ממשיך המחזור המלא: כיוונון עדין, השוואה של האדפטר למודל הבסיס על המדגם המוחזק, ואריזה לשירות עובד.

תארו את המשימה — נחזור עם הערכה, חלופות לסכמה ותוכנית עבודה.