ענן מחשוב אלסטי של אמזון (אמזון EC2) מקרים של G5 הם המקרים הראשונים והיחידים בענן הכוללים NVIDIA A10G Tensor Core GPUs, שבהם אתה יכול להשתמש עבור מגוון רחב של מקרי שימוש עתירי גרפיקה ולמידת מכונה (ML). עם מופעי G5, לקוחות ML מקבלים ביצועים גבוהים ותשתית חסכונית לאימון ופריסה של מודלים גדולים ומתוחכמים יותר עבור עיבוד שפה טבעית (NLP), ראייה ממוחשבת (CV) ומקרי שימוש במנועי ממליצים.
מטרת הפוסט הזה היא להציג את יתרונות הביצועים של מופעי G5 עבור עומסי עבודה בקנה מידה גדול של מסקנות ML. אנו עושים זאת על ידי השוואת מחיר-ביצועים (נמדד כ-$ למיליון מסקנות) עבור דגמי NLP ו-CV עם מופעי G4dn. אנו מתחילים בתיאור גישת ה-benchmarking שלנו ולאחר מכן מציגים עקומות תפוקה לעומת חביון על פני גדלי אצווה ודיוק סוגי נתונים. בהשוואה למופעי G4dn, אנו מוצאים שמופעי G5 מספקים עלות נמוכה יותר למיליון מסקנות הן עבור דיוק מלא והן עבור מצבי דיוק מעורבים עבור דגמי NLP ו- CV תוך השגת תפוקה גבוהה יותר והשהייה נמוכה יותר.
גישת בנצ'מרקינג
כדי לפתח מחקר מחיר-ביצועים בין G5 ל-G4dn, עלינו למדוד תפוקה, חביון ועלות למיליון מסקנות כפונקציה של גודל האצווה. אנו גם חוקרים את ההשפעה של דיוק מלא לעומת דיוק מעורב. גם גרף המודל וגם התשומות נטענים ל-CUDA לפני ההסקה.
כפי שמוצג בתרשים הארכיטקטורה הבא, אנו יוצרים תחילה תמונות מיכל בסיס בהתאמה עם CUDA עבור המופע הבסיסי של EC2 (G4dn, G5). כדי לבנות את תמונות מיכל הבסיס, אנחנו מתחילים עם מיכלי למידה עמוקה של AWS, המשתמשות בתמונות Docker ארוזות מראש כדי לפרוס סביבות למידה עמוקות בתוך דקות. התמונות מכילות את הספריות והכלים של PyTorch ללמידה עמוקה הנדרשת. אתה יכול להוסיף ספריות וכלים משלך על גבי תמונות אלה לדרגה גבוהה יותר של שליטה על ניטור, תאימות ועיבוד נתונים.
לאחר מכן אנו בונים תמונת מיכל ספציפית לדגם המכילה את תצורת המודל, מעקב אחר המודל והקוד הקשור להרצת מעברים קדימה. כל תמונות המכולה נטענות לתוך אמזון ECR כדי לאפשר קנה מידה אופקי של דגמים אלה עבור תצורות מודל שונות. אנו משתמשים שירות אחסון פשוט של אמזון (Amazon S3) כמאגר נתונים נפוץ להורדת תצורה והעלאת תוצאות ביצועים לסיכום. אתה יכול להשתמש בארכיטקטורה זו כדי ליצור מחדש ולשחזר את תוצאות ההשוואה ולבצע ייעוד מחדש כדי לסמן דגמים שונים (כגון דגמי Hugging Face, דגמי PyTorch, דגמים מותאמים אישית אחרים) על פני סוגי מופעי EC2 (CPU, GPU, Inf1).
עם הגדרת הניסוי הזה, המטרה שלנו היא ללמוד את זמן ההשהיה כפונקציה של התפוקה. עקומה זו חשובה לתכנון יישום כדי להגיע לתשתית מיטבית לעלות עבור יישום היעד. כדי להשיג זאת, אנו מדמים עומסים שונים על ידי עמידה בתור שאילתות ממספר שרשורים ולאחר מכן מדידת זמן ההליכה הלוך ושוב עבור כל בקשה שהושלמה. התפוקה נמדדת על סמך מספר הבקשות שהושלמו ליחידת זמן שעון. יתר על כן, אתה יכול לשנות את גדלי האצווה ומשתנים אחרים כמו אורך רצף ודיוק מלא לעומת חצי דיוק כדי לטאטא באופן מקיף את מרחב העיצוב כדי להגיע למדדי ביצועים אינדיקטיביים. במחקר שלנו, באמצעות סריקה פרמטרית של גודל אצווה ושאילתות מלקוחות מרובי הליכי, נקבעת עקומת התפוקה לעומת ההשהיה. ניתן לקבץ כל בקשה כדי להבטיח ניצול מלא של המאיץ, במיוחד עבור בקשות קטנות שאולי לא ינצלו את צומת המחשוב במלואו. אתה יכול גם לאמץ הגדרה זו כדי לזהות את גודל האצווה בצד הלקוח לביצועים מיטביים.
לסיכום, אנו יכולים לייצג בעיה זו באופן מתמטי כ: (תפוקה, חביון) = פונקציה של (גודל אצווה, מספר חוטים, דיוק).
פירוש הדבר, בהתחשב בשטח הממצה, מספר הניסויים יכול להיות גדול. למרבה המזל, כל ניסוי יכול להתבצע באופן עצמאי. אנו ממליצים להשתמש אצווה AWS לבצע בנצ'מרק בקנה מידה אופקי זה בזמן דחוס ללא עלייה בעלות ההשוואה בהשוואה לגישה ליניארית לבדיקה. הקוד לשכפול התוצאות קיים ב- מאגר GitHub מוכן ל-AWS Re:Invent 2021. המאגר מקיף לביצוע השוואות על מאיצים שונים. אתה יכול להתייחס להיבט ה-GPU של הקוד כדי לבנות את המיכל (Dockerfile-gpu
) ולאחר מכן עיין בקוד שבפנים Container-Root
לדוגמאות ספציפיות עבור BERT ו- ResNet50.
השתמשנו בגישה הקודמת לפיתוח מחקרי ביצועים על פני שני סוגי מודלים: Bert-base-uncased (110 מיליון פרמטרים, NLP) ו- ResNet50 (25.6 מיליון פרמטרים, CV). הטבלה הבאה מסכמת את פרטי הדגם.
סוג דגם | מספר סימוכין | פרטים |
NLP | twmkn9/bert-base-uncased-squad2 | 110 מיליון פרמטרים אורך רצף = 128 |
CV | 50. ResNetXNUMX | 25.6 מיליון פרמטרים |
בנוסף, כדי למדוד בין סוגי נתונים (מלא, חצי דיוק), אנו משתמשים torch.cuda.amp
, המספק שיטות נוחות להתמודדות עם דיוק מעורב כאשר חלק מהפעולות משתמשות ב torch.float32
(צף) סוג נתונים ושימוש בפעולות אחרות torch.float16
(חֲצִי). לדוגמה, אופרטורים כמו שכבות ליניאריות ופיתולים מהירים הרבה יותר עם float16, בעוד שאחרים כמו הפחתות דורשים לעתים קרובות את הטווח הדינמי של float32. דיוק מעורב אוטומטי מנסה להתאים לכל מפעיל את סוג הנתונים המתאים לו כדי לייעל את זמן הריצה וטביעת הזיכרון של הרשת.
תוצאות בנצ'מרקינג
לשם השוואה הוגנת, בחרנו G4dn.4xlarge ו G5.4xlarge מופעים עם תכונות דומות, כפי שמופיע בטבלה הבאה.
מופע | GPUs | זיכרון GPU (GiB) | מעבדי vCPU | זיכרון (GiB) | אחסון מופעים (GB) | ביצועי רשת (Gbps) | רוחב פס של EBS (Gbps) | תמחור לינוקס לפי דרישה (us-east-1) |
G5.4xlarge | 1 | 24 | 16 | 64 | 1x 600 NVMe SSD | עד 25 | 8 | $ 1.204 / שעה |
G4dn.4xlarge | 1 | 16 | 16 | 64 | 1x 225 NVMe SSD | עד 25 | 4.75 | $ 1.624 / שעה |
בסעיפים הבאים, אנו משווים ביצועי מסקנות ML של דגמי BERT ו-RESNET50 עם גישת גריד sweep עבור גדלי אצווה ספציפיים (32, 16, 8, 4, 1) ודיוק סוג נתונים (דיוק מלא וחצי) כדי להגיע לעקומת התפוקה לעומת השהייה. בנוסף, אנו חוקרים את ההשפעה של תפוקה לעומת גודל אצווה עבור דיוק מלא וחצי כאחד. לבסוף, אנו מודדים עלות למיליון מסקנות כפונקציה של גודל אצווה. התוצאות המאוחדות על פני הניסויים הללו מתמצות בהמשך פוסט זה.
תפוקה לעומת חביון
הנתונים הבאים משווים מופעי G4dn ו-G5 עבור עומסי עבודה של NLP ו-CV ברמת דיוק מלאה וחצי. בהשוואה למופעי G4dn, מופע ה-G5 מספק תפוקה של פי חמישה גבוה יותר (דיוק מלא) וכפי 2.5 גבוה יותר (חצי דיוק) עבור דגם בסיס BERT, וכפי 2-2.5 גבוה יותר עבור דגם ResNet50. בסך הכל, G5 היא בחירה מועדפת, עם גדלי אצווה הולכים וגדלים עבור שני הדגמים עבור דיוק מלא ומעורב גם מנקודת מבט של ביצועים.
הגרפים הבאים משווים תפוקה והשהיית P95 בדייקנות מלאה וחצי עבור BERT.
הגרפים הבאים משווים תפוקה והשהיית P95 בדיוק מלא וחצי עבור ResNet50.
תפוקה ואחזור לעומת גודל אצווה
הגרפים הבאים מציגים את התפוקה כפונקציה של גודל האצווה. בגדלים נמוכים של אצווה, המאיץ אינו מתפקד במלוא הקיבולת וככל שגודל האצווה גדל, התפוקה גדלה במחיר השהייה. עקומת התפוקה אסימפטוטה לערך מרבי שהוא פונקציה של ביצועי המאיץ. לעקומה שתי תכונות ברורות: קטע עולה וקטע אסימפטוטי שטוח. עבור דגם נתון, מאיץ ביצועים (G5) מסוגל למתוח את הקטע העולה לגדלי אצווה גבוהים יותר מ-G4dn ולאסימפטוטה בתפוקה גבוהה יותר. כמו כן, קיים פשרה ליניארית בין חביון לגודל אצווה. לכן, אם האפליקציה קשורה בחביון, נוכל להשתמש בהשהיה P95 לעומת גודל אצווה כדי לקבוע את גודל האצווה האופטימלי. עם זאת, אם המטרה היא למקסם את התפוקה בזמן ההשהיה הנמוכה ביותר, עדיף לבחור את גודל האצווה המתאים ל"ברך" בין הסעיפים העולה והאסימפטוטי, מכיוון שכל גידול נוסף בגודל האצווה יביא לאותה תפוקה עם חביון גרוע יותר. כדי להשיג את היחס הטוב ביותר בין מחיר לביצועים, תוך מיקוד לתפוקה גבוהה יותר בזמן האחזור הנמוך ביותר, עדיף לך לשנות את קנה המידה האופטימלי הזה באמצעות מספר שרתי הסקה במקום רק להגדיל את גודל האצווה.
עלות לעומת גודל אצווה
בחלק זה, אנו מציגים את התוצאות ההשוואתיות של עלויות היסק ($ למיליון מסקנות) לעומת גודל האצווה. מהאיור הבא, אנו יכולים לראות בבירור שהעלות (נמדדת כ-$ למיליון מסקנות) נמוכה יותר באופן עקבי עם G5 לעומת G4dn שניהם (דיוק מלא וחצי).
הטבלה הבאה מסכמת השוואות תפוקה, חביון ועלות ($ למיליון מסקנות) עבור דגמי BERT ו-RESNET50 בשני מצבי הדיוק עבור גדלי אצווה ספציפיים. למרות עלות גבוהה יותר למופע, G5 מתגבר באופן עקבי על G4dn בכל ההיבטים של זמן השהייה, תפוקה ועלות ($ למיליון הסקה), עבור כל גדלי האצווה. שילוב המדדים השונים לכדי עלות ($ למיליון מסקנות), דגם BERT (גודל אצווה מלא, דיוק מלא) עם G32 הוא פי 5 נוח יותר מ-G3.7dn, ועם מודל ResNet4 (גודל אצווה של 50, דיוק מלא), הוא נוח פי 32 מ-G1.6dn.
מספר סימוכין | גודל אצווה | דיוק |
התפוקה (גודל אצווה X בקשות/שנייה) |
זמן אחזור (אלפיות השנייה) |
$/מיליון מסקנות (לפי דרישה) |
עלות - תועלת (G5 מעל G4dn) |
|||
. | . | . | G5 | G4dn | G5 | G4dn | G5 | G4dn | |
ברט-בסיס-לא מארז | 32 | מלא | 723 | 154 | 44 | 208 | $0.6 | $2.2 | 3.7X |
מעורב | 870 | 410 | 37 | 79 | $0.5 | $0.8 | 1.6X | ||
16 | מלא | 651 | 158 | 25 | 102 | $0.7 | $2.1 | 3.0X | |
מעורב | 762 | 376 | 21 | 43 | $0.6 | $0.9 | 1.5X | ||
8 | מלא | 642 | 142 | 13 | 57 | $0.7 | $2.3 | 3.3X | |
מעורב | 681 | 350 | 12 | 23 | $0.7 | $1.0 | 1.4X | ||
. | 1 | מלא | 160 | 116 | 6 | 9 | $2.8 | $2.9 | 1.0X |
מעורב | 137 | 102 | 7 | 10 | $3.3 | $3.3 | 1.0X | ||
50. ResNetXNUMX | 32 | מלא | 941 | 397 | 34 | 82 | $0.5 | $0.8 | 1.6X |
מעורב | 1533 | 851 | 21 | 38 | $0.3 | $0.4 | 1.3X | ||
16 | מלא | 888 | 384 | 18 | 42 | $0.5 | $0.9 | 1.8X | |
מעורב | 1474 | 819 | 11 | 20 | $0.3 | $0.4 | 1.3X | ||
8 | מלא | 805 | 340 | 10 | 24 | $0.6 | $1.0 | 1.7X | |
מעורב | 1419 | 772 | 6 | 10 | $0.3 | $0.4 | 1.3X | ||
. | 1 | מלא | 202 | 164 | 5 | 6 | $2.2 | $2 | 0.9X |
מעורב | 196 | 180 | 5 | 6 | $2.3 | $1.9 | 0.8X |
מדדי מסקנות נוספים
בנוסף לתוצאות BERT בסיס ו- ResNet50 בסעיפים הקודמים, אנו מציגים תוצאות השוואת ביצועים נוספות עבור דגמי NLP ו-CV גדולים אחרים בשימוש ב- PyTorch. יתרון הביצועים של G5 על פני G4dn הוצג עבור דגמי BERT Large במגוון דיוק, ודגמי Yolo-v5 לגדלים שונים. לקוד לשכפול המדד, עיין ב דוגמאות ללמידה עמוקה של NVIDIA עבור ליבות טנזור. תוצאות אלו מראות את היתרון של שימוש ב-G5 על פני G4dn עבור מגוון רחב של משימות מסקנות המשתרעות על סוגי מודלים שונים.
מספר סימוכין | דיוק | גודל אצווה | אורך רצף | תפוקה (נשלח/שנייה) | תפוקה: G4dn | Speedup מעל G4dn |
BERT-גדול | FP16 | 1 | 128 | 93.5 | 40.31 | 2.3 |
BERT-גדול | FP16 | 4 | 128 | 264.2 | 87.4 | 3.0 |
BERT-גדול | FP16 | 8 | 128 | 392.1 | 107.5 | 3.6 |
BERT-גדול | FP32 | 1 | 128 | 68.4 | 22.67 | 3.0 |
BERT-גדול | 4 | 128 | 118.5 | 32.21 | 3.7 | |
BERT-גדול | 8 | 128 | 132.4 | 34.67 | 3.8 |
מספר סימוכין | GFLOPS | מספר פרמטרים | עיבוד מקדים (ms) | מסקנות (ms) | הסקה (לא דיכוי מקסימלי) (NMS/תמונה) |
YOLOv5s | 16.5 | 7.2 מ"ר | 0.2 | 3.6 | 4.5 |
YOLOv5m | 49.1 | 21 מ"ר | 0.2 | 6.5 | 4.5 |
YOLOv5l | 109.3 | 46 מ"ר | 0.2 | 9.1 | 3.5 |
YOLOv5x | 205.9 | 86 מ"ר | 0.2 | 14.4 | 1.3 |
סיכום
בפוסט זה, הראינו כי להסיק עם דגמי NLP ו- CV PyTorch גדולים, מופעי EC2 G5 הם בחירה טובה יותר בהשוואה למופעי G4dn. למרות שהעלות השעתית לפי דרישה עבור מופעי G5 גבוהה יותר ממופעי G4dn, הביצועים הגבוהים יותר יכולים להשיג פי 2-5 מהתפוקה בכל דיוק עבור דגמי NLP ו-CV, מה שהופך את העלות למיליון מסקנות לטובה פי 1.5-3.5 ממופעי G4dn. אפילו עבור יישומים הקשורים להשהיה, G5 טוב פי 2.5-5 מ-G4dn עבור דגמי NLP ו-CV.
לסיכום, מופעי AWS G5 הם בחירה מצוינת לצרכי ההסקה שלך הן מנקודת מבט של ביצועים והן מבחינת עלות לכל מסקנות. האוניברסליות של מסגרת CUDA וקנה המידה והעומק של מאגר המופעים של G5 ב-AWS מספקים לך יכולת ייחודית לבצע הסקה בקנה מידה.
על המחברים
אנקור סריבסטאבה הוא אדריכל פתרונות Sr. בצוות ML Frameworks. הוא מתמקד בסיוע ללקוחות עם הכשרה מבוזרת בניהול עצמי והסקת מסקנות בקנה מידה על AWS. הניסיון שלו כולל תחזוקה חיזוי תעשייתי, תאומים דיגיטליים, אופטימיזציה של עיצוב הסתברותי והשלים את לימודי הדוקטורט שלו מהנדסת מכונות באוניברסיטת רייס ומחקר פוסט-דוקטורט מהמכון הטכנולוגי של מסצ'וסטס.
סונדאר רנגנתן הוא ראש הפיתוח העסקי, ML Frameworks בצוות Amazon EC2. הוא מתמקד בעומסי עבודה בקנה מידה גדול של ML בשירותי AWS כמו Amazon EKS, Amazon ECS, Elastic Fabric Adapter, AWS Batch ו-Amazon SageMaker. הניסיון שלו כולל תפקידי מנהיגות בניהול מוצר ופיתוח מוצרים ב-NetApp, Micron Technology, Qualcomm ו-Mentor Graphics.
מהדבן באלאסוברמניאם הוא ארכיטקט פתרונות עיקרי למחשוב אוטונומי עם כמעט 20 שנות ניסיון בתחום הלמידה העמוקה המושקעת בפיזיקה, בנייה ופריסה של תאומים דיגיטליים למערכות תעשייתיות בקנה מידה. Mahadevan השיג את הדוקטורט שלו בהנדסת מכונות מהמכון הטכנולוגי של מסצ'וסטס ולזכותו למעלה מ-25 פטנטים ופרסומים.
אמר רגב הוא ארכיטקט פתרונות ראשי עבור פלטפורמות מואצות של EC2 עבור AWS, המוקדש לעזור ללקוחות להפעיל עומסי עבודה חישוביים בקנה מידה. בזמנו הפנוי הוא אוהב לטייל ולמצוא דרכים חדשות לשילוב טכנולוגיה בחיי היומיום.
- מתקדם (300)
- AI
- איי אמנות
- מחולל אמנות ai
- איי רובוט
- אמזון
- בינה מלאכותית
- הסמכת בינה מלאכותית
- בינה מלאכותית בבנקאות
- רובוט בינה מלאכותית
- רובוטים של בינה מלאכותית
- תוכנת בינה מלאכותית
- למידת מכונות AWS
- blockchain
- blockchain conference ai
- קוינגניוס
- בינה מלאכותית של שיחה
- קריפטו כנס ai
- של דאל
- למידה עמוקה
- גוגל איי
- למידת מכונה
- אפלטון
- plato ai
- מודיעין אפלטון
- משחק אפלטון
- אפלטון נתונים
- פלטוגיימינג
- סולם ai
- תחביר
- זפירנט