הבנת השפה הטבעית מיושמת במגוון רחב של מקרי שימוש, מצ'אטבוטים ועוזרים וירטואליים, ועד לתרגום מכונה וסיכום טקסט. כדי להבטיח שיישומים אלו פועלים ברמת ביצועים צפויה, חשוב שהנתונים בסביבות ההדרכה והייצור יהיו מאותה הפצה. כאשר הנתונים המשמשים להסקת מסקנות (נתוני ייצור) שונים מהנתונים המשמשים במהלך אימון המודלים, אנו נתקלים בתופעה המכונה סחף נתונים. כאשר מתרחשת סחף של נתונים, המודל אינו רלוונטי עוד לנתונים בייצור וסביר להניח שהוא מתפקד גרוע מהצפוי. חשוב לעקוב באופן רציף אחר נתוני ההסקנות ולהשוות אותם לנתונים המשמשים במהלך האימון.
אתה יכול להשתמש אמזון SageMaker לבנות, לאמן ולפרוס במהירות מודלים של למידת מכונה (ML) בכל קנה מידה. כאמצעי יזום נגד השפלת המודל, אתה יכול להשתמש אמזון SageMaker דגם צג לנטר ברציפות את האיכות של דגמי ה-ML שלך בזמן אמת. עם Model Monitor, אתה יכול גם להגדיר התראות כדי להודיע ולהפעיל פעולות אם נצפתה סחיפה כלשהי בביצועי המודל. זיהוי מוקדם ויזום של חריגות אלו מאפשר לך לנקוט בפעולות מתקנות, כגון איסוף נתוני אימון קרקע חדשים, מודלים להכשרה מחדש וביקורת מערכות במעלה הזרם, ללא צורך בניטור ידני של מודלים או בניית כלי עבודה נוספים.
מודל מוניטור מציע ארבעה סוגים שונים של יכולות ניטור לזיהוי והקלה של סחיפה של מודלים בזמן אמת:
- איכות מידע - מסייע לזהות שינוי בסכמות הנתונים ובמאפיינים סטטיסטיים של משתנים והתראות בלתי תלויים בעת גילוי סחיפה.
- איכות הדגם - לצורך ניטור מאפייני ביצועי מודלים כגון דיוק או דיוק בזמן אמת, Model Monitor מאפשר לך לבלוע את תוויות האמת הקרקע שנאספו מהיישומים שלך. מודל צג ממזג באופן אוטומטי את מידע האמת הקרקע עם נתוני חיזוי כדי לחשב את מדדי הביצועים של המודל.
- הטיה במודל –מודל צג משולב עם אמזון סייג מייקר להבהיר כדי לשפר את החשיפה להטיות פוטנציאליות. למרות שהנתונים או המודל הראשוני שלך אינם מוטים, שינויים בעולם עשויים לגרום להתפתחות של הטיה לאורך זמן במודל שכבר הוכשר.
- הסבר למודל - זיהוי סחיפה מתריע כאשר מתרחש שינוי בחשיבות היחסית של ייחוס המאפיינים.
בפוסט זה, אנו דנים בסוגי הסחף של איכות הנתונים החלים על נתוני טקסט. אנו מציגים גם גישה לזיהוי סחף נתונים בנתוני טקסט באמצעות Model Monitor.
סחף נתונים ב-NLP
ניתן לסווג את סחיפת הנתונים לשלוש קטגוריות בהתאם לשינוי ההפצה מתרחש בצד הקלט או בצד הפלט, או שהקשר בין הקלט והפלט השתנה.
משמרת כפויה
ב שינוי משתנה, חלוקת התשומות משתנה עם הזמן, אך ההתפלגות המותנית P (y | x) לא משתנה. סוג זה של סחיפה נקרא תזוזה משתנית כיוון שהבעיה נוצרת עקב שינוי בהתפלגות המשתנים (התכונות). לדוגמה, במודל סיווג דואר זבל של דואר אלקטרוני, הפצה של נתוני אימון (קופי אימייל) עשויה לסטות מהתפלגות הנתונים במהלך הניקוד.
שינוי תווית
בעוד שינוי משתנה מתמקד בשינויים בהפצת התכונות, שינוי תווית מתמקד בשינויים בהתפלגות של משתנה המחלקה. סוג זה של תזוזה הוא בעצם היפוך של תזוזה משתנית. דרך אינטואיטיבית לחשוב על זה יכולה להיות לשקול מערך נתונים לא מאוזן. אם היחס בין דואר זבל לא-דואר זבל של הודעות דוא"ל במערך ההדרכה שלנו הוא 50%, אבל במציאות 10% מהמיילים שלנו הם לא דואר זבל, אז התפלגות תווית היעד השתנתה.
שינוי קונספט
שינוי קונספט שונה ממשתנית ותווית משמרת בכך שהיא לא קשורה להתפלגות הנתונים או להתפלגות המחלקה, אלא קשורה לקשר בין שני המשתנים. לדוגמה, שולחי דואר זבל משתמשים לעתים קרובות במגוון מושגים כדי לעבור את המודלים של מסנן דואר זבל, והתפיסה של מיילים המשמשים במהלך ההדרכה עשויה להשתנות ככל שהזמן חולף.
כעת, לאחר שהבנו את הסוגים השונים של סחיפה של נתונים, בואו נראה כיצד נוכל להשתמש ב-Model Monitor כדי לזהות שינוי של משתנים משותפים בנתוני טקסט.
סקירת פתרונות
בניגוד לנתונים טבלאיים, שהם מובנים ומתוחמים, נתונים טקסטואליים הם מורכבים, בעלי ממדים גבוהים ובצורה חופשית. כדי לזהות ביעילות סחיפה ב-NLP, אנו עובדים עם הטבעות, שהם ייצוגים במימד נמוך של הטקסט. אתה יכול להשיג הטמעות באמצעות מודלים שונים של שפה כגון Word2Vec ומודלים מבוססי שנאים כמו ברט. מודלים אלו מקרינים נתונים בעלי מימד גבוה לתוך חללים בעלי מימד נמוך תוך שמירה על המידע הסמנטי של הטקסט. התוצאות הן וקטורים צפופים ובעלי משמעות מבחינה הקשרית, שיכולים לשמש עבור משימות שונות במורד הזרם, כולל ניטור לסחף נתונים.
בפתרון שלנו, אנו משתמשים בהטבעות כדי לזהות את ההזזה המשתנית של משפטים באנגלית. אנו משתמשים ב-Model Monitor כדי לאפשר ניטור רציף עבור מסווג טקסט הנפרס בסביבת ייצור. הגישה שלנו מורכבת מהשלבים הבאים:
- כוונן מודל BERT באמצעות SageMaker.
- פרוס מסווג BERT מכוון כנקודת קצה בזמן אמת עם לכידת נתונים מאופשר.
- צור מערך נתונים בסיסי המורכב ממדגם של המשפטים המשמשים לאימון מיון BERT.
- צור עבודת ניטור SageMaker מותאמת אישית כדי לחשב את הדמיון הקוסינוס בין הנתונים שנלכדו בייצור לבין מערך הנתונים הבסיסי.
התרשים הבא ממחיש את זרימת העבודה של הפתרון:
כוונן דגם BERT
בפוסט זה אנו משתמשים קורפוס לקבילות לשונית (CoLA), מערך נתונים של 10,657 משפטים באנגלית המסומנים כדקדוקיים או לא דקדוקיים מהספרות הבלשנות שפורסמה. אנו משתמשים באימון SageMaker כדי לכוונן מודל BERT באמצעות מערך הנתונים של CoLa על ידי הגדרת מחלקה לאומד PyTorch. למידע נוסף על אופן השימוש ב-SDK זה עם PyTorch, ראה השתמש ב- PyTorch עם SDK SageMaker Python. מתקשר ל fit()
שיטת האומד משיקה את עבודת ההדרכה:
פרוס את הדגם
לאחר אימון המודל שלנו, אנו מארחים אותו בנקודת קצה של SageMaker. כדי לגרום לנקודת הקצה לטעון את המודל ולהגיש תחזיות, אנו מיישמים מספר שיטות ב train_deploy.py:
- model_fn () - טוען את המודל השמור ומחזיר אובייקט מודל שיכול לשמש להגשת מודלים. שרת הדגם SageMaker PyTorch טוען את המודל שלנו על ידי הפעלת
model_fn
. - input_fn () - מוריד את ערכי הכנה של קלט החיזוי. בדוגמה זו, גוף הבקשה שלנו מסורק תחילה ל- JSON ואז נשלח לנקודת הקצה של המודל. לכן, ב
input_fn()
, אנו מייחסים לראשונה את גוף הבקשה המעוצב על ידי JSON ומחזירים את הקלט כtorch.tensor
, כנדרש עבור BERT. - לחזות_בן () – מבצע את החיזוי ומחזיר את התוצאה.
אפשר לכידת נתונים של Model Monitor
אנחנו מאפשרים דגם צג לכידת נתונים כדי להקליט את נתוני הקלט לתוך שירות אחסון פשוט של אמזון (Amazon S3) דלי כדי להתייחס אליו מאוחר יותר:
לאחר מכן אנו יוצרים נקודת קצה של SageMaker בזמן אמת עם המודל שנוצר בשלב הקודם:
הסקה
אנו מפעילים חיזוי באמצעות אובייקט המנבא שיצרנו בשלב הקודם. הגדרנו JSON serializer ו-deserializer, המשמשים את נקודת הקצה של ההסקה:
נקודת הקצה בזמן אמת מוגדרת ללכוד נתונים מהבקשה, והתגובה והנתונים מאוחסנים באמזון S3. אתה יכול להציג את הנתונים שנלכדו בלוח הזמנים הקודם של הניטור.
צור קו בסיס
אנו משתמשים במודל BERT מכוון כדי לחלץ תכונות של הטבעת משפטים מנתוני האימון. אנו משתמשים בוקטורים אלה ככניסות תכונה איכותיות להשוואת מרחק קוסינוס מכיוון ש-BERT מייצר ייצוג מילים דינמי עם הקשר סמנטי. השלם את השלבים הבאים כדי לקבל הטבעת משפטים:
- השתמש באסימון BERT כדי לקבל מזהי אסימון עבור כל אסימון (
input_id
) במשפט הקלט ובמסכה כדי לציין אילו אלמנטים ברצף הקלט הם אסימונים לעומת רכיבי ריפוד (attention_mask_id
). אנו משתמשים ב-BERTtokenizer.encode_plus
פונקציה כדי לקבל את הערכים האלה עבור כל משפט קלט:
input_ids
ו attention_mask_ids
מועברים לדגם ומביאים את המצבים הנסתרים של הרשת. ה hidden_states
בעל ארבעה מימדים בסדר הבא:
- מספר שכבה (ל-BERT יש 12 שכבות)
- מספר אצווה (משפט אחד)
- אינדקסים של אסימון מילים
- יחידות נסתרות (768 תכונות)
- השתמש בשתי השכבות הנסתרות האחרונות כדי לקבל וקטור יחיד (הטבעת משפט) על ידי חישוב הממוצע של כל אסימוני הקלט במשפט:
- המר את הטבעת המשפט כמערך NumPy ואחסן אותו במיקום אמזון S3 כקו בסיס המשמש את Model Monitor:
תסריט הערכה
Model Monitor מספק מיכל בנוי מראש עם יכולת לנתח את הנתונים שנלכדו מנקודות קצה עבור מערכי נתונים טבלאיים. אם אתה רוצה להביא מכולה משלך, Model Monitor מספק נקודות הרחבה שבהן אתה יכול להשתמש. כאשר אתה יוצר א MonitoringSchedule
, Model Monitor בסופו של דבר מתחיל בעבודות עיבוד. לכן, המיכל צריך להיות מודע לחוזה העבודה בעיבוד. עלינו ליצור סקריפט הערכה התואם ל-container תשומות חוזים ו פלטים.
Model Monitor משתמש בקוד הערכה בכל הדגימות שנלכדות במהלך לוח הזמנים של הניטור. עבור כל נקודת נתוני מסקנות, אנו מחשבים את הטבעת המשפט באמצעות אותו היגיון שתואר קודם לכן. דמיון קוסינוס משמש כמדד מרחק למדידת הדמיון של נקודת נתוני מסקנות והטבעות משפטים בקו הבסיס. מבחינה מתמטית, הוא מודד את זווית הקוסינוס בין שני וקטורים המטמיעים משפטים. ציון דמיון קוסינוס גבוה מצביע על הטבעות משפטיות דומות. ציון דמיון קוסינוס נמוך יותר מצביע על סחף נתונים. אנו מחשבים ממוצע של כל ציוני הדמיון בקוסינוס, ואם הוא נמוך מהסף, הוא נקלט בדוח ההפרה. בהתבסס על מקרה השימוש, אתה יכול להשתמש במדדי מרחק אחרים כמו manhattan
or euclidean
כדי למדוד דמיון של הטבעות משפטים.
התרשים הבא מראה כיצד אנו משתמשים בניטור מודל SageMaker כדי לבסס קו בסיס ולזהות סחיפה של נתונים באמצעות דמיון מרחק קוסינוס.
להלן הקוד לחישוב ההפרות; תסריט ההערכה המלא זמין ב- GitHub:
מדידת סחף נתונים באמצעות Model Monitor
בחלק זה, אנו מתמקדים במדידת סחיפה של נתונים באמצעות Model Monitor. דגם צג צגים מובנים מראש מופעלים על ידי דיאק, שהיא ספרייה שנבנתה על גבי Apache Spark להגדרת בדיקות יחידות לנתונים, המודדות את איכות הנתונים במערכי נתונים גדולים. אינך דורש קידוד כדי להשתמש ביכולות הניטור המובנות מראש. יש לך גם את הגמישות לנטר מודלים על ידי קידוד כדי לספק ניתוח מותאם אישית. אתה יכול לאסוף ולסקור את כל המדדים הנפלטים על ידי Model Monitor ב סטודיו SageMaker של אמזון, כך שתוכל לנתח ויזואלית את ביצועי המודל שלך מבלי לכתוב קוד נוסף.
בתרחישים מסוימים, למשל כאשר הנתונים אינם טבלאיים, עבודת העיבוד המוגדרת כברירת מחדל (מופעל על ידי דיאק) לא מספיק כי הוא תומך רק במערכי נתונים טבלאיים. ייתכן שהמוניטורים הבנויים מראש לא יספיקו כדי ליצור מדדים מתוחכמים כדי לזהות סחיפות, ועשויים לחייב להביא מדדים משלך. בסעיפים הבאים, אנו מתארים את ההגדרה כדי להביא את המדדים שלך על ידי בניית מיכל מותאם אישית.
בנו את מיכל ה-Model Monitor המותאם אישית
אנו משתמשים תסריט הערכה מהסעיף הקודם כדי לבנות קונטיינר Docker ולדחוף אותו אליו מרשם מיכל אלסטי של אמזון (Amazon ECR):
כאשר מיכל הלקוח Docker נמצא ב- Amazon ECR, אנו יכולים לתזמן עבודת ניטור מודל ולהפיק דוח הפרות, כפי שיוצג בסעיפים הבאים.
תזמן עבודה לניטור מודל
כדי לתזמן עבודת ניטור מודל, אנו יוצרים מופע של Model Monitor וב- image_uri
, אנו מתייחסים למיכל Docker שיצרנו בסעיף הקודם:
אנו מתזמנים את עבודת הניטור באמצעות create_monitoring_schedule
API. ניתן לתזמן את עבודת הניטור על בסיס שעתי או יומי. אתה מגדיר את העבודה באמצעות destination
פרמטר, כפי שמוצג בקוד הבא:
כדי לתאר ולפרט את לוח הזמנים של הניטור והריצות שלו, תוכל להשתמש בפקודות הבאות:
דוח הפרת סחיפת נתונים
כאשר עבודת ניטור הדגם הושלמה, תוכל לנווט אל נתיב היעד S3 כדי לגשת לדוחות ההפרות. דוח זה מכיל את כל התשומות שציון הקוסינוס הממוצע שלהם (avg_cosine_score
) נמצא מתחת לסף המוגדר כמשתנה סביבה THRESHOLD:0.5
ב ModelMonitor למשל. זוהי אינדיקציה לכך שהנתונים שנצפו במהלך ההסקה נסחפים מעבר לקו הבסיס שנקבע.
הקוד הבא מציג את דוח ההפרה שנוצר:
לבסוף, בהתבסס על תצפית זו, אתה יכול להגדיר את המודל שלך לאימון מחדש. אתה יכול גם להפעיל שירות התראה פשוט של אמזון (Amazon SNS) התראות לשלוח התראות כאשר מתרחשות הפרות.
סיכום
Model Monitor מאפשר לך לשמור על האיכות הגבוהה של הדגמים שלך בייצור. בפוסט זה, הדגשנו את האתגרים עם ניטור סחיפה של נתונים על נתונים לא מובנים כמו טקסט, וסיפקנו גישה אינטואיטיבית לזיהוי סחיפה של נתונים באמצעות סקריפט ניטור מותאם אישית. תוכל למצוא את הקוד המשויך לפוסט בהמשך מאגר GitHub. בנוסף, אתה יכול להתאים אישית את הפתרון כדי להשתמש במדדי מרחק אחרים כגון אי התאמה ממוצעת מקסימלית (MMD), מדד מרחק לא פרמטרי לחישוב התפלגות שולית בין התפלגות מקור ויעד במרחב המוטבע.
על הכותבים
ויקראם אלנגו הוא ארכיטקט פתרונות מומחה בינה מלאכותית/ML בשירותי האינטרנט של אמזון, שבסיסה בווירג'יניה, ארה"ב. Vikram עוזרת ללקוחות תעשיית הפיננסים והביטוח עם עיצוב, מנהיגות מחשבתית לבנות ולפרוס יישומי למידת מכונה בקנה מידה. כרגע הוא מתמקד בעיבוד שפה טבעית, בינה מלאכותית אחראית, אופטימיזציה של מסקנות ושינוי קנה מידה של ML ברחבי הארגון. בזמנו הפנוי הוא נהנה לטייל, לטייל, לבשל ולקמפינג עם משפחתו.
ראגו רמשה הוא אדריכל פתרונות ML עם צוות שירות Amazon SageMaker. הוא מתמקד בסיוע ללקוחות להעביר עומסי עבודה של ייצור ML ל- SageMaker בקנה מידה. הוא מתמחה בתחומי למידת מכונה, בינה מלאכותית וראייה ממוחשבת, ובעל תואר שני במדעי המחשב מ-UT Dallas. בזמנו הפנוי הוא אוהב לטייל ולצלם.
טוני חן הוא אדריכל פתרונות למידת מכונה בשירותי האינטרנט של אמזון, שעוזר ללקוחות לעצב יכולות למידת מכונה ניתנות להרחבה וחזקה בענן. כמדען נתונים ומהנדס נתונים לשעבר, הוא ממנף את הניסיון שלו כדי לעזור להתמודד עם כמה מהבעיות המאתגרות ביותר שעומדות בפני ארגונים בהפעלת למידת מכונה.
- '
- "
- 100
- 11
- 7
- אודות
- גישה
- חֶשְׁבּוֹן
- לרוחב
- פעולות
- נוסף
- AI
- תעשיות
- כְּבָר
- למרות
- אמזון בעברית
- אמזון SageMaker
- אמזון שירותי אינטרנט
- אנליזה
- אַפָּשׁ
- אפאצ 'י ספארק
- ישים
- יישומים
- זמין
- מְמוּצָע
- AWS
- Baseline
- גוּף
- לִבנוֹת
- בִּניָן
- קמפינג
- מקרים
- לגרום
- האתגרים
- שינוי
- chatbots
- מיון
- ענן
- קוד
- סִמוּל
- איסוף
- מורכב
- לחשב
- מדעי מחשב
- ראייה ממוחשבת
- מכולה
- מכיל
- רציף
- חוזה
- בישול
- יוצרים
- לקוחות
- דאלאס
- נתונים
- איכות נתונים
- מדען נתונים
- עיצוב
- איתור
- לפתח
- אחר
- לדון
- מרחק
- סַוָר
- מיכל דוקר
- לא
- תחומים
- נהיגה
- בְּמַהֲלָך
- דינמי
- מוקדם
- אמייל
- פְּגִישָׁה
- נקודת קצה
- מהנדס
- אנגלית
- מִפְעָל
- סביבה
- נוסד
- דוגמה
- ניסיון
- פָּנִים
- משפחה
- מאפיין
- תכונות
- כספי
- ראשון
- גמישות
- להתמקד
- מרוכז
- טופס
- קדימה
- חופשי
- פונקציה
- ליצור
- GitHub
- יש
- לעזור
- עוזר
- גָבוֹהַ
- מודגש
- טיולים
- עמוד הבית
- איך
- איך
- HTTPS
- תמונה
- ליישם
- חשוב
- כולל
- תעשייה
- מידע
- ביטוח
- תעשיית הביטוח
- IT
- עבודה
- מקומות תעסוקה
- תוויות
- שפה
- גָדוֹל
- האחרון
- השקות
- מנהיגות
- למידה
- רמה
- מנופים
- סִפְרִיָה
- בַּלשָׁנוּת
- רשימה
- ספרות
- לִטעוֹן
- מיקום
- למידת מכונה
- מכונת תרגום
- מסכה
- למדוד
- מדדים
- ML
- מודל
- מודלים
- ניטור
- יותר
- שפה טבעית
- עיבוד שפה טבעית
- רשת
- NLP
- הודעה
- המיוחדות שלנו
- להזמין
- ארגונים
- אחר
- ביצועים
- צילום
- דיוק
- נבואה
- התחזיות
- להציג
- בעיה
- הפקה
- פּרוֹיֶקט
- לספק
- מספק
- פיתון
- פיטורך
- איכות
- רכס
- זמן אמת
- מציאות
- שיא
- לדווח
- דוחות לדוגמא
- תגובה
- תוצאות
- הסבה מקצועית
- החזרות
- להפוך
- סקירה
- הפעלה
- ריצה
- בעל חכמים
- סולם
- דרוג
- מדע
- Sdk
- שירותים
- הגשה
- סט
- משמרת
- דומה
- פָּשׁוּט
- So
- פתרונות
- מֶרחָב
- רווחים
- דואר זבל
- מתמחה
- הברית
- אחסון
- חנות
- תומך
- מערכות
- יעד
- מבחן
- בדיקות
- בדיקות
- העולם
- מחשבה
- מנהיגות מחשבתית
- זמן
- אסימון
- מטבעות
- חלק עליון
- לפיד
- תְנוּעָה
- הדרכה
- תרגום
- ארה"ב
- לצפיה
- וירג'יניה
- וירטואלי
- ראות
- חזון
- לחכות
- אינטרנט
- שירותי אינטרנט
- ויקיפדיה
- לְלֹא
- תיק עבודות
- זרימת עבודה
- עוֹלָם
- כתיבה