חלון הקשר הוא כמות הטקסט המקסימלית, בטוקנים, ש-LLM יכול לעבד בבת אחת. גלו כיצד הוא פועל, מהן מגבלותיו ומדוע הוא חשוב לנראות בחיפוש של בינה מלאכותית.

חלון הקשר הוא כמות הטקסט המקסימלית, הנמדדת בטוקנים, שמודל שפה גדול יכול לקחת בחשבון בבת אחת בעת יצירת תשובה. הכול נספר בו: הוראות המערכת, הודעת המשתמש, היסטוריית השיחה, מסמכים שאוחזרו, והתשובה שהמודל מייצר. כאשר מגיעים למגבלה, יש להשמיט תוכן ישן יותר או לסכם אותו.
כדאי לחשוב עליו כזיכרון העבודה של המודל ולא כאחסון לטווח ארוך. כל מה שנמצא מחוץ לחלון פשוט אינו נראה למודל עבור אותה בקשה, ולכן גודלו וניהולו של חלון ההקשר קובעים למעשה מה עוזר בינה מלאכותית יכול לעשות בפועל.
חלון הקשר מגדיר כמה מידע מודל יכול להחזיק בו זמנית. הוא אינו זיכרון קבוע, אלא סביבת העבודה הפעילה עבור בקשה אחת. כאשר השיחה או אוסף המסמכים חורגים מגודל החלון, המערכת חותכת את החלקים הישנים ביותר או דוחסת אותם לתקציר, מכיוון שהטוקנים הגולמיים כבר לא נכנסים.
זו הסיבה שצ'אטבוט עשוי להיראות כאילו הוא שוכח את תחילתה של שיחה ארוכה. ההודעות המוקדמות ביותר יצאו מחוץ לחלון אלא אם כן נשמרו במפורש. הבנת הגבול הזה מסבירה חלק ניכר מהאופן ומהסיבה שבגללה עוזרי בינה מלאכותית מתנהגים כפי שהם מתנהגים.
חלונות הקשר נמדדים בטוקנים, לא במילים או בתווים. טוקן יכול להיות תו, חלק ממילה, מילה שלמה, או סימן קצר, המופק על ידי טוקנייזר שבדרך כלל משתמש בקידוד זוגות בתים (byte-pair encoding). ככלל אצבע גס, טוקן אחד שווה בערך לארבעה תווים או כשלושה רבעים ממילה באנגלית, אם כי הדבר משתנה לפי שפה וטוקנייזר.
מכיוון שחיוב והגבלות נמדדים בטוקנים, אותו רעיון המובע בתמציתיות עולה פחות מקום בחלון מאשר גרסה מפורטת. עבור מסמכים ארוכים ושיחות ארוכות, יעילות הטוקנים קובעת ישירות כמה נכנס וכמה מקום נותר עבור ההיגיון והתשובה של המודל.
מודלי טרנספורמר מעבדים את כל הטוקנים בחלון בבת אחת באמצעות מנגנון קשב, שבו כל טוקן יכול פוטנציאלית להתייחס לכל טוקן אחר. זהו מנגנון עוצמתי אך יקר: הקשב גדל ביחס לריבוע אורך הרצף, כך ש-10,000 טוקנים מרמזים על כ-100 מיליון השוואות, ו-100,000 טוקנים מרמזים על כ-10 מיליארד.
שני אילוצים נוספים קובעים את התקרה המעשית. מטמון המפתח-ערך (key-value cache) גדל עם כל טוקן שנוצר וצורך זיכרון GPU, ורוחב הפס של הזיכרון בין זיכרון מהיר לאיטי הופך לצוואר בקבוק. יחד, גורמים אלה מסבירים מדוע חלונות הקשר מוגבלים ומדוע חלונות גדולים יותר עולים יותר להפעלה. העיצוב הבסיסי מכוסה בארכיטקטורת טרנספורמר.
גודל החלונות גדל במהירות. תצורות מוקדמות יותר של GPT-4 הציעו 8,192 טוקנים, בעוד ש-GPT-4o מגיע ל-128,000. מודלי Claude הציעו 200,000 טוקנים, ובגרסאות חדשות יותר עד 1,000,000, ו-Gemini 1.5 Pro תועד עם עד 2,000,000 טוקנים. מודלים פתוחים כמו Llama 3.1 תומכים בדרך כלל ב-128,000.
נתונים אלה הם מקסימות מפורסמות, לא הבטחה לאיכות לאורך כל הטווח. חלון גדול יותר מאפשר להכניס יותר, אך כפי שהחלק הבא מראה, להכניס יותר אינו זהה לכך שהמודל משתמש בכל זה היטב. המספרים כאן מגיעים ממקורות ספקים ואנליסטים שפורסמו, ולא מהערכות.
חלונות גדולים יותר נחלשים באופן מתועד. אפקט ה"אבוד באמצע" (lost-in-the-middle) פירושו שמודלים מתייחסים היטב לתחילת ולסוף הקלט שלהם אך מאבדים דיוק עבור מידע הממוקם באמצע. ניתוחים מדווחים על אובדן איכות מדיד עבור מודלים עם הקשר ארוך החל מסביבות 32,000 טוקנים, ומודל של 200,000 טוקנים יכול להראות ירידה הרבה לפני המגבלה שלו.
המסקנה המעשית, כפי שאנשי המקצוע מנסחים זאת, היא לא לסמוך על גיליון המפרט אלא לבחון (benchmark) את מקרה השימוש בפועל באורך היעד שלכם. הקשרים קטנים וממוקדים שומרים על קשב יציב יותר מהקשרים גדולים מאוד עמוסים בטקסט שרלוונטיותו שולית. יותר טוקנים יכולים אפילו להוסיף רעש שמפחית את איכות ההיגיון.
מכיוון שחלונות גדולים יותר יקרים ואינם מושלמים, מערכות ייצור לעיתים רחוקות מסתמכות עליהם בלבד. אחזור מועשר (Retrieval augmented generation) מביא רק את הקטעים הרלוונטיים ביותר ומזריק אותם, כך שההנחיה נשארת קטנה וממוקדת. מטמון סמנטי משתמש חוזר בתשובות לשאילתות דומות, ומערכות זיכרון של סוכנים מפרידות בין שיחה לטווח קצר לידע לטווח ארוך.
זו גם הסיבה שפירוק תוכן ליחידות (content chunking) חשוב עבור מפרסמים. פירוק תוכן לקטעים נקיים ועצמאיים מקל על מערכת אחזור לשלוף את הקטע הנכון לתוך חלון מוגבל, במקום להכריח את המודל לעבור על עמוד שלם.
עבור אופטימיזציה למנועים גנרטיביים, חלון ההקשר הוא המרחב שעליו התוכן שלכם מתחרה בתוך תשובת בינה מלאכותית. כאשר עוזר כמו ChatGPT, Perplexity, או Gemini מאחזר מקורות, רק מספר מוגבל של טוקנים מגיע לחלון, כך שקטעים תמציתיים ומובנים היטב שעונים ישירות על השאלה נוטים יותר להיות בשימוש.
זה מתגמל פירוק ברור, כתיבה שמתחילה בתשובה, ורלוונטיות הדוקה, אותם עקרונות שעומדים מאחורי תוכן מוכן ל-LLM. תוכן שמבזבז טוקנים על מילוי סרק פחות סביר לשרוד אחזור וסינתזה, בעוד שתוכן שמספק את התשובה בצורה קומפקטית מרוויח את מקומו בחלון, ועימו, סיכוי לציטוט.
חלון הקשר הוא תקציב הטוקנים שמודל משתמש בו כדי לקרוא הנחיה ולכתוב תשובה, ומתפקד כזיכרון עבודה ולא כאחסון קבוע. הוא מוגבל על ידי עלות הקשב, זיכרון המטמון ורוחב הפס, ואפילו חלונות גדולים סובלים מאפקט ה"אבוד באמצע", כך שלהכניס יותר אינו זהה לשימוש ביותר.
עבור מפרסמים, הלקח הוא לכתוב תוכן קומפקטי, מפורק היטב ומתחיל בתשובה ששורד אחזור לתוך חלון מוגבל, בתמיכת טכניקות כמו אחזור מועשר ופירוק תוכן נקי. מקורות התייחסות: Redis ו-Bitfern.
זוהי כמות הטקסט המקסימלית, הנמדדת בטוקנים, שמודל יכול לעבד בבקשה אחת. היא כוללת את הנחיית המערכת, קלט המשתמש, היסטוריית השיחה, מסמכים שאוחזרו והתשובה שנוצרה. היא משמשת כזיכרון עבודה, כך שכל מה שמעבר למגבלה מושמט או מסוכם והופך לבלתי נראה למודל.
לא. חלון גדול יותר מאפשר להכניס יותר טקסט, אך הדיוק לעיתים קרובות נחלש בשל אפקט ה'אבוד באמצע', שבו מודלים מתייחסים היטב להתחלה ולסוף אך מפספסים את האמצע. מודלים רבים עם הקשר ארוך מראים אובדן איכות מדיד סביב 32,000 טוקנים, כך שבחינה (benchmark) של מקרה השימוש האמיתי שלכם חשובה יותר מהמקסימום המפורסם.
כאשר עוזר בינה מלאכותית עונה על שאלה, רק מספר מוגבל של טוקנים ממקורות שאוחזרו נכנס לחלון ההקשר שלו. קטעים תמציתיים ומובנים היטב שעונים ישירות על השאילתה נוטים יותר להישאב פנימה ולהיות מצוטטים. תוכן מנופח במילוי סרק מבזבז את תקציב הטוקנים ופחות סביר לשרוד אחזור וסינתזה.