מודל שפה שמעבד תמונה – ככה זה נראה.
אתמול גוגל שיחררו סנונית ראשונה של היכולת החדשה ליצור או לעבד תמונות בתוך מודל השפה שלהם – ג׳מיני 2.0 פלאש.
חשוב להבין רגע שיש הבדל גדול בין מודל דיפוזיה של מודל תמונה (כמו מידג׳רני, דאלי, פלאקס, וגם אימג׳ן של גוגל שבעצם משולב בממשק של ג׳מיני גם כן…) למודל שפה גדול כמו ג׳מיני שהוא מולטי-מודאלי ובאמצעות זה הוא גם יוצר תמונות.
איך מודל שפה יוצר תמונות?
כדי להבין את זה נחזור רגע לרעיון הבסיסי של מודל שפה: יש לנו טקסט, אנחנו מעבירים אותו למודל, והוא בעצם יוצר לנו טקסט בחזרה טוקן-אחר-טוקן כלומר בכל פעם מחזיר לנו ׳חתיכה׳ קטנה של טקסט בגודל של מילה או פחות מזה.
מבחינת המודל הוא לא פוגש טקסט או אותיות, הוא מקבל רק טוקנים, מעבד אותם, ופולט את החיזוי שלו של ׳הטוקן הבא׳… וכך שוב ושוב עד שנפרש בפנינו טקסט מלא.
מה שאומר שלפני שמתחיל תהליך העיבוד, הטקסט שהעברנו למודל עובר המרה, סוג של קידוד, שנקרא ״טוקניזציה״. באמצעות אלגוריתם מיוחד שנקרא ״טוקנייזר״ הטקסט מפורק לחתיכות, אבני יסוד, שכל אבן כזו יש לה ערך סידורי כלשהו: 1, 2, 3, … 545… 64,223 וכו׳. יש לכל מודל שפה כמות מוגבלת של טוקנים שנקראים גם ״אוצר מילים״ כלומר זה כל הביטויים שהמודל יכול לעבוד איתם. במקרה של GPT-3 למשל היו 50,257 טוקנים, ואריציות שונות של אבני יסוד, בשפות שונות. התפקיד של הטוקנייזר הוא לבצע את ההמרה היעילה ביותר, למשל: אם יש לנו משפט כמו This is a text אז המילה This יכול להיות שיש לה טוקן משלה, נגיד שזה טוקן מספר 430 ובמקביל יכול להיות שאפשר גם כן לפרק אותה לשני טוקנים של Th ו-is נניח שזה מספרים 32 ו-56 אז הטוקנייזר כמובן יעדיף את האפשרות הראשונה כי היא חסכונית יותר.
בעברית, אגב, המצב קשה. אחת הבעיות זה מבנה השפה, שבשונה מאנגלית הוא תבניתי ופחות לינארי. באנגלית הרבה מילים זה רצפים של ביטויים נפוצים למשל conversation זה con ואז vers ואז ation למשל. כל חתיכה כזו היא מילית נפוצה באנגלית, אז בהינתן שיש לנו כמות מוגבלת של טוקנים עדיין סיכוי טוב שיהיה לנו טוקנים מלאים של המיליות האלה. אבל טוקנים של טקסטים בעברית, ברוב מודלי השפה, יהיו בעלי אות אחת או פחות. כלומר, לפעמים נדרשים 2 טוקנים למשל כדי לייצג אות אחת בעברית. די באסה כי זה אומר שהמודל צריך להשקיע יותר משאבים כדי לעבד טקסט בעברית ואם יש מגבלות טוקנים כלשהם זה יתבטא בצורה חזקה יותר במגבלות על טקסטים בעברית. (אבל למודלי שפה שונים יש טוקנייזרים שונים, למשל ג׳מיני יותר מפנק בעברית מ-GPT במובן הזה)
המודל כאמור לא מתעסק עם מילים אלא עם מספרים. למשל נניח שהמילה ״שלום״ מתורגמת לסידרת הטוקנים 42, 435, 13 – כמו שאתם רואים בכוונה בחרתי במספר שונה מכמות האותיות כדי להמחיש שטוקן יכול להיות גם 2 אותיות, יכול להיות גם 5 אותיות, יכול להיות כל מיני גדלים. ואז נניח שההשלמה של המילה שלום צריכה להיות ״לכם״ אז נניח שהמילה ״לכם״ מתורגמת ל 46, 34 ואז המודל שפה אם נכנים לו ״שלום״ כלומר 42, 435, 13 אז הוא יוציא לנו בחזרה 46 ואם נכניס לו שוב 42, 435, 13, 46 אז הוא יוצא לנו 34 ואז סה״כ יהיה לנו 42, 435, 13, 46, 34 והטוקנייזר יתרגם את זה בחזרה ל ״שלום לכם״ ויציג לנו על המסך. הידד!
מה קורה במודל ״מולטי מודאלי״ –
מודל מולטי מודאלי מסוגל להתמודד עם עוד סוגי מדיה, לא רק טקסט. למשל סאונד או מוזיקה, או תמונות או דברים נוספים. כלומר הוא יכול לקבל בתור קלט למשל תמונה, למשל סאונד, והוא יכול גם אולי לייצר פלט של סאונד כאו תמונה ועוד.. למשל המודל הקולי המתקדם של OpenAI מייצר דיבור כמו שהוא מייצר סיפור.
איך זה קורה?
אמרנו שיש תהליך של המרה של הטקסט לטוקנים. אז באופן דומה יש תהליך של המרה של המדיות הנוספות לטוקנים. כלומר התמונה הופכת לרצף טוקנים, רצף מספרי כזה, או הסאונד הופך לרצף טוקנים. (אגב, מי שמכיר את הרעיון של המרה לוקטור – אז זה משהו אחר, לא לבלבל ביניהם…) הטוקנים של התמונה נכנסים למודל, יחד עם טוקנים של טקסט למשל.. ניתן דוגמא:
אנחנו מעלים תמונה של חתול, היא מפורקת ל500 טוקנים נניח (על פי שיטה שלא ניכנס אליה כי אני לא מבין בזה) ובנוסף אנחנו מוסיפים טקסט ״מה יש בתמונה?״ כל זה מכניסים למודל שפה – והציפייה היא לקבל תשובה ״חתול״ כלומר המודל מקבל טוקנים של תמונת החתול, בצירוף טוקנים של הטקסט ״מה יש בתמונה״ ומחזיר טוקנים של ״חתול״. נפלא עד כאן.
עכשיו תארו לכם שהמודל יכול ליצור גם תמונות דרך זה שכמו שהוא מחזיר טוקנים שמתורגמים בחזרה למילה ״חתול״ הוא גם יכול להחזיר טוקנים שמתורגמים בחזרה לתמונה – זו בעצם הדרך שלו ליצור תמונות.
באימון של מודל מולטי-מודאלי הוא אומן על הרבה תוכן שמשלב תמונות וטקסט, או כמובן דברים נוספים, וכך יכול לחזות תמונות וטקסט שמשולבים יחד.
כל זה בעצם אומר שכמו שהמודל כותב סיפור הוא מצייר, או מנגן, תחשבו על זה ככה.
אפשר לשים לב לזה שמודל שפה שיוצר תמונה עושה את זה באופן הרבה יותר ׳מילולי׳ והרבה פחות אמנותי או אסתטי בצורה שנאמנת ליצירות או תמונות שאנחנו מכירים. יש לזה כמובן יתרונות וחסרונות. יש דברים שהמודל הזה יצליח לעשות ששום מודל תמונה אחר לא יצליח – ועדיין יש הרבה מקרים שהתוצאה שלו תיראה עלובה ואנחנו נעדיף מודל תמונה. מה שחשוב להבין – שזה פשוט משהו אחר.
כתיבת תגובה