זהו פוסט אורח שנכתב יחד עם אנטוני ואנס מאינטל.
לקוחות תמיד מחפשים דרכים לשפר את הביצועים וזמני התגובה של עומסי העבודה של למידת מכונה (ML) שלהם מבלי להגדיל את העלות לעסקה ומבלי לוותר על דיוק התוצאות. הפעלת עומסי עבודה של ML אמזון SageMaker ריצה ענן מחשוב אלסטי של אמזון (אמזון EC2) C6i מקרים עם של אינטל פריסת מסקנות INT8 יכולה לעזור להגביר את הביצועים הכוללים עד פי ארבעה לכל הוצאה בדולר תוך שמירה על אובדן דיוק ההסקות של פחות מ-1% בהשוואה ל-FP32 כאשר מיושם על עומסי עבודה מסוימים של ML. כשמדובר בהפעלת הדגמים במכשירים משובצים שבהם גורם הצורה והגודל של המודל חשובים, קוונטיזציה יכולה לעזור.
קוונטיזציה היא טכניקה להפחתת עלויות החישוב והזיכרון של הפעלת הסקת מסקנות על ידי ייצוג המשקלים וההפעלה עם סוגי נתונים בעלי דיוק נמוך כמו מספר שלם של 8 סיביות (INT8) במקום הנקודה הצפה הרגילה של 32 סיביות (FP32). באיור הדוגמה הבא, אנו מציגים ביצועי הסקת INT8 ב-C6i עבור מודל מבוסס BERT.
בסיס BERT כוונן עדין עם SQuAD v1.1, כאשר PyTorch (v1.11) היא מסגרת ה-ML המשמשת עם Intel® Extension for PyTorch. להשוואה נעשה שימוש בגודל אצווה של 1. גדלי אצווה גבוהים יותר יספקו עלות שונה לכל מיליון מסקנות.
בפוסט זה, אנו מראים לך כיצד לבנות ולפרוס מסקנות INT8 עם שלך מיכל עיבוד משלו עבור PyTorch. אנו משתמשים בהרחבות של אינטל עבור PyTorch לזרימת עבודה יעילה של פריסת INT8.
סקירה כללית של הטכנולוגיה
מופעי EC2 C6i מופעלים על ידי מעבדי Intel Xeon Scalable מהדור השלישי (הנקראים גם Ice Lake) עם תדר טורבו הליבה של 3.5 גיגה-הרץ.
בהקשר של למידה עמוקה, הפורמט המספרי השולט המשמש למחקר ופריסה היה עד כה נקודה צפה של 32 סיביות, או FP32. עם זאת, הצורך ברוחב פס מופחת ובדרישות מחשוב של מודלים של למידה עמוקה הניע מחקר על שימוש בפורמטים מספריים בעלי דיוק נמוך יותר. הוכח שניתן לייצג משקלים והפעלה באמצעות מספרים שלמים של 8 סיביות (או INT8) מבלי לגרום לאובדן משמעותי ברמת הדיוק.
מופעי EC2 C6i מציעים יכולות חדשות רבות שמביאות לשיפורי ביצועים לעומסי עבודה של AI ו-ML. מופעי C6i מספקים יתרונות ביצועים בפריסות מודל FP32 ו-INT8. הסקת FP32 מופעלת עם שיפורים ב-AVX-512, והסקת INT8 מופעלת על ידי הוראות AVX-512 VNNI.
C6i זמין כעת בנקודות הקצה של SageMaker, והמפתחים צריכים לצפות ממנו לספק יותר פי שניים שיפורי מחיר-ביצועים עבור מסקנות INT8 על פני מסקנות FP32 ועד פי ארבעה שיפור ביצועים בהשוואה להסקת FP5 של מופע C32. עיין בנספח למשל לפרטים ונתוני אמת מידה.
פריסת למידה עמוקה על הקצה להסקת מסקנות בזמן אמת היא המפתח לתחומי יישומים רבים. זה מפחית באופן משמעותי את עלות התקשורת עם הענן מבחינת רוחב הפס של הרשת, השהיית הרשת וצריכת החשמל. עם זאת, למכשירי קצה יש זיכרון מוגבל, משאבי מחשוב וכוח. משמעות הדבר היא שרשת למידה עמוקה חייבת להיות מותאמת לפריסה משובצת. קוונטיזציה של INT8 הפכה לגישה פופולרית עבור אופטימיזציות כאלה עבור מסגרות ML כמו TensorFlow ו- PyTorch. SageMaker מספקת לך גישת הביאו משלך (BYOC) וכלים משולבים כך שתוכל להפעיל קוונטיזציה.
למידע נוסף עיין ב דיוק מספרי נמוך יותר מסקנות והדרכה של למידה עמוקה.
סקירת פתרונות
השלבים ליישום הפתרון הם כדלקמן:
- ספק מופע EC2 C6i כדי לכמת וליצור את מודל ה-ML.
- השתמש בסקריפטים של Python המסופקים לכימות.
- צור תמונת Docker כדי לפרוס את המודל ב- SageMaker באמצעות גישת BYOC.
- השתמש ב- שירות אחסון פשוט של אמזון (Amazon S3) דלי להעתקת הדגם והקוד לגישה של SageMaker.
- השתמש מרשם מיכל אלסטי של אמזון (Amazon ECR) לארח את תמונת Docker.
- השתמש ממשק שורת הפקודה של AWS (AWS CLI) ליצירת נקודת קצה של מסקנות ב- SageMaker.
- הפעל את סקריפטי הבדיקה של Python כדי להפעיל את נקודת הקצה של SageMaker עבור שני גרסאות INT8 ו-FP32.
הגדרת פריסת ההסקות הזו משתמשת במודל מבוסס BERT ממאגר השנאים של Hugging Face (csarron/bert-base-uncased-squad-v1).
תנאים מוקדמים
להלן תנאים מוקדמים ליצירת הגדרת הפריסה:
- מסוף מעטפת לינוקס עם AWS CLI מותקן
- חשבון AWS עם גישה ליצירת מופע EC2 (סוג מופע C6i)
- גישת SageMaker לפריסת מודל SageMaker, תצורת נקודת קצה, נקודת קצה
- AWS זהות וניהול גישה גישת (IAM) להגדרת תפקיד ומדיניות IAM
- גישה לאמזון ECR
- גישת SageMaker ליצירת מחברת עם הוראות להפעלת נקודת קצה
צור ופרוס מודל INT8 כמותי ב- SageMaker
פתח מופע EC2 ליצירת המודל הקוונטי שלך ודחוף את חפצי המודל לאמזון S3. לפריסת נקודות קצה, צור קונטיינר מותאם אישית עם PyTorch ו-Intel® Extension עבור PyTorch כדי לפרוס את מודל INT8 המותאם. המיכל נדחף לאמזון ECR ונקודת קצה מבוססת C6i נוצרת כדי לשרת את דגמי FP32 ו-INT8.
התרשים הבא ממחיש את הזרימה ברמה גבוהה.
כדי לגשת לקוד ולתיעוד, עיין ב- GitHub ריפו.
מקרה שימוש לדוגמה
מערך הנתונים של Stanford Question Answering (SQuAD) הוא מערך נתונים להבנת הנקרא המורכב משאלות שהוצגו על ידי עובדי המונים בקבוצה של מאמרים בוויקיפדיה, כאשר התשובה לכל שאלה היא קטע טקסט, או משך, מתוך קטע הקריאה המתאים, או שהשאלה עשויה להיות בלתי ניתנת לתשובה.
הדוגמה הבאה היא אלגוריתם המענה על שאלות באמצעות מודל בסיס BERT. בהינתן מסמך כקלט, המודל יענה על שאלות פשוטות המבוססות על הלמידה וההקשרים ממסמך הקלט.
להלן דוגמה למסמך קלט:
יער הגשם של האמזונס (פורטוגזית: Floresta Amazônica או Amazônia; ספרדית: Selva Amazónica, Amazonía או בדרך כלל Amazonia; בצרפתית: Forêt amazonienne; בהולנדית: Amazoneregenwoud), הידוע באנגלית גם בשם Amazonia או האמזונס ג'ונגל, הוא יער רחב-עלים לח המכסה את רובם. של אגן האמזונס של דרום אמריקה. אגן זה מקיף 7,000,000 קמ"ר (2,700,000 מייל רבוע), מתוכם 5,500,000 קמ"ר (2,100,000 מייל רבוע) מכוסים על ידי יער הגשם.
לשאלה "איזה שם משמש גם לתיאור יער הגשם של האמזונס באנגלית?" נקבל את התשובה:
לשאלה "כמה קילומטרים רבועים של יער גשם מכוסה באגן?" נקבל את התשובה:
כימות המודל ב- PyTorch
סעיף זה נותן סקירה מהירה של שלבי קוונטיזציה של מודלים עם הרחבות PyTorch ו-Intel.
קטעי הקוד נגזרים מדוגמה של SageMaker.
בואו נעבור על השינויים בפירוט עבור הפונקציה IPEX_quantize בקובץ quantize.py.
- ייבא הרחבות אינטל עבור PyTorch כדי לעזור בכימות ואופטימיזציה ויבוא לפיד עבור מניפולציות של מערכים:
- החל כיול מודל עבור 100 איטרציות. במקרה זה, אתה מכייל את המודל עם מערך הנתונים של SQuAD:
- הכן תשומות לדוגמה:
- המר את הדגם לדגם INT8 באמצעות התצורה הבאה:
- הפעל שתי איטרציות של העברה קדימה כדי לאפשר היתוכים:
- כשלב אחרון, שמור את מודל TorchScript:
לנקות את
עיין ב ריפו של גיטוב לצעדים לניקוי משאבי ה-AWS שנוצרו.
סיכום
מופעים חדשים של EC2 C6i בנקודת קצה של SageMaker יכולים להאיץ את פריסת ההסקות עד פי 2.5 עם קוונטיזציה של INT8. כימות המודל ב- PyTorch אפשרי עם כמה ממשקי API מהרחבות של Intel PyTorch. מומלץ לכמת את המודל במופעי C6i כך שדיוק המודל יישמר בפריסת נקודות הקצה. הדוגמאות של SageMaker GitHub ריפו מספק כעת צינור דוגמה לפריסה מקצה לקצה לכימות ואירוח דגמי INT8.
אנו ממליצים לך ליצור מודל חדש או להעביר מודל קיים באמצעות קוונטיזציה INT8 באמצעות סוג המופע EC2 C6i ולראות בעצמך את הישגי הביצועים.
הודעה והסתייגות
שום רישיון (מפורש או משתמע, בהסכמה או בכל דרך אחרת) לזכויות קניין רוחני כלשהן מוענק על ידי מסמך זה, למעט החריג היחיד שהקוד הכלול במסמך זה מורשה בכפוף ל- רישיון קוד פתוח BSD עם סעיף אפס (0BSD)
נספח
מופעי AWS חדשים ב- SageMaker עם תמיכה בפריסה של INT8
הטבלה הבאה מפרטת מופעים של SageMaker עם ובלי DL Boost תומכים.
שם המופע | Xeon Gen שם קוד | INT8 מופעל? | DL Boost מופעל? |
ml.c5. xlarge – ml.c5.9xlarge | סקיילייק/1st | יש | לא |
ml.c5.18xlarge | סקיילייק/1st | יש | לא |
ml.c6i.1x – 32xlarge | אגם הקרח/3rd | יש | יש |
לסיכום, INT8 מאופשר תומך בסוג הנתונים ובחישוב INT8; DL Boost מופעל תומך ב-Deep Learning Boost.
נתוני בנצ'מרק
הטבלה הבאה משווה את העלות והביצועים היחסיים בין מופעי c5 ו-c6.
חביון ותפוקה נמדדו עם 10000 שאילתות מסקנות לנקודות קצה של יצרנית Sage.
E2E השהיית נקודת קצה וניתוח עלויות | |||||
P50(ms) | P90(ms) | שאילתות/שניות | $/1M שאילתות | $/ביצועים יחסית | |
C5.2xLarge-FP32 | 76.6 | 125.3 | 11.5 | $10.2 | 1.0x |
c6i.2xLarge-FP32 | 70 | 110.8 | 13 | $9.0 | 1.1x |
c6i.2xLarge-INT8 | 35.7 | 48.9 | 25.56 | $4.5 | 2.3x |
דגמי INT8 צפויים לספק פי 2-4 שיפורי ביצועים מעשיים עם אובדן דיוק של פחות מ-1% עבור רוב הדגמים. מעל הטבלה מכסה זמן אחזור תקורה (NW ויישום הדגמה)
דיוק עבור מודל בסיס BERT
הטבלה הבאה מסכמת את הדיוק של מודל INT8 עם מערך הנתונים SQUaD v1.1.
מטרי | FP32 | INT8 |
התאמה מדוייקת | 85.8751 | 85.5061 |
F1 | 92.0807 | 91.8728 |
השמיים GitHub ריפו מגיע עם הסקריפטים כדי לבדוק את הדיוק של מערך הנתונים של SQuAD. מתייחס invoke-INT8.py ו invoke-FP32.py סקריפטים לבדיקה.
אינטל הרחבה עבור PyTorch
Intel® Extension for PyTorch* (פרויקט קוד פתוח ב-GitHub) מרחיב את PyTorch עם אופטימיזציות לשיפורי ביצועים נוספים בחומרה של אינטל. רוב האופטימיזציות ייכללו בסופו של דבר במהדורות מלאי של PyTorch, והכוונה של ההרחבה היא לספק תכונות ואופטימיזציות עדכניות עבור PyTorch בחומרה של אינטל. דוגמאות כוללות AVX-512 Vector Neural Network Instructions (AVX512 VNNI) ו-Intel® Advanced Matrix Extensions (Intel® AMX).
האיור הבא ממחיש את ארכיטקטורת Intel Extension for PyTorch.
להנחיות מפורטות יותר למשתמש (תכונות, כוונון ביצועים ועוד) עבור Intel® Extension for PyTorch, עיין ב- הנחיות למשתמש של Intel® Extension for PyTorch*.
על הכותבים
רוהיט צ'ודהרי הוא ארכיטקט פתרונות אב בצוות חשבונות אסטרטגיים ב-AWS.
Aniruddha Kappagantu הוא מהנדס פיתוח תוכנה בצוות AI Platforms ב-AWS.
אנטוני ואנס הוא אדריכל AI באינטל עם 19 שנות ניסיון בראייה ממוחשבת, למידת מכונה, למידה עמוקה, תוכנה משובצת, GPU ו-FPGA.
- הפצת תוכן ויחסי ציבור מופעל על ידי SEO. קבל הגברה היום.
- Platoblockchain. Web3 Metaverse Intelligence. ידע מוגבר. גישה כאן.
- מקור: https://aws.amazon.com/blogs/machine-learning/accelerate-amazon-sagemaker-inference-with-c6i-intel-based-amazon-ec2-instances/
- :הוא
- $ למעלה
- 000
- 1
- 100
- 11
- 7
- 8
- 9
- a
- מֵעַל
- להאיץ
- גישה
- חֶשְׁבּוֹן
- חשבונות
- דיוק
- הפעלות
- מתקדם
- יתרונות
- AI
- אַלגוֹרִיתְם
- תמיד
- אמזון בעברית
- אמזון
- אמזון SageMaker
- אמריקה
- ו
- לענות
- ממשקי API
- בקשה
- יישומית
- גישה
- ארכיטקטורה
- ARE
- אזורים
- מערך
- מאמרים
- AS
- At
- זמין
- AWS
- רוחב פס
- מבוסס
- BE
- להיות
- להיות
- בנצ 'מרק
- בֵּין
- לְהַגבִּיר
- להביא
- לִבנוֹת
- by
- נקרא
- CAN
- יכולות
- מקרה
- מסוים
- שינויים
- לבדוק
- ענן
- קוד
- תקשורת
- לעומת
- השוואה
- חישוב
- לחשב
- המחשב
- ראייה ממוחשבת
- מחשוב
- תְצוּרָה
- מורכב
- צְרִיכָה
- מכולה
- הקשר
- הקשרים
- תוֹאֵם
- עלות
- עלויות
- מכוסה
- מכסה
- לִיצוֹר
- נוצר
- יוצרים
- יצירה
- מנהג
- נתונים
- עמוק
- למידה עמוקה
- למסור
- מופגן
- לפרוס
- פריסה
- פריסות
- נגזר
- לתאר
- פרט
- מְפוֹרָט
- פרטים
- מפתחים
- צעצועי התפתחות
- התקנים
- אחר
- סַוָר
- מסמך
- תיעוד
- עושה
- דוֹלָר
- מונע
- הולנדי
- אדג '
- אפקטיבי
- מוטבע
- לאפשר
- מופעל
- מקיף
- לעודד
- מקצה לקצה
- נקודת קצה
- מהנדס
- אנגלית
- בסופו של דבר
- כל
- דוגמה
- דוגמאות
- יוצא מן הכלל
- קיימים
- לצפות
- צפוי
- ניסיון
- אקספרס
- הארכה
- סיומות
- נוסף
- פָּנִים
- תכונות
- מעטים
- תרשים
- שלח
- צף
- תזרים
- הבא
- כדלקמן
- בעד
- יער
- טופס
- פוּרמָט
- קדימה
- FPGA
- מסגרת
- מסגרות
- צרפתית
- תדר
- החל מ-
- פונקציה
- רווחים
- Gen
- לקבל
- GitHub
- נתן
- נותן
- Go
- GPU
- כמובן מאליו
- יותר
- אוֹרֵחַ
- פוסט אורח
- הדרכה
- חומרה
- יש
- לעזור
- ברמה גבוהה
- גבוה יותר
- המארח
- אירוח
- איך
- איך
- אולם
- HTML
- http
- HTTPS
- קרח
- זהות
- תמונה
- ליישם
- מְרוּמָז
- לייבא
- חשוב
- לשפר
- השבחה
- שיפורים
- in
- לכלול
- כלול
- גדל
- מידע
- קלט
- למשל
- במקום
- הוראות
- משולב
- אינטל
- אִינטֶלֶקְטוּאַלִי
- קניין רוחני
- מטרה
- IT
- איטרציות
- jpg
- שמירה
- מפתח
- ידוע
- אגם
- אחרון
- חֶבִיוֹן
- לשגר
- למידה
- רישיון
- מורשה
- כמו
- מוגבל
- קו
- לינוקס
- רשימות
- הסתכלות
- את
- מכונה
- למידת מכונה
- יצרן
- רב
- מַטרִיצָה
- אומר
- זכרון
- יכול
- נודד
- מִילִיוֹן
- ML
- מודל
- מודלים
- יותר
- רוב
- MS
- שם
- צורך
- רשת
- רשת עצבית
- חדש
- מחברה
- of
- הַצָעָה
- on
- לפתוח
- קוד פתוח
- אופטימיזציה
- אופטימיזציה
- OS
- אַחֶרֶת
- מקיף
- סקירה
- שֶׁלוֹ
- נתיב
- ביצועים
- צינור
- פלטפורמות
- אפלטון
- מודיעין אפלטון
- אפלטון נתונים
- נקודה
- פופולרי
- פורטוגזי
- אפשרי
- הודעה
- כּוֹחַ
- מופעל
- מעשי
- דיוק
- תנאים מוקדמים
- תהליך
- מעבדים
- פּרוֹיֶקט
- רכוש
- זכויות רכוש
- לספק
- ובלבד
- מספק
- דחוף
- דחף
- פיתון
- פיטורך
- שאלה
- שאלות
- מָהִיר
- קריאה
- זמן אמת
- מוּמלָץ
- להפחית
- מופחת
- מפחית
- עיתונות
- מאגר
- מיוצג
- המייצג
- דרישות
- מחקר
- משאבים
- תגובה
- תוצאה
- תוצאות
- זכויות
- תפקיד
- הפעלה
- ריצה
- מקריב
- בעל חכמים
- SageMaker Inference
- שמור
- להרחבה
- סקריפטים
- סעיף
- קטע
- לשרת
- סט
- התקנה
- פָּגָז
- צריך
- לְהַצִיג
- משמעותי
- באופן משמעותי
- פָּשׁוּט
- מידה
- גדל
- So
- עד כה
- תוכנה
- פיתוח תוכנה
- פִּתָרוֹן
- פתרונות
- מָקוֹר
- דרום
- דרום אמריקה
- ספרדי
- בילה
- SQ
- מרובע
- שלב
- צעדים
- מניות
- אחסון
- אסטרטגי
- נושא
- כזה
- לסכם
- שסופק
- תמיכה
- תומך
- שולחן
- נבחרת
- tensorflow
- מסוף
- מונחים
- מבחן
- בדיקות
- זֶה
- השמיים
- שֶׁלָהֶם
- תפוקה
- פִּי
- ל
- כלים
- לפיד
- עסקה
- רוֹבּוֹטרִיקִים
- סוגים
- עדכן
- להשתמש
- משתמש
- בְּדֶרֶך כְּלַל
- חזון
- דרכים
- אשר
- בזמן
- ויקיפדיה
- יצטרך
- עם
- לְלֹא
- שנים
- אתה
- עצמך
- זפירנט