הפסיקו לטעון כל הוראה לכל סשן
רוב האנשים מתמקדים בפרומפטים טובים יותר. הם מתעלמים ממה שקורה לפני שהפרומפט מתחיל. הם טוענים יותר מדי הוראות לתוך הקונטקסט של העוזר.
זה גורם לשלוש בעיות:
- עלויות טוקנים גבוהות.
- שיהוי (latency) גבוה.
- יחס אות-רעש (signal-to-noise ratio) נמוך.
כשאתם טוענים קובץ הוראות ענק עבור כל שאלה קטנה, זה כמו לקרוא מדריך עובד שלם לפני ששואלים שאלה פשוטה. רוב המידע הזה חסר תועלת למשימה הנוכחית.
ככל שמוסיפים יותר כללים, כך מדללים יותר את החלקים הרלוונטיים. יותר קונטקסט לא אומר יותר יכולת.
פתרתי את זה על ידי מעבר מקובץ יחיד למערכת מודולרית. חילקתי את ההוראות שלי למודולים ייעודיים:
• instructions.md: נקודת כניסה קטנה שנטענת תמיד. • persona.md: אישיות וטון. • structure.md: מבנה מערכת למשימות ניווט. • workflows.md: כללים ספציפיים לסיום סשנים.
כעת, הקובץ הראשי משמש כנתב (router). הוא קורא למודולים אחרים רק כאשר המשימה דורשת זאת.
לדוגמה:
- אם אתם צריכים לנווט בפרויקט, טענו את structure.md.
- אם אתם צריכים לסיים סשן, טענו את workflows.md.
- אם יש לכם שאלה מהירה, אל תטענו דבר מלבד זאת.
התוצאות היו ברורות. עומס הטוקנים הבסיסי שלי ירד מ-4,800 טוקנים ל-1,450 טוקנים. זוהי הפחתה של 70%.
המטרה היא לא להפוך את ההוראות לקטנות יותר. המטרה היא להפריד בין עומס בסיס (baseline load) לבין עומס לפי דרישה (on-demand load).
עומס בסיס הוא מה שאתם משלמים עליו בכל פעם מחדש. עליכם לשמור עליו קטן מאוד. עומס לפי דרישה הוא מה שאתם טוענים רק כשזה חשוב. הוא יכול להיות גדול ומפורט.
לגישה זו יש מחיר (trade-offs). אתם מרוויחים יעילות אך מוסיפים מורכבות לאופן שבו אתם מנתבים את ההוראות. עליכם לוודא שהעוזר יכול לגשת למודולים בצורה אמינה.
אם ההוראות שלכם קטנות, אל תעשו זאת. זה בזבוז זמן. אם סט ההוראות שלכם עצום וגדל, עשו זאת מיד.
הפסיקו לאלץ את העוזר לשאת משקל