ביקורת עצמית (Reflection)

כלים וסוכנים

הגדרה

ביקורת עצמית (Reflection) היא דפוס שבו מערכת AI בוחנת את הפלט שייצרה, מנסחת מה לא בסדר בו, וכותבת אותו מחדש לפי הביקורת — במקום להסתפק בתשובה הראשונה.

מה זו ביקורת עצמית, ולמה היא שלב נפרד

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

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

אנדרו נג (Andrew Ng) מנה את הדפוס הזה כאחת מארבע תבניות-העיצוב האגנטיות שהציג במרץ 2024 — רשימה שהערך בינה מלאכותית אגנטית מתאר במלואה — וניסח את העיקרון בקצרה: במקום לתת למודל לייצר את הפלט-הסופי ישירות, תהליך-אגנטי פונה אליו כמה פעמים, ונותן לו הזדמנויות לבנות פלט איכותי יותר צעד אחר צעד.

הלולאה בפועל: טיוטה, ביקורת, כתיבה מחדש

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

הניסוח המחקרי של אותו דפוס נקרא Self-Refine, שהציגו אמאן מאדאן (Aman Madaan) ועמיתיו במרץ 2023. הרעיון, בלשון המאמר, הוא לשפר פלטים-ראשוניים של מודלי-שפה באמצעות משוב ושיפור חוזרים: אותו מודל מייצר את הפלט, אותו מודל נותן עליו משוב, ואותו מודל משתמש במשוב כדי לשפר את עצמו — בלי נתונים-מתויגים, בלי אימון נוסף ובלי למידת חיזוק. המאמר בדק את השיטה על שבע משימות שונות, במודלים שהיו זמינים אז — GPT-3.5, ChatGPT ו-GPT-4 — ודיווח על שיפור של כ-20 אחוזים במונחים אבסולוטיים בממוצע בביצועי המשימה.

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

מה לא עובד: ביקורת שאין לה עוגן מחוץ למודל

כאן נכנסת ההסתייגות החשובה ביותר בנושא, וכדאי לקרוא אותה לפני שמאמצים את הדפוס. מאמר שפרסמו ג'י הואנג (Jie Huang), דני ג'ואו (Denny Zhou) ועמיתיהם באוקטובר 2023 נושא כותרת שאומרת הכול: מודלי-שפה גדולים עדיין אינם מסוגלים לתקן את עצמם בנימוק.

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

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

מה כן עובד: משוב שנשען על משהו מחוץ לשיחה

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

הכיוון הישיר ביותר הוא לתת למודל כלים שיבדקו בפועל. המסגרת CRITIC, שהציגו ז'יבין גואו (Zhibin Gou) ועמיתיו במאי 2023 והתקבלה לכנס ICLR 2024, בנויה על התצפית שבני אדם משתמשים בכלים-חיצוניים כדי להצליב ולתקן תוכן-ראשוני — מנוע-חיפוש כדי לאמת עובדה, מפרש קוד כדי לאתר תקלה. בשיטה הזו המודל מפעיל את הכלי המתאים, מקבל ממנו משוב, ומתקן לפיו. מסקנת המאמר מנוסחת במפורש: המחקר מדגיש את החשיבות המכרעת של משוב-חיצוני בקידום השיפור-העצמי המתמשך של מודלי-שפה. נג ממליץ על אותו מהלך בדיוק — לחרוג מרפלקציה עצמית בכך שנותנים למודל כלים שמסייעים להעריך את הפלט שלו, למשל להריץ את הקוד שכתב מול כמה בדיקות ולראות אם הוא מחזיר תוצאה-נכונה.

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

ביקורת על טיוטה מול ביקורת על ניסיון שנכשל

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

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

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

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

המחיר, ומה זה אומר למי שפשוט משתמש בכלי

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

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

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

שלוש צורות של ביקורת על פלט של מודל
ביקורת עצמית פנימיתביקורת בעזרת כלי חיצוני (CRITIC)מעריך נפרד (מעריך-משפר)
מי מבקראותו מודל שכתב את הטיוטה, מתוך עצמו בלבדאותו מודל, אבל אחרי שהריץ כלי שמחזיר תוצאה אמיתיתפנייה-נפרדת למודל, שתפקידה רק להעריך ולתת משוב
על מה המשוב נשעןעל שיפוט המודל עצמועל עובדה חיצונית — תוצאת חיפוש, הרצת קוד, בדיקה שעברה או נכשלהעל קריטריוני-הערכה שנוסחו מראש
מה נמצא עליה במחקרבמשימות-נימוק מודלים מתקשים לתקן את עצמם בלי משוב-חיצוני, ולעיתים הביצועים מתדרדרים אחרי התיקוןהמאמר מדגיש את החשיבות המכרעת של משוב-חיצוני לשיפור-עצמי מתמשךמתאים במיוחד כשיש קריטריוני-הערכה ברורים ושיפור חוזר מוסיף ערך שאפשר למדוד
עלות לסבבפנייה-נוספת אחת למודלפנייה-נוספת ועוד הרצה של הכלישתי פניות בכל סבב — אחת מייצרת ואחת מעריכה

שאלות נפוצות ❓

מה זו ביקורת עצמית בקצרה?

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

אם המודל יודע לבקר את עצמו, למה הוא לא כתב טוב מלכתחילה?

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

האם ביקורת עצמית תמיד משפרת את התוצאה?

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

איך אפשר להשתמש בזה בצ'אט רגיל?

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