שיחות מקוונות נמצאות בכל מקום בחיים המודרניים, והן משתרעות על פני תעשיות ממשחקי וידאו ועד טלקומוניקציה. זה הוביל לגידול אקספוננציאלי בכמות נתוני השיחות המקוונות, מה שסייע בפיתוח מערכות עיבוד שפה טבעית (NLP) חדישות כמו צ'אטבוטים ומודלים של יצירת שפה טבעית (NLG). עם הזמן, גם טכניקות NLP שונות לניתוח טקסט התפתחו. זה מחייב את הדרישה לשירות מנוהל במלואו שניתן לשלב באפליקציות באמצעות קריאות API ללא צורך במומחיות נרחבת של למידת מכונה (ML). AWS מציעה שירותי AWS AI מאומנים מראש כמו אמזון להתבונן, שיכול לטפל ביעילות במקרים של שימוש ב-NLP הכוללים סיווג, סיכום טקסט, זיהוי ישויות ועוד כדי לאסוף תובנות מטקסט.
בנוסף, שיחות מקוונות הובילו לתופעה נרחבת של שימוש לא מסורתי בשפה. טכניקות NLP מסורתיות לרוב מתפקדות בצורה גרועה בנתוני טקסט אלה, בשל אוצר המילים המתפתחים כל הזמן והספציפיים לתחום הקיימים בפלטפורמות שונות, כמו גם הסטיות המילוניות המשמעותיות של מילים מאנגלית נכונה, בין אם בטעות או בכוונה, כצורה של התקפה יריבה. .
בפוסט זה, אנו מתארים גישות ML מרובות לסיווג טקסט של שיחות מקוונות עם כלים ושירותים הזמינים ב-AWS.
תנאים מוקדמים
לפני שצולל עמוק לתוך מקרה שימוש זה, אנא השלם את התנאים המוקדמים הבאים:
- הגדר חשבון AWS ו ליצור משתמש IAM.
- הגדר את AWS CLI ו ערכות SDK של AWS.
- (אופציונלי) הגדר את שלך סביבת Cloud9 IDE.
מערך נתונים
לפוסט זה אנו משתמשים ב- Jigsaw Unintendend Bias in Toxicity Classification Database, אמת מידה לבעיה הספציפית של סיווג רעילות בשיחות מקוונות. מערך הנתונים מספק תוויות רעילות וכן מספר תכונות תת-קבוצות כגון מגונה, התקפת זהות, עלבון, איום ומפורש מינית. התוויות מסופקות כערכים שבריריים, המייצגים את השיעור של כותבים אנושיים שהאמינו שהתכונה חלה על קטע טקסט נתון, שלעיתים רחוקות יש פה אחד. כדי ליצור תוויות בינאריות (לדוגמה, רעילות או לא רעילות), מוחל סף של 0.5 על ערכי השבר, והערות בעלות ערכים גבוהים מהסף מטופלות כמחלקה החיובית עבור אותה תווית.
הטמעת מילות משנה ו-RNNs
עבור גישת הדוגמנות הראשונה שלנו, אנו משתמשים בשילוב של הטבעת מילות משנה ורשתות עצביות חוזרות (RNNs) כדי לאמן מודלים לסיווג טקסט. הטבעות של מילות משנה הוצגו על ידי בויאנובסקי וחב'. בשנת 2017 כשיפור על שיטות הטבעה קודמות ברמת המילה. מודלים מסורתיים של Word2Vec דילוג-גרם מאומנים ללמוד ייצוג וקטור סטטי של מילת מטרה המחזה בצורה מיטבית את ההקשר של המילה הזו. מודלים של תת-מלות, לעומת זאת, מייצגים כל מילת יעד כשקית של התו n-grams המרכיבים את המילה, כאשר n-גרם מורכב מקבוצה של n תווים עוקבים. שיטה זו מאפשרת למודל ההטמעה לייצג טוב יותר את המורפולוגיה הבסיסית של מילים קשורות בקורפוס, כמו גם את חישוב ההטמעות של מילים חדשות, מחוץ לאוצר המילים (OOV). זה חשוב במיוחד בהקשר של שיחות מקוונות, מרחב בעייתי שבו משתמשים מרבים לאות מילים בצורה שגויה (לעיתים בכוונה להתחמק מזיהוי) וגם משתמשים באוצר מילים ייחודי, המתפתח כל הזמן, שאולי לא נלכד על ידי קורפוס אימון כללי.
אמזון SageMaker מקל על אימון ואופטימיזציה של מודל הטמעת מילות משנה ללא פיקוח על קורפוס משלך של נתוני טקסט ספציפיים לדומיין עם המובנה אלגוריתם BlazingText. אנו יכולים גם להוריד מודלים קיימים למטרות כלליות שהוכשרו על מערכי נתונים גדולים של טקסט מקוון, כגון הבא דגמים בשפה האנגלית זמינים ישירות מ-fastText. ממופע המחברת של SageMaker, פשוט הפעל את הפעולות הבאות כדי להוריד מודל fastText מאומן מראש:
בין אם אימנתם את ההטמעות שלכם עם BlazingText או הורדתם מודל מאומן מראש, התוצאה היא מודל בינארי מכווץ שבו תוכלו להשתמש עם ספריית gensim כדי להטמיע מילת יעד נתונה כווקטור על סמך מילות המשנה המרכיבות אותה:
לאחר שנעבד מראש קטע נתון של טקסט, נוכל להשתמש בגישה זו כדי ליצור ייצוג וקטור עבור כל אחת מהמילים המרכיבות (בהפרדה באמצעות רווחים). לאחר מכן אנו משתמשים ב- SageMaker ובמסגרת למידה עמוקה כגון PyTorch כדי לאמן RNN מותאם אישית עם מטרת סיווג בינארי או ריבוי תוויות כדי לחזות אם הטקסט רעיל או לא ואת תת-הסוג הספציפי של רעילות בהתבסס על דוגמאות אימון מסווגות.
כדי להעלות את הטקסט המעובד מראש שלך שירות אחסון פשוט של אמזון (Amazon S3), השתמש בקוד הבא:
כדי להתחיל אימון מודלים מדרגיים מרובים GPU עם SageMaker, הזן את הקוד הבא:
בתוך , אנו מגדירים ערכת נתונים של PyTorch המשמשת train.py
להכין את נתוני הטקסט להדרכה והערכה של המודל:
שימו לב שהקוד הזה צופה שה- vectors.zip
קובץ המכיל את ההטמעות של fastText או BlazingText שלך יאוחסן ב .
בנוסף, אתה יכול בקלות לפרוס מודלים מהירים מאומנים מראש בעצמם לנקודות קצה חיות של SageMaker כדי לחשב וקטורים הטבעה תוך כדי שימוש במשימות רלוונטיות ברמת המילה. ראה את הדברים הבאים דוגמה של GitHub לקבלת פרטים נוספים.
רובוטריקים עם פנים מחבקות
עבור גישת הדוגמנות השנייה שלנו, אנו עוברים לשימוש ברובוטריקים, שהוצגו במאמר תשומת הלב היא כל מה שאתה צריך. רובוטריקים הם מודלים של למידה עמוקה שנועדו להימנע בכוונה מהמלכודות של RNNs על ידי הסתמכות על מנגנון תשומת לב עצמית כדי למשוך תלות גלובלית בין קלט ופלט. ארכיטקטורת מודל ה-Transformer מאפשרת הקבלה טובה משמעותית ויכולה להגיע לביצועים גבוהים בזמן אימון קצר יחסית.
נבנה על הצלחת רובוטריקים, BERT, שהוצגה בעיתון BERT: הכשרה מקדימה של רובוטריקים דו כיווניים עמוקים להבנת שפה, הוספה הדרכה דו-כיוונית לייצוג שפה. בהשראת משימת Cloze, BERT עבר הכשרה מוקדמת עם מודלים של שפה מסכת (MLM), שבה המודל לומד לשחזר את המילים המקוריות עבור אסימונים המסויכים באופן אקראי. מודל BERT מאומן מראש גם במשימת חיזוי המשפט הבא (NSP) כדי לחזות אם שני משפטים נמצאים בסדר הקריאה הנכון. מאז הופעתו ב-2018, נעשה שימוש נרחב ב-BERT ובווריאציות שלו במשימות סיווג טקסט.
הפתרון שלנו משתמש בגרסה של BERT הידועה בשם RoBERTa, שהוצגה בעיתון RoBERTa: גישה אופטימיזציה חזקה ל- BERT. RobERTa משפר עוד יותר את ביצועי BERT במגוון משימות שפה טבעית על ידי אימון מודלים אופטימלי, כולל אימון מודלים ארוכים יותר על קורפוס גדול פי 10, שימוש בפרמטרים מותאמים, מיסוך אקראי דינמי, הסרת משימת ה-NSP ועוד.
המודלים שלנו מבוססי RobERTa משתמשים ב- מחבקים רובוטריקים לפנים library, שהיא מסגרת Python פופולרית בקוד פתוח המספקת יישומים באיכות גבוהה של כל מיני דגמי Transformer מתקדמים עבור מגוון משימות NLP. Hugging Face שיתף פעולה עם AWS כדי לאפשר לך לאמן ולפרוס בקלות דגמי Transformer ב- SageMaker. פונקציונליות זו זמינה דרך חיבוק פנים AWS Deep Learning Container תמונות, הכוללות את ספריות הרובוטריקים, הטוקנייזרים ומערכים הנתונים, ושילוב אופטימלי עם SageMaker להדרכה והסקת מודלים.
בהטמעה שלנו, אנו יורשים את עמוד השדרה של ארכיטקטורת RoBERTa מהמסגרת של Hugging Face Transformers ומשתמשים ב-SageMaker כדי לאמן ולפרוס מודל סיווג טקסט משלנו, אותו אנו מכנים RoBERTox. רוברטוקס משתמש בקידוד זוג בתים (BPE), שהוצג ב תרגום מכונה עצבית של מילים נדירות עם יחידות משנה, כדי לסמן טקסט קלט לייצוגי מילות משנה. לאחר מכן נוכל לאמן את המודלים והאסימונים שלנו על נתוני Jigsaw או כל קורפוס גדול ספציפי לדומיין (כגון יומני הצ'אט ממשחק ספציפי) ולהשתמש בהם לסיווג טקסט מותאם אישית. אנו מגדירים את מחלקת מודל הסיווג המותאם אישית שלנו בקוד הבא:
לפני האימון, אנו מכינים את נתוני הטקסט והתוויות שלנו באמצעות ספריית מערכי הנתונים של Hugging Face ומעלים את התוצאה לאמזון S3:
אנו יוזמים הכשרה של הדגם באופן דומה ל-RNN:
לבסוף, קטע הקוד הבא של Python ממחיש את התהליך של הגשת RobERTox באמצעות נקודת קצה חיה של SageMaker לסיווג טקסט בזמן אמת עבור בקשת JSON:
הערכת ביצועי המודל: מערך נתונים של הטיה לא מכוונת בפאזל
הטבלה הבאה מכילה מדדי ביצועים עבור מודלים שהוכשרו והוערכו על פי נתונים מתחרות Jigsaw Unintended Bias in Toxicity Detection Kaggle. הכשרנו מודלים לשלוש משימות שונות אך קשורות זו בזו:
- מקרה בינארי - המודל הוכשר על מערך ההדרכה המלא כדי לחזות את
toxicity
תווית בלבד - מארז עדין – קבוצת המשנה של נתוני האימון שעבורה
toxicity>=0.5
שימש לניבוי תוויות תת-סוגי רעילות אחרות (obscene
,threat
,insult
,identity_attack
,sexual_explicit
) - מארז ריבוי משימות - מערך ההדרכה המלא שימש לניבוי כל שש התוויות בו זמנית
הכשרנו מודלים של RNN ו-RoBERTa עבור כל אחת משלוש המשימות הללו באמצעות התוויות השבריות שסופקו ב-Jigsaw, התואמות לשיעור הכותבים שחשבו שהתווית מתאימה לטקסט, וכן עם תוויות בינאריות בשילוב עם משקלי מחלקות ברשת. פונקציית אובדן. בסכימת התיוג הבינארי, הפרופורציות הוגדרו ל-0.5 עבור כל תווית זמינה (1 אם תווית>=0.5, 0 אחרת), ופונקציות אובדן המודל שוקללו על סמך הפרופורציות היחסיות של כל תווית בינארית במערך האימון. בכל המקרים, מצאנו ששימוש בתוויות השבריות הביא ישירות לביצועים הטובים ביותר, המצביעים על הערך המוסף של המידע הגלום במידת ההסכמה בין הכותבים.
אנו מציגים שני מדדי מודל: הדיוק הממוצע (AP), המספק סיכום של עקומת הדיוק-ריקול על ידי חישוב הממוצע המשוקלל של ערכי הדיוק שהושגו בכל סף סיווג, והשטח מתחת לעקומת המאפיין ההפעלה של המקלט (AUC) , שמצברת את ביצועי המודל על פני ספי סיווג ביחס לשיעור החיובי האמיתי ולשיעור חיובי שגוי. שימו לב שהמחלקה האמיתית עבור מופע טקסט נתון בערכת הבדיקה תואמת אם הפרופורציה האמיתית גדולה או שווה ל-0.5 (1 אם תווית>=0.5, 0 אחרת).
. | הטמעת מילת משנה + RNN | רוברטה | ||
. | תוויות שברים | תוויות בינאריות + שקלול מחלקות | תוויות שברים | תוויות בינאריות + שקלול מחלקות |
בינרי | AP=0.746, AUC=0.966 | AP=0.730, AUC=0.963 | AP=0.758, AUC=0.966 | AP=0.747, AUC=0.963 |
עדין | AP=0.906, AUC=0.909 | AP=0.850, AUC=0.851 | AP=0.913, AUC=0.913 | AP=0.911, AUC=0.912 |
ריבוי משימות | AP=0.721, AUC=0.972 | AP=0.535, AUC=0.907 | AP=0.740, AUC=0.972 | AP=0.711, AUC=0.961 |
סיכום
בפוסט זה הצגנו שתי גישות סיווג טקסט לשיחות מקוונות באמצעות שירותי AWS ML. אתה יכול להכליל את הפתרונות הללו על פני פלטפורמות תקשורת מקוונות, כאשר תעשיות כמו גיימינג צפויות במיוחד להפיק תועלת מהיכולת המשופרת לזהות תוכן מזיק. בפוסטים עתידיים, אנו מתכננים להמשיך לדון בארכיטקטורה מקצה לקצה לפריסה חלקה של מודלים בחשבון AWS שלך.
אם תרצה עזרה בהאצת השימוש שלך ב- ML במוצרים ובתהליכים שלך, אנא צור קשר עם מעבדת פתרונות אמזון ML.
על הכותבים
ריאן ברנד הוא מדען נתונים במעבדת פתרונות למידת מכונה של אמזון. יש לו ניסיון ספציפי ביישום למידת מכונה לבעיות בתחום הבריאות ומדעי החיים, ובזמנו הפנוי הוא נהנה לקרוא היסטוריה ומדע בדיוני.
סורב בהבש הוא מדען נתונים במעבדת פתרונות ML של אמזון. הוא מפתח פתרונות AI/ML עבור לקוחות AWS בתעשיות שונות. ההתמחות שלו היא עיבוד שפה טבעית (NLP) והוא נלהב מלמידה עמוקה. מחוץ לעבודה הוא נהנה לקרוא ספרים ולטייל.
ליוטונג ג'ואו הוא מדען יישומי במעבדת פתרונות ML של אמזון. הוא בונה פתרונות AI/ML בהתאמה אישית עבור לקוחות AWS בתעשיות שונות. הוא מתמחה בעיבוד שפה טבעית (NLP) ונלהב מלמידה עמוקה רב-מודאלית. הוא טנור לירי ונהנה לשיר אופרות מחוץ לעבודה.
סיה גולמי הוא מדען נתונים בכיר במעבדת אמזון ML Solutions, שם הוא בונה פתרונות AI/ML עבור לקוחות בתעשיות שונות. הוא נלהב מעיבוד שפה טבעית (NLP) ולמידה עמוקה. מחוץ לעבודה, סיה נהנית לבלות בטבע ולשחק טניס.
דניאל הורוביץ הוא מנהל מדעי AI יישומי. הוא מוביל צוות של מדענים במעבדת פתרונות ML של אמזון הפועלים לפתרון בעיות של לקוחות ולהניע את אימוץ הענן עם ML.
- '
- "
- 10
- 100
- 7
- a
- יכולת
- אודות
- מאיצה
- חֶשְׁבּוֹן
- להשיג
- הושג
- לרוחב
- הוסיף
- אימוץ
- הסכם
- AI
- שירותי AI
- תעשיות
- מאפשר
- אמזון בעברית
- כמות
- אנליזה
- API
- יישומים
- יישומית
- החל
- מריחה
- גישה
- גישות
- מתאים
- ארכיטקטורה
- AREA
- תכונות
- זמין
- מְמוּצָע
- AWS
- תיק
- בנצ 'מרק
- תועלת
- הטוב ביותר
- מוטב
- בֵּין
- גדול
- ספרים
- בונה
- מובנה
- שיחה
- מקרה
- מקרים
- תווים
- בכיתה
- מיון
- ענן
- קוד
- שילוב
- משולב
- הערות
- תקשורת
- תחרות
- להשלים
- מורכב
- חישוב
- לחשב
- מחשוב
- רצופים
- תמיד
- צור קשר
- מכולה
- מכיל
- תוכן
- שיחה
- שיחות
- לִיצוֹר
- זונה
- מנהג
- לקוח
- לקוחות
- נתונים
- מדען נתונים
- עמוק
- לפרוס
- פריסה
- לתאר
- מעוצב
- פרטים
- איתור
- לקבוע
- צעצועי התפתחות
- אחר
- מֵמַד
- ישירות
- לדון
- לְהַצִיג
- להורדה
- נהיגה
- בְּמַהֲלָך
- דינמי
- כל אחד
- בקלות
- יעילות
- לאפשר
- מקצה לקצה
- נקודת קצה
- אנגלית
- זן
- ישות
- הערכה
- מתפתח
- דוגמה
- דוגמאות
- קיימים
- ניסיון
- מומחיות
- נרחב
- פָּנִים
- אופנה
- פיקציה
- ראשון
- הבא
- טופס
- קדימה
- מצא
- שברירי
- מסגרת
- חופשי
- החל מ-
- מלא
- פונקציה
- פונקציונלי
- פונקציות
- נוסף
- עתיד
- מִשְׂחָק
- משחקים
- המשחקים
- כללי
- מטרה כללית
- ליצור
- דור
- גלוֹבָּלִי
- יותר
- צמיחה
- לטפל
- ראש
- בריאות
- לעזור
- עזר
- גָבוֹהַ
- באיכות גבוהה
- היסטוריה
- HTTPS
- בן אנוש
- זהות
- הפעלה
- חשוב
- משופר
- השבחה
- לכלול
- כולל
- תעשיות
- מידע
- הטמון
- קלט
- תובנות
- השראה
- למשל
- לְהַעֲלִיב
- משולב
- השתלבות
- IT
- פאזל
- עבודה
- מפתחות
- ידוע
- מעבדה
- תווית
- תיוג
- תוויות
- שפה
- גָדוֹל
- גדול יותר
- שכבה
- מוביל
- לִלמוֹד
- למידה
- הוביל
- סִפְרִיָה
- מדעי חיים
- סביר
- לחיות
- לִטעוֹן
- מכונה
- למידת מכונה
- לעשות
- עושה
- הצליח
- מנהל
- מסכה
- מבחר המסיכות
- להתאים
- מַטרִיצָה
- מנגנון
- זכרון
- שיטות
- מדדים
- יכול
- ML
- מודל
- מודלים
- יותר
- מספר
- טבעי
- טבע
- רשת
- רשתות
- הבא
- מחברה
- מספר
- המיוחדות שלנו
- באינטרנט
- פועל
- מטב
- אופטימיזציה
- להזמין
- מְקוֹרִי
- אחר
- אַחֶרֶת
- שֶׁלוֹ
- מאמר
- במיוחד
- שותף
- לוהט
- ביצועים
- לְחַבֵּר
- פלטפורמות
- משחק
- אנא
- פופולרי
- חיובי
- הודעות
- לחזות
- נבואה
- להכין
- קודם
- בעיה
- בעיות
- תהליך
- תהליכים
- תהליך
- מוצרים
- הקרנה
- ובלבד
- מספק
- קריאה
- זמן אמת
- להחלים
- רלוונטי
- הסרת
- לייצג
- נציגות
- המייצג
- לבקש
- לַחֲזוֹר
- החזרות
- תפקיד
- הפעלה
- להרחבה
- תכנית
- מדע
- מדעים
- מַדְעָן
- מדענים
- בצורה חלקה
- קטע
- שרות
- שירותים
- הגשה
- סט
- כמה
- קצר
- משמעותי
- דומה
- פָּשׁוּט
- since
- שישה
- מידה
- פִּתָרוֹן
- פתרונות
- לפתור
- מֶרחָב
- רווחים
- מתמחה
- התמחות
- ספציפי
- הוצאה
- מדינה-of-the-art
- הברית
- אחסון
- הצלחה
- מערכות
- יעד
- משימות
- נבחרת
- טכניקות
- התקשורת
- מבחן
- אל האני
- שְׁלוֹשָׁה
- סף
- דרך
- זמן
- פִּי
- מטבעות
- כלים
- לפיד
- מסורתי
- רכבת
- הדרכה
- מַעֲבָר
- תרגום
- נסיעה
- תחת
- ייחודי
- להשתמש
- משתמשים
- אימות
- ערך
- מגוון
- שונים
- וִידֵאוֹ
- משחקי וידאו
- אם
- מי
- בתוך
- לְלֹא
- מילים
- תיק עבודות
- עובד