Top-k sampling (HE)
דגימת Top-k היא שיטת פענוח סטוכסטית המשמשת במודלי שפה אוטורגרסיביים, כולל מודלי שפה גדולים (LLM), לצורך יצירת טקסט. מטרתה העיקרית היא להגביל את דגימת הטוקן הבא למספר קבוע () של המועמדים בעלי ההסתברות הגבוהה ביותר, מה שמאפשר להימנע מיצירת מילים בעלות הסתברות נמוכה ולרוב בלתי הולמות. שיטה זו הייתה אחת השיפורים הראשונים לדגימה אקראית פשוטה, ובמשך זמן רב נחשבה לדרך פופולרית לשיפור הקוהרנטיות של הטקסט המיוצר.
הסבר פשוט
ניתן לתאר את דגימת Top-k כבחירת המילה הבאה לא מכל האפשרויות האפשריות, אלא רק מרשימה מוגבלת של המועמדים הסבירים ביותר.
לדוגמה, המודל משלים את המשפט «היום ברחוב ירד גשם עז…». במילוניו אלפי המשכים: «גשם», «רוח», «שלג», «מטר» — ואי שם בהמשך «קוונטי» או סמל אקראי. ללא הגבלות, יצירת הטקסט חשופה לצורות שונות של ניוון (text degeneration). שיטות מקסימיזציה (greedy decoding, beam search) מניבות טקסט משעמם וחוזר על עצמו, בעוד שדגימה טהורה ללא חיתוך עלולה להוביל לחוסר קוהרנטיות בשל בחירת טוקנים בעלי הסתברות נמוכה מ«הזנב הבלתי אמין» של ההתפלגות. Top-k נלחמת בעיקר בבעיה השנייה — על ידי קטיעת הזנב היא מפחיתה את הסיכון להמשכים חסרי משמעות, אף שכשלעצמה אינה מבטלת חזרתיות. Top-k אומרת: «קח רק את המילים הסבירות ביותר, שכח את השאר, חשב מחדש את ההסתברויות ביניהן ובחר אחת באקראי».
במילים פשוטות:
- המודל מרכיב רשימה של ההמשכים הסבירים ביותר;
- לוקח רק את האפשרויות הראשונות;
- בוחר אחת מהן באקראי.
ככל שקטן יותר , כך התוצאה זהירה וצפויה יותר. ככל שגדול יותר , כך היצירה חופשית ומגוונת יותר.
אנלוגיות:
- תפריט מסעדה: במקום לבחור אקראית מ-5,000 מנות (סיכון לקבל משהו בלתי אכיל) או תמיד את המנה הפופולרית ביותר (משעמם), המלצר מביא רק את 40 המנות המומלצות — בחרו מרשימה סבירה. נכון, לעיתים דווקא בחלק התפריט שנחתך הייתה אותה מנה מיוחדת שהייתם אוהבים — זה המחיר שמשלמים על הצפיות.
- רשימה קצרה של מועמדים: מתוך 1,000 מועמדים לעבודה מותירים 40 קורות החיים הטובים ביותר, ולאחר מכן עורכים ראיונות.
מושגים ומתמטיקה
בכל שלב של יצירת הטקסט, מודל שפה סטנדרטי מוציא התפלגות הסתברותית על פני כל המילון . דגימת Top-k משנה תהליך זה כך:
- בחירת מועמדים: מכל המילון נבחרת תת-קבוצה המורכבת מ- טוקנים בעלי ההסתברויות הגבוהות ביותר.
- חיתוך: ה-logits (תחזיות הגלם של המודל לפני הפעלת Softmax) של כל הטוקנים שלא נכללו ב- מקבלים את הערך , מה שלאחר נרמול מעניק הסתברות השווה בדיוק ל-0.
- חלוקה מחדש (נרמול): ההסתברויות של הטוקנים הנותרים מושוות כך שסכומן החדש יהיה שווה ל-1.
- דגימה: הטוקן הבא נבחר באקראי מתוך ההתפלגות החתוכה החדשה.
כך, Top-k מטילה סף נוקשה על מספר המועמדים: מילים שדירוג הסתברותן נמוך מ- לעולם לא ייבחרו.
השפעת הפרמטר
- ערך קטן של (לדוגמה, – ): הופך את היצירה לשמרנית וצפויה יותר. המודל בוחר רק מתוך קבוצה מצומצמת מאוד של המילים הסבירות ביותר. זה משפר את הקוהרנטיות, אך עלול לגרום לטקסט חוזר ומשעמם.
- ערך גדול של (לדוגמה, – ): מגדיל את המגוון ואת היצירתיות של הטקסט, מאחר שיותר אפשרויות נכללות בדגימה. עם זאת, הדבר גם מגדיל את הסיכון לכלול טוקנים פחות רלוונטיים או בלתי הולמים.
- מקרי קצה:
- : שקול לgreedy decoding. המודל תמיד בוחר את הטוקן הסביר ביותר.
- = גודל המילון: שקול לדגימה סטנדרטית מההתפלגות המלאה, ללא חיתוך.
משמעות היסטורית
דגימת Top-k כשיטת פענוח הייתה אחת מהיישומים המוקדמים המוצלחים בעבודתה של Angela Fan ועמיתיה (2018) «Hierarchical Neural Story Generation», שם השתמשו המחברים ב-top-k random sampling (עם ) במערכת היצירה ההיררכית של סיפורים, והראו שאסטרטגיה זו יעילה משמעותית יותר מ-beam search ומדגימה אקראית מלאה, שמסתכנת בהכנסת מילים בעלות הסתברות נמוכה.
אולם העבודה המרכזית שניתחה באופן שיטתי את בעיית ניוון הטקסט והראתה שיטות חיתוך, כולל top-k, משפרות משמעותית את איכות היצירה, הייתה המאמר של Holtzman et al. (2019) «The Curious Case of Neural Text Degeneration». במאמר זה הציעו המחברים את top-p (nucleus sampling) כחלופה אדפטיבית יותר ל-top-k, והראו לפי מדד ה-HUSE שלהם כי nucleus sampling נותן תוצאות טובות יותר בין האסטרטגיות שנבדקו.
לדוגמה, בהדגמות המוקדמות ובהמלצות עבור GPT-2 נעשה שימוש נרחב בערך `top_k=40` (הוא מוזכר בקוד של OpenAI כ-«generally a good value»), מה שסייע ביצירת טקסטים ארוכים וקוהרנטיים.
השוואה עם שיטות פענוח אחרות
Top-k לעומת Top-p
Top-k הושלמה במידה רבה, ובמספר משימות הוחלפה בשיטה מתקדמת יותר — דגימת Top-p (nucleus).
- החיסרון העיקרי של Top-k הוא חוסר האדפטיביות שלה. הערך הקבוע אינו מתחשב בצורת ההתפלגות ההסתברותית:
- כאשר ההתפלגות חדה (המודל בטוח בכמה טוקנים), Top-k עשויה להרחיב את הדגימה באופן מלאכותי ולכלול מועמדים בעלי הסתברות נמוכה.
- כאשר ההתפלגות שטוחה (המודל לא בטוח ומילים רבות בעלות הסתברות דומה), Top-k עשויה לחתוך בטרם עת אפשרויות מתאימות רבות.
- בנוסף, Top-k חותכת בצורה נוקשה את «הזנב» של ההתפלגות (tail truncation), ולפיכך טוקנים רלוונטיים להקשר אך נדירים עלולים ללכת לאיבוד — השיטה מקריבה יצירתיות פוטנציאלית לטובת קוהרנטיות.
- Top-p, לעומת זאת, מסתגלת באופן דינמי לגודל הדגימה, ובוחרת טוקנים על בסיס הסתברותם המצטברת. הדבר הופך אותה לגמישה ואמינה יותר.
- בפועל, שתי השיטות משמשות לא פעם בשילוב כמסננים עוקבים: האחת מגבילה גסות את מספר המועמדים, והשנייה מצמצמת את הדגימה באופן דינמי לפי ביטחון המודל. הסדר המדויק של הפעלתן תלוי במימוש של המסגרת הספציפית.
Top-k לעומת טמפרטורה
- טמפרטורה משנה את צורת ההתפלגות ההסתברותית כולה, אך אינה חותכת טוקנים. היא משפיעה על ההסתברויות היחסיות של כל המועמדים.
- Top-k מטילה חיתוך נוקשה, המוציא לגמרי טוקנים מחוץ לרשימת טופ-.
בפועל, Top-k יכולה לשמש בשילוב עם טמפרטורה ו-Top-p. הסדר המדויק של הפעלת המסננים תלוי במסגרת: לדוגמה, ב-Hugging Face Transformers הצינור נראה כטמפרטורה → Top-k → Top-p, כלומר הטמפרטורה ממדדת תחילה את ה-logits (), לאחר מכן Top-k חותכת את «הזנב» הארוך של הטוקנים הלא רצויים, ורק לאחר מכן Top-p מצמצמת את הדגימה באופן דינמי בהתאם לביטחון המודל. שלבים מסוימים עשויים להידלג בהתאם להגדרות: אם , שלב Top-k לא מיושם; אם , שלב Top-p לא מיושם.
יישום מעשי
למרות ש-Top-p היא שיטה אדפטיבית יותר ולעיתים קרובות משמשת כברירת מחדל ליצירת טקסט פתוחה, אין שיטת פענוח אוניברסלית עדיפה — הבחירה האופטימלית תלויה במשימה, במודל ובסדרי העדיפויות (איכות, מהירות, יציבות). Top-k נותרת פרמטר הנתמך באופן נרחב בכל המסגרות העיקריות (Hugging Face Transformers, vLLM ואחרות) ומשמשת באופן פעיל הן כשיטה עצמאית והן בשילוב עם שיטות אחרות.
- ערכים אופייניים: בפועל נעשה שימוש תכוף בערכי של עשרות טוקנים (לדוגמה, 10, 40, 50), אך האופטימום תלוי במודל ובמשימה.
- המלצות: ליצירת טקסט פתוחה לרוב מעדיפים Top-p. אם משתמשים ב-Top-k, יש לשלב אותה עם טמפרטורה מתונה ולכייל את ערך בקפידה לפי המשימה הספציפית. Top-k נוחה גם כ«בטיחות» נוסף בטמפרטורה גבוהה.
- הערה: במסגרות, Top-k יכולה לשמש בשילוב עם Repetition Penalty (קנס על חזרות) ופרמטר
no_repeat_ngram_size, כדי למנוע מהמודל להיתקע על אותן מילים ברשימת טופ-.
ספרות
עבודות יסוד
- Fan, A. et al. (2018). Hierarchical Neural Story Generation. ACL Anthology. arXiv:1805.04833.
- Holtzman, A. et al. (2019). The Curious Case of Neural Text Degeneration. arXiv:1904.09751 (ICLR 2020).
- Finlayson, M. et al. (2024). Closing the Curious Case of Neural Text Degeneration. OpenReview:dONpC9GL1o (ICLR 2024).
קריאה נוספת
- Meister, C. et al. (2022). Locally Typical Sampling. arXiv:2202.00666 (TACL 2023).
- Su, Y.; Lan, T.; Wang, Y.; Yogatama, D.; Kong, L.; Collier, N. (2022). A Contrastive Framework for Neural Text Generation. arXiv:2202.06417 (NeurIPS 2022).
- O'Brien, S.; Lewis, M. (2023). Contrastive Decoding Improves Reasoning in Large Language Models. arXiv:2309.09117.
- Shi, C. et al. (2024). A Thorough Examination of Decoding Methods in the Era of Large Language Models. ACL Anthology. arXiv:2402.06925.
- Ravfogel, S.; Goldberg, Y.; Goldberger, J. (2023). Conformal Nucleus Sampling. arXiv:2305.02633.
- Chen, S. J. et al. (2024). Decoding Game: On Minimax Optimality of Heuristic Text Generation Strategies. arXiv:2410.03968 (ICLR 2025).
- Sen, J. et al. (2025). Advancing Decoding Strategies: Enhancements in Locally Typical Sampling for LLMs. arXiv:2506.05387.
ראו גם
- מודלי שפה גדולים