פרומפטים הם לא מספיקים: אכיפת אילוצים קשיחים על פלט של LLM

הדגמות של LLM נראות נהדרות עד שהן נתקלות בדרישות מחמירות.

מודלים עובדים על סמך הסתברות. מערכות ייצור (Production) זקוקות להבטחות.

למדתי את זה בזמן שבניתי pipeline חדשות מבוסס AI עבור Radio del Volga בארגנטינה. המערכת משכתבת חדשות ויוצרת פוסטים לרשתות חברתיות. זה עבד מצוין עד שהופיעה בעיה אחת. Gemini המשיך לכתוב בספרדית הלא נכונה.

בארגנטינה, אנשים משתמשים במילים ספציפיות. הם אומרים "podés" במקום "puedes" ו-"sos" במקום "eres". אם המודל משתמש בספרדית ניטרלית, הטקסט מרגיש לא נכון לקוראים המקומיים.

בהתחלה ניסיתי פרומפטינג טוב יותר. אמרתי למודל:

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

הפסקתי להתייחס לזה כבעיה של פרומפטינג. התחלתי להתייחס לזה כבעיה של וולידציה (validation).

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

הוספתי שלב של post-processing. הוא רץ אחרי שה-AI מסיים. הוא מחפש מילים ספציפיות ומחליף אותן:

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

השיעור הוא לא על ספרדית. הוא על המגבלות של הנדסת פרומפטים (prompt engineering).

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

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

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

Source: https://dev.to/zendev2112/prompts-arent-enough-enforcing-hard-constraints-on-llm-output-2hpo

Optional learning community: https://t.me/GyaanSetuAi