טרנספורמר (למידת מכונה)

**טרנספורמר** הוא מודל למידה עמוקה שממלא תפקיד מרכזי ביישומים רבים, ובראשם צ'טבוטים (כמו ChatGPT או Gemini). המודל משמש גם ביישומים אחרים בעיבוד שפה טבעית (NLP) וראייה ממוחשבת (CV).

המודל חולל מהפכה בהשוואה למודלים קודמים בזכות שתי תכונות חשובות. הראשונה היא מנגנון **הקשב העצמי** (self-attention). מנגנון זה לוקח בחשבון את היחסים בין מילים ואת ההקשר שבו המילים נמצאות. המנגנון מאפשר לקחת בחשבון במהלך עיבוד מילה מתוך טקסט, רצף גדול סביב המילה, ולא רק את הקטע הקצר שקדם לה.

התכונה השנייה היא אפשרות עיבוד קלט שלם של טקסט בו-זמנית, בשונה ממודלים קודמים, שנדרשים לעבד את הטקסט מילה אחר מילה. עיבוד מקבילי זה מביא לקצבי עבודה גבוהים מאוד בעת אימון המודל על טקסטים רבים.

ארכיטקטורת הטרנספורמר הוצגה לראשונה ב-2017 על ידי קבוצת חוקרים מגוגל. כשנה לאחר מכן שחררה גוגל, בקוד פתוח, את מודל השפה הגדול הראשון הבנוי על בסיס הארכיטקטורה - BERT. לאחר מכן, פופולריות הארכיטקטורה החלה לצבור תאוצה, והיא נעשתה למודל המועדף לעיבוד שפה טבעית ומודלי שפה גדולים. זאת, בעיקר בשל תכונת המקביליות האמורה המאפשרת אימון על מערכי נתונים גדולים יותר. יצירת המודל שימשה בסיס לפיתוח מודלי שפה מאומנים מראש, כמו GPT (סדרת מודלים שפותחו על ידי OpenAI, ונעשו לפופולריים במיוחד מאז הושק הצ'טבוט ChatGPT), PaLM, Claude ועוד. מודלים אלו אומנו על מערכי נתונים גדולים של שפות, הכוללים טריליוני מילים. כמו כן, המודלים ניתנים לכוונון (fine tune) באופן שבו יותאמו לביצוע משימות נקודתיות.

## עיבוד רציף
קודם ליצירת מודלים מבוססים טרנספורמר, רוב מערכות עיבוד השפה הטבעית המתקדמות הסתמכו על מודל רשת עצבית רקורסיבית (RNN). מודלים מסוג זה מעבדים טוקנים (tokens, יחידות הטקסט הבסיסיות ביותר איתן עובדות תוכנות מחשב המנתחות שפה. לרוב, מדובר במילים) ברצף, תוך שמירה על וקטור הכולל מידע אודות כל טוקן ביחס למידע שקדם לו. כלומר, כאשר המודל עובד ברצף ולא במקביל, עיבוד הטוקן ה-n ייקח בחשבון את המצב הקיים עד n-1 יחד עם הטוקן החדש, כדי ליצור מצב חדש (וקטור) לאחר עיבוד הטוקן n. כתוצאה מכך נוצרת בעיית "הגרדיאנט הנעלם", המשאירה את וקטור המצב בסופו של משפט ארוך ללא מידע מדויק שניתן לחלץ ממנו על הטוקנים הקודמים. בשל כך, לעיתים נפגעת היעילות באימון מודלי RNN.

## קשב עצמי
מודלי הטרנספורמר מתמודדים עם הבעיות הנובעות מעיבוד רציף באמצעות מנגנון הקשב העצמי. מנגנון זה מאפשר למודל ליצור מצב המתחשב בכל הנקודות לאורך הרצף. המודל כולל "שכבת" קשב המסוגלת לגשת לכל אחד מהמצבים הקודמים ולתת להם משקל לפי חשיבות, ובהתאם לספק מידע רלוונטי לטוקנים רחוקים. משקל החשיבות, נקבע, בעיקר לפי כמות ההקשרים בין מילה לבין מילים אחרות ברצף.

דוגמה ברורה לערך הקשב העצמי היא בתרגום שפה, שם ההקשר הכללי חיוני להבנת משמעות של מילה במשפט. כך למשל, במערכת תרגום מאנגלית לצרפתית, לרוב המילה הראשונה של הפלט הצרפתי תהיה תלויה במידה רבה במילים הראשונות של הקלט האנגלי. עם זאת, במודל RNN קלאסי, על מנת להפיק את המילה הראשונה של הפלט הצרפתי, המודל מקבל רק וקטור המצב לאחר עיבוד המילה האחרונה באנגלית. תאורטית, וקטור זה יכול לקודד מידע על כל המשפט האנגלי, ולתת למודל את כל הידע הנדרש לתרגום. בפועל, מידע זה נשמר לרוב בצורה לא טובה. מנגנון הקשב מתמודד עם בעיה זו על ידי כך שנותן גישה לווקטורי המצב של כל מילה בקלט באנגלית, ולא רק לאחרונה המייצגת את המצב האחרון.

מעבר ליתרון הדיוק שנוצר משימוש במנגנון הקשב העצמי, העיבוד המקבילי משפר משמעותית את מהירות אימון המודל.

## כוונון עדין (fine-tuning)
אימון מודלי טרנספורמר נעשה בדרך כלל בשיטת למידה בהנחיה עצמית, הכוללת אימון למידה בלתי מונחית ואחריו כוונון עדין באמצעות למידה מונחית. האימון המקדים נעשה בדרך כלל על מערך נתונים גדול יותר מאשר הכוונון העדין, בשל הזמינות המוגבלת של נתוני אימון מתוייגים. המשימות הנפוצות לאימון מקדים וכוונון עדין הן:
* מודל שפה
* חיזוי המשפט הבא
* תשובה לשאלה
* הבנת הנקרא
* ניתוח סנטימנט
* פרפרזה

## טרנספורמרים בראיה ממוחשבת
בשנת 2020, הציגה קבוצה מגוגל יישום ראשון של ארכיטקטורת הטרנספורמר בו הקלט הוא תמונה ולא טקסט. בארכיטקטורה זו החליפו שכבות הטרנספורמר את שכבות הקונבולוציה שאפיינה את רשתות הנוירונים לעיבוד תמונה עד אז. הדבר נעשה תוך שימוש כמעט ללא שינוי בארכיטקטורת הטרנספורמר המקורית, ועל ידי חיתוך תמונת הקלט לריבועים קטנים (patches) שהיוו את יחידות הקלט הבסיסיות (טוקנים).

## שימושים
הטרנספורמר זכה להצלחה רבה בעיבוד שפה טבעית (NLP), ובאופן ספציפי במשימות תרגום מכונה וחיזוי סדרות זמן. מודלים מאומנים מראש כמו GPT-2, GPT-3, GPT-4, BERT, XLNet, RobERTa ו-ChatGPT מדגימים את יכולתם של הטרנספורמרים לבצע מגוון רחב של משימות הקשורות ל-NLP, והשימוש בהם ביישומים בעולם האמיתי זולג לתחומים רבים, ונכון לתחילת שנת 2023, נעשה פופולרי במיוחד. תחומים בהם נעשה שימוש במודלים כוללים, בין היתר:
* תרגום מכונה
* סיכום מסמכים
* הפקת מסמכים
* זיהוי ישויות (NER)
* ניתוח רצף ביולוגי
* הבנת תמונה
* הבנת וידאו
* עיבוד תמונה – Vision transformer

## יישומים
מודל הטרנספורמר מיושם במסגרות התוכנה הפופולריות ללמידה עמוקה כמו TensorFlow ו-PyTorch. כמו כן, קיימת ספריית תוכנה בשם Transofrmers שנוצרה על ידי חברת Hugging Face, המספקת ארכיטקטורות מבוססות טרנספורמרים ומודלים שאומנו-מראש.

## הערות שוליים

קטגוריה:למידה עמוקה