Listen

Description

[קישור לקובץ mp3]
פרק 475 של רברס עם פלטפורמה, שהוקלט ב-23 ביולי 2024, שיא הקיץ. אורי ורן מארחים את חופית מחברת AI21 Labs, כדי לדבר על מודלי-שפה גדולים עם Context ממש-ממש ארוך (וגם להסביר מה זה).



00:40 חופית ו-AI21(רן) אבל קצת לפני זה - עליך, חופית, ועל החברה. מי את? מה עשית עד היום? מה עושים אצלכם בחברה?

(אורי) כמו לכולם . . . (רן) כן . . . . אז למי שזוכר את הרובוטריקים, כן היו שם טרנספורמרים - אבל לא עליהם אנחנו מדברים . . . . Transformer זה ייצור מתמטי, שמשתמשים בו ברשתות-ניורונים. למעשה, הוא ה-Building-Block המשמעותי בתוך מנועי-שפה גדולים. והזכרנו מקודם את BERT - זה היה אחד ממנועי-השפה הראשונים שהשתמשו ב-Transformer, אם לא הראשון בכלל . . . . זה הראשון או אחד הראשונים?(רן) כן, Attention Is All You Need . . . . אוקיי, אז היית במעבדה של פרופסור אמנון שעשוע . . . (רן) זאת אומרת שבאותו מספר פרמטרים, נגיד מיליארד פרמטרים - היום הרשתות, רק כדי לסבר את האוזן, הרשתות “הקטנות” זה שבעה מיליארד, בגדולות זה מאות-מיליארדים - אבל גם שם אפשר להחליט עד כמההרשת היא עמוקה או רחבה. זאת אומרת, הגעתם לאיזושהי נוסחה של מה ה-Tradeoff העדיף בהינתן Use Case.(אורי) אז רגע רגע - אולי תספרי לנו שנייה מה עושה AI21? חוץ מלאמן מודלים “לצורכי שעשוע” . . . זה משחק מילים, . . .(אורי) אז בא לקוח, יש לו Data, הוא יודע מה הוא רוצה להשיג מה-Data הזה - והוא בא אליכם, ואתם מאמנים לו מודל?(רן) האמת שהיום היו לי שלוש פגישות על זה . . . כן, זאת אומרת, יש דומיינים (Domains) שבהם אתה - יש לך איזשהו Ground Truth, זאת אומרת, אתה יודע מתי התשובה נכונה. עם LLM-ים, אין לך את זה בדרך כלל - אתה לא יודע מתי “הוא עושה עבודה טובה" או לא, וצריך לפתח גם את זה. כן, זה מורכב . . . .אוקיי, אז  את אומרת שעוזרים ללקוחות להבין מה הם רוצים - ומדלברים (Deliver) את מה שאתם יודעים בכיוון הזה. 
09:13 מה Jamba?(אורי) טוב, אז זה פעם שלישית שאמרתם “Jamba” . . . (רן) . . . עכשיו צריך להסביר . . . . כן, אז מה זה Jamba? אולי אפשר גם להתחיל היסטורית מה זה Mamba,  “האימא שלו” . . . [לא קובי?](רן) . . . סליחה, אני אתן דוגמא -   . . . (רן) . . .   - “איש עומד ליד עץ - האם הוא יפה?”. “הוא” - מתייחס לאיש או מתייחס לעץ? המילה “הוא”. אני אגיד שוב את המשפט - “איש עומד ליד עץ, האם הוא יפה?”. זה דו-משמעי, נכון? האם המילה “הוא” מתייחסת לעץ או מתייחסת לאיש, שעומד לידו? אנחנו לא יודעים. המטרה של ה-Self-Attention היא למעשה למקד את ה-Attention של המילים האחרות אל הסובייקט, אל החלק במשפט, אל ה-Token במשפט שהוא למעשה הנושא שלשאליו מתייחסים - וזה משהו שהיה מאוד מאוד קשה לעשות לפני הטרנספורמרים, ובאמת מה שחופית מסבירה זהשהטרנספורמרים בעצם נותנים לנו כלי-מתמטי לעשות את זה, וזו החדשנות האמיתית.(רן) . . . . שזו יכולת שהייתה חסרה לפני זה - הזכרת את זה ככה ביעף: RNN-ים נתנו פתרון מאוד מאוד חלקי לסיפור  הזה, ולמעשה הטרנספורמרים נותנים פתרון מאוד יפה. אבל . . . .(רן) וגם חשוב להגיד - זה לא רק פוגע באימון. אז נניח יש כאן “טונה כסף” באימון, אבל הצלחנו לאמן. אבל זה גם פוגע ב-Inference. זאת אומרת, כשרוצים להשתמש במודל, אז אני גם צריך “טונה של זיכרון ב-GPU” - וזה יקר . . . .(אורי) כדי לסרוק את כל המטריצה הזו . . . (רן) כן, כדי להחזיק את זה . . . . עכשיו, אם מדובר על משפט פשוט בן עשר מילים, אז אוקיי - אז מאה, עשר בריבוע זה מאה, סבבה. אבל כשאנחנו מדברים על Context מאוד ארוך, כמו נגיד ספר או סרט, אז מספר ה-Token-ים הוא ענק, מגיע למאות אלפים, כמו שאמרת 256K . . . (רן) בואי ניתן דוגמא - נגיד, רופא בבית חולים שרוצה להתייעץ עם מנוע-שפה: “מה הבעיה של איציק?”. אוקיי, הגיע חולה, קוראים לו איציק, והוא רוצה לשאול אותו מה הבעיה שלו [הוא חושב שהעולם יפה?]. אוקיי, נניח שהוא אומר שיש לו תסמינים, לא יודע - חום גבוה, דופק וכו’. אבל מה המנוע-שפה לא יודע? את כל ההיסטוריה הרפואית של איציק, נכון [שלא לדבר על תל אביב ב-80s]? ובלי להבין את ההיסטוריה הרפואית של איציק, אי אפשר או שקשה מאוד לתת פרוגנוזה או דיאגנוזה או איך שקוראים לזה. אבל אנחנו יכולים לעזור לו - אנחנו יכולים לשלוף מתוך ה-Database את ההיסטוריה הרפואית ולבוא ולהגיד לו ב-Prompt “הנה ההיסטוריה הרפואית של איציק”, וזה יכול להיות ספר, זאת אומרת שזה יכול להיות הרבה הרבה דברים. “בהינתן זה, עכשיו תגיד מה הבעיה של איציק”, בהינתן שיש לו לחץ דם ודופק גבוה. זה משהו שאפשר לעשות רק עם Context מאוד ארוך, נכון? כי צריך לספק אתכל ההיסטוריה הרפואית. אז זה Use Case אחד. (רן) אז זו המוטיבציה, ואם עד עכשיו דרך אגב, מי שכן משחק עם אימון שפה והרבה פעמים מוגבל באורח ה-Context,אז החדשנות פה היא שעכשיו ה-Context הולך להיות הרבה הרבה הרבה יותר ארוך. וראינו גם עבודות מחברות אחרות על Context-ים ארוכים, ואני מניח שגם הם משתמשים בדברים כאלה. אוקיי.
16:28 איך פותרים את בעיית ה-Context?(רן) אז איך פותרים את בעת ה-Context? אמרנו שבטרנספורמרים, צרכי הזיכרון גדלים ריבועית כגודל ה-Input, וזו בעיה . . .  אז איך כן פותרים את זה?(רן) כלומר, “מה קראתי עד עכשיו במשפט?” - זה ה-State.(אורי) אבל ה-State הוא בעצם ה-State של המטריצה - מעובד בצורה כלשהי . . . המטריציה שהייתה עד עכשיו.(רן)  זה איזשהו “סיכום”, סיכום-ביניים - “הנה זה מה שקראתי עד עכשיו”.(אורי) . . . איזשהו Inference מסוים של מה היה עד עכשיו. (רן) . . . . ואז האינטראקציה היא Order of 1, פחות או יותר, אם אני מבין אותך. או קרוב לזה . . .(רן) כן, אבל רגע - אבל זאת לא בדיוק הבעיה ש-RNN נתקלו בה? זאת אומרת, גם ה-RNN-ים ניסו לסכם איזשהו  State, והם עשו את זה ביעילות אבל לא באפקטיביות אם נקרא לזה . . .  זאת אומרת, הם “לא סיכמו את זה טוב”.אז איך המודלים החדשים  . . . .?(רן) זאת אומרת שהם לא זכרו את ההיסטוריה היותר רחוקה, אולי את השלושה-ארבעה . . . עכשיו, כשאת אומרת “Token”, אני מתרגם את זה ל”מילה” - זה פחות או יותר אותו הדבר, לא בדיוק. אבל נגיד שיש משפט מאוד מאוד ארוך - אם יש משפט קצר אין בעיה, הם מבינים אותו וסבבה - אבל אם יש משפט ארוך, הם שכחו כבר מה היה בהתחלה,כמו שקורה לי לפעמים כשמדברים אליי . . . (רן) כן - “ספר”. ו-Mamba פותר את זה? איך?(רן) “שאני מרגיש מרומה קצת . . . .”(רן) אוקיי, כלומר - דרישות-הזיכרון נשארו בערך אותו דבר, אבל ה-Latency פחת? או שגם דרישות-הזיכרון . . . .(רן) כן אוקיי - זאת אומרת, זה איזשהו Sweet-Spot בין ה-RNN-ים, שהיו “שוכחים” הרבה, לבין הטרנספורמרים  - שהיו זוכרים “הכל”, אבל גם היו מאוד “בזבזנים” מבחינת זיכרון וגם, כמו שאמרת, מבחינת Latency.
21:14 מ-Mamba ל-Jamba ו-Mixture of Experts(רן) אוקיי. עכשיו: Mamba זה איזושהי שיטה וזה משהו שהוא ככה, Widespread - ואתם לקחתם ובניתם מודליםמשלכם, שקראתם להם Jamba. אז מה קורה שם?(רן) זאת אומרת, אם מנועי-שפה, מתקופת BERT ועד פחות או יותר מלפני שנה, השתמשו בהרבה בלוקים של טרנספורמרים, את אומרת שהגיע המאמר של Mamba ואמר “בואו, את כל הטרנספורמרים תחליפו בבלוקים של Mamba” - ואז אתם באים ואומרים “אוקיי, נחליף כמעט את כולם, אבל נשאיר כמה טרנספורמרים”, והם עושים את העבודה, הם בעצם נותנים תוצאות יותר טובות.(רן) האמת שזה קורה כמעט בכל מערכת גדולה . . . . כל מי שתחזק חוות-שרתים באינטרנט יודע שדברים שכמעט אף פעם לא קורים - יקרו . . . . כי יש פשוט כל כך הרבה מחשבים, כי יש כל כך הרבה דיסקים, כי יש כל כך הרבה כבלי-רשת - משהו רע יקרה, גם עם הסבירות שלו מאוד מאוד נמוכה. אז ככה זה גם רשתות מאוד מאוד גדולות - גרדיאנטים (Gradient) נעלמים או מתפוצצים, או כל מיני דברים כאלה, שאולי בלימודים זה נראה כמו משהו זניח, אבלבמציאות וברשתות כאלה גדולות זה קורה.(אורי) אבל זה גם כאילו . . . . העולם של התעשייה מתעסק בסוף במה שקורה באמת; בעולם של האקדמיה הם  מחפשים את ה-Novelty, ולא . . . (אורי) . . . . העולם האמיתי הוא Outlier . . . . [באמפר סטיקר?](אורי) בסוף, זה ה-Blocker-ים . . . . (אורי) אז רציתי לשאול כאילו... בין ה-Mamba ל-Jamba קצת התבלבלתי. הבנתי שהתוצאות ב-Jamba נהיות יותר טובות, שפתאום אנחנו מצליחים להכניס... אני לא יודע אם זה לא Context, אלא יותר...(רן) Inputs יותר?  . . . “מבין יותר טוב”?(אורי) כן ... הוא “מקבל טון” בתוצאות שלו. אבל כשאת אומרת “בסדר, לקחנו כמה State-ים של ה-Jamba”,והוספנו כמה... סליחה, “ . . . כמה State-ים של ה-Mamba, והוספנו עוד כמה טרנספורמרים” - בסוף, מה קרה לזיכרון?(אורי) אז בכל מקרה זה חיסכון . . . .(רן) עכשיו, שימו לב - זה לא Disc-Space - כי Disc-Space לא חסר. מדובר פה על זיכרון ב-GPU, וזה מאוד מאוד  יקר. אוקיי? תסתכלו בטבלה של מחירים של AWS ותבינו מה המחירים של הדברים האלה. זה לא משחק ילדים - לחסוך כל כך הרבה GB של זיכרון זה מאוד מאוד משמעותי. זה יכול להיות הבדל בין “יש לנו עסק” או “אין לנו עסק”.(רן) אם אי פעם ראיתם רשת ניורונים - זה זה . . . “עיגולים מחוברים בקווים, שמחוברים לעיגולים בשכבה הבאה” - זהמה שנקרא MLPבלוק Attention.(רן) אני אנסה רגע להסביר את זה בדרכי שלי, “הציורית” - נניח שאתם יודעים לדבר חמש שפות, ועכשיו אתם שומעים משהו בצרפתית, אז זה הולך לאיזור אחד במוח. אתם שומעים אחר כך משהו בערבית, אז זה הולך לאזור אחר של  המוח. אבל אתם אף פעם לא משתמשים בו-זמנית, בכל חמשת השפות, או שסביר להניח שלא תשתמשו בו-זמנית - ולכן חלק מהמוח שלכם כל הזמן ”במנוחה". אוקיי, אז Mixture of Experts הוא למעשה “ה-Router” שמחליט “אה, זה צרפתית! זה הולך לאזור הזה של המוח, ולכן כל השאר יכול לנוח”.איך מרוויחים מזה, בחומרה? מה זה עוזר לנו בעצם? אז למעשה, אנחנו לא צריכים להשתמש בו זמנית בכל הפרמטרים, שזה אומר אפשר לחסוך - תקני אותי אם אני טועה - אפשר לחסוך בזיכרון, אפשר לחסוך ב-Cycle-ים של GPU בזמן ה-Inference - ולמעשה, המודל, פוטנציאלית, הוא אולי 50 מיליארד פרמטרים, אבל למעשה, אני יכול להתייחס אליו, מבחינת “המשקל שלו”, כ-12 מיליארד פרמטרים.(אורי) בהנחה שאנחנו "נפספס” איזה משהו - שתלוי “בחוכמה” של ה-Router. (רן) אם ה-Router טועה, אז כן - “אכלנו אותה” . . . (רן) אז אני אתקן את האנלוגיה הציורית שלי - אז אתה כן שומע, נגיד, ערבית, ועכשיו זה עובר דרך כל המעבדים של חמשת השפות שיש לך בזיכרון. אוקיי? רק אחד מהם מוציא משהו הגיוני, כל השאר מוציאים Nonsense - ואז אתה זורק אותם. אז במקום לעשות את החישוב הזה חמש פעמים - עושים אותו רק פעם אחת, בחלק הרלוונטי של המוח, ולא בכולם, וככה חוסכים ב-Cycle-ים.(רן) אז ה-Mixture of Experts למעשה נמצא בין כל אחת מהשכבות שלכם?(רן) כן. זיכרון . . . והגדלים באים בדרך כלל באופן סטנדרטי, ככה שיש את “המשבצת הנכונה” ל-80GB.
34:38 תרומה לקהילה(רן) הזכרת מקודם תרומה לקהילה, ואת זה שאתם רוצים שכל אחד בקהילה יוכל לריץ את המודל. אז מה זה אומר? המודל הזה הוא פתוח?(רן) אז כן, אז זה לידיעה כללית - יש לא מעט חברות שלהן יש מודלים חזקים ומאוד Capable, אבל מודלים סגורים. OpenAI אולי הידועה מבין כולם - אבל יש גם אחרות. ויש גם כאלה שמשחררות את המודלים שלהן בקוד פתוח או בקונפיגורציות שונות של Open Weights וכו'.אתם שיחרתם את Jamba, את הגרסה של - זה נקראת בעצם 50B או איך זה נקרא?(רן) כן, אז 7 כפול 12, זו התוצאה?(רן) אוקיי, ואפשר לקחת - בהינתן GPU מספיק גדול, וכאלה כן קיימים, כלומר כן אפשר לשלם עליהם ולקבל אותם - ואפשר לרוץ ולהשתמש במודל. אם אורך Context מאוד מאוד ארוך חשוב -  אם זה לשיחת -Chat פשוטה, אתם לא צריכים את ה-Context הזה, אבל אם זה “תקרא את כל הקוד שלי ותגיד לי איזו פונקציה אני צריך לכתוב” או “תציע לי Completion לפונקציה” או אם זה “תקרא את כל ההיסטוריה הרפואית ותן לי אנליזה” או “תראה את הסרט הזה” -  לא דיברנו כל כך על Medim-ים אחרים, אבל גם זה משהו שעובד - אז זה יכול בהחלט לעבוד עם מודל שכזה.דרך אגב - יש מודלים אחרים ששיחררתם  בקוד פתוח?(אורי) אני גם שנייה שנייה חופר ב-GPU שלי - במבצע סבתא יש בחמישה Token-ים פחות מ-128K . . . (רן) יפה, אז אפשר אפשר להשלים את הסרט.(אורי) כן, לא כולל מוטי בננה.
37:18 כתוביות(רן) טוב, וואו, מרתק. טוב, אני מקווה ש... כן אמרת בדרך אבלציות (Ablation) ורציתי להיכנס לשם, אבל מספיק עד כאן.אז היה מרתק, תודה רבה!(אורי) יפתח לאנשים את המודל . . . (רן) . . . . מוזמנים להיכנס ל-Hugging Face, להוריד משם - ולהתנסות. האזנה נעימה ותודה רבה לעופר פורר על התמלול!