ByteDance חוסך עד 60% בעלויות מסקנות תוך הפחתת זמן ההשהיה והגדלת התפוקה באמצעות AWS Inferentia PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.

ByteDance חוסך עד 60% בעלויות מסקנות תוך הפחתת זמן השהייה והגדלת התפוקה באמצעות AWS Inferentia

זהו פוסט אורח בבלוג שנכתב יחד עם Minghui Yu ו-Jianzhe Xiao מ-Bytedance.

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

צוות ByteDance AML (Applied Machine Learning) מספק מערכות ML בעלות ביצועים גבוהים, אמינים וניתנים להרחבה ושירותי ML מקצה לקצה עבור עסקי החברה. חקרנו דרכים לייעל את מערכות הסקת ה-ML שלנו כדי להפחית עלויות, מבלי להגדיל את זמני התגובה. כאשר AWS הושק Afer Inferentia, שבב מסקנות ML בעל ביצועים גבוהים שנבנה על ידי AWS, התקשרנו עם צוות חשבונות AWS שלנו כדי לבדוק אם AWS Inferentia יכולה לתת מענה למטרות האופטימיזציה שלנו. הרצנו מספר הוכחות לרעיון, והביאו לעלות הסקת מסקנות נמוכה ב-60% בהשוואה למופעי EC4 G2dn מבוססי T4 GPU וזמן השהייה נמוך של עד 25%. כדי לממש את החיסכון בעלויות ושיפורי הביצועים הללו, החלטנו לפרוס מודלים על מבוססי AWS Inferentia ענן מחשוב אלסטי של אמזון (Amazon EC2) מופעי Inf1 בייצור.

התרשים הבא מציג את שיפור ההשהיה עבור אחד מדגמי זיהוי הפנים שלנו שנפרסו בעבר על מעבדי GPU עם Tensor RT. ההשהיה הממוצעת ירדה ב-20% (מ-50 מילישניות ל-40 מילישניות), וזמן ההשהיה של p99 ירד ב-25% (מ-200 מילישניות ל-150 מילישניות).

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

בחיפוש אחר מחשוב חסכוני עם ביצועים גבוהים

צוות ByteDance AML מתמקד במחקר והטמעה של מערכות ML חדשניות ובמשאבי המחשוב ההטרוגניים שהם דורשים. אנו יוצרים מערכות הדרכה והסקת מסקנות בקנה מידה גדול עבור מגוון רחב של מודלים ממליצים, עיבוד שפה טבעית (NLP) וראייה ממוחשבת (CV). מודלים אלו מורכבים ביותר ומעבדים כמות עצומה של נתונים מפלטפורמות התוכן הרבות ש-ByteDance מפעילה. פריסת מודלים אלה דורשת משאבי GPU משמעותיים, בין אם בענן ובין אם במקום. לכן, עלויות החישוב עבור מערכות הסקת מסקנות אלו הן די גבוהות.

חיפשנו להוזיל עלויות אלה מבלי להשפיע על התפוקה או האחזור. רצינו את הגמישות של הענן ומחזור האספקה ​​המהיר יותר, שהוא הרבה יותר קצר מזה הדרוש להגדרה מקומית. ולמרות שהיינו פתוחים לבחון אפשרויות חדשות עבור ML מואץ, רצינו גם חווית מפתח חלקה.

למדנו מצוות AWS שלנו שמופעי EC2 Inf1 מבוססי AWS Inferentia מספקים הסקת ML בעלת ביצועים גבוהים בעלות הנמוכה ביותר להסקה בענן. היינו סקרנים לחקור אותם ומצאנו שהם מתאימים היטב למקרה השימוש שלנו, מכיוון שאנו מפעילים למידת מכונה משמעותית על כמויות גדולות של נתוני תמונה, אובייקט, דיבור וטקסט. הם בהחלט התאימו היטב למטרות שלנו, כי יכולנו להשיג חיסכון עצום בעלויות בהתחשב במורכבות המודלים שלנו ובנפח התחזיות היומיות. יתר על כן, AWS Inferentia כולל כמות גדולה של זיכרון על-שבב, שבו אתה יכול להשתמש לאחסון דגמים גדולים במקום לאחסן אותם מחוץ לשבב. זיהינו שלזה יכולה להיות השפעה משמעותית בהפחתת זמן ההסקה מכיוון שלליבות העיבוד של AWS Inferentia, הנקראות NeuronCores, יש גישה מהירה לדגמים המאוחסנים בזיכרון שבשבב ואינם מוגבלים על ידי הזיכרון מחוץ לשבב. רוחב פס.

בסופו של דבר, לאחר הערכת מספר אפשרויות, בחרנו במופעי EC2 Inf1 בגלל יחס הביצועים/מחיר הטובים יותר שלהם בהשוואה למופעי G4dn ו-NVIDIA T4 במקום. עסקנו במחזור של איטרציה מתמשכת עם צוות AWS כדי לפתוח את יתרונות המחיר והביצועים של Inf1.

פריסת עומסי עבודה של מסקנות ב-AWS Inferentia

תחילת העבודה עם AWS Inferentia באמצעות AWS Neuron SDK כללה שני שלבים: קומפילציה של קוד מודל ופריסה במופעי Inf1. כמקובל בעת העברת דגמי ML לכל תשתית חדשה, היו כמה אתגרים שעמדנו בפנינו. הצלחנו להתגבר על האתגרים הללו עם חריצות ותמיכה מצוות AWS שלנו. בסעיפים הבאים, אנו חולקים מספר עצות שימושיות ותצפיות המבוססות על הניסיון שלנו בפריסת עומסי עבודה מסקנות ב-AWS Inferentia.

דגם קונפורמר ל-OCR

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

  • אופטימיזציות מהדר - כברירת מחדל, Inferentia מתפקד בצורה הטובה ביותר בקלט עם אורך רצף קבוע, מה שהציב אתגר מכיוון שאורך הנתונים הטקסטואליים אינו קבוע. כדי להתגבר על זה, חילקנו את המודל שלנו לשני חלקים: מקודד ומפענח. ריכזנו את שני תת המודלים הללו בנפרד ואז מיזגנו אותם למודל אחד באמצעות TorchScript. על ידי הפעלת זרימת הבקרה for loop במעבדים, גישה זו אפשרה תמיכה באורכי רצף משתנים ב-Inferentia.
  • ביצועי פיתול לעומק – נתקלנו בצוואר בקבוק DMA בפעולת הפיתול לעומק, שנמצא בשימוש רב במודל הקונפורמר שלנו. עבדנו בשיתוף פעולה הדוק עם צוות AWS Neuron כדי לזהות ולפתור את צוואר הבקבוק בביצועי גישת ה-DMA, אשר שיפר את הביצועים של פעולה זו ושיפר את הביצועים הכוללים של מודל ה-OCR שלנו.

ByteDance חוסך עד 60% בעלויות מסקנות תוך הפחתת זמן ההשהיה והגדלת התפוקה באמצעות AWS Inferentia PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.

יצרנו שתי גרסאות מודל חדשות כדי לייעל את הפריסה שלנו ב-Inferentia:

  • מקודד/מפענח משולב ומגולל – במקום להשתמש במקודד ובמפענח שהורכבו באופן עצמאי, שילבנו את המקודד ומפענח מגולגל במלואו לדגם אחד והרכבנו את המודל הזה כ-NEFF יחיד. פתיחת המפענח מאפשרת להפעיל את כל זרימת הבקרה של המפענח ב-Inferentia מבלי להשתמש בפעולות CPU. בגישה זו, כל איטרציה של המפענח משתמשת בדיוק בכמות החישוב הדרושה לאותו אסימון. גישה זו משפרת את הביצועים מכיוון שאנו מפחיתים באופן משמעותי את עודף החישוב שהוצג בעבר על ידי כניסות ריפוד. יתר על כן, אין צורך בהעברת נתונים מ-Inferentia ל-CPU בין איטרציות של מפענח, מה שמפחית באופן דרסטי את זמן ה-I/O. גרסה זו של הדגם אינה תומכת בעצירה מוקדמת.
  • מפענח מגולגל מחולק – בדומה למודל המשולב במלואו, גרסה זו של המודל מגוללת מספר איטרציות של המפענח ומרכיבה אותן כביצוע יחיד (אך אינו כולל את המקודד). לדוגמה, עבור אורך רצף מקסימלי של 75, נוכל לפרוש את המפענח ל-3 מחיצות שמחשבות אסימונים 1-25, 26-50 ו-51-75. מבחינת קלט/פלט, זה גם מהיר יותר באופן משמעותי מכיוון שאנחנו לא צריכים להעביר את פלט המקודד פעם אחת בכל איטרציה. במקום זאת, היציאות מועברות רק פעם אחת לכל מחיצת מפענח. גרסה זו של הדגם אמנם תומכת בעצירה מוקדמת, אך רק בגבולות המחיצה. ניתן לכוונן את גבולות המחיצה עבור כל יישום ספציפי כדי להבטיח שרוב הבקשות יבצעו רק מחיצה אחת.

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

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

דגם ResNet50 לסיווג תמונה

ResNet-50 הוא מודל למידה עמוקה שהוכשר מראש לסיווג תמונות. זוהי רשת עצבית Convolutional Neural (CNN או ConvNet) המיושמת לרוב לניתוח תמונות חזותיות. השתמשנו בטכניקות הבאות כדי לשפר את הביצועים של מודל זה ב-Inferentia:

  • שינוי מודל – רבים מהדגמים של ByteDance מיוצאים בפורמט ONNX, שבו Inferentia לא תומך כרגע באופן טבעי. כדי לטפל בדגמי ONNX אלה, צוות AWS Neuron סיפק סקריפטים להפיכת המודלים שלנו מפורמט ONNX למודלים של PyTorch, אותם ניתן להרכיב ישירות עבור Inferentia באמצעות לפיד-נוירון.
  • אופטימיזציה של ביצועים - עבדנו בשיתוף פעולה הדוק עם AWS נוירון צוות לכוון את היוריסטית התזמון במהדר כדי לייעל את הביצועים של דגמי ה-ResNet-50 שלנו.

מודל רב-מודאלי למתן תוכן

מודל הלמידה העמוקה הרב-מודאלית שלנו הוא שילוב של מספר מודלים נפרדים. גודלו של דגם זה גדול יחסית, מה שגרם לכשלי טעינת דגם ב-Inferentia. צוות AWS Neuron פתר בהצלחה בעיה זו על ידי שימוש בשיתוף משקל כדי להפחית את השימוש בזיכרון המכשיר. צוות Neuron פרסם את תכונת ביטול הכפילות המשקל הזו בספריית Neuron libnrt וגם שיפר את Neuron Tools עבור מדדים מדויקים יותר. ניתן להפעיל את תכונת ביטול הכפילות של משקל זמן ריצה על ידי הגדרת משתנה הסביבה הבא לפני הרצת מסקנות:

NEURON_RT_MULTI_INSTANCE_SHARED_WEIGHTS=1

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

העברת דגמים נוספים ל-AWS Inferentia

ב-ByteDance, אנו ממשיכים לפרוס מודלים חדשניים של למידה עמוקה כדי לספק חוויות משתמש מענגות לכמעט 2 מיליארד משתמשים פעילים חודשיים. בהתחשב בקנה המידה העצום שבו אנו פועלים, אנו מחפשים כל הזמן דרכים לחסוך בעלויות ולמטב את הביצועים. אנו נמשיך להעביר מודלים ל-AWS Inferentia כדי להפיק תועלת מהביצועים הגבוהים והעלות היעילות שלו. אנחנו גם רוצים ש-AWS תשיק יותר סוגי מופעים מבוססי-אינפרנציה של AWS, כמו כאלה עם יותר מעבדי vCPU עבור משימות עיבוד מקדים. בהמשך, ByteDance מקווה לראות יותר חדשנות סיליקון מ-AWS כדי לספק את ביצועי המחיר הטובים ביותר עבור יישומי ML.

אם אתה מעוניין ללמוד עוד על האופן שבו AWS Inferentia יכולה לעזור לך לחסוך בעלויות תוך אופטימיזציה של ביצועים עבור יישומי ההסקה שלך, בקר ב- מקרים של אמזון EC2 Inf1 דף מוצר.


על הכותבים

ByteDance חוסך עד 60% בעלויות מסקנות תוך הפחתת זמן ההשהיה והגדלת התפוקה באמצעות AWS Inferentia PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.מינגהוי יו הוא ראש צוות בכיר למידת מכונה להסקת מסקנות ב- ByteDance. תחום המיקוד שלו הוא האצת מחשוב בינה מלאכותית ומערכת למידת מכונה. הוא מתעניין מאוד במחשוב הטרוגני ובארכיטקטורת מחשבים בעידן שלאחר מור. בזמנו הפנוי הוא אוהב כדורסל וחץ וקשת.

ByteDance חוסך עד 60% בעלויות מסקנות תוך הפחתת זמן ההשהיה והגדלת התפוקה באמצעות AWS Inferentia PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.Jianzhe Xiao הוא ראש צוות מהנדס תוכנה בכיר בצוות AML ב- ByteDance. עבודתו הנוכחית מתמקדת בסיוע לצוות העסקי להאיץ את תהליך פריסת המודל ולשפר את ביצועי ההסקות של המודל. מחוץ לעבודה, הוא נהנה לנגן בפסנתר.

ByteDance חוסך עד 60% בעלויות מסקנות תוך הפחתת זמן ההשהיה והגדלת התפוקה באמצעות AWS Inferentia PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.טיאן שי הוא אדריכל פתרונות בכיר ב-AWS. תחום המיקוד שלו הוא ניתוח נתונים, למידת מכונה וללא שרתים. הוא נלהב לעזור ללקוחות לעצב ולבנות פתרונות אמינים וניתנים להרחבה בענן. בזמנו הפנוי הוא אוהב לשחות ולקרוא.

ByteDance חוסך עד 60% בעלויות מסקנות תוך הפחתת זמן ההשהיה והגדלת התפוקה באמצעות AWS Inferentia PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.ג'יה דונג הוא מנהל פתרונות לקוחות ב-AWS. היא נהנית ללמוד על שירותי AI/ML של AWS ולעזור ללקוחות לעמוד בתוצאות העסקיות שלהם על ידי בניית פתרונות עבורם. מחוץ לעבודה, ג'יה נהנית מנסיעות, יוגה וסרטים.

ByteDance חוסך עד 60% בעלויות מסקנות תוך הפחתת זמן ההשהיה והגדלת התפוקה באמצעות AWS Inferentia PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.ג'ונתן לאנט הוא מהנדס תוכנה באמזון עם התמקדות בפיתוח מסגרות ML. במהלך הקריירה שלו הוא עבד בכל רחבי התפקידים במדעי הנתונים, כולל פיתוח מודלים, פריסת תשתית ואופטימיזציה ספציפית לחומרה.

ByteDance חוסך עד 60% בעלויות מסקנות תוך הפחתת זמן ההשהיה והגדלת התפוקה באמצעות AWS Inferentia PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.יהושע חנן הוא מהנדס למידת מכונה באמזון. הוא עובד על ייעול מודלים של למידה עמוקה עבור יישומי ראייה ממוחשבת ועיבוד שפה טבעית בקנה מידה גדול.

ByteDance חוסך עד 60% בעלויות מסקנות תוך הפחתת זמן ההשהיה והגדלת התפוקה באמצעות AWS Inferentia PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.שרוטי קופרקאר הוא מנהל שיווק מוצר בכיר ב-AWS. היא עוזרת ללקוחות לחקור, להעריך ולאמץ תשתית מחשוב מואצת של EC2 לצרכי למידת המכונה שלהם.

בול זמן:

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