לקט מתמלא של סקירות קצרות של #shorthebrewpapereviews, החל מ- 13.11.23
Idea2Img: Iterative Self-Refinement with GPT-4V(ision) for Automatic Image Design and Generation
https://huggingface.co/papers/2310.08541
אוקיי, חברים אחרי הפסקה האורך של יותר מחודש אני חוזר לסקור קצרות של #shorthebrewpapereviews. האמת שעשיתי כמה נסיונות לחזור קודם לכן אבל המוח כנראה לא היה מוכן לכך. מתחילים מהמאמר שיצא שבוע אחרי המלחמה ולאט לאט נתקדם עם המאמרים היותר טריים. אז המאמר (די קליל כי מוחי לא חזר לעצמו במלוא החדות) שנסקור היום פיתח שיטה המאפשרת לשכלל את היכולות של GPT4-V (שיודע לעבוד עם דאטה ויזואלי) ביצירה תמונה מתיאור רעיוני. כלומר עבור תמונה של אדם ותמונה של כלב הוא מאפשר ליצור תמונה של אותו האדם עם הכלב מהתמונה השנייה. השיטה די אינטואיטיבת ומנצלת יפה את היכולות של מודלי שפה-תמונות משולבים. השיטה מורכבת מ 4 שלבים:
- המודל יוצר N פרומפטים מרעיון (IDEA) נתון. ליצירת פרומפטים הרעיון (שיכול להיות תיאור או כמה תמונות) מוזן ל-LMM שזה Language Multimodal Model (לא לבלבל עם LLM).יי כמובן של יש פרומפט קבוע (מטה-פרומפט) שמוזן ל-LMM כדי להסביר לו מה לעשו. לאחר מכן יוצרים N תמונות מהפרומפטים האלו (אפשרי עם מודל אחר). גם ה״רעיון״ מוזן למודל כמובן.
- בוחרים את התמונה הכי טובה לפי מידת התאמה לרעיון באמצעות שאילתה ל-LMM (הם אמרו שרק מודלים מתקדמים יודעים לעשות זאת ביעילות רבה).
- מזינים את התמונה הנבחרת ל-LMM ומבקשים ממנו לספק לנו משוב על איכותה (של התמונה). בשביל לשפר את איכות משוב שומרים בזכרון את כל התמונות שנבחרו בשלב 2 כולל הפרומפט שהן נוצרו ממנו. זה משרת כסוג של "גרדיאנט״ בתהליך הזה.
- חוזרים על שלבים 1-3 T איטרציות ומקבלים את התמונה מה״רעיון״.
התוצאות די נחמדות
Table-GPT: Table-tuned GPT for Diverse Table Tasks
https://huggingface.co/papers/2310.09263
אתם בטח מודעים ליכולות המטורפות של מודלי שפה אבל הם עדיין מתקשים להסתדר עם דאטה טבלאי. המאמר שנסקור היום ב-#shorthebrewpapereviews מציע שיטת כיול של מודלי שפה שבאה להקנות להם יכולת לעבוד עם טבלאות. קודם כל בואו נבין למה מודלי שפה בעצם מתקשים לשחזר את הביצועים החזקים שלהם בדאטה טבלאי. הסיבה נעוצה בשינויים בין המאפיינים המהותיים של דאטה טבלאי ושפה טבעית. הטקסט הוא חד כיווני (או משמאל לימין או מימין לשמאל כמו עברית) ולעומת זאת לטבלאות מבנה דו-ממדי. דאטה טקסטואלי לא אינווריאנטי לפרמוטציות לעומת רוב הטבלאות שפרמוטציה של עמודות או של שורות אינה משפיעה על תכונות הטבלה. המחברים מציעים לכייל מודל שפה על המשימות שהן אינהרנטיות לטבלאות שהן כמובן מאוד שונות מהמשימות שאנו רואים בעיבוד שפה טבעית. למשל אחת המשימות שמודל שפה מכויל עליהן היא זיהוי מקומות בטבלה שבהם יש דאטה חסר. משימה אחרת (טיפה יותר מורכבת) היא לאתר שורות בשתי טבלאות שמייצגות את אותו ה"ישות״ (entity). עוד משימות טבלאיות היא השלמה ערכים חסרים בטבלה, הפיכה של שאלה מילולית ששאילתה עבור הטבלה ותמצות של תוכן הטבלה. יש כמעט 20 משימות שונות שעליהן מכיילים מודל שפה והמודל המכויל הנושא שם הלא מפתיע TableGPT מציג ביצועים די טובים.
LoftQ: LoRA-Fine-Tuning-Aware Quantization for Large Language Models
כולכם מכירים את LoRA (Low Rank Adaptation) – השיטה המאוד פופולרית לכיול מודל שפה. יצאו כבר כמה מאמרים שמשכללים את השיטה הזו והיום ב-#shorthebrewpapereviews נסקור את אחד השכלולים האלו. קודם כל נרענן מה זה LoRA. כאמור LoRA היא שיטה לכיול מודלי שפה שבמקום לכייל את המשקלים של המודל על דאטהסט נתון (לכיול) מנסה למצוא את התוספת למטריצת המשקלים (שמכילה את כל משקלי המודל W אחרי אימון מקדים) שממזערת את הלוס על דאטהסט זה. מטריצה תוספת זו היא מטריצה low-rank שניתן לתאר אותה כמכפלה של שתי מטריצות מרנק נמוך A ו- B (מלבניות וקטנות יחסית). כך מספר המשקלים הנלמדים במטריצת התוספת הזו נשמר יחסית נמוך ויותר קל לאמן אותו. בסוף מקוונטטים את המטריצה שיצא אחר הכיול: ניתן לתאר קווינטטי על ידי מכפלה של סכום של W ו-AB במטריצת קווינטוט X שניתן לחשבה בקלות. המאמר מציע שני חידושים:
- מתחילים את הכיול עם מטריצות Q, A ו-B כשכל אחת מהם מטריצה מקוונטטת (8-ביט, למשל) כאשר A ו- B הן מטריצות בעלות רנק נמוך. מטריצות אלו מאותחלות כך שנורמת הפרובניוס (שורש מסכום הריבועים של מטריצה) של W-Q-AB יהיה מינימלי.
- מחשבים את W-Q ואז מוצאים מטריצות A ו-B על ידי הפעלת טרנספורמציית SVD של W-Q.
- חוזרים ל-2 T מספר איטרציות נתון T
מאוד פשוט ואלגנטי וגם הביצועים לא רעים
In-Context Pretraining: Language Modeling Beyond Document Boundaries
https://huggingface.co/papers/2310.10638
כשאתם מאמנים מודל שפה (אימון מקדים) המשימה היא חיזוי הטוקן הבא. כאשר מאמנים מודל שפה בעל חלון הקשר (context) ארוך משרשרים כמה מסמכים שנבחרו באקראי ומאמנים תוך כדי חיזוי הטוקן הבא. המאמר שנסקור היום ב-#shorthebrewpapereviews משכלל את הגישה הזו ומציע לשרשר מסמכים שהם קרובים מבחינת המשמעות אחד לשני במקום לבחור אותם באקראי. איך נבחרים מסמכים קרובים – לפי המרחק בין השיכונים(embedding) שלהם. אבל יש בעיה קטנה עם הגישה הנאיבית הזו. יש מסמכים שהם דומים ליותר מדי מסמכים ואז המודל "יראה״ אותם יותר פעמים מהאחרים שעלול כמובן לפגוע בביצועי המודל המאומן (יוצר סוג של overfit). כדי להתגבר על סוגיה זו המחברים מציעים לתאר את כל המסמכים בדאטהסט על ידי גרף שמשקל של כל קשת בו (בין שני המסמכים) שווה לדמיון ביניהם.ֿ אחרי שיש לנו ביד גרף כזה ניתן לתאר את הבעיה בתור בעייה דומה לזו של איש מכירות המטייל (maximum travelling salesman problem) כאשר המטרה כאן למצוא מסלולים זרים (שהאיחוד שלהם מכיל את כל הקודקודים וכל קודקוד מופיע רק פעם אחת באיחוד הזה). פותרים את הבעיה הזו עם אלגוריתם די אינטואטיבי. לקודקוד נתון בוחרים כמה קודקודים דומים (NN-nearest neighbors) ובונים מהם מסלול בעל משקל כולל מקסימלי (סכום של כל משקלי הקשתות). כל פעם בוחרים קודקוד (מסמך) הקרוב ביותר לקודקוד האחרון שנבחר. מספר NN בכל תת-מסלול נבחר לפי אורך הקונטקסט (אורכו של כל שרשור המסמכים שווה לאורך הקונטקסט). אחרי שמסיימים לבנות כל שרשור מורידים את קוקודיו מהגרף הכולל. לאחר מכן בוחרים מסמך עם הדגרה הכוללת המינימלית (השווה לסכום משקלי הקשתות שיוצאות ממנו) וחוזרים על התהליך. כך גורמים לכל מסמך להיכנס לשרשור עם מסמכים שכמה שיותר דומים לו.
Reward-Augmented Decoding: Efficient Controlled Text Generation With a Unidirectional Reward Model
https://huggingface.co/papers/2310.09520
מי שעקב אחרי המהפכות שהתרחשו בעולם של מודלי שפה ענקיים (LLMs) בטח שמעו על RLHF שזה ראשי תיבות של Reinforcement Leaning with Human Feedback בהקשר של אימון מודלי שפה. המאמר שנסקור היום ב-#shorthebrewpapereviews לוקח אחד מאבני הבניין של RLHF שזה מודל תגמול (reward model) ומשתמש בה לגנרוט של טקסט. מודל תגמול מיועד לשערוך של איכות הטקסט המגונרט על ידי המודל ומרטת RLHF היא למקסם את התגמול (יחד עם עוד כמה מדדים) במטרה לשפר את איכות הטקסט המגונרט. המאמר המסוקר משתמש למודל התגמול לגנרוט של טקסט בפרט ל"כיול״ של הסתברויות של הטוקנים שמודל שפה מחשב בשביל לחזות כל טוקן. כלומר עבור כל טוקן נחזה הסתברותו מוזזת בהתאם לתגמול המצופה על ידי הוספת טוקן זה לטוקנים שכבר גונרטו על ידי המודל. טוקנים בעלי הסתברות גבוהה לפי מודל השפה וגם בעלי ערך גבוה של פונקציית התגמול (הממודלת על ידי מודל תגמול) יקבלו עדיפות על פני הטוקנים בעלי ערכי התגמול נמוכים יותר. מודל התגמול מאומן התאם למשימה נתונה עם פונקציית לוס של המחשבת מרחק בין את התגמול ה-ground truth לזה של המודל לכל טוקן. מעניין כי ככל הקנס על תגמול לא מדויק עולה ככל שהטוקן רחוק יותר מהתחלת הטקסט המגונרט (הקנס על אי דיוק של הטוקן האחרון הוא מקסימלי).
VERA: VECTOR-BASED RANDOM MATRIX ADAPTATION
https://huggingface.co/papers/2310.11454
כבר סקרנו השבוע מאמר שמציע שיפור ל-LoRA שיטת כיול מודלי שפה חסכונית מבחינת משאבי חישוב הנדרשים. היום ב-#shorthebrewpapereviews נסקור שיפור נוסף ל-LoRA המאפשר להקטין את כמות המשאבים הנדרשים לכיול עוד יותר. הסקירה של היום הולכת להיות קצרה וקלילה. אז הקטע ב-LoRA המקורי היה לא לכייל את כל הפרמטרים של מודל שפה (אחרי אימון מקדים) אלא לאמן תוספת לפרמטרים של המודל. כלומר לוקחים את כל הפרמטרים של המודל אחרי המאומן ומאמנים תוספת אליהם שהיא מוגדרת בצורה A*B כאשר A ו- B הם מטריצות בעלות דרגה (ראנק) נמוך (קטנות יותר). לאחר שמאמנים מודל שפה (מוצאים ערכים אופטימליים של A ו-B) על דאטהסט הכיול מבצעים קווינטוט של המטריצה המקורית ושל התוספת. אז המאמר המסוקר מציע להקטין עוד יותר את מספר הפרמטרים במטריצת התוספת ולהציג אותה כמכפלה של bAdB כאשר מטריצות A ו-B הן קבועות לכל השכבות(נגדמות מהתפלגות נורמלית) ווקטורים (לא מטריצות!) b ו-d נלמדות פר שכבה. כך מספר הפרמטרים המנלמדים יורד בצורה משמעות בלי לפגוע בביצועי המודל. בקיצור מודיפיקציה נחמדה של LoRA.
Safe RLHF: Safe Reinforcement Learning from Human Feedback
https://huggingface.co/papers/2310.12773
אחד הדברים שקידמו מודלי שפה ענקיים (LLMs) בתקופה האחרונה הוא טכניקה הלקוחה מ-RL (למידה עם חיזוקים) הנקראת RLHF (למידת RL עם משוב אנושי). טכניקה זו שימשה את לכיול של LLMs וגרמה להם לעקוב להוראות בצורה מדויקת יותר. היום ב-#shorthebrewpapereview נסקור מאמר שמציע שיפור לשיטה הנפלאה הזו. דרך אגב בפעם הראשונה RLHF שימשה לאימון של InstructGPT המודל שקדם ל-ChatGPT שאנחנו כל אוהבים. דרך אגב ניתן להשתמש בשיטות RLHF לא רק למודלי שפה אלא למגוון מטלות מדומיינים שנים (נעשה בהצלחה רבה ב-20 השנה האחורונות). אז מה שזה RLHF למודלי שפה ומה כזה נפלא בו? RLHF מאפשר אימון מודל on-the-fly כלומר המודל מתאמן על דאטה שהוא בעצמו יוצר כמו בבעיות האחרות של RL. זה שונה מלמידה מפוקחת שמתבצעת על דאטהסט סגור שלא משתנה במהלך הלמידה. כדי להפעיל טכניקות RLHF לכיול של LLMs אנו חייבים מודל תגמול (reward) שנותן ציון גבוה לתשובות טובות וציון נמוך לתשובות פחות טובות. בנייה של מודל תגמול נעשית באמצעות שימוש בדאטה מתויג על ידי אנשים כאשר כל מתייג מבצע בחירה של תשובה טובה יותר בין שתי תשובות. לאחר מכן משתמשים בשיטת PPO (Proximal Policy Optimization) כאשר בכל איטרציה המודל מתעדכן ויצר דאטה חדש (זוגות (שאלה, תשובה) חדשים). המאמר מציע לשדרג את הגישה הזו על ידי אימון (על דאטהסט שונה מזה שמודל התגמול מאומן עליו) עוד מודל עלות (cost model) שמודד עד כמה התשובה שניתנה בטוחה (לא רוצים שמודל שפה יסביר איך לשדוד בנק ולא ייתפס). אז התשובות לא הבטוחות יתויגו עם 1 והתשובות הבטוחות יקבלו ציון -1. בגדול מאמנים את המודל העלות באמצעות מקסום של הסיכוי (שמחושב לפי מודל Bradley-Terry (BT)) שהתשובה המנצחת(מבחינת הבטיחות) מקבלת ציון גבוה יותר מהתשובה המפסידה (יש עוד איבר נוסף מנסה למזער את העלות של התשובה המנצחת). בסוף משתמשים במודל הזה יחד עם מודל התגמול כאשר המטרה היא למקסם את התגמול תוך כדי העדפה של תשובות בטוחות כלומר כאלו שיש להם ציון בטיחות גבוה. פורמלית הבעיה מוגדרת כמקסום התגמול תוך שמירה של העלות שלילית או הבטיחת חיובית (פותרים עם מכפילי לגרנז'). מאמר קצת כבד מתמטית אבל הרעיון די ברור.