סקירה כללית של מעקב אחרי מודלים

במאמר הזה מוסבר איך BigQuery ML תומך בניטור של מודלים של למידת מכונה (ML) באמצעות הערכה והשוואה של הנתונים שבהם המודל משתמש. הפעולות האלה כוללות השוואה בין נתוני ההצגה של מודל לבין נתוני האימון שלו,והשוואה בין נתוני הצגה חדשים לבין נתוני הצגה שהיו בשימוש בעבר.

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

‫BigQuery ML מספק פונקציות שיעזרו לכם לנתח את נתוני האימון וההצגה שלכם כדי לזהות חלוקת נתונים לא מאוזנת וסחף נתונים:

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

אפשר להשתמש בפונקציות הבאות כדי לעקוב אחרי מודלים ב-BigQuery ML:

  • ML.DESCRIBE_DATA: חישוב סטטיסטיקות תיאוריות עבור קבוצה של נתוני אימון או נתוני הגשה.
  • ML.VALIDATE_DATA_SKEW: חישוב הנתונים הסטטיסטיים של קבוצת נתוני הצגה, והשוואה שלהם לנתונים הסטטיסטיים של נתוני האימון שחושבו כשאימנו מודל BigQuery ML, כדי לזהות הבדלים חריגים בין שתי קבוצות הנתונים. הנתונים הסטטיסטיים מחושבים רק עבור עמודות של תכונות בנתוני ההגשה שתואמות לעמודות של תכונות בנתוני האימון, כדי לשפר את הביצועים ולהפחית את העלויות.
  • ML.VALIDATE_DATA_DRIFT: חישוב והשוואה של נתונים סטטיסטיים של שני מערכי נתונים של הצגת מודעות, כדי לזהות הבדלים חריגים בין שני מערכי הנתונים.
  • ML.TFDV_DESCRIBE: חישוב סטטיסטיקות תיאוריות מפורטות עבור קבוצה של נתוני אימון או נתוני הגשה. הפונקציה הזו מספקת את אותה התנהגות כמו TensorFlow tfdv.generate_statistics_from_csv API.
  • ML.TFDV_VALIDATE: השוואה בין נתונים סטטיסטיים של אימון לבין נתונים סטטיסטיים של הצגת מודלים, או בין שני מערכי נתונים סטטיסטיים של הצגת מודלים, כדי לזהות הבדלים חריגים בין שני מערכי הנתונים. הפונקציה הזו פועלת כמו TensorFlow validate_statistics API.

תרחישים לדוגמה למעקב

בקטע הזה מוסבר איך להשתמש בפונקציות של מעקב אחרי מודלים של BigQuery ML בתרחישי שימוש נפוצים של מעקב.

מעקב בסיסי אחרי חלוקת נתונים לא מאוזנת

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

אלה השלבים האופייניים לתרחיש השימוש הזה:

  1. מריצים את הפונקציה ML.DESCRIBE_DATA על נתוני האימון וההצגה כדי לוודא ששתי קבוצות הנתונים ניתנות להשוואה ושערכי הפרמטרים שלהן נמצאים בטווח הצפוי.
  2. יוצרים מודל BigQuery ML ומאמנים אותו על נתוני האימון.
  3. מריצים את הפונקציה ML.VALIDATE_DATA_SKEW כדי להשוות בין נתוני ההצגה לבין נתוני ההדרכה שחושבו במהלך יצירת המודל, כדי לבדוק אם יש חלוקת נתונים לא מאוזנת.
  4. אם יש חלוקת נתונים לא מאוזנת, צריך לחקור את שורש הבעיה, לשנות את נתוני האימון בהתאם ואז לאמן מחדש את המודל.

מעקב בסיסי אחרי סחף נתונים

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

