In-Context Learning (HE)

From Systems analysis Wiki
Jump to navigation Jump to search

למידה בהקשר (באנגלית: In-Context Learning, ICL) — היא יכולת יסודית של מודלי שפה גדולים (LLM) ללמוד משימות חדשות "תוך כדי תנועה", תוך שימוש אך ורק בדוגמאות (הדגמות) המסופקות בהקשר (ה-prompt) של הבקשה. המאפיין המרכזי הוא שתהליך ההתאמה הזה מתרחש ללא עדכון המשקולות (הפרמטרים) של המודל, כלומר ללא fine-tuning מסורתי[1][2].

מנגנון זה מאפשר למודלים להפגין גמישות מרשימה, ולפתור משימות שלא אומנו עליהן במפורש. ICL הפך לאחד מפריצות הדרך המרכזיות שהפכו את מודלי השפה הגדולים לכה עוצמתיים ורב-תכליתיים[3].

מנגנוני פעולה

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

Transformer כמטא-אופטימייזר

תיאוריה אחת פופולרית גורסת כי ארכיטקטורת ה-Transformer לומדת, במהלך האימון המוקדם, לממש אלגוריתמי למידה במעברים הקדמיים שלה (forward passes). כאשר המודל מקבל prompt עם דוגמאות, הוא מבצע באופן מרומז סוג של אופטימיזציה לפתרון המשימה המוצגת, ומכוון את מצביו הפנימיים (אקטיבציות) ולא את המשקולות[4].

היסק בייסיאני

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

סוגי In-Context Learning

בהתאם למספר הדוגמאות המסופקות, ICL מחולק לשלושה סוגים עיקריים.

  • Few-shot Learning (למידה על מספר דוגמאות): זהו הגישה הנפוצה והמאוזנת ביותר. המודל מקבל מספר (בדרך כלל 2 עד 10) דוגמאות הדגמה.

דוגמה (סיווג סנטימנט):

Текст: "Какой прекрасный день!"
Тональность: Позитивная

Текст: "Я ненавижу стоять в пробках."
Тональность: Негативная

Текст: "Этот фильм был довольно средним."
Тональность:

תשובה צפויה:

Нейтральная
  • One-shot Learning (למידה על דוגמה אחת): המודל מקבל דוגמה אחת בלבד. לעיתים קרובות די בכך כדי לקבוע את פורמט התשובה ולשפר משמעותית את הביצועים בהשוואה לגישת zero-shot.
  • Zero-shot Learning (למידה ללא דוגמאות): המודל אינו מקבל דוגמאות כלל, אלא רק הוראה או תיאור של המשימה. במקרה זה, המודל נשען לחלוטין על הידע שנרכש במהלך האימון המוקדם.

יישומים מעשיים

שימוש נכון ב-ICL מאפשר לפתור מגוון רחב של משימות ללא פיתוח יקר ו-fine-tuning.

  • למשימות יצירתיות וסגנוניות (יצירת קוד בסגנון מסוים, כתיבת טקסט בסגנון מחבר מסוים):
    • מומלץ Few-shot Learning.
    • הדוגמאות עוזרות למודל לקלוט את הסגנון, הפורמט והמבנה הנדרשים של הפלט.
  • למשימות פשוטות עם הוראות ברורות (תרגום, סיכום, מענה לשאלות פשוטות):
    • לעיתים קרובות מספיק Zero-shot Learning.
    • מודלים מודרניים מתמודדים היטב עם משימות כאלה אם הן היו חלק מהאימון המוקדם שלהם.
  • למשימות שבהן פורמט הפלט חשוב (יצירת JSON, חילוץ ישויות):
    • מומלץ One-shot או Few-shot Learning.
    • אפילו דוגמה אחת יכולה לקבוע בבירור את מבנה התשובה הנדרש, ולמנוע שגיאות עיצוב.

יתרונות וחסרונות

השוואת יתרונות וחסרונות של ICL
יתרונות חסרונות
  • גמישות ומהירות: התאמה מיידית למשימות חדשות ללא צורך באימון מחדש.
  • חיסכון במשאבים: אינו דורש איסוף נתונים, תיוג וכוח חישובי לצורך fine-tuning.
  • נגישות: מאפשר למשתמשים ללא מומחיות ב-ML לכוונן מודלים באמצעות דוגמאות טקסט פשוטות.
  • מגבלות חלון ההקשר: מספר הדוגמאות מוגבל על ידי אורך ההקשר המרבי של המודל.
  • רגישות לדוגמאות: התוצאה תלויה מאוד באיכות, בסדר ובפורמט ההדגמות המסופקות.
  • עלויות גבוהות בשלב ההיסק: promptים ארוכים עם דוגמאות רבות מגדילים את העלות ואת זמן היצירה.
  • סיכוני אבטחה: העברת מידע סודי כדוגמאות עלולה להיות בלתי בטוחה.

השוואה עם פרדיגמות אחרות

ICL לעומת Fine-tuning

Fine-tuning משנה את משקולות המודל ו"מטביע" בו ידע חדש. הדבר הופך את המודל למומחה בתחום צר, אך מפחית את גמישותו הכללית. ICL, לעומת זאת, אינו משנה משקולות ונחשב לגמיש יותר, אך עשוי לפגר בביצועים במשימות מתמחות מאוד הדורשות ידע עמוק בתחום.

ICL לעומת RAG (Retrieval-Augmented Generation)

שתי השיטות מרחיבות את הקשר המודל, אך למטרות שונות:

  • ICL משתמש בדוגמאות כדי ללמד את המודל כיצד לבצע משימה (הדגמת מיומנות).
  • RAG משתמש במידע שנשלף כדי להעביר למודל עובדות הנדרשות לתשובה (מתן ידע).

בפועל, ICL ו-RAG משולבים לעיתים קרובות להשגת התוצאות הטובות ביותר.

ספרות

  • Brown, T. B. et al. (2020). Language Models are Few-Shot Learners. arXiv:2005.14165.
  • Dai, D. et al. (2022). Why Can GPT Learn In-Context? Language Models Implicitly Perform Gradient Descent as Meta-Optimizers. arXiv:2212.10559.
  • Panwar, M.; Ahuja, K.; Goyal, N. (2024). In-Context Learning through the Bayesian Prism. arXiv:2306.04891.
  • Müller, S. et al. (2021). Transformers Can Do Bayesian Inference. arXiv:2112.10510.
  • Garg, S. et al. (2022). What Can Transformers Learn In-Context? A Case Study of Simple Function Classes. arXiv:2208.01066.
  • Min, S. et al. (2022). Rethinking the Role of Demonstrations: What Makes In-Context Learning Work?. arXiv:2202.12837.
  • Wang, X. et al. (2023). Explaining and Finding Good Demonstrations for In-Context Learning. arXiv:2302.13971.
  • Xie, S. et al. (2024). A Survey on In-Context Learning. arXiv:2301.00234.
  • Yu, Z.; Ananiadou, S. (2024). How Do Large Language Models Learn In-Context? Query and Key Matrices of In-Context Heads Are Two Towers for Metric Learning. arXiv:2402.02872.
  • Wibisono, K. C.; Wang, Y. (2024). From Unstructured Data to In-Context Learning: Exploring What Tasks Can Be Learned and When. arXiv:2406.00131.
  • Chan, J. K. et al. (2022). Data Distributional Properties Drive Emergent In-Context Learning in Transformers. arXiv:2205.05055.
  • Hahn, M.; Goyal, N. (2023). A Theory of Emergent In-Context Learning as Implicit Structure Induction. arXiv:2303.07971.

הערות