איך מדבגים טרנספורמרים?
ועם 15 אצבעות.
מאד מלאכותית
מדריך: איך מדבגים טרנספורמרים?
בימים אלה: הכל. (חוץ מטבלאות. אבל הכל.)
"האם הית קונה כרטיס לוטו שסיכוי הזכיה במיליון דולר בו הם 99% אבל אם אתה מפסיד (בסבירות של 1%) אתה מת?"
מודל: "קונה שניים."
"אבל יםםםם (אתם תאמרו) טרנספורמרים לא מבינים מה הם מספרים בכלל! הוא לא יכול לקבל החלטה הסתברותית!" –
לא נכון: מבחינת טרנספורמרים מספרים הם באמת "עוד אותיות" אבל טרנספורמרים בהחלט יכולים ללמוד לבצע חישובים במספרים (כן כן! נסו לאמן את GPT2 לעשות את זה). כדי לבדוק את זה אימנתי בעצמי טרנספורמרים לפתור תרגילי חשבון במספרים עד 4 ספרות בסט האימון ואחרי זה בולידציה בדקתי את המודל על מספרים בעלי 8 ספרות ומעלה. המודל הגיע ל100% תרגילים פתורים נכון. (עגול.) אני חושב שאפשר לאמר שהוא הכליל. [חשוב רק להוסיף את הספרות כאותיות בודדות כי אחרת הוא פשוט לא יראה אותן].
-
קלט – להסתכל על "מה המודל מסתכל" בקלט ולנסות להסביר על פי הקלט את התנהגות המודל (שיטה מוכרת לדוגמה: GradCam)
-
התפתחות היצוג הנסתר – להסתכל על השינוי ביצוג הנסתר של המשפט לאורך יצירת המשפט.
-
אקטיבציות – להסתכל על האקטיבציות בתוך המודל ולהבין מהן כיצד המודל "רואה" כל חלק במשפט.
(המודל GPT2-XL)
מיותר לציין: המודל מצליח..
-
טוקן ראשון: כמעט תמיד ישנו קלאסטר שכל מטרתו היא להסתכל על הטוקן הראשון במשפט.
-
ירידות שורה: כמו כן, בטקסט בעל כמה שורות נוצר קלאסטר המסתכל רק על ירידות שורה
-
מחזוריות: אותו הדבר עבור כל רכיב מחזורי בטקסט (כמו סוגריים למשל).
-
חלוקה לפי משמעות: המודל לומד מפרק את המשפט לרכיבים לפי משמעותם: למשל ביצירת רשימת "מדינות באירופה": ישנו קלאסטר שלם המוקדש רק לשמות מדינות.
-
איזורים המתמקדים בחלקים ספציפיים של הטקסט לפי האורך (התחלה , אמצע, סוף). זה מעניין כי המידע היחיד שיש לשכבות אלו לגבי המיקום מגיע מהpositional encoding (שבGPT2 הוא נלמד).
-
איזורים הלומדים מאפיינים לשוניים, למשל, גוף דיבור ("הוא", "הם"), פעלים, מילות קישור, ואיזור הלומד צמדי שמות עצם ושמות תואר צמודים.
-
איזורים הלומדים להסתכל על תכונות תחביריות כמו פסיקים ונקודות.
-
איזורים המסתכלים על הטוקנים הראשונים (תמיד יש כאלו).
-
ביצירת טקסט, אנחנו יכולים להשתמש בשיטות אלו כדי לדעת בבירור אילו חלקים במשפט גרמו למודל לאמר את מה שאמר (ומאיזה חלקים התעלם) ובכך לשנות את הפרומפטים שלנו \ לאמן את המודל על משפטים המכילים את החלקים שהתעלם מהם.
-
דוגמה פשוטה ביצירת תמונות: כולנו כבר יודעים שמודלים לא טובים בציור אצבעות. אנשי האינטרנט הטובים מנסים בכל כוחם לתקן בעיה זו על ידי פרומפטים מתוחכמים.
הם לפעמים מגיעים לפרומפט קסמים ארוך שפשוט מודבק בסוף כל טקסט שהם מכניסים אל המודל (יש כמה כאלה רצים ברשת).