תוכן עניינים
מדוע הוא כבש את חיינו, מה מיוחד בו ומה ההבדל בינו לבין רשת נוירונים?
אמ:לק
01.
יש אלגוריתמים שונים של למידת מכונה, בהם למידה ״עמוקה״ שכוללת שימוש ברשת נוירונים. ב-2017 גוגל פרסמו מאמר על כך שרשת נוירונים יכולה להשתפר אם יש לה יכולת ״לשים לב״.
02.
תשומת לב באה לידי ביטוי במבנה אחר של רשת נוירונים. לא מבנה קלאסי, אלא סוג אחר שבו בין השכבות של הרשת יש שכבות של תשומת לב. היישום שהוצע ע״י גוגל נקרא ארכיטקטורת הטרנזפורמרים.
03.
החוזק של הטרנזפורמרים הוא בריבוי שכבות ״תשומת לב״ שמאפשרות לחבר הקשר להבנה של הרשת בתהליך הלמידה.
בואו נדבר בקטנה על מה זה מודל הטרנזפורמרים (ה-T ב-GPT) שחולל את הסערה שכולנו נשאבנו אחריה ובמה הוא שונה מרשת נוירונים?
שלב ראשון: נתחיל מההתחלה
כולנו מכירים את ההשלמה האוטומטית של מילים שיש לנו במקלדת. אנחנו פותחים את אפליקציית ההודעות ומתחילים לכתוב ויש לנו השלמה אוטומטית של מילים. ממש מעל האותיות יש לנו מספר אפשרויות כאשר באמצע בדרך כלל זו המילה שהכי מתאימה שנבחר בה כמילה הבאה במשפט.
אבל יש בעיה. אם נבחר באפשרות האמצעית בכל פעם אנחנו נראה שאנחנו מתחילים לקבל פסקת טקסט שאולי חלק יהיה הגיוני אבל אם נקרא את הכל כנראה שלא יהיה היגיון. למה? כי המודל, שמבוסס על רשתות נוירונים, חוזה את המילה הבאה ללא ״תשומת לב״ מיוחדת למשפט עצמו. אלא התחזית היא על בסיס ידע קיים. לכן אין היגיון במשפט שנקבל.
שלב שני: הכירו את הרובוטריקים! (או: Transformers)
כאן נכנס לתמונה מודל הטרנזפורמרים, הוא לא רק חוזה את המילה הבאה ללא הקשר כלשהו, אלא הוא מנסה ממש ״לשים לב״ למשפט עצמו. זה מה שנקרא ״Attention" ועל זה דובר במאמר המפורסם של גוגל מ-2017 שחשף את מודל הטרנזפורמרים.
אז רשת נוירונים היא בעצם יישום של למידה עמוקה. שכבות שמעבירות מידע ביניהן. קלט נכנס - פלט יוצא כאשר הרשת לומדת ״לנבא״ את המילה הבאה.
וטרנזפורמר? גם הוא סוג של רשת נוירונים מהבחינה שהוא בנוי שכבות שכבות. אבל! בשונה מרשת נוירונים קלאסית, לטרנזפורמר נלווית שכבת ״תשומת לב״ בכל שכבה. אם רשת נוירונים היא רצף של שכבות, טרנזפורמר הוא רצף של שכבות כאשר כל שכבה ״שמה לב״ להקשר. אמנם יש מונחים נוספים וחשובים כאן כמו טוקניזציה (הפיכת הטקסט לאסימונים, חיתוך שלו והמרה לייצוג מספרי), אמבדינג (המרת מידע לרשימה של מספרים, וקטור), קידוד המיקום (Positional Encoding) שמשמעותו לקודד את הטקסט בצורה שתשמור על ההיגיון במשפט (למשל: ״אני שמח היום, אני לא עצוב״ משמעותו שאני שמח, אבל אם נהפוך את סדר המילים ונקבל ״אני לא שמח היום, אני עצוב״, על אף שלא הוספנו ולא גרענו מילים, הערך של המילים יישאר זהה אם לא נגדיר משמעות למיקום המילים. זה הכוח של קידוד המיקום בטרנזפורמרים. יש משמעות לסדר המילים.
שלב שלישי: צומי, כולנו צריכים את זה
מכאן המידע עובר לשכבת ״תשומת לב״ שבעצם מנסה לא רק להבין את סדר המילים, אלא להבין גם משמעות מילים לפי המשפט עצמו. לדוגמא: אם אנחנו כותבים ״west bank״ המשמעות היא ״הגדה המערבית״, אך אם אנחנו כותבים ״bank loans money״ אנו מתייחסים לשם של בנק. שכבת ״תשומת הלב״ מבינה מתי bank זה גדה ומתי זה בנק בגלל שהיא שמה לב למשפט עצמו.
וכך זה ממשיך, עוד שכבה שמעבדת מידע ועוד תשומת לב ועוד שכבה שמעבדת מידע ועוד שכבה של תשומת לב, כך זה נמשך עד שבסוף מקבלים רשימת הסתברות של מה המילה הבאה ולפי דירוג כלשהו, ולוגיקה נוספת, מתקבלת התפלגות מילים ונבחרת המילה המתאימה ביותר.
אז אם רשתות נוירונים מכוונות את הפרמטרים שלהן, לומדות לבד לנבא, אז טרנזפורמר עוצמתי בכך שיש לו שכבת ״תשומת לב״ שלא רק לומדת, אלא גם שומרת על הקשר. ולא רק זה, אלא כמות הפרמטרים שטרנזפומר יכול לקבל היא אדירה והוכח שככל שהכמות גדלה - כך המודל מבצע טוב יותר.
אז זה הקטנה שלי על ההבדלים בין רשתות נוירונים לבין טרנזפורמר, בצורה הכי פשוטה שאפשר להסביר. ושוב אגיד שמצחיק שגוגל הם אלה שפרסמו את המאמר הזה ועדיין למרות הכל נותרו מאחור.