Decoder (Transformer) (HE)
מפענח (אנגל. Decoder) — בלמידת מכונה ולמידה עמוקה, זהו רכיב של רשת נוירונים שמשימתו העיקרית היא המרת ייצוג מקודד (למשל, וקטור הקשר או רצף של מצבים סמויים שהתקבלו מהמקודד) לרצף נתונים פלט (למשל, טקסט או תמונה). המפענח מייצר נתוני פלט צעד אחר צעד, בדרך כלל במצב אוטו-רגרסיבי.
במובן הרחב יותר, בתורת האינפורמציה, מפענח הוא כל מכשיר או אלגוריתם הממיר נתונים מקודדים בחזרה לפורמט המקורי שלהם או לפורמט מובן.
מושג ומטרה
אם המקודד אחראי להבנה ולדחיסה של נתוני הקלט, אזי המפענח אחראי ליצירה ולפריסה של נתוני הפלט. הוא לוקח ייצוג קומפקטי עשיר במידע וממיר אותו באופן עוקב לפורמט הרצוי — בין אם זה משפט בשפה אחרת, תיאור טקסטואלי של תמונה, או רצף של תווים מוזיקליים.
מאפיין המפתח של רוב המפענחים הוא אופיים האוטו-רגרסיבי: כדי לייצר את האיבר הבא ברצף (למשל, מילה או פיקסל), הם משתמשים הן בייצוג המקודד והן בכל האיברים שנוצרו עד כה.
המפענח בארכיטקטורות שונות
המפענח ב-Autoencoder
בארכיטקטורת הAutoencoder, המפענח מבצע את המשימה ההפוכה למקודד:
- המקודד דוחס את נתוני הקלט לייצוג סמוי.
- המפענח לוקח ייצוג סמוי זה ומנסה לשחזר (לרקונסטרקט) ממנו את הנתונים המקוריים.
אימון רשת כזו מאפשר להשתמש במפענח בנפרד לצורך יצירת נתונים חדשים, על ידי הזנת וקטורים מהמרחב הלטנטי לכניסתו.
המפענח ברשתות נוירונים רקורנטיות (RNN/LSTM)
במודלי המרת רצף לרצף קלאסיים (seq2seq), המבוססים על RNN או LSTM, המפענח הוא רשת רקורנטית המייצרת את רצף הפלט token אחר token.
- עיקרון הפעולה: המפענח מאותחל עם המצב הסמוי הסופי (וקטור ההקשר) של המקודד. בכל צעד הוא מקבל כקלט את ה-token שנוצר קודם לכן ואת מצבו הסמוי הקודם, ולאחר מכן מייצר את ה-token הבא ומעדכן את מצבו. תהליך זה נמשך עד שנוצר token מיוחד של סוף הרצף (`<EOS>`).
המפענח בארכיטקטורת Transformer
המפענח המבוסס על ארכיטקטורת הTransformer גם הוא פועל באופן אוטו-רגרסיבי, אך מבנהו הפנימי שונה. הוא מורכב מערמה () של שכבות זהות, שכל אחת מהן כוללת שלושה תת-שכבות עיקריות:
- Masked Multi-Head Self-Attention (תשומת לב עצמית רב-ראשית עם מסיכה): מנגנון זה פועל בדומה לזה שבמקודד, אך עם הבדל חשוב אחד — מסיכה. המסיכה מונעת מכל עמדה "להתייחס" לעמדות הבאות אחריה ברצף. זה מבטיח שהניבוי לעמדה תלוי רק בפלטים הידועים כבר בעמדות , ובכך שומר על התכונה האוטו-רגרסיבית.
- Multi-Head Cross-Attention (תשומת לב צולבת רב-ראשית): זהו המנגנון המרכזי המקשר בין המפענח למקודד. כאן ה-Query מגיעים מהשכבה הקודמת של המפענח, בעוד ה-Key וה-Value מגיעים מהייצוגים הפלטיים של המקודד. זה מאפשר למפענח בכל צעד של היצירה להתמקד בחלקים הרלוונטיים ביותר של רצף הקלט.
- Feed-Forward Network (רשת נוירונים מחוברת במלואה): דומה לזו המשמשת במקודד.
סוגי מודלים המבוססים על מפענח
מודלי Encoder-Decoder
זוהי הארכיטקטורה הקלאסית, שבה המקודד והמפענח פועלים בזוג.
- עיקרון הפעולה: המקודד יוצר ייצוג של נתוני הקלט, והמפענח מייצר את נתוני הפלט תוך שימוש בייצוג זה.
- דוגמאות: ה-Transformer המקורי, T5, BART.
מודלי Decoder-Only
מודלים אלו, שהפכו לדומיננטיים ב-AI גנרטיבי, משתמשים אך ורק בערמת מפענחי Transformer.
- עיקרון הפעולה: במודלים כאלה אין תשומת לב צולבת למקודד, שכן אין מקודד. המודל פועל באופן אוטו-רגרסיבי טהור, מנבא את ה-token הבא על בסיס כל ה-tokenים הקודמים באותו הרצף. ה-prompt הקלטי והטקסט שכבר נוצר מעובדים יחד.
- שימושים: אידיאליים למשימות הדורשות המשך של טקסט נתון (יצירת טקסט, מערכות דיאלוג, צ'אט-בוטים).
- דוגמאות: סדרת GPT, LLaMA, Claude.
הקשר למקודד
האינטראקציה בין המקודד למפענח היא עיקרון יסודי במשימות המרה.
- המקודד דוחס מידע אודות רצף הקלט לקבוצת וקטורים.
- המפענח משתמש בקבוצת וקטורים זו כדי לייצר ברצף רצף חדש.
תשומת הלב הצולבת מאפשרת למפענח בכל צעד "להתייעץ" עם המקודד כדי להבין על איזה חלק של הטקסט המקורי יש להתמקד ברגע נתון. לדוגמה, בעת תרגום משפט, המפענח, בעת יצירת מילה גרמנית, יכול "להציץ" במילה האנגלית המתאימה לה מהקלט.
ראו גם
- GPT
ספרות
- Vaswani, A. et al. (2017). Attention Is All You Need. NIPS.