close menu

על תופעת "הירידה הכפולה" המאפשרת את מודלי הענק המודרנים

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

על Double Descent

תופעה הנצפתה במודלים רבים שונים ומשונים וזכתה לשם "Double Descent" מתארת התנהגות לא צפויה של מודלים עמוקים: משתפרים -> הופכים גרועים יותר -> משתפרים שוב (הרבה יותר) – במאמר [2] מOpenAI מראים הכותבים שתופעה זו מתרחשת בכל משפחות המודלים העמוקים:
  • תחילה ביצועי המודל הולכים ומשתפרים..
  • ..אחר כך הם הופכים גרועים ומחמירים (אוברפיטינג)..
  • ..אבל (!!) לאחר מכן הם הולכים ומשתפרים שוב הרבה יותר.

עם הגדלת המודל, גודל הדאטה וכוח המחשוב.

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

כדי שיהיה ברור: תופעה זו מאפשרת את כל מה שאנחנו רואים היום: אימון מודלי ענק (כמו ChatGPT וGPT-3) לא היה אפשרי אלמלא היתה מתרחשת ומאפשרת אימון מודלים אלו ב"ירידה השניה" הנובעת מהגדלת המודל.

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

כן. אני מסכים. מוזר מאד.

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

רעש תיוג – תמונות מתוייגות לא נכון: "תמונת כלב מתויגת בטעות כחתול"

מספרם הרב של הניסויים שבוצעו עולה כי התופעה גם מתקשרת לרעשים בתיוג הדאטה – ככל שהתיוג רועש יותר: התופעה חזקה יותר (איזור התאמת היתר "עמוק יותר" מבתחנת ירידת הלוס)

מסקנות:

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

דמיינו "טריקים" (למשל כמו Scheduler חכם לLearning Rate) כ"מזיזים" את גרף הDouble Descent אך צורתו נשארת זהה.

כשיותר פרמטרים ≠ יותר טוב
התופעה מתרחשת גם בצורתה ההפוכה:

באופן מפתיע

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

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

ישנה האפשרות שבעוד כמה צעדי אימון המודל יעבור ל"ירידה השניה" וישתפר משמעותית.

[בבקשה גם שמרו את המודל בצד לפני "העליה".. למקרה ש..]

מה מקור התופעה?

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

מאמר: Toy Models of Superposition
מאמר: Superposition, Memorization, and Double Descent

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

סופרפוזיציה ברשתות נוירונים

היה נחמד אם נוירונים בודדים היו לומדים פיצ'רים הניתנים לפירוש נקי מהקלט בזמן האימון..

למשל בתמונות: נוירונים שהיו נדלקים רק עבור "צבע אדום" או רק עבור "אוזניים של כלב".

בחלק מהמקרים זה בהחלט המצב, אך במקרים רבים לא.
נוירונים יורים עבור כמה תכונות שונות ויצוג תכונות שונות "מתפזר" על פני הרשת כולה.
עולה השאלה: עבור אילו מקרים נוירונים לומדים תכונות נקיות מהדאטה? עבור אלו מקרים לא?
המאמרים ארוכים מאד ומכילים ניסויים רבים, ניתן לסכמם ל:
כאשר אין למודל את היכולת (מבחינת כמות הפרמטרים) ליצג את נתוני האימון נראה כי הפרמטרים מציגים תופעת סופרפוזיציה – נוירונים בודדים הלומדים לייצג כמה תופעות. [3][4][5]

ביצועיהם הלא פרופורציונלים של מודלי ענק

האם גם זה "Double Descent?"
מודלי ענק מפגינים ביצועים לא פרופורציונלים לגודלם: ככל שמודלים הולכים וגדלים ביצועיהם הולכים ומשתפרים..
..אך מגודל מודל מסויים מתרחש מעבר פאזה וביצועי המודל קופצים משמעותית ו"מאיצים".

מודלי הענק שאנו מכירים טובים "הרבה יותר מידי" ביחס למודלים קטנים ומתנהגים שונה מהם משמעותית – "ישנם שני סוגים שונים של טרנספורמרים: גדולים (מעל 6.7B) וקטנים – אין להכליל מהאחד לשני." [7]

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

תופעה זו המתרחשת רק ברשתות נוירונים הגדולות מ6.7 מיליארד פרמטרים. [7]

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

מעניין? אם ערכים אלו מעניינים אתכם אני ממליץ בחום לגשת לבלוג [7] ברפרנסים ולקרוא עליהם שם. הבלוג כתוב מצוין! (וככה "על הדרך" מציג שיטה בה ניתן להריץ מודל בגודל 200 מיליארד פרמטרים על מחשב אישי ביתי.. בקטנה..)

נוירונים ל"שינון" ונוירונים ל"הכללה"

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

לא להתבלבל עם יצוגים הנלמדים מהמידע עצמו בסט האימון. הבדיקה שנעשתה מציגה גרף המכיל את יצוגי הנתונים עצמם מסט האימון. המודל לא למד תכונות מתוך הנתונים – המודל למד "לזהות את וקטורי הנתונים" כמו שהם. כלומר מפריד בין הוקטורים (!!) השונים מסט האימון. [או בעברית: לא למד מידע משמעותי – למד לשנן את נתוני האימון]

רפרנסים:
[1] – הכוונה לרשתות עמוקות "מספיק גדולות" המסוגלות להכיל את הדאטה. באותה השיחה לא דובר כלל על מודלי שפה מכיוון שעוד לא הומצאו הטרנספורמרים, ההתערבות היתה על אימון רשת קונבולוציה על תמונות.
[2] – על Double Descent – רשתות נוירונים גדולות מתנהגות באופן מפתיע ונוגד אינטואיציה בהקשרי התאמת יתר: https://openai.com/blog/deep-double-descent/
[3] – על סופרפוזיציה Toy Models of Superposition כאן: https://transformer-circuits.pub/2022/toy_model/index.html
[4] – פענוח וקטורים מתוך רשתות נוירונים – Decoding The Thought Vector כאן: https://gabgoh.github.io/ThoughtVectors/
[5] – בנית רשתות נוירונים ממעגלים – Zoom In: An Introduction to Circuits כאן: https://doi.org/10.23915/distill.00024.001
[6] – אקטיבציות חריגות במודלי ענק – https://arxiv.org/pdf/2208.07339.pdf
[7] – ערכים חריגים באקטיבציות המודל – https://timdettmers.com/…/llm-int8-and-emergent-features/
עוד בנושא: