לקט שבועי מתמלא של סקירות קצרות של #shorthebrewpapereviews, שבוע 05.08-11.08
05.08.23: Multimodal Neurons in Pretrained Text-Only Transformers
https://huggingface.co/papers/2308.01544
תופעה מעניינת מתרחשת כאשר ממפים תמונות וטקטסט לאותו מרחב וקטורי.מחברים אנקודר לתמונות עם מודל שפה מוקפא, מחברים ביניהם עם שכבת לינארית אחת בלבד ואז מאמנים את האנקודר את השכבה הלינארית לחזות כותרת של תמונה. מתברר שבתוך מודל שפה יש נוירנים שנדלקים חזק עבור פאץ של תמונה ועבור תיאורה הטקסטואלי. היום ב-#shorthebrewpapereviews סוקרים מאמר המראה שלמרות שמודלי השפה לא מאומן למשימה זו עדיין יש בו נויורים ה״מסמנים״ בו זמנית קונספטים (אובייקטים) בשני העולמות: הויזואלי והטקסטואלי. נגיד אם יש בתמונה כלב אז יהיה נוירון בשכבה מסוימת של מודל שפה שמי שהדליק אותו הכי חזק הם הפאצים שבהם מופיע הכלב ובאותו הזמן הם נדלקים חזק גם עבור המילים שמסמנים כלב (dog, doggy וכדומה). המחברים קוראים לנוירונים אלו נוירונים מולטימודליים. עכשיו בואו נבין מה זה אומר להדליק נוירון כתלות במשהו (נגיד פאץ או מילה). המאמר מגדיר ציון ייחוס (attribution score) של נוירון עבור מילה(טוקן) נתונה c באופן הבא. נניח שמודל חוזה מילה c עם ערך הלוגית הגבוה ביותר בין כל הטוקנים. אז ציון הייחוס מוגדר בתור מכפלה של ערך הנוירון העצמו ובין הנגזרת של ערך הלוגית ביחס לנוירון הזה. כלומר נוירון שערכו גבוה וגם ערך הלוגיט הוא תלוי (נגזרת גבוהה) בנוירון הזה מקבל ציון ייחוס גבוה (= נדלק חזק). ציון יחס של נוירון בפאץ מסוים מוגדר בצורה דומה אך הנגזרת הפעם מחושבת לנוירון זה ביחס לייצוג של פאץ.
06.08.23: ConceptLab: Creative Generation using Diffusion Prior Constraints
https://kfirgoldberg.github.io/ConceptLab/static/ConceptLab.pdf
הייתם רוצים ליצור דמות ממש מגניבה שלא דומה לאף דמות אחרת? למשל איזה חיית מחמד שהיא לא חתול, לא כלב ולא שום דבר שהכרתם קודם? מתברר שאפשר לעשות זאת עם מודלי דיפוזיה גנרטיביים. המאמר של החוקרים הישראלים שנסקור היום ב #shorthebrewpapereviews מאפשר לכם להרים את היצירתיות שלכם לרמה הגבוהה ביותר. ומה שהכי מגניב במאמר הוא העובדה שבשביל ליצור תמונה של הדמות שבחרתם שלא דומה לאף דמות מוכרת בכל מיני מקומות לפי רצונכם (בחוף הים, במסעדה וכאלו) אתם צריכים רק לאמן את השיכון (embedding) של האובייקט שלכם. אוקיי, אז איך כל הסיפור הזה עובד? קודם כל בודקים קטגוריה כללית שאליה משויך האובייקט (נגיד, חיית מחמד). לאחר מכן לוקחים מודל דיפוזיה לטנטי מאומן (כמו stable diffusion) ויוצרים באמצעותו שיכון של תמונת האובייקט שאתם רוצים, מתיאורו הטקסטואלי (נגיד "a photo on "object). כלומר מעבירים את הטקסט (אחרי הטוקניזציה) דרך האנקודר (היוצר שיכוני הטוקנים) ואז מעבירים אותם דרך המודל שאומן לבנות שיכון של תמונה מהשיכונים של טקסט (diffusion prior). לאחר מכן לוקחים את אותו מודל דיפוזיה מאומן ומפעילים אותו כדי ליצור תמונת האובייקט שלכם. את תמונה האובייקט מעבירים דרך המודל BLIP-2 שיודע לענות על שאלות לגבי תמונה נתונה ושואלים אותו ״איזה תמונה מחמד (זה הקטגוריה שבחרתם) יש בתמונה״. אז מעבירים את תשובתו (טקסט) דקל האנקודר של הטקסט כדי לקבל שיכון של התשובה הזו. עכשיו דורשים מהשיכון הזה להיות דומה לשיכון הקטגוריה שבחרנו (חיית מחמד) ו״מרחיקים״ אותו מכל האובייקטים ש- BLIP-2 הצליח לייצר. ככה הם דואגים שלא תקבלו תמונה דומה לשום דמות או אובייקט מוכרים. החלק המאומן היחיד במערכת הוא שיכון האובייקט שלכם – כל השאר מוקפא. אחרי האימון תוכלי ליצור תמונות של האובייקט בכל מיני מצבים – זה ממש מגניב.
07.08.23: Predicting masked tokens in stochastic locations improves masked image modeling
https://arxiv.org/abs/2308.00566.pdf
היום ב-#shorthebrewpapereviews סוקרים מאמר של כמה חוקרים ישראלים עם Yann LeCun האגדי!! שיטות למידה self-supervised (או SSL) הפכו להיות מאוד פופולריות לבניית ייצוג עוצמתי עבור דאטה ויזואלי (תמונות) שניתן להשתמש בו למשימות מגוונות. שיטות אלו לא דורשות דאטה מתויג ולכן ניתן לאמן אותם על דאטהסטים ענקיים של תמונות מהאינטרנט. בדרך כלל שיטת SSL מהנדסת משימה שלא דורשת תמונות מתויגות. למשל אחד המאמר האחרונים של יאן לקון (I-JEPA) המשימה היתה חיזוי הייצוג (embedding) של פאץ בתמונה נתונה בהינתן ייצוגים של פאצים אחרים של התמונה. ככה ייצוג שנבנה לומד להפיק את המאייפנים הסמנטים של הפאצ'ים מייצוג הויזואלי של הפאצ'ים באותה תמונה. במאמר I-JEPA המודל מקבל את הייצוגים של כמה פאצ'ים (ההקשר) יחד עם הקידוד המיקום שלו בתמונה (positional encoding) של המיקומים של הפאץ' שחיזויו היה צריך לחזות היה מיוצג עם וקטור המיסוך (הקבוע עבור כל הפאצ'ים) וגם קידוד המיקום שלו בתמונה. במאמר הנסקר המחברים מבקשים להכליל את הגישה של I-JEPA ובמקום קידוד מיקום מדויק להעביר למודל קידוק מקומי מורעש (גם עבור פאצ'י הקשר וגם עבור פאצ'י שייצוגם נחזים). איך זה נעשה? פשוט מוסיפים וקטור גאוסי עם מטריצת קוווריאנס S נלמדת לוקטור קידוד מיקום. ככה אנו הוכפים את משימת SSL מורכבת יותר וכתוצאה מכך הייצוגים שהמופקים באמצעותה משתפרים. מאחר וצריך ללמוד פרמטרים של ההתפלגות שממנה צריך לדגום את הוקטור המורעש המייצג מיקום אז בדומה ל-VAE משתמשים ב-reparametrization trick.
08.08.23: Seeing through the Brain: Image Reconstruction of Visual Perception from Human Brain Signals
https://huggingface.co/papers/2308.02510
מכונה שיודעת לקרוא את המחשבות שלנו? האם זה עדיין בגדר החלום או שאנחנו כבר מתקרבים לפתרון? היום ב-shorthebrewpapereviews# סוקרים מאמר שבנה מודל לחיזוי (שחזור) תמונה שמראים לאדם מאות electroencephalogram (EEG) המוקלט מהמוח שלו. המאמר מאמץ גישה משולבת לעיבוד של אות EEG: מצד אחד מנסים להפיק מהאות פיצ'רים עדינים(fine-grained) של התמונה בדמות מפת בולטות (saliency map) המפיקה את הפיצ'רים הויזואלים החשובים של התמונה (silhouette). מצד שני מפיקים מהאות גם את הפיצ'רים הגסים של התמונה (ייצוג הכותרת שלה). שני הפיצ'רים אלו מזינים למודל דיפוזיה לטנטי (כמו Stable Diffusion) שמטרתו לשחזר את התמונה. הפיצ'רים העדינים (מפת בולטות) מחושבת בשני שלבים. בשלב הראשון מחשבים את הייצוג הלטנטי של אות ה-EEG עם למידה ניגודית (מקרבים ייצוגים של אותות EEG לתמונות דומות ומקרבים את אלו לתמונות לא דומות). בשלב השני מאמנים GAN מבוסס על hinge loss (כן עדיין משתמשים בהם) כדי ליצור מפת בולטות של התמונה (הדגימות ה״אמיתיות״ כאן הן התמונות שמראים אותן לאנשים). הפיצ'ירים הגסים מחושבים באופן הבא: יוצרים כותרת של התמונה עם מודל מאומן BLIP (מוקפאת) ומעבירים דרך CLIP כדי ליצור את ייצוגה. ואז מאמנים מודל כך הייצוג הגס המופק מהאות יהיה קרוב לייצוג של כותרת התמונה. ואז מכניסים את מפת הבולטות יחד עם ייצוג הכותרת של התמונה למודל דיפוזיה לטנטי כדי לשחזר את התמונה (האנקודר והדקודר מוקפאים). זה כל הקסם בגדול…
09.08.23: FLIRT: Feedback Loop In-context Red Teaming
https://huggingface.co/papers/2308.04265
בטיחות מודלים גנרטיביים הינו אחד מנושאי המחקר החמים בבינה מלאכותית גנרטיבית (GenAI). הרי אנחנו לא רוצים שמודל המצייר תמונה לפי התיאור הטקסטואלי יגנרט לנו תמונה קשה, אלימה או מטרידה גם אם נבקש את זה ממנו. למניעת תופעות אלו צריך לזהות פרומפטים מתוחכמים שגורמים למודל ליצור תוכן בעייתי. היום ב-#shorthebrewpapereviews סוקרים מאמר המציע גישה לזיהוי פרומפטים זדוניים שעלולים לגרום ליצירת תוכן מסוכן. המאמר מציע לבנות סטים של פרומפטים זדוניים הממקסמים 3 מטריקות שכל אחת מהם מודדת היבט שונה של ״זדוניות״ הפרומפטים מהסט הזה. היעד הראשון הוא מקסום סבירות של יצירת תוכן מסוכן עם פרומפטים מהסט, השני הוא הגיוון הסמנטי של הפרומפטים (כמה שפחות דמיון בין הפרומפטים) והיעד השלישי הוא הנראות ״הטובה״ של פרומםטים אלו (כלומר העדר של מילים גסות או בעלות תוכן מיני מובהק). המאמר משתמש במודל שפה בשביל ליצור פרומפטים אלו באמצעות מנגנון למידה in-context. האלגוריתם מתחיל בכמה פרומפטים זדוניים שנכתבו על ידי בני אדם ואז משתמשים במודל שפה כדי לגנרט פרומפטים זדוניים באמצעות מודל שפה (למידה in-context). עבור כל פרומפט זדוני שהצליח (יצר תוכן מסוכן) יוצרים סטים שבהם כל פרומפט מהסט מוחלף בפרומפט החדש ובוחרים מהם את הסט שממקסם לנו פונקציית היעד. איך יודעים שפרומפט הצליח ליצור תוכן לא ראוי? משתמשים במודלים מאומנים לזיהוי תוכן לא בטוח (כמו NudeNet או Q16).
10.08.23: SIMPLE SYNTHETIC DATA REDUCES SYCOPHANCY IN LARGE LANGUAGE MODELS
https://arxiv.org/abs/2308.03958.pdf
חנפנות של מודלי שפה, נתקלתם כבר בתופעה הזו? חנפנות או syconphancy באנגלית זו תופעה שבה מודל שפה מושפעים בצורה מופרזת ממה שהמשתמש אומר להם גם אם זה לא נכון באופן אובייקטיבי. למשל אם תגידו למודלי שפה שאתם חושבים ש 1+1=50 ואז תשאלו אותו האם זה נכון בלא מקרים מודל השפה יגיד שכן. היום ב-#shorthebrewpapereviews סוקרים מאמר שמנסה לגרום למודלי שפה לא להיות חנפן מדי ולהיצמד לעובדות ולא למה שהמשתמש אומר במקרים רלוונטיים. הפתרון שלהם מאוד פשוט – הם בונים דאטהסט של דוגמאות מהסוג הזה ומכיילים מודל שפה עליו. איך הם בנו את הדאטהסט הזה? הם לקחו 17 דאטהסטים מ-huggingface של שאלות-תשובות ובחרו 100K דוגמאות באקראי לכל מודל שפה שהם כיילו (4 גדלים של Flan-PaLM). לאחר מכן הם הורידו את הדעה של המשתמש ואז השוו את תשובתו של מודל שפה ללא משתנה בעקבות כך. לאחר מכן לוקחים דוגמאות שהמודל ״משתכנע״ בקלות ומשנה את דעתה בעקבות דעת המשתמש ומרכיבים מהם דאטהסט אבל עם התשובה הנכונה. המחברים לפעמים מוסיפים פרטים על המשתמש שעלולים לבלבל מודל שפה (למשל להוסיף שהמשתמש פרופסור למתמטיקה חושב שהפתרון לתרגיל נכון למרות שהוא לו). וזהו זה – מכיילים מודל שפה על הדאטהסט זה.
11.08.23: AUDIOLDM 2: LEARNING HOLISTIC AUDIO GENERATION WITH SELF-SUPERVISED PRETRAINING
https://huggingface.co/papers/2308.05734
רוצים לגנרט/לערוך אות אודיו ממגוון סוגים של דאטה? מתברר שניתן ליתור אות אודיו מתמונה, וידאו, טקסט ואפילו אות IMU (המתאר אופייני תנועה של אובייקט כמו מהירות כיוונית ותאוצה). היום ב #shorthebrewpapereviews סוקרים מאמר שמציע מודל המסוגל לעשות את זה. בגדול במשימות מולטימודליות עיקר הבעיה היא למפות את כל סוגי הדאטה למרחב השיכון(embedding) באופן הגיוני. כלומר השיכון של אודיו של ציוץ ציפורים צריך להיות קרוב לשיכון של טקסט ״ציוץ של ציפורים״. המחברים משתמשים במודלים מאומנים עבור כל סוגי הדאטה שהם יוצרים אודיו מהם כדי למפות את הדאטה למרחב השיכון (למשל לוידאו ול-imu משתמשים ב-ImageBind, לטקסט ב-Flan-T5, ובאודיו ב-CLAP). לאחר מכן הם מכיילים gpt-2 שמטרתו להעביר את כל הייצוגים לאותו מרחב השיכון. לאחר מכן לוקחים את הפלט של gpt-2 ומעבירים אותו למודל דיפוזיה לטנטי המאומן לגנרט אודיו בהתאם לתנאי (המקודד באמצעות וקטור השיכון). את מודל הדיפוזיה הלטנטי מאמנים על דאטה אודיו לא מתויג כאשר לפני הכניסת האות לאנקודר מעבירים אותו לתדירוית מל (mel frequences). לאחר מכן מכיילים את המודל עם הדאטה המתויג (אודיו והתיאור שלו). פרט נוסף מעניין לגבי המאמר הוא שבמהלך האימון ב 75% מהמקרים משתמשים בשיכון של התיאור כדי לגנרט אודיו וב 25% הנותרים מכניסים במקומו את הייצוג של האודיו העצמו המופק באמצעות מודל AudioMAE (אנדקוד של אותו אודיו).