<aside> ℹ️ מידע על העמוד

</aside>

https://www.youtube.com/watch?v=LWMzyfvuehA&ab_channel=StanfordOnline

טרנספורמרים הם מודלי אנקודר-דיקודר (במקור הוצגו כ-encoder-decoder, כיום הרבה ארכטיקטורות מובילות הן encoder-only או decoder-only) שמתבססים על מנגנון ה-self-attention. טרנספורמרים השיגו תוצאות מצוינות במגוון משימות, ביניהן תרגום מכונה (בהם השיגו תוצאות BLEU טובות יותר וגם אימון יעיל יותר בהשוואה למודלים אחרים), סיכום summarization ועוד. היתרון הגדול שלהם (מלבד הביצועים) הוא שאפשר לעשות להם pretraining (כלומר לאמן אותם מראש על כמות גדולה של דאטא) בצורה מאוד יעילה (כיוון שהם מחושבים באופן מקבילי).

Untitled

ארטיקטורה של טרנספורמרים

בתור התחלה, נסתכל על אבני הבניין שמרכיבות את ה-Transformer encoder decoder ב-High level:

בתור קלט אנחנו מקבלים word embeddings להם אנחנו מוסיפים position representation, ואז באמצעות ה-transformer encoder אנחנו מקבלים את השכבה האחרונה שלו שמשמשת (ביחד עם ה- word embeddings וה- position representation) את ה-transformer decoder שהוא זה שמבצע את הפרדיקציה.

Untitled

רוב אבני הבנין שמוזכרים בדיאגרמה הזו הוזכרו בהסבר על attention, ונתמקד כעת באלו מהן שלא הוסברו עדיין:

לאחר שימוש בשיטות אלו, נקבל את הארכיטקטורה הבאה עבור כל אחת משכבות ה-transformer encoder וכל אחד משכבות ה-transformer decoder (כל השיטות בדיאגרמה יוסברו בהמשך הפרק):

Untitled

מנגנון Key-query-value attention

ראינו בתחילת הפרק שב-self-attention ישנם מפתחות keys, ערכים values ושאילתות queries שמגיעים כולם מאותו מקור. נגדיר כעת את הקלט של ה-Transformer encoder להיות $x_1, \ldots, x_T$ (משפט המורכב מ-T מילים, שכל אחת מהן מיוצגת באמצעות וקטור ממימד d), ונגדיר את החלקים הבאים: