היסטוריית שיחה
שיחה ארוכה נתקלת בקיר קשיח: חלון ההקשר של המודל. כל מה שבדף הזה קיים בגלל הקיר הזה, והחלק המעניין הוא מה נזרק, מה נשמר ומה אפשר להשיב.
ארבע דרכים לשחרר הקשר
קטע בשם “ארבע דרכים לשחרר הקשר”הן פחות חלופות זו לזו ויותר סולם, מהזול ביותר ואילך.
| מנגנון | עלות | שומר | מאבד |
|---|---|---|---|
| השמטה | כלום | כל מילה של הנרטיב | תוצאות כלים ישנות ונטולות עניין |
| השלכת תמונות | כלום | הטקסט שסביבן | צילומי מסך ישנים |
| תמונות מצב | כלום | כל מילה, כפיקסלים | קריאות למודל ללא ראייה |
| סיכום | קריאת מודל אחת | נרטיב | הפרטים שהוא לא בחר |
השמטה והשלכה פועלות ראשונות מפני שהן חינמיות ונטולות אובדן במובן החשוב: הן מורידות נפח שאיש לא התכוון לקרוא שוב.
למה סיכום הוא המוצא האחרון
קטע בשם “למה סיכום הוא המוצא האחרון”סיכום הוא היחיד מבין הארבעה שמוציא קריאת מודל והיחיד שמחליט בשבילכם מה היה חשוב. שתי אלה עלויות אמיתיות. הקריאה היא המעניינת מבין השתיים, בגלל מתי היא מתרחשת.
דחיסה רצה בדרך כלל לפני הקיר, לפי סף. אבל היא רצה גם באופן תגובתי, אחרי שהספק עצמו דוחה בקשה כגדולה מדי — האומדן ההיוריסטי ספר פחות ממה שהספק מדד בפועל. במצב כזה מדחס שמסכם צריך לשלוח בקשה כדי לכווץ את ההקשר, והבקשה שהוא שולח היא בדיוק זו שזה עתה גלשה.
תמונות מצב
קטע בשם “תמונות מצב”דחיסת תמונות מצב מרנדרת היסטוריה שנזרקה אל דפים צפופים של גליפי פיקסלים ומחזירה אותם כתמונות.
הנחת היסוד היא מוזרות של חיוב: מודל ראייה מחייב עבור תמונה בתעריף אחיד או לפי שטח, שאין לו דבר עם מספר התווים שבה. שנים עשר אלף תווים של שיחה שנזרקה עולים כמו שנים עשר אלף תווים של טוקני טקסט. אותם תווים שרונדרו לדף אחד עולים תמונה אחת.
מה שהופך אותה לכדאית ולא רק לחכמה הוא שהיא אינה דורשת קריאת מודל, לא מפתח ולא רשת. זו האסטרטגיה היחידה שזמינה תמיד בזמן התאוששות מגלישה.
צורת השחזור היא ראש מילולי, אמצע כתמונה, זנב מילולי. הראש הוא המשימה והאילוצים שכל המשך העבודה מפנה אליהם בחזרה; הזנב הוא המקום שבו העבודה נמצאת כרגע. האמצע הוא מה שמקריאים אותו הכי מעט ועולה הכי הרבה.
תמונות מצב מרונדרות מחדש מטקסט המקור שנשמר בכל מעבר, ולעולם לא מהפיקסלים של המעבר הקודם. המרת תמונה לתמונה מדרדרת את הגליפים דור אחד בכל דחיסה, עד שאין מי שיצליח לקרוא אותם.
ממה ריצה באמת מתחדשת
קטע בשם “ממה ריצה באמת מתחדשת”בעבר כל ריצת harness החלה מהיסטוריה ריקה ובנתה מחדש רציפות מבלוק <context> בהנחיה — סיכום של השיחה ולא השיחה עצמה. שלושה דברים נבעו מכך:
- החידוש היה סיפור מחדש. המודל מעולם לא ראה את החשיבה הקודמת של עצמו או את הבייטים שהכלים שלו החזירו בפועל, אלא רק תיאור שלהם.
- rewind מת עם התהליך.
checkpointהוא אינדקס לתוך רשימת ההודעות החיה, ולכן הפעלה מחדש איבדה כל תווית שהמודל קבע. - ניסיון חוזר לא הצליח להבדיל בין “אין מה לנסות שוב” ל“דבר לא נטען”. אחרי הפעלה מחדש, התור שנכשל נעלם מהמצב החי כך או כך.
את שלושתם פותר שמירת התמליל. הוא נשמר בכל גבול תור ולעולם לא באמצע תור: היסטוריה שנלכדה בין קריאת כלי לתוצאתה היא כזו ששום ספק לא יקבל, ולכן קריסה באותו רגע משחזרת את התור שלפני ולא חצי תור שאי אפשר להריץ שוב.
ריצה שמתחדשת נחתכת להודעות החדשות ביותר שלה, וחיתוך נעשה בגבול שאינו תוצאת כלי יתומה — תוצאה שהקריאה שלה נחתכה היא בקשה שספקים דוחים על הסף, ותמליל שאי אפשר לשלוח גרוע מתמליל קצר.
עץ השיחה
קטע בשם “עץ השיחה”כל הודעה רושמת את ההודעה שממנה היא ממשיכה, וכל שיחה מציינת את קצה הענף הנוכחי שלה. ההחלטה האחת הזו היא כל היכולת.
הסתעפות לא כותבת דבר. היא מזיזה את המצביע. המסלול שעזבתם עדיין שם, ולכן מעבר חזרה הוא עוד הזזת מצביע ולא שחזור — ועריכת הנחיה כדי להריץ אותה מחדש מפסיקה לעלות לכם את התשובה שהשוויתם מולה.
בלעדיה, כל צורה של חזרה אחורה חייבת להסתיר או למחוק הודעות, והסתרה היא שקר שהקורא הבא לא יכול לראות מבעדו.
ענף מול פיצול
קטע בשם “ענף מול פיצול”| ענף | פיצול | |
|---|---|---|
| מה קורה | המצביע זז | המסלול מועתק |
| לאן זה הולך | אותה שיחה | שיחה חדשה |
| עלות | כלום | העתקה אחת של הענף |
פיצול מעתיק עם מזהים חדשים במקום לחלוק שורות. שתי שיחות שחולקות שורות היו מציגות זו לזו הודעות מאוחרות יותר, וזה הדבר היחיד שפיצול אסור לו לעשות.
rewind רוכב על אותו מצביע
קטע בשם “rewind רוכב על אותו מצביע”הצמד checkpoint / rewind שבתוך הריצה מסמן גבול תור נקי וחוזר אליו לאחר חקירה, תוך שמירת תמצית. מכיוון שנקודות ביקורת נשמרות לצד התמליל, תווית שהמודל קבע לפני הפעלה מחדש עדיין נוחתת במקום שבו נקבעה. נקודת ביקורת שהיעד שלה לא שרד חיתוך נזרקת, ולא מוצמדת — חזרה אחורה “אל התווית” ונחיתה במקום אחר היא בדיוק הכשל שתווית נועדה למנוע.
נושאים קשורים
קטע בשם “נושאים קשורים”- פיצול שיחה — מנווט העץ, פיצול וייצוא
- הקשר כלים ומטמון הנחיות — החצי השני של מה שממלא חלון הקשר
- פקודות קו נטוי —
/compact,/shake,/context,/tree