הסבירו את חיזוי מודל סיווג הטקסט באמצעות Amazon SageMaker Clarify

הסבירו את חיזוי מודל סיווג הטקסט באמצעות Amazon SageMaker Clarify

הסבר מודל מתייחס לתהליך של התייחסות של חיזוי של מודל למידת מכונה (ML) לערכי תכונת הקלט של מופע במונחים מובנים אנושיים. תחום זה מכונה לעתים קרובות בינה מלאכותית מוסברת (XAI). אמזון סייג מייקר להבהיר הוא תכונה של אמזון SageMaker המאפשרת למדעני נתונים ומהנדסי ML להסביר את התחזיות של מודלים ML שלהם. הוא משתמש בשיטות אגנוסטיות כמו הסברים תוספים בהחלט (SHAP) עבור ייחוס תכונה. מלבד תמיכה בהסברים לנתונים טבלאיים, Clarify תומך גם בהסברה של ראיית מחשב (CV) ועיבוד שפה טבעית (NLP) באמצעות אותו אלגוריתם SHAP.

בפוסט זה, אנו מדגים את השימוש ב-Clarify להסבר מודלים של NLP. באופן ספציפי, אנו מראים כיצד ניתן להסביר את התחזיות של מודל סיווג טקסט שהוכשר באמצעות ה SageMaker BlazingText אַלגוֹרִיתְם. זה עוזר לך להבין אילו חלקים או מילים של הטקסט הם החשובים ביותר עבור התחזיות שנעשו על ידי המודל. בין היתר, ניתן להשתמש בתצפיות אלה כדי לשפר תהליכים שונים כמו רכישת נתונים המפחיתה הטיה במערך הנתונים ואימות מודלים כדי להבטיח שהמודלים פועלים כמתוכנן, ולזכות באמון עם כל בעלי העניין בעת ​​פריסת המודל. זו יכולה להיות דרישת מפתח בתחומי יישומים רבים כמו ניתוח סנטימנטים, ביקורות משפטיות, אבחון רפואי ועוד.

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

סקירת פתרונות

לאלגוריתמים של SageMaker יש פורמטים קבועים של נתוני קלט ופלט. לדוגמה, מיכל האלגוריתם של BlazingText מקבל קלט בפורמט JSON. אבל לקוחות דורשים לעתים קרובות פורמטים ספציפיים התואמים לצינורות הנתונים שלהם. אנו מציגים כמה אפשרויות שאתה יכול לעקוב אחריהם כדי להשתמש ב-Clarify.

אפשרות א

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

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

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

  1. צור מודל ומיכל להמרת הנתונים מ-CSV (או JSON Lines) ל-JSON.
  2. לאחר שלב אימון המודל עם אלגוריתם BlazingText, ישירות לפרוס את המודל. זה יפרוס את המודל באמצעות מיכל BlazingText, שמקבל JSON כקלט. כאשר משתמשים באלגוריתם אחר, SageMaker יוצר את המודל באמצעות המיכל של אותו אלגוריתם.
  3. השתמש בשני הדגמים הקודמים כדי ליצור א דגם Pipeline. זה משרשר את שני המודלים ברצף ליניארי ויוצר מודל יחיד. לדוגמא, עיין ב צינור היסק עם Scikit-learn ו-Linear Learner.

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

אפשרות ב '

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

הסבר תחזיות מודל סיווג טקסט באמצעות Amazon SageMaker Clarify PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.

השלבים הם כדלקמן:

  1. השתמש באלגוריתם BlazingText דרך SageMaker Estimator כדי לאמן מודל סיווג טקסט.
  2. לאחר הכשרה של המודל, צור קונטיינר Docker מותאם אישית שניתן להשתמש בו כדי ליצור מודל SageMaker ולפרוס את המודל באופן אופציונלי כנקודת קצה של מודל SageMaker.
  3. הגדר וצור עבודת Clarify כדי להשתמש במיכל האירוח להפקת דוח הסבר.
  4. הכלי המותאם אישית מקבל את בקשת ההסקה כ-CSV ומאפשר ל-Clarify ליצור הסברים.

יש לציין שפתרון זה מדגים את הרעיון של קבלת הסברים לא מקוונים באמצעות Clarify עבור מודל BlazingText. למידע נוסף על יכולת הסבר מקוונת, עיין ב הסבר מקוון עם SageMaker Clarify.

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

