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

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

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

ארכיטקטורת הטרנספורמר הוצגה לראשונה ב-2017 על ידי קבוצת חוקרים מגוגל,<ref></ref> כאשר כשנה לאחר מכן שחררה גוגל, בקוד פתוח, את מודל השפה הגדול הראשון הבנוי על בסיס הארכיטקטורה - BERT.<ref></ref> לאחר מכן, פופולריות הארכיטקטורה החלה לצבור תאוצה, והיא נעשתה למודל המועדף לעיבוד שפה טבעית ומודלי שפה גדולים.<ref name="wolf2020"></ref> זאת, בעיקר בשל תכונת המקביליות האמורה המאפשרת אימון על מערכי נתונים גדולים יותר. יצירת המודל שימשה בסיס לפיתוח מודלי שפה מאומנים מראש, כמו GPT (סדרת מודלים שפותחו על ידי OpenAI, ונעשו לפופולריים במיוחד מאז הושק הצ׳טבוט ChatGPT), PaLM, Claude ועוד. מודלים אלו אומנו על מערכי נתונים גדולים של שפות, הכוללים טריליוני מילים. כמו כן, המודלים ניתנים לכוונון (fine tune) באופן שבו יותאמו לביצוע משימות נקודתיות.<ref name=":6"></ref><ref name=":7"></ref>

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

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

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

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

=== כוונון עדין (fine-tuning) ===
אימון מודלי טרנספורמר נעשה בדרך כלל בשיטת למידה בהנחיה עצמית, הכוללת אימון למידה בלתי מונחית ואחריו כוונון עדין באמצעות למידה מונחית. האימון המקדים נעשה בדרך כלל על מערך נתונים גדול יותר מאשר הכוונון העדין, בשל הזמינות המוגבלת של נתוני אימון מתוייגים. המשימות הנפוצות לאימון מקדים וכוונון עדין הן:
* מודל שפה
* חיזוי המשפט הבא
* תשובה לשאלה
* הבנת הנקרא
* ניתוח סנטימנט<ref name=":8"></ref>
* פרפרזה

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

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

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

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

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