הטמעת SHAP/LIME להסברת מודלים

כאשר מודל מייצר תחזיות בלתי צפויות, חשוב להבין מדוע. אנו מיישמים SHAP ו-LIME לצורך הסברתיות מודלים, ומבטיחים שכל תוצאה תהיה שקופה וניתנת לשליטה. הצוות שלנו מספק בינה מלאכותית מוסברת במפתח מלא—מביקורת ועד אינטגרציה ב-ML pipeline—תוך הבטחת אמינות ותמיכה מתמשכת.

תחומי פיתוח AI

שאלות נפוצות

העבודות האחרונות

  • פיתוח אפליקציית ווב עבור FEEDME
    פיתוח אפליקציית ווב עבור FEEDME
    1365
  • פיתוח חנות מקוונת לחברת FURNORO
    פיתוח חנות מקוונת לחברת FURNORO
    1330
  • עיצוב לוגו לחברת B2B Advance
    עיצוב לוגו לחברת B2B Advance
    776
  • פיתוח אפליקציית ווב עבור Enviok
    פיתוח אפליקציית ווב עבור Enviok
    1077
  • פיתוח לוגו חברת AIDER
    פיתוח לוגו חברת AIDER
    1022
  • פיתוח CRM עבור Chasseurs
    פיתוח CRM עבור Chasseurs
    1113

מודל XGBoost נותן AUC של 0.91 על נתוני walidation. בייצור, מופיעות תחזיות בלתי צפויות — ציונים גבוהים לאובייקטים לא רלוונטיים בעליל. חשיבות התכונות מהבוסטינג עצמו מציגה את 10 התכונות המובילות אך אינה מסבירה תחזית ספציפית. אותו אובייקט מסוים עשוי לקבל ציון 0.87 מסיבות לא ברורות — ואנחנו כמהנדסים מחויבים לענות. אנו מיישמים SHAP ו-LIME להסברת מודלים בייצור, וזה לא רק ביקורת — זה חלק מצינור ML מקצה לקצה.

SHAP ו-LIME עונים על גרסאות שונות של השאלה "למה?". חשוב להבין מתי ליישם כל שיטה והיכן הן נשברות.

איך עובדים SHAP ו-LIME?

SHAP (SHapley Additive exPlanations, Lundberg & Lee, 2017) מבוסס על ערכי Shapley מתורת המשחקים השיתופית. הרעיון: התרומה של כל תכונה לתחזית היא הממוצע של ההשפעה השולית שלה על פני כל הקואליציות האפשריות של תכונות. תכונה מרכזית: אדיטיביות. סכום ערכי ה-SHAP של כל התכונות加上 ערך הבסיס (תחזית המודל הממוצעת) שווה לתחזית הספציפית. זהו פירוק מתמטי מדויק, לא קירוב.

LIME (Locally Interpretable Model-agnostic Explanations, Ribeiro et al., 2016) עובד אחרת: נוצר ענן אקראי של הפרעות סביב האובייקט, המודל black-box חוזה כל מופע מופרע, ולאחר מכן מודל פשוט וניתן להסבר (רגרסיה לינארית או עץ החלטה) מאומן על אותו ענן. LIME הוא סטוכסטי, ולכן בייצור אנו קובעים את ה-seed ומשתמשים ב-num_samples=5000+.

אילו בעיות פותרים SHAP ו-LIME?

  1. כשלים בחשיבות תכונות. חשיבות התכונות המובנית ב-XGBoost מציגה תמונה גלובלית אך אינה מסבירה מקרה בודד. SHAP פותר זאת עם פירוק דטרמיניסטי.
  2. קופסה שחורה לעסק. רגולטורים דורשים הסברים לכל החלטה. TreeSHAP מספק שקיפות בזמן סביר.
  3. סחיפה במודל ללא אות. רישום ערכי SHAP ל-ClickHouse מאפשר מעקב אחר שינויים בהשפעת תכונות מוקדם יותר מירידות במדדים.

TreeSHAP — למה התמחות ארכיטקטונית חשובה

עבור מודלים מבוססי עצים (XGBoost, LightGBM, CatBoost, sklearn RandomForest) קיים TreeSHAP — אלגוריתם עם סיבוכיות פולינומית O(TLD²). זה מהיר בסדרי גודל מ-KernelSHAP הנאיבי.

import shap
import xgboost as xgb

model = xgb.XGBClassifier()
model.fit(X_train, y_train)

explainer = shap.TreeExplainer(model)
shap_values = explainer.shap_values(X_test)

# Waterfall plot для конкретного предсказания
shap.plots.waterfall(explainer(X_test)[0])

# Summary plot — глобальная важность
shap.summary_plot(shap_values, X_test)

בפועל, TreeSHAP על LightGBM עם 500 עצים מעבד 10,000 דוגמאות ב-2–3 שניות על CPU. מקובל לחלוטין עבור inference בקבוצות.

למה LIME לפעמים עדיף על SHAP?

  • המודל אינו נתמך על ידי TreeSHAP ו-KernelSHAP איטי מדי.
  • נדרש הסבר במונחים של "סופרפיקסלים" לתמונות או הדגשת מילים לטקסטים.
  • נדרש אב-טיפוס מהיר ללא מתמטיקה עמוקה.

אבל זכרו: LIME אינו דטרמיניסטי. עם random_state שונה, הסברים לאותו אובייקט יכולים להיות שונים. בייצור אנו משתמשים ב-seed קבוע ו-num_samples=5000+.

השוואת שיטות

מאפיין TreeSHAP KernelSHAP LIME
ישימות רק עצים כל מודל כל מודל
דיוק מתמטי מדויק מדויק קירוב
יציבות דטרמיניסטי דטרמיניסטי סטוכסטי
מהירות (10k אובייקטים) שניות שעות דקות
תמיכה בטקסט/תמונה לא לא באופן טבעי כן

בעיות נפוצות ופתרונות

בעיה פתרון
הסברים איטיים עם KernelSHAP מעבר ל-GradientSHAP או שימוש ב-sampling
חוסר יציבות של LIME קביעת seed, הגדלת num_samples ל-5000+
SHAP לא עובד עבור LLM שימוש ב-attention weights או partition explainer

אינטגרציה לצינור ML בייצור

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

מקרה בוחן: לקוח — חברת ביטוח, חישוב פרמיות ביטוח (LightGBM, 120 תכונות). דרישה: סוכן חייב להסביר בטלפון למה פרמיה גבוהה. פתרון: TreeSHAP ב-API של ה-inference. עבור כל תחזית, החזר את 3 התכונות המובילות עם ערכי SHAP הגבוהים ביותר + תבנית טקסט אוטומטית: "הפרמיה שלך גבוהה מהממוצע עקב: גיל הרכב (+12%), אזור רישום (+8%), היסטוריית תביעות (+6%)". תוספת זמן אחזור: 35ms עבור TreeSHAP עם זמן inference ממוצע של 18ms — מקובל.

ניטור: ערכי SHAP מתועדים ל-ClickHouse. פעם בשבוע אנו מבצעים אגרגציה — סחיפה בהתפלגות ערכי SHAP מאותתת על סחיפת תכונות מוקדם יותר מירידת AUC.

מגבלות שחשוב להכיר

SHAP ≠ סיבתיות. ערך SHAP גבוה לתכונה פירושו מתאם עם התחזית, לא סיבתיות. "תכונה X משפיעה על התחזית" ≠ "שינוי X ישנה את התוצאה במציאות".

רב-קולינאריות שוברת את הפרשנות. אם שתי תכונות מתואמות (r > 0.8), SHAP מחלק את השפעתן באופן שרירותי. יש צורך בניתוח מתאם בעת הפרשנות.

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

מה כלול בעבודה שלנו

  • ניתוח מודל ונתונים: בחירת השיטה המתאימה — TreeSHAP, KernelSHAP, LIME — תוך התחשבות בארכיטקטורה ובדרישות זמן אחזור.
  • פיתוח מודול explainer: אינטגרציה ל-API הקיים של ה-inference.
  • יצירת דוחות: waterfall plots, summary plots, תבניות טקסט אוטומטיות.
  • ניטור: רישום ערכי SHAP ל-ClickHouse, בניית לוחות מחוונים לסחיפה.
  • הכשרת צוות: תיעוד, סדנה למהנדסים ולמשתמשים עסקיים.

לוחות זמנים ועלות

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

הניסיון שלנו: מעל 50 פרויקטים ב-AI ניתן להסבר, 5 שנים בשוק, מהנדסי ML מוסמכים. אנו מבטיחים שקיפות ותמיכה לאחר היישום.

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