אימון מודל BlazingText

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

תהליך מפורט שלב אחר שלב להכשרת המודל זמין בהמשך מחברה. לאחר שאימנת את הדגם, שים לב ל שירות אחסון פשוט של אמזון (Amazon S3) נתיב URI שבו מאוחסנים חפצי הדגם. למדריך שלב אחר שלב, עיין ב סיווג טקסט באמצעות SageMaker BlazingText.

פרוס את מודל BlazingText המיומן באמצעות מיכל משלך ב- SageMaker

עם Clarify, ישנן שתי אפשרויות לספק את מידע הדגם:

  • צור מודל של SageMaker מבלי לפרוס אותו לנקודת קצה - כאשר מודל SageMaker מסופק ל-Clarify, הוא יוצר נקודת קצה ארעית באמצעות המודל.
  • צור מודל של SageMaker ופרוס אותו לנקודת קצה – כאשר נקודת קצה זמינה ל-Clarify, היא משתמשת בנקודת הקצה להשגת הסברים. זה מונע יצירת נקודת קצה ארעית ויכול להפחית את זמן הריצה של עבודת Clarify.

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

תביא מיכל משלך (BYOC)

תחילה אנו בונים תמונת Docker מותאמת אישית המשמשת ליצירת ה דגם SageMaker. אתה יכול להשתמש בקבצים ובקוד ב- ספריית מקור של מאגר GitHub שלנו.

ה-Dockerfile מתאר את התמונה שאנו רוצים לבנות. אנו מתחילים בהתקנה רגילה של אובונטו ולאחר מכן מתקינים את Scikit-learn. אנחנו גם משכפלים טקסט מהיר ולהתקין את החבילה. הוא משמש לטעינת מודל BlazingText לביצוע תחזיות. לבסוף, נוסיף את הקוד שמיישם את האלגוריתם שלנו בצורה של הקבצים הקודמים ומגדירים את הסביבה בקונטיינר. כל דוקרפיל מסופק במאגר שלנו ואתה יכול להשתמש בו כפי שהוא. מתייחס השתמש בקוד ההסקה שלך עם שירותי אירוח לפרטים נוספים על האופן שבו SageMaker מתקשר עם מיכל ה-Docker שלך והדרישות שלו.

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

לאחר שיש לך את ה- Dockerfile, בנה את מיכל ה- Docker והעלה אותו אליו מרשם מיכל אלסטי של אמזון (Amazon ECR). אתה יכול למצוא את התהליך שלב אחר שלב בצורה של א סקריפט פגז במאגר GitHub שלנו, שבו אתה יכול להשתמש כדי ליצור ולהעלות את תמונת Docker לאמזון ECR.

צור את המודל של BlazingText

השלב הבא הוא יצירת אובייקט מודל מתוך SageMaker Python SDK כיתת דוגמניות שניתן לפרוס לנקודת קצה HTTPS. אנו מגדירים את Clarify להשתמש במודל זה ליצירת הסברים. לקוד ודרישות אחרות עבור שלב זה, עיין ב פרוס את מודל SageMaker BlazingText המיומן שלך באמצעות מיכל משלך באמזון SageMaker.

הגדר את Clarify

Clarify NLP תואם למודלים של רגרסיה וסיווג. זה עוזר לך להבין אילו חלקים בטקסט הקלט משפיעים על התחזיות של המודל שלך. Clarify תומך ב-62 שפות ויכול להתמודד עם טקסט עם מספר שפות. אנו משתמשים ב-SageMaker Python SDK כדי להגדיר את שלוש התצורות המשמשות את Clarify ליצירת דוח ההסבר.

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

import sagemaker
sagemaker_session = sagemaker.Session()
from sagemaker import clarify
clarify_processor = clarify.SageMakerClarifyProcessor(
role=role,
instance_count=1,
instance_type="ml.m5.xlarge",
sagemaker_session=sagemaker_session,
)
file_path = "<location of the input dataset>"

DataConfig

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

explainability_output_path = "s3://{}/{}/clarify-text-explainability".format(
sagemaker_session.default_bucket(), "explainability"
) explainability_data_config = clarify.DataConfig(
s3_data_input_path=file_path,
s3_output_path=explainability_output_path,
headers=["Review Text"],
dataset_type="text/csv",
)

ModelConfig

