זהו החלק הרביעי בסדרה המתמשכת, ראה חלקים 1, 2 ו- 3.
→זהו החלק הרביעי בסדרה המתמשכת, ראה חלקים 1, 2 ו- 3.
AI Principle IV: Use Structured Prompt Outputs
עקרון IV: שימוש במוצרי prompt מבוססיםהיה זמן, מזמן, מזמן, כאשר APIs LLM רק יצאו החוצה ואף אחד עדיין לא ידע בוודאות איך לתקשר איתם כראוי. אחת הבעיות העיקריות הייתה לחלץ פלטים מרובים מתגובה דחופה אחת.
אלה היו זמנים עתיקים. אז, נסענו על סוסים וכתבנו פקודות באור נרות, כמו חשמל עוד לא הומצא. פקודות דובדבן פירושו לילות ארוכים לבלוע על גלגלי פרכמנט, בתקווה שהמודל יחזיר רשימה במקום haiku. ואם זה נכשל, לא היה לך ברירה אלא לנשוך עמוק, להטביע את קוויל שלך בצבע, ולנסות שוב.
אבל API של LLM שלא יכלו להחזיר תשובת JSON באופן עקבי היו דבר אמיתי וגרמו למספר רב של בעיות.
Benefits
היתרונותמדוע עדיף להשתמש בביקורות מבוססות JSON לעומת פורמטים אחרים או להמציא תבנית מותאמת אישית?
Reduced Error Rate
LLMs מודרניים מותאמים היטב כדי לייצא JSON תקף כאשר נדרש - זה נדיר עבורם להיכשל גם עם תשובות מורכבות מאוד.בנוסף, פלטפורמות רבות יש הגנה ברמה תוכנה מפני תוצרי פורמט לא נכונים.לדוגמה, OpenAI API זורק יוצא מן הכלל כאשר non-JSON חוזר כאשר במצב קפדני תוצאת מובנה.
אם אתה משתמש בפורמט מותאם אישית כדי להחזיר משתנים פלטים מרובים, לא תרוויח מהתאמה מעולה זו, ואת שיעור השגיאות יהיה גבוה הרבה יותר.
Decoupled Prompts and Code
עם יציאה JSON, זה טריוויאלי להוסיף שדה יציאה נוסף, ולעשות זאת לא צריך לשבור את הקוד הקיים שלך.
Simplified System
האם יש סיבה מעשית להשתמש בפורמט יציאה ללא תמיכה בפלטפורמה מובנית?זה יהיה קל יותר עבור שניכם ואת התורמים הקודים הבאים לפורמט תשובות באמצעות JSON.
When NOT to Use Structured Output
מתי לא להשתמש מוצר מובנהSingle Field Output
אם המפגש שלך מוציא שדה יחיד בתגובה, אין יתרונות כדי להוציא JSON.
תשובות משתנות יחידות היום עשויות להפוך לתשובות מורכבות מחר.אחרי שביליתי שעות להמיר תצוגת פלט שדה אחת לתצוגת תצוגת שדה רבות, אני משתמש כעת ב- JSON כברירת מחדל גם כאשר חוזר רק שדה יחיד.
גם כאשר הלוגיקה של התוכנית אינה דורשת תוצאות מרובות, יש יתרונות של הנדסה מיידית ודיבוג להוסיף שדות נוספים.הוספת שדה המספק הסבר לתגובה (או ציטוט מקור בתיעוד) יכול לעתים קרובות לשפר באופן משמעותי את הביצועים המיידיים (
כך שאפילו אם יש לך פקודה עם משתנה יציאה יחיד, לשקול את תבנית JSON כאפשרות.
Streaming Response
עבור יישומים שבהם העיכוב הוא קריטי, נקודות קצה סטרימינג LLM משמשים לעתים קרובות. אלה מאפשרים לחלקים של התגובה לפעול לפני שהתגובה כולה מתקבלת.
לדוגמה, אם ההצעה שלך מחליטה על הפעולה שנעשתה על ידי דמות במשחק וידאו ואת המילים שהדמות אומרת, אתה יכול לקודד אותו כ- "ACTION ÁthaSPEECH_TO_READ" ולאחר מכן להעביר את התשובה באמצעות API זרימה, כגון:
דוגמה למוצא:
WAVE_AT_HERO|Hello, Adventurer! Welcome to my shop.
ברגע שהפעולה מתקבלת, הדמות מתחילה לזעזוע, והטקסט יוצא כפי שהוא זורם.
Conclusion
מסקנהאל תשכחו את היתרונות של הציוויליזציה - השתמשו בהוצאת דחיפה מבוססת JSON. בקושי יש חסרונות וזה יעשה את החיים שלך הרבה יותר קל כמו LLMs אופטימיזציה רבה כדי להחזיר תשובות JSON תואמות. לשקול באמצעות יציאת JSON גם אם הנתונים המשויכים הם כרגע שדה יחיד. עבור נקודות קצה זרימה, השתמשו קווים JSON או פורמט מותאם אישית פשוט.
אם נהנית מהפוסט הזה, להירשם לסדרה לקבלת עוד.