ืืื ื ืืืืืืชืืช
ืืืืืื ืืืืืื ืฉื ืฉืคื ืืืืกืกื ืคืืืงืืืจ: ืืืจืื ืืื
מודלים גדולים של שפה (LLM) המהפכנו את תחום עיבוד שפה טבעית (NLP) על ידי הפגנת יכולות יוצאות דופן ביצירת טקסט דומה לאדם, ענישה על שאלות וסיוע במגוון רחב של משימות הקשורות לשפה. בלב לבם של מודלים אלו מונחת ארכיטקטורת טרנספורמר רק פודקודר, וריאנט של הארכיטקטורה המקורית של הטרנספורמר שהוצעה במאמר החלוצי “תשומת לב היא כל מה שנחוץ” מאת Vaswani ושות’.
במדריך המקיף הזה, נחקור את המנגנונים הפנימיים של LLM מבוססי פודקודר, חודרים לבניינים הבסיסיים, חידושים ארכיטקטוניים ופרטי יישום שהניעו את המודלים האלו לחזית מחקר ה-NLP ויישומים.
ארכיטקטורת הטרנספורמר: עדכון
לפני שנצלול לפרטים של LLM מבוססי פודקודר, חשוב לבקר שוב בארכיטקטורה של הטרנספורמר, היסוד עליו מודלים אלו בנויים. הטרנספורמר הציג גישה חדשה למודלים של רצפים, תוך שימוש במנגנוני תשומת לב בלבד כדי ללכוד תלות מרחוק בנתונים, ללא צורך בשכבות רקורסיביות או קונבולוציוניות.
הארכיטקטורה המקורית של הטרנספורמר מורכבת משני רכיבים עיקריים: מקודד ופודקודר. המקודד מעבד את רצף הקלט ויוצר ייצוג מקונטקסטואלי, אותו הפודקודר צורך כדי לייצר את רצף הפלט. ארכיטקטורה זו תוכננה במקור למשימות תרגום מכונה, שבהן המקודד מעבד את המשפט הקלט בשפה המקור והפודקודר מייצר את המשפט המתאים בשפה היעד.
תשומת לב עצמית: המפתח להצלחת הטרנספורמר
בלב הטרנספורמר שוכנת מנגנון תשומת לב עצמית, טכניקה חזקה המאפשרת למודל לשקול ולאגד מידע מעמדות שונות ברצף הקלט. לעומת מודלים רציפיים מסורתיים, המעבדים טוקנים קלט ברציפות, תשומת לב עצמית מאפשרת למודל ללכוד תלות בין כל זוג טוקנים, ללא קשר לעמדתם ברצף.
פעולת תשומת לב עצמית יכולה להיחלק לשלושה שלבים עיקריים:
- פרויקטים של שאילתה, מפתח וערך: רצף הקלט מופרש לשלושה ייצוגים נפרדים: שאילתות (Q), מפתחות (K), ו־ערכים (V). פרויקציות אלו מתקבלות על ידי כפל הקלט במטריצות משקלים נלמדות.
- חישוב ציוני תשומת לב: עבור כל עמדה ברצף הקלט, ציוני תשומת לב מחושבים על ידי לקיחת מכפלת הדוט בין וקטור השאילתה התואמת וכל וקטורי המפתח. ציונים אלו מייצגים את הרלוונטיות של כל עמדה לעמדה הנוכחית המעובדת.
- סכום משוקלל של ערכים: ציוני תשומת לב מנורמלים באמצעות פונקציית סופטמקס, ומשקלי תשומת לב התוצאה משמשים לחישוב סכום משוקלל של וקטורי הערך, תוך יצירת ייצוג פלט לעמדה הנוכחית.
תשומת לב רב-ראשית, וריאנט של מנגנון תשומת לב עצמית, מאפשר למודל ללכוד סוגים שונים של יחסים על ידי חישוב ציוני תשומת לב לאורך מספר “ראשים” במקביל, כל אחד עם סט משלו של פרויקציות שאילתה, מפתח וערך.
ווריאנטים ארכיטקטוניים וקונפיגורציות
בעוד שעקרונות היסוד של LLM מבוססי פודקודר נותרים עקביים, חוקרים חקרו וריאנטים ארכיטקטוניים וקונפיגורציות שונות כדי לשפר ביצועים, יעילות ויכולות כלליות. בסעיף זה, נחדור לתוך הבחירות הארכיטקטוניות השונות והשלכותיהן.
סוגי ארכיטקטורה
LLM מבוססי פודקודר יכולים להיחלק באופן רחב לשלושה סוגים עיקריים: ארכיטקטורת מקודד-פודקודר, ארכיטקטורת פודקודר סיבתית וארכיטקטורת פודקודר עם קדם-תחילית. כל סוג ארכיטקטוני מציג דפוסי תשומת לב ייחודיים.
ארכיטקטורת מקודד-פודקודר
על בסיס המודל הוואנילי של הטרנספורמר, ארכיטקטורת מקודד-פודקודר מורכבת משני ערימות: מקודד ופודקודר. המקודד משתמש בשכבות מרובות-ראשי תשומת לב עצמית כדי לקודד את רצף הקלט ולייצר ייצוגים לטנטיים. הפודקודר ביצע תשומת לב הדדית על ייצוגים אלו כדי לייצר את רצף היעד. בעוד שארכיטקטורה זו היא יעילה במשימות NLP שונות, מעט LLM, כגון Flan-T5, אימצו ארכיטקטורה זו.
ארכיטקטורת פודקודר סיבתית
ארכיטקטורת פודקודר סיבתית משלבת מסכת תשומת לב חד-כיוונית, המאפשרת לכל טוקן קלט להתייחס רק לטוקנים קודמים ולעצמו. שני הטוקנים, קלט ופלט, מעובדים בתוך אותו פודקודר. מודלים בולטים כגון GPT-1, GPT-2 ו-GPT-3 נבנו על ארכיטקטורה זו, עם GPT-3 המציג יכולות למידה מרשימות בהקשר. רוב LLM, כולל OPT, BLOOM ו-Gopher, אימצו פודקודרים סיבתיים.
ארכיטקטורת פודקודר עם קדם-תחילית
ידועה גם כארכיטקטורת פודקודר לא-סיבתית, ארכיטקטורת פודקודר עם קדם-תחילית משנה את מנגנון המסיכה של פודקודרים סיבתיים כדי לאפשר תשומת לב דו-כיוונית על טוקני קדם-תחילית ותשומת לב חד-כיוונית על טוקנים מיוצרים. כמו ארכיטקטורת מקודד-פודקודר, פודקודרים עם קדם-תחילית יכולים לקודד את רצף הקדם-תחילית באופן דו-כיווני ולנבא טוקני פלט באופן אוטורגרסיבי באמצעות פרמטרים משותפים. LLM המבוססים על פודקודרים עם קדם-תחילית כוללים GLM130B ו-U-PaLM.
כל שלושת סוגי הארכיטקטורה יכולים להירחב באמצעות טכניקת מיקסר של מומחים (MoE), המפעילה באופן רזה תת-קבוצה של משקלי רשת ניורונית לכל קלט. גישה זו הונהגה במודלים כגון Switch Transformer ו-GLaM, כאשר הגדלת מספר המומחים או גודל הפרמטרים הכולל הראתה שיפורים משמעותיים בביצועים.
טרנספורמר רק פודקודר: אימוץ הטבע האוטורגרסיבי
בעוד שהארכיטקטורה המקורית של הטרנספורמר תוכננה למשימות רצף-לרצף כגון תרגום מכונה, הרבה משימות NLP, כגון מודלים של שפה ויצירת טקסט, יכולות להיתפס כבעיות אוטורגרסיביות, שבהן המודל יוצר טוקן אחד בכל פעם, בהתניה על הטוקנים שנוצרו קודם לכן.
נכנס הטרנספורמר רק פודקודר, וריאנט מופשט של ארכיטקטורת הטרנספורמר, השומר רק את הרכיב הפודקודר. ארכיטקטורה זו מתאימה במיוחד למשימות אוטורגרסיביות, שכן היא יוצרת טוקני פלט אחד אחד, תוך ניצול הטוקנים שנוצרו קודם כהקשר קלט.
ההבדל המרכזי בין הטרנספורמר רק פודקודר לבין הפודקודר המקורי של הטרנספורמר טמון במנגנון תשומת לב עצמית. בהגדרת הפודקודר בלבד, פעולת תשומת לב עצמית מותאמת כדי למנוע מהמודל להתייחס לטוקנים עתידיים, תכונה הידועה בשם “סיבתיות”. זאת מושגת דרך טכניקה הנקראת “תשומת לב עצמית ממוסכת”, שבה ציוני תשומת לב התואמים לעמדות עתידיות מוצבים לאינסוף שלילי, באופן הידרדרות, במהלך שלב הנורמליזציה של פונקציית הסופטמקס.
רכיבים ארכיטקטוניים של LLM מבוססי פודקודר
בעוד שעקרונות היסוד של תשומת לב עצמית ותשומת לב עצמית ממוסכת נותרים זהים, LLM מבוססי פודקודר מודרניים הציגו מספר חידושים ארכיטקטוניים כדי לשפר ביצועים, יעילות ויכולות כלליות. באותו אופן, נחקור את הרכיבים והטכניקות המרכזיים המועסקים ב-LLM מובילים.
ייצוג קלט
לפני עיבוד רצף הקלט, LLM מבוססי פודקודר מנצלים טכניקות טוקניזציה והטמעה כדי להמיר את הטקסט הגולמי לייצוג נומרי המתאים למודל.
טוקניזציה: תהליך הטוקניזציה הופך את הטקסט הקלט לרצף של טוקנים, שיכולים להיות מילים, תת-מילים או אפילו תווים בודדים, בהתאם לאסטרטגיית הטוקניזציה המועדפת. טכניקות טוקניזציה פופולריות עבור LLM כוללות Byte-Pair Encoding (BPE), SentencePiece ו-WordPiece. שיטות אלו מטרתן למצוא איזון בין גודל הקושחה לרמת הייצוג, מה שמאפשר למודל להתמודד עם מילים נדירות או מחוץ לקושחה בצורה יעילה.
הטמעות טוקנים: לאחר הטוקניזציה, כל טוקן ממופה לייצוג וקטורי צפוף הנקרא הטמעת טוקן. הטמעות אלו נלמדות במהלך תהליך האימון וכוללות מערכי יחסים סמנטיים ותחביריים בין טוקנים.
הטמעות עמדתיות: מודלי טרנספורמר מעבדים את כל רצף הקלט בו-זמנית, חסרים את המושג הפנימי של עמדות טוקנים הנוכח במודלים רקורסיביים. כדי לשלב מידע עמדתי, הטמעות עמדתיות מתווספות להטמעות הטוקנים, מאפשרות למודל להבדיל בין טוקנים על בסיס עמדותיהם ברצף. LLM מוקדמים השתמשו בהטמעות עמדתיות קבועות המבוססות על פונקציות סינוסואידליות, בעוד מודלים מאוחרים יותר חקרו הטמעות עמדתיות נלמדות או טכניקות קידוד עמדתיות אלטרנטיביות כגון הטמעות עמדתיות רוטריות.
בלוקים של תשומת לב מרובת ראשים
הבניינים הבסיסיים של LLM מבוססי פודקודר הם שכבות תשומת לב מרובת-ראשים, המבצעות את פעולת תשומת לב עצמית הממוסכת, כפי שתואר קודם. שכבות אלו מורכבות מספר פעמים, כאשר כל שכבה מתייחסת לפלט של השכבה הקודמת, מאפשרת למודל ללכוד תלות וייצוגים מורכבים יותר ויותר.
ראשי תשומת לב: כל שכבת תשומת לב מרובת-ראשים מורכבת ממספר “ראשים” של תשומת לב, כל אחד עם פרויקציות שאילתה, מפתח וערך משלו. זה מאפשר למודל להתייחס להיבטים שונים של הקלט בו-זמנית, תוך לכידת מגוון רחב של יחסים ודפוסים.
חיבורים שורשיים ונורמליזציה של שכבות: כדי להקל על אימון רשתות עמוקות ולצמצם את בעיית הגרדיאנט הנעלם, LLM מבוססי פודקודר מנצלים חיבורים שורשיים וטכניקות נורמליזציה של שכבות. חיבורים שורשיים מוסיפים את הקלט של שכבה לפלט שלה, מאפשרים לגרדיאנטים לזרום יותר בקלות במהלך האימון. נורמליזציה של שכבות עוזרת לייצב את ההפעלות והגרדיאנטים, תוך שיפור עוד יותר את יציבות האימון וביצועים.
שכבות קדמיות
בנוסף לשכבות תשומת לב מרובת-ראשים, LLM מבוססי פודקודר כוללים שכבות קדמיות, המיישמות רשת ניורונית קדמית פשוטה לכל עמדה ברצף. שכבות אלו מציגות אי-ליניאריות ומאפשרות למודל ללמוד ייצוגים מורכבים יותר.
פונקציות הפעלה: בחירת פונקציית ההפעלה בשכבות הקדמיות יכולה להשפיע משמעותית על ביצועי המודל. בעוד ש-LLM מוקדמים הסתמכו על פונקציית ההפעלה ReLU, מודלים מאוחרים יותר אימצו פונקציות הפעלה מתוחכמות יותר כגון Gaussian Error Linear Unit (GELU) או SwiGLU, שהראו שיפורים בביצועים.
תשומת לב דלילה וטרנספורמרים יעילים
בעוד שמנגנון תשומת לב עצמית חזק, הוא בא עם סיבוכיות חישובית ריבועית ביחס לאורך הרצף, מה שהופך אותו ליקר מבחינה חישובית עבור רצפים ארוכים. כדי להתמודד עם אתגר זה, הוצעו מספר טכניקות להפחתת הדרישות החישוביות והזיכרון של תשומת לב עצמית, מאפשרות עיבוד יעיל יותר של רצפים ארוכים.
תשומת לב דלילה: טכניקות תשומת לב דלילה, כגון זו המועסקת במודל GPT-3, בוחרות להתייחס רק לתת-קבוצה של עמדות ברצף הקלט, במקום לחשב ציוני תשומת לב עבור כל העמדות. זה יכול להפחית משמעותית את הסיבוכיות החישובית תוך שמירה על ביצועים סבירים.
תשומת לב חלונית: הצגה במודל Mistral 7B, תשומת לב חלונית (SWA) היא טכניקה פשוטה אך יעילה המגבילה את טווח התשומת לב של כל טוקן לגודל חלון קבוע. גישה זו ניצלת את היכולת של שכבות טרנספורמר להעביר מידע לאורך מספר שכבות, באופן הידרדרות, תוך הגדלת טווח התשומת לב ללא הסיבוכיות הריבועית של תשומת לב עצמית מלאה.
מטמון חלון גלגלי: כדי להפחית עוד יותר את דרישות הזיכרון, במיוחד עבור רצפים ארוכים, מודל Mistral 7B מנצל מטמון חלון גלגלי. טכניקה זו אוחסנה ושימושה בווקטורים המחושבים של מפתח וערך עבור גודל חלון קבוע, מונעת חישובים מיותרים ומקטינה את השימוש בזיכרון.
תשומת לב שאילתות קבוצתיות: המוצגת במודל LLaMA 2, תשומת לב שאילתות קבוצתיות (GQA) היא וריאנט של מנגנון תשומת לב מרובת-שאילתות, המחלק את ראשי התשומת לב לקבוצות, כל קבוצה חולקת מטריצת מפתח וערך משותפת. גישה זו מציעה איזון בין יעילות תשומת לב מרובת-שאילתות לבין ביצועים של תשומת לב עצמית רגילה, מספקת זמני הידור משופרים תוך שמירה על תוצאות איכותיות.