עם ModelConfig, עליך לציין מידע על הדגם המאומן שלך. כאן, אנו מציינים את השם של מודל BlazingText SageMaker שיצרנו בשלב קודם וגם מגדירים פרמטרים נוספים כמו ענן מחשוב אלסטי של אמזון סוג המופע (Amazon EC2) והפורמט של התוכן:

model_config = clarify.ModelConfig(
model_name=model_name,
instance_type="ml.m5.xlarge",
instance_count=1,
accept_type="application/jsonlines",
content_type="text/csv",
endpoint_name_prefix=None,
)

SHAPConfig

זה משמש כדי ליידע את Clarify כיצד להשיג את ייחוסי התכונה. TextConfig משמש לציון הפירוט של הטקסט והשפה. במערך הנתונים שלנו, מכיוון שאנו רוצים לפרק את טקסט הקלט למילים והשפה היא אנגלית, אנו מגדירים את הערכים הללו לסמל ואנגלית, בהתאמה. בהתאם לאופי מערך הנתונים שלך, תוכל להגדיר פירוט למשפט או לפסקה. קו הבסיס מוגדר לאסימון מיוחד. משמעות הדבר היא ש-Clarify תסיר קבוצות משנה של טקסט הקלט ויחליף אותן בערכים מקו הבסיס תוך השגת תחזיות לחישוב ערכי SHAP. כך הוא קובע את השפעת האסימונים על תחזיות המודל ומזהה בתורו את חשיבותם. מספר הדגימות שאמורות לשמש באלגוריתם Kernel SHAP נקבע לפי הערך של num_samples טַעֲנָה. ערכים גבוהים יותר מביאים לייחוס תכונות חזק יותר, אבל זה יכול גם להגדיל את זמן הריצה של העבודה. לכן, אתה צריך לעשות פשרה בין השניים. ראה את הקוד הבא:

shap_config = clarify.SHAPConfig(
baseline=[["<UNK>"]],
num_samples=1000,
agg_method="mean_abs",
save_local_shap_values=True,
text_config=clarify.TextConfig(granularity="token", language="english"),
)

לקבלת מידע נוסף, ראה ייחוס תכונה שמשתמש בערכי Shapley ו ספר לבן של אמזון AI הוגנות והסבר.

ModelPredictedLabelConfig

כדי ש-Clarify יחלץ תווית חזויה או ציונים או הסתברויות חזויים, יש להגדיר את אובייקט התצורה הזה. ראה את הקוד הבא:

from sagemaker.clarify import ModelPredictedLabelConfig
modellabel_config = ModelPredictedLabelConfig(probability="prob", label="label")

לפרטים נוספים, עיין ב תיעוד ב-SDK.

הפעל עבודת Clarify

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

clarify_processor.run_explainability(
data_config=explainability_data_config,
model_config=model_config,
explainability_config=shap_config,
model_scores=modellabel_config,
)

זמן הריצה של שלב זה תלוי בגודל מערך הנתונים ובמספר הדגימות שנוצרו על ידי SHAP.

דמיין את התוצאות

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

הסבר תחזיות מודל סיווג טקסט באמצעות Amazon SageMaker Clarify PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.

סיכום

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

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


על הכותבים

הסבר תחזיות מודל סיווג טקסט באמצעות Amazon SageMaker Clarify PlatoBlockchain Data Intelligence. חיפוש אנכי. איי. פינאק פניגרהי עובד עם לקוחות לבניית פתרונות מונעי למידת מכונה לפתרון בעיות עסקיות אסטרטגיות ב-AWS. כאשר אינו עוסק בלמידת מכונה, ניתן למצוא אותו יוצא לטיול, קורא ספר או מתעדכן בספורט.

הסבר תחזיות מודל סיווג טקסט באמצעות Amazon SageMaker Clarify PlatoBlockchain Data Intelligence. חיפוש אנכי. איי. דוואל פאטל הוא אדריכל ראשי למידת מכונה ב-AWS. הוא עבד עם ארגונים החל מארגונים גדולים ועד סטארט-אפים בינוניים על בעיות הקשורות למחשוב מבוזר ובינה מלאכותית. הוא מתמקד בלמידה עמוקה כולל תחומי NLP ו-Computer Vision. הוא עוזר ללקוחות להשיג מסקנות מודל עם ביצועים גבוהים על SageMaker.

בול זמן:

עוד מ למידת מכונות AWS