אלה השלבים האופייניים לתרחיש השימוש הזה:

  1. מריצים את הפונקציה ML.DESCRIBE_DATA על נתוני האימון וההצגה כדי לוודא ששתי קבוצות הנתונים ניתנות להשוואה ושערכי הפרמטרים שלהן נמצאים בטווח הצפוי.
  2. יוצרים מודל BigQuery ML ומאמנים אותו על נתוני האימון.
  3. מריצים את הפונקציה ML.VALIDATE_DATA_DRIFT כדי להשוות בין נתונים סטטיסטיים של שני מערכי נתונים שונים של הצגת מודעות, כדי לראות אם יש סחף נתונים. לדוגמה, יכול להיות שתרצו להשוות בין נתוני ההצגה הנוכחיים לבין נתוני הצגה היסטוריים מתמונת מצב של טבלה, או בין התכונות שהוצגו בנקודת זמן מסוימת, שאפשר לקבל באמצעות הפונקציה ML.FEATURES_AT_TIME.
  4. אם יש סחף נתונים, צריך לבדוק מהו שורש הבעיה, לשנות את נתוני האימון בהתאם ואז לאמן מחדש את המודל.

מעקב מתקדם אחרי חלוקת נתונים לא מאוזנת או הטיות בנתונים

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

אלה השלבים האופייניים לתרחיש השימוש הזה:

  1. מריצים את הפונקציה ML.TFDV_DESCRIBE על נתוני האימון וההצגה במרווחי זמן שמתאימים לפתרון המעקב, ושומרים את תוצאות השאילתה. בשלב הזה אפשר להשוות בין נתוני הצגה עתידיים לבין נתוני אימון והצגה מנקודות זמן קודמות.
  2. מריצים את הפונקציה ML.TFDV_VALIDATE על נתונים סטטיסטיים של נתוני האימון וההצגה, או על שני מערכים של נתונים סטטיסטיים של נתוני ההצגה, כדי להעריך הטיה בנתונים או סחיפה של תכונות, בהתאמה. נתוני האימון וההצגה צריכים להיות מסופקים כמאגר אחסון לפרוטוקולים של TensorFlow‏ DatasetFeatureStatisticsList בפורמט JSON. אפשר ליצור מאגר אחסון לפרוטוקולים בפורמט הנכון על ידי הפעלת הפונקציה ML.TFDV_DESCRIBE, או לטעון אותו מחוץ ל-BigQuery. בדוגמה הבאה אפשר לראות איך מעריכים את הטיית התכונות:

    DECLARE stats1 JSON;
    DECLARE stats2 JSON;
    
    SET stats1 = (
      SELECT * FROM ML.TFDV_DESCRIBE(TABLE `myproject.mydataset.training`)
    );
    SET stats2 = (
      SELECT * FROM ML.TFDV_DESCRIBE(TABLE `myproject.mydataset.serving`)
    );
    
    SELECT ML.TFDV_VALIDATE(stats1, stats2, 'SKEW');
    
    INSERT `myproject.mydataset.serve_stats`
      (t, dataset_feature_statistics_list)
    SELECT CURRENT_TIMESTAMP() AS t, stats1;
  3. אם יש חלוקת נתונים לא מאוזנת או סחף נתונים, צריך לחקור את שורש הבעיה, להתאים את נתוני האימון בהתאם ואז לאמן מחדש את המודל.

הצגה חזותית של מעקב

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

שימוש בהדמיות של Vertex AI מציע את היתרונות הבאים:

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

אפשר להפעיל את ההדמיה של הפלט של הפונקציה ML.VALIDATE_DATA_DRIFT באמצעות הארגומנט MODEL של הפונקציה הזו. אפשר להפעיל את ההדמיה של הפלט של הפונקציה ML.VALIDATE_DATA_SKEW באמצעות הארגומנט enable_visualization_link של הפונקציה הזו.

אפשר להשתמש בהדמיה של מעקב רק עם מודלים שנרשמו ב-Vertex AI. אפשר לרשום מודל קיים באמצעות ההצהרה ALTER MODEL.

אוטומציה של מעקב

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

דוגמה לאוטומציה של הפונקציה ML.VALIDATE_DATA_SKEW מופיעה במאמר אוטומציה של זיהוי הטיה.

המאמרים הבאים

מידע נוסף על פונקציות והצהרות SQL נתמכות עבור מודלים של ML זמין במאמר מסלול המשתמש מקצה לקצה עבור מודלים של ML.