רווחים:
- יכולת לזהות גורמים שקטים להתדרדרות של המודל (סחיפה של נתונים, סחיפה של מושג, שגיאה במעלה הזרם) וליצור ניטור תלת-שכבתי (תפעולי, קלט, פלט)
- יכולת להעריך מערכות LLM במספר רב של שכבות עם בדיקות כללים, הערכה של שופט LLM והערכה אנושית, וכיול עם עוגן אנושי של שופט LLM
- יכולת לתכנן סט eval המכיל מקרי קצה ואבטחה ולהפוך כל שגיאה שנתפסה למקרה בדיקה קבוע
ברגע שדגם נכנס לייצור, העבודה שלך לא נגמרת; האחריות האמיתית רק מתחילה. כי הדגם יכול להתקלקל בשקט כשאף אחד לא מסתכל. ביחידה זו אנו מכסים שני דיסציפלינות משלימות: הערכה (מדידה שיטתית של איכות המודל) וניטור (ניטור מתמיד של המודל בייצור). במיוחד במערכות LLM, eval קשה יותר ודורשת טיפול רב יותר מאשר ML קלאסי.
מדוע מודל הייצור מתקלקל בשקט
באג קורס, היומן מודפס, האזעקה מופעלת. מודל ML, לעומת זאת, יכול לטעות מבלי לגרום לשגיאות. שלושה גורמים עיקריים להתדרדרות:
- סחף נתונים: התפלגות נתוני הקלט משתנה עם הזמן (מוצרים חדשים, התנהגות משתמשים משתנה, עונתיות). הדגם נשאר זהה אבל העולם משתנה.
- סחיפה של מושג: קשר הקלט-פלט משתנה. טקטיקות הונאה ודפוסי ספאם מתפתחים; מה שהיה נכון אתמול יהיה לא נכון היום.
- שחיתות במעלה הזרם: מקור נתונים משנה פורמט, אזור הופך חופשי; הדגם מזיל ריר בשקט עם קלט פגום.
מעקב גורם לעיוותים השקטים האלה להיות נשמעים.
במה לצפות: שלוש שכבות
ניטור טוב מכסה שלוש שכבות:
- מדדים תפעוליים: חביון, שיעור שגיאות, נפח בקשות, שימוש במשאבים. "המערכת עומדת?"
- מדדי נתונים/קלט: האם התפלגות הקלט דומה לזו שבאימונים? האם שיעור הערך החסר גדל? האם הגיעו קטגוריות חדשות? "האם המודל רואה נתונים מוכרים?"
- מדדי מודל/פלט: יומן התפלגות חיזוי? האם ציוני הביטחון ירדו? ואם אפשר, מה הדיוק בהשוואה לאמת הקרקע? "האם המודל עדיין מדויק?"
השכבה השלישית היא היקרה ביותר אך הקשה ביותר; כי התוצאה האמיתית מגיעה לרוב באיחור (מתברר לאחר חודשים אם הלוואה תוחזר או לא).
טיפ: אם התוצאה בפועל מתעכבת, עקוב תחילה אחר התפלגות הקלט והתחזית. שינוי התפלגות הקלט הוא סימן מוקדם לירידה ברמת הדיוק ויכול להפעיל אזעקה מבלי לחכות לתוצאה בפועל.
הערכת מערכות LLM: האתגר המיוחד
ב-ML הקלאסי, ה"תשובה הנכונה" ברורה (מחלקה 0 או 1). תוצאת ה-LLM, לעומת זאת, היא פתוחה: עשויות להיות תשובות נכונות רבות לאותה שאלה, "נכונות" אינה מתאימה למספר אחד. גישות להערכת LLM:
- מדדים מוזכרים: השוואת הפלט לתשובה האידיאלית. מוּגבָּל; כי היא עשויה להחשיב את התשובה הנכונה המובעת אחרת כ"שגויה".
- בדיקות מבוססות כללים: האם הפלט JSON חוקי? האם יש מילים אסורות? האם הוא מכיל את השדות הרצויים? זול, אמין, צמוד.
- LLM-judge (LLM-as-judge): אל תגרום לדוגמנית לשאול "האם התשובה הזו טובה לפי הקריטריון הזה?" זה קנה מידה, אבל השופט עצמו חייב להיות מאומת.
- סקירה אנושית: תקן זהב אבל יקר ואיטי. הוא משמש על המדגם.
בפועל משתמשים באלו יחד: בדיקות כללים זולות על כל פלט, LLM-שופט על מדגם גדול, הערכה אנושית על מדגם קטן אך קפדני.
גישה חלשה / גישה חזקה
חלש: "LLM-שאלתי את השופט, 92% מהתשובות שלנו היו טובות. המערכת מצוינת".
Güçlü: "סימנו תחילה 100 תדפיסים אנושיים. הרצנו את שופט LLM על אותם 100 תדפיסים ומדדנו הסכם אדם-שופט - הסכמה של 85%, מקובל. תיעדנו היכן השופט השתבש באופן שיטתי (נטייה למצוא תשובות ארוכות בצורה לא הוגנת) ותיקנו את הציון שלו רק אז נתנו אמון".
ההבדל: הגישה החזקה מאמתת את השופט עם עוגן אנושי, לא בצורה עיוורת. שופט LLM לא מאומת נותן ביטחון יפה למראה אך כוזב.
שימו לב: שופט LLM הוא גם מודל; הזיה, מוטה (מעדיף תשובות ארוכות/בטוחות), יכול להיות לא עקבי. כייל את ציוני השופטים עם תגים אנושיים לפני קבלת החלטות ייצור.
ערכת הערכה: מעוצבת בקפידה
ערכת eval טובה מייצגת את מגוון השימוש האמיתי והמקרים הקשים. eval מלא רק דוגמאות קלות ישאיר אותך בביטחון כוזב. הקפד לשים אותו באשכול eval:
- מקרי קצה: קלט ריק, קלט ארוך מאוד, פורמט יוצא דופן.
- מקרים קשים ידועים: דוגמאות שבהן המודל עשה טעויות בעבר (כמבחן רגרסיה).
- אירועי אבטחה: ניסיונות הזרקה מיידית, בקשות זדוניות, מלכודות הפרת פרטיות.
אשכול ה-eval גדל עם הזמן: כל באג חדש שאתה תופס בייצור הופך למקרה מבחן להערכה הבאה.
אזעקה והתערבות
הניטור נותר לא שלם ללא אזעקה. צריך להיות סף ותוכנית תגובה עבור כל מדד חשוב: "הודע למהנדס אם סחף קלט חורג מ-X", "החזר אוטומטי לאחור אם שיעור השגיאה חורג מ-Y". שמור על אזעקות משמעותיות - יותר מדי אזעקות שווא מבטלות את הרגישות של הצוות וגורמות לו להחמיץ את האזעקה האמיתית.
שלושה מיני תיקים
מקרה 1 - אזהרה מוקדמת. הדיוק האמיתי של מודל תחזית ביקוש התברר רק בסוף השבוע. הצוות עקב אחר הפצת תשומות וראה עלייה פתאומית של קטגוריית מוצרים חדשה ביום שלישי - משהו שהדגם מעולם לא ראה. הם עדכנו את הדגם מבלי לחכות לירידת הדיוק. ניטור קלט חסך ימים.
מקרה 2 - שופט לא מאומת. צוות אחד דיווח "האיכות שלנו מצוינת" בהתבסס על סוקר LLM. כשהתלונות של לקוחות גברו, הוכנס ניטור אנושי: השופט מנה תשובות בטוחות אך לא נכונות כ"טובות". ברגע שהשופט היה מכויל עם תגים אנושיים, האיכות האמיתית נחשפה והייתה הרבה יותר נמוכה. לקח: אל תסמוך על השופט מבלי לאמת זאת.
מקרה 3 - בדיקת רגרסיה. שינוי מיידי פתר בעיה אחת תוך שבירת אחרת בשקט. אבל הצוות שמר על חרקים בעבר בדלי השחית; כאשר השינוי החדש נבדק על אשכול זה, המקרה השבור נתפס מיד והשינוי תוקן. לקח: כל באג מתוקן צריך להפוך למקרה מבחן קבוע.
תבניות הניתנות להעתקה
הפק תוכנית מעקב עבור מודל ייצור זה. מכסה שלוש שכבות: 1) תפעולי (השהיה, שיעור שגיאות, נפח) 2) קלט/נתונים (שינוי התפלגות, ערך חסר, קטגוריה חדשה)3) מודל/פלט (התפלגות חיזוי, ביטחון, דיוק אם אפשר) דגם: [תיאור]. כמה זמן לוקח לתוצאה בפועל להגיע: [duration]הוסף סף והמלצת התערבות עבור כל מדד.
הצע אסטרטגיית הערכה (הערכה) עבור מערכת LLM זו. משימה: [תיאור] קבע שכבות:- אילו בדיקות מבוססות כללים צריכות לפעול על כל פלט?- אילו קריטריונים על הבורר LLM להעריך וכיצד יש לאמת אותם (עוגן אנושי)?- באיזו מדגם יש לבצע הערכה אנושית?
בדוק את ההנחיה הזו של שופט LLM:- האם קריטריוני ההערכה ברורים או סובייקטיביים?- האם זה נוטה להטיית אורך/ביטחון?- איך אני מכייל את השופט עם תגים אנושיים? הנחיית שופט: [הנחיה]
כתוב ספר ריצה של תגובה עבור אזעקת ניטור זו. אזעקה: [למשל. חריגה מסף הסחף של קלט] חייב להכיל: שלבי בקרה ראשוניים, סיבות אפשריות, קריטריונים להחזרה, למי להודיע.
טבלה גרימת הידרדרות
עיוות
סימפטום
דרך לגילוי מוקדם
סחף נתונים
שינויים בחלוקת הקלט
ניטור חלוקת קלט
שינוי מושג
הצדק נופל בשקט
חיזוי + השוואה בפועל
שגיאה במעלה הזרם
שדות הופכים לריקים/שינויי פורמט
אימות סכימה + שיעור חסר
חוסר עקביות בדגם
משמרות חלוקת התפוקה
ניטור חלוקת התפוקה
טעויות נפוצות
- לא הקמת ניטור. הדגם מתקלקל בשקט, אף אחד לא רואה אותו.
- עקוב אחר מדדי תפעול בלבד. המערכת קמה, אבל תחזיות יכולות להיות שגויות.
- שימוש ב-LLM מבלי לאמת את השופט. זה נותן ביטחון כוזב.
- Eval עם דוגמאות קלות. זה לא מעיד על קושי אמיתי.
- לא כולל שגיאות עבר ב-eval. אותה שגיאה חוזרת שוב.
- אזעקות חזקות. הצוות הופך מחוסר רגישות, מפספס את האזעקה האמיתית.
לסיכום
המודל יכול להיות לא מדויק מבלי לגרום לשגיאות בייצור; אז הערכה וניטור חשובים לא פחות מהפיתוח. הקמת ניטור בשלוש שכבות (תפעולי, קלט, פלט); השתמש בסחף קלט כאזהרה מוקדמת אם התוצאה בפועל מתעכבת. במערכות LLM, eval הוא פתוח; השתמש בבדיקות כללים, שופט LLM והערכה אנושית יחד - אך הקפד לאמת את שופט ה-LLM עם עוגן אנושי. העשירו את אשכול ה-Eval שלכם במקרי קצה ואבטחה והפכו כל שגיאה שנתפסה למקרה בדיקה קבוע.
משימת יישום
כתוב תוכנית ניטור תלת-שכבתית עבור מודל ייצור (או קרוב לייצור) והגדר סף + אזעקה עבור מדד הפצת קלט אחד לפחות. אם יש לך מערכת LLM: תייג 30 פלטים עם בני אדם, הפעל שופט LLM על אותם פלטים, ומדוד הסכמה בין שופט אדם; שימו לב להטיה השיטתית של השופט. הוסף לפחות 3 קצוות ו-2 מקרים אבטחה לאשכול ה-eval שלך.
רשימת בדיקה
- [ ] ניטור מכסה את כל שלוש השכבות (תפעולי, קלט, פלט).
- [ ] אני משתמש בסחף של קלט כאזהרה מוקדמת אם התוצאה בפועל מתעכבת.
- [ ] כיילתי את הבורר LLM עם תוויות אנושיות.
- [ ] אשכול Eval מכיל מקרי קצה ואבטחה.
- [ ] הפכתי כל באג שתפסתי למקרה בדיקה קבוע.
- [ ] לכל מדד חשוב יש סף ותוכנית תגובה.