מדריך

איך מדבגים פרומפט.

כשהתשובה לא מה שציפיתם - איך חוקרים את הסיבה במקום לנחש שוב.

מה תוציאו מזה?
  • שיטת חקירה כשהתשובה לא מה שציפיתם
  • מתי הבעיה בפרומפט, מתי במודל, ומתי בקלט
  • איך לצמצם את הפרומפט עד שמוצאים את שורש הבעיה

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

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

שבעה צעדים

≈ 10 דקות
01הגדרה

מה בדיוק לא עובד?

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

  • “התשובה ארוכה מדי - 12 פסקאות במקום 3.”
  • “פספס את ההוראה לפלט JSON, החזיר טקסט חופשי.”
  • “המציא תאריך שלא היה בקלט.”
  • “ענה באנגלית למרות שביקשתי עברית.”

כל ניסוח מדויק הופך לבדיקה בודדת שאפשר לחזור עליה.

02שחזור

לשחזר את הבעיה

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

טיפ

הורידו את הטמפרטורה ל-0 בזמן הדיבאג. תשובה צפויה לאותו פרומפט היא תשתית לחקירה. אחרי שמצאתם את הבעיה תוכלו להעלות בחזרה.

03בידוד

לצמצם את הפרומפט

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

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

04שינוי בודד

לשנות דבר אחד בכל פעם

פיתוי גדול: לעשות שלושה שינויים בבת אחת ולקוות שאחד מהם יעזור. אל תיכנעו. שינוי בודד מאפשר לכם לדעת מה השפיע. שינוי מרובה יחזיר אתכם לניחוש.

# דוגמה: רוצים פלט קצר ובפורמט JSON.

# גרסה A (בעיה: לפעמים ארוך):
"סכם את המסמך"

# שינוי 1 בלבד:
"סכם את המסמך בלא יותר מ-100 מילים"

# נבדק - אם תוקן, מצוין. אם לא, שינוי 2:
"סכם את המסמך. החזר JSON עם השדות: summary, key_points (מערך של 3)"
05עוגנים

להוסיף דוגמאות (few-shot)

כשהוראה לא עוזרת, דוגמה בדרך כלל כן. אם המודל ממציא פורמט, הראו לו דוגמה אחת או שתיים של הפורמט המדויק. דוגמה שווה אלף הוראות.

הערה

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

06שאלה

לשאול את המודל

זה נשמע מטא, אבל זה עובד. הראו למודל את הפרומפט, את הקלט, ואת התשובה הבעייתית, ושאלו: “למה ענית כך? איזה חלק של הפרומפט גרם לתשובה הזו?”

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

07אבולוציה

לתעד את הגרסה הסופית

אחרי שמצאתם את הפרומפט שעובד, תעדו למההוא עובד. הוסיפו הערה ליד הקוד: “הניסוח ההפוך עזר כי המודל בלי הדגשה התעלם מהמגבלה.”

כעבור חצי שנה תרצו לדעת למה הפרומפט נראה כך - והערת שורה אחת תחסוך שעות דיבאג נוספות.

שלוש מלכודות נפוצות

דברים שמאריכים את הדיבאג
מלכודת 01

שינוי 5 דברים בבת אחת

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

מלכודת 02

טמפרטורה גבוהה בדיבאג

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

מלכודת 03

פתרון נקודתי שלא מכליל

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