ניתוב מודלים חכם נשמע כמו הדרך הקלה לקצץ בחשבון החודשי של ה-AI בלי לאבד איכות. הרעיון מוכר: שולחים את הבקשה למודל קטן וזול, ורק אם הוא לא מסתדר, מקפיצים את הבעיה למודל כבד ויקר. אתמול הוסיפה Vercel יכולת כזאת ישירות לתוך Vercel AI Gateway, תחת השם נסיגה מותנית מבוססת ביטחון. אבל מי שקרא לעומק את ההודעה הרשמית ואת הדוקומנטציה יגלה מהר מאוד את המלכוד הכלכלי שמסתתר בין השורות.
חיוב כפול על כל היסוס
המנגנון החדש, שנמצא כעת בגרסת בטא, מיועד לניתוב החלטות באמצעות מתודת decide או evaluate ב-AI SDK, ולא לקריאות צ'אט רגילות של טקסט חופשי. כאשר המודל הראשי מחזיר תשובה שרמת הוודאות שלה נופלת מתחת לסף שהגדרתם, המערכת מעבירה את הבקשה למודל הגיבוי שהוגדר באובייקט התנאי. הבעיה מתחילה בתמחור: מכיוון שגיבוי שמופעל מריץ החלטה שנייה, הוא מחייב בשני השלבים. אם המודל הראשון היסס, שילמתם עליו מחיר מלא, ואז שילמתם שוב מחיר מלא על המודל החזק, לצד תוספת זמן תגובה של שתי קריאות עוקבות ברצף.
אין כאן הרצה חלקית של מה שנכשל בלבד.
בדוקומנטציה של Vercel מובהר שכל החלטת גיבוי כזאת רצה מחדש במלואה. אם הגדרתם סיווג פניות תמיכה עם כמה שאלות במקביל, המודל השני יריץ את כל מערך השאלות מההתחלה, גם אם רק שאלה אחת בודדת לא עברה את הרף.
מספרים הסתברויות ופרומפטים בעברית
כדי להשתמש בפיצ'ר, מגדירים תנאי בתוך providerOptions.gateway.models. בשאלות מסוג ברירה או ציון (Choice ו-Score), המערכת בודקת את ריכוז התפלגות ההסתברות באמצעות הפרמטר confidenceBelow. בשאלות בינאריות של כן ולא מסוג Boolean, המודל מחזיר הסתברות לקיום התנאי, וההסלמה מתבצעת באמצעות טווח ערכים כמו probabilityBetween. אם לא תציינו שם שאלה ספציפית, המערכת תבדוק את התנאי מול כל שאלה תואמת בהחלטה, וכל חריגה בודדת תגרור הפעלה של הגיבוי היקר.
לפי הדוקומנטציה של החברה, AI Gateway זמין בכל המסלולים, אך לא כתוב שם כיצד מודלי החלטה מתמודדים עם פרומפטים בעברית או האם כיול ההסתברויות שלהם זהה לשפות אחרות. אם תקבעו סף ביטחון בלי לכייל אותו על נתוני אמת שלכם, תגלו שרוב הבקשות מפעילות את מודל הגיבוי. התוצאה לא תהיה חיסכון, אלא חשבון חודשי כפול.
שגיאות רשת מול חוסר ביטחון
חשוב להבדיל בין גיבוי תשתיתי קלאסי לבין הגיבוי הלוגי החדש. עד היום, המערך models ב-AI Gateway קיבל שמות מודלים כמחרוזות פשוטות, כדי להתמודד עם שגיאות תקשורת, קריסות שרת או נפילות HTTP. המנגנון הישן עדיין עובד באותו אופן: אם המודל הראשי נכשל ברמת הרשת, התשתית תנסה לקרוא למודל הבא ברשימה.
| פרמטר | גיבוי שגיאות ביצוע (מחרוזת) | גיבוי נסיגה מותנית (אובייקט) |
|---|---|---|
| טריגר להפעלה | כישלון ביצוע או שגיאת רשת של המודל הקודם | סיום מוצלח של המודל הראשי אבל ביטחון מתחת לסף |
| מודלים נתמכים | מודל החלטה מקורי או מודל שפה רגיל | לפי החברה, מודל שפה כגיבוי מחזיר פלט מובנה ללא ביטחון |
| אופן החיוב | חיוב עבור הניסיון שהצליח בלבד | חיוב מלא על שני המודלים שהורצו |
| מגבלת שימוש | אפשר לשרשר מספר מודלים ברצף | אובייקט מותנה יחיד בלבד, חייב להיות הראשון במערך |
לפי מדריך הגיבויים של החברה, מותר להגדיר רק אובייקט מותנה יחיד לכל בקשה, והוא חייב להיות האיבר הראשון במערך. אי אפשר לבנות שרשרת מדורגת שמעבירה ממודל זול למודל בינוני ומשם למודל יקר. בנוסף, בדוקומנטציה מצוין שרק מודלי החלטה ייעודיים מדווחים ציוני ביטחון בממשק הזה, בעוד מודל שפה בגיבוי מחזיר פלט מובנה יחיד לכל שאלה ולכן אינו כולל ערכי confidence.
איך לבדוק לפני שמפעילים
אם אתם כותבים קוד ב-TypeScript ורוצים לבחון את המנגנון, אל תזרקו אותו ישר לסביבת הפרודקשן. הצעד הראשון הוא להריץ בדיקות בסביבת הפיתוח עם כותרות המטא-דאטה של ה-Gateway, כדי לראות מהו ציון הביטחון הממוצע שהמודל הראשי מחזיר לפניות שלכם. בצעו רישום ומעקב אחרי התפלגות הציונים על פני כמה מאות בקשות אמיתיות, ורק אז קבעו את סף ה-confidenceBelow.
בדוקומנטציה כתוב שהפיצ'ר עדיין בטא. החברה לא פרסמה נתונים על השפעת המנגנון על זמני ההשהיה של הבקשות, ולכן עדיף לבדוק את זה עצמאית. אם רוב התעבורה שלכם מורכבת משיחות חופשיות ולא מניתוב פניות מוגדר, הפיצ'ר ממילא לא רלוונטי עבורכם.
זה שווה רק אם המודל הראשי שלכם פותר את רוב המקרים לבד.
אם הוא מהסס לעיתים קרובות, אתם פשוט מממנים שני מודלים במחיר של שניים.
מקורות
- AI Gateway adds confidence-based decision fallbackshttps://vercel.com/changelog/confidence-based-decision-fallbacks
- Vercel AI Gateway: Models, Routing, and Observabilityhttps://vercel.com/docs/ai-gateway
- Decision Fallbackshttps://vercel.com/docs/ai-gateway/models-and-providers/decision-fallbacks
- Vercelhttps://weba.co.il/tools/vercel/
- TypeScripthttps://weba.co.il/glossary/typescript/
הידיעה נכתבה מהמקורות שלמעלה בתאריך הפרסום, וכל טענה בה נבדקה מולם. מצאתם טעות? כתבו.