מקסם את הביצועים והפחת את עלות האימון ללמידה עמוקה עם AWS Trainium ו-Amazon SageMaker

מקסם את הביצועים והפחת את עלות האימון ללמידה עמוקה עם AWS Trainium ו-Amazon SageMaker

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

SageMaker הוא שירות ML מנוהל במלואו המסייע למפתחים ומדעני נתונים לבנות, לאמן ולפרוס בקלות מודלים של ML. SageMaker כבר מספקת את הבחירה הרחבה והעמוקה ביותר של היצע מחשוב הכולל מאיצי חומרה לאימון ML, כולל G5 (Nvidia A10G) מקרים ו P4d (Nvidia A100) מקרים.

דרישות המחשוב הגדלות דורשות כוח עיבוד מהיר וחסכוני יותר. כדי לצמצם עוד יותר את זמני ההכשרה של המודל ולאפשר למתרגלי ML לבצע פעולות חוזרות מהר יותר, AWS חידשה בין שבבים, שרתים וקישוריות למרכזי נתונים. המופעים החדשים של Trn1 מופעלים על ידי AWS Trainium שבבים מציעים את ביצועי המחיר הטובים ביותר ואת ההכשרה המהירה ביותר של מודל ML ב-AWS, ומספקים עד 50% עלות נמוכה יותר לאימון מודלים של למידה עמוקה על פני מופעים מבוססי GPU דומים ללא כל ירידה ברמת הדיוק.

בפוסט זה, אנו מראים כיצד תוכל למקסם את הביצועים שלך ולהפחית עלויות באמצעות מופעי Trn1 עם SageMaker.

סקירת פתרונות

משרות הדרכה של SageMaker תומכות במופעי ml.trn1, המופעלים על ידי שבבי Trainium, שנבנו ייעודיים עבור יישומי אימון ML בעלי ביצועים גבוהים בענן. אתה יכול להשתמש במופעי ml.trn1 ב- SageMaker כדי לאמן עיבוד שפה טבעית (NLP), ראייה ממוחשבת ומודלים ממליצים על פני מערך רחב של יישומים, כגון זיהוי דיבור, המלצה, זיהוי הונאה, סיווג תמונות ווידאו וחיזוי. מופעי ml.trn1 כוללים עד 16 שבבי Trainium, שהוא שבב ML דור שני שנבנה על ידי AWS לאחר Afer Inferentia. מופעי ml.trn1 הם הראשונים ענן מחשוב אלסטי של אמזון (Amazon EC2) מופעים עם רוחב פס של עד 800 Gbps של מתאם בד אלסטי (EFA). לצורך מקביליות יעילה לנתונים ולמודלים, לכל מופע ml.trn1.32xl יש 512 GB של זיכרון ברוחב פס גבוה, מספק עד 3.4 petaflops של כוח מחשוב FP16/BF16, וכולל NeuronLink, חיבור בין מופעי, ברוחב פס גבוה, לא חוסם .

Trainium זמין בשתי תצורות וניתן להשתמש בו באזורי ארה"ב מזרח (נ' וירג'יניה) ומערב ארה"ב (אורגון).

הטבלה הבאה מסכמת את התכונות של מופעי Trn1.

גודל מופע טרייניום
מאיצים
מאיץ
זכרון
(GB)
מעבדי vCPU מופע
זכרון
(GiB)
רשת
רוחב פס
(Gbps)
EFA ו
RDMA
תמיכה
trn1.2xlarge 1 32 8 32 עד 12.5 לא
trn1.32xlarge 16 512 128 512 800 יש
trn1n.32xlarge (בקרוב) 16 512 128 512 1600 יש

בואו נבין כיצד להשתמש ב-Trainium עם SageMaker עם דוגמה פשוטה. נאמן מודל סיווג טקסט עם אימון SageMaker ו-PyTorch באמצעות ספריית ה-Huging Face Transformers.

אנו משתמשים במערך הנתונים של Amazon Reviews, המורכב מסקירות מ-amazon.com. הנתונים משתרעים על פני תקופה של 18 שנים, וכוללים כ-35 מיליון ביקורות עד מרץ 2013. הביקורות כוללות מידע על מוצר ומשתמש, דירוגים וסקירת טקסט רגיל. הקוד הבא הוא דוגמה מתוך AmazonPolarity סט מבחן:

{
title':'Great CD', 'content':"My lovely Pat has one of the GREAT voices of her generation. I have listened to this CD for YEARS and I still LOVE IT. When I'm in a good mood it makes me feel better. A bad mood just evaporates like sugar in the rain. This CD just oozes LIFE. Vocals are jusat STUUNNING and lyrics just kill. One of life's hidden gems. This is a desert isle CD in my book. Why she never made it big is just beyond me. Everytime I play this, no matter black, white, young, old, male, female EVERYBODY says one thing ""Who was that singing ?""", 'label':1
}

עבור פוסט זה, אנו משתמשים רק בשדות התוכן והתווית. שדה התוכן הוא סקירת טקסט חופשי, ושדה התווית הוא ערך בינארי המכיל 1 או 0 עבור ביקורות חיוביות או שליליות, בהתאמה.

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

פרטי היישום

נתחיל בהסתכלות מקרוב על המרכיבים השונים המעורבים באימון המודל:

  • AWS Trainium – בבסיסו, כל אחד דוגמה של טריניום יש בו מכשירי Trainium מובנים. ל-Trn1.2xlarge יש מכשיר Trainium אחד, ול-Trn1xlarge יש 1.32 מכשירי Trainium. כל מכשיר Trainium מורכב ממחשוב (16 NeuronCore-v2), 2 GB של זיכרון מכשיר HBM ו- NeuronLink לתקשורת מהירה בין מכשירים. כל אחד NeuronCore-v2 מורכב מיחידת מחשוב הטרוגנית עצמאית לחלוטין עם מנועים נפרדים (טנזור/וקטור/סקלר/GPSIMD). GPSIMD הם מעבדים למטרות כלליות הניתנות לתכנות באופן מלא שבהם אתה יכול להשתמש כדי ליישם אופרטורים מותאמים אישית ולהפעיל אותם ישירות על מנועי NeuronCore.
  • אימון אמזון SageMaker – SageMaker מספק חווית אימון מנוהלת במלואה כדי לאמן בקלות דגמים מבלי לדאוג לתשתית. כאשר אתה משתמש ב- SageMaker Training, הוא מריץ את כל הדרוש לעבודת הדרכה, כגון קוד, קונטיינר ונתונים, בתשתית מחשוב נפרדת מסביבת ה-invocation. זה מאפשר לנו להריץ ניסויים במקביל ולחזור מהר. SageMaker מספקת א פיתון SDK להשיק עבודות הדרכה. הדוגמה בפוסט זה משתמשת ב- SageMaker Python SDK כדי להפעיל את עבודת ההדרכה באמצעות Trainium.
  • AWS נוירון - מכיוון של-Trainium NeuronCore יש מנוע מחשוב משלה, אנו זקוקים למנגנון כדי להרכיב את קוד האימון שלנו. ה AWS נוירון המהדר לוקח את הקוד שנכתב ב- Pytorch/XLA וממטב אותו להפעלה על מכשירי Neuron. מהדר Neuron משולב כחלק מ-Deep Learning Container בו נשתמש להכשרת המודל שלנו.
  • PyTorch/XLA זה - חבילת פייתון משתמש במהדר הלמידה העמוקה XLA כדי לחבר את מסגרת הלמידה העמוקה של PyTorch ומאיצי ענן כמו Trainium. בניית רשת PyTorch חדשה או המרת רשת קיימת להפעלה במכשירי XLA דורשות רק כמה שורות של קוד ספציפי ל-XLA. אנו נראה למקרה השימוש שלנו אילו שינויים עלינו לבצע.
  • אימונים מבוזרים - כדי להפעיל את האימון ביעילות על מספר NeuronCores, אנו זקוקים למנגנון להפצת האימון לתוך NeuronCores זמינים. SageMaker תומך ב-torchrun עם מופעי Trainium, שניתן להשתמש בהם להפעלת תהליכים מרובים השווים למספר NeuronCores באשכול. זה נעשה על ידי העברת פרמטר ההפצה לאומדן SageMaker באופן הבא, שמתחיל אימון מבוזר מקביל של נתונים שבו אותו מודל נטען לתוך NeuronCores שונים המעבדים קבוצות נתונים נפרדות:
distribution={"torch_distributed": {"enabled": True}}

נדרשים שינויים בסקריפט כדי לרוץ ב-Trainium

בואו נסתכל על שינויי הקוד הדרושים כדי לאמץ סקריפט PyTorch רגיל מבוסס GPU להפעלה ב-Trainium. ברמה גבוהה, עלינו לבצע את השינויים הבאים:

  1. החלף התקני GPU בהתקני Pytorch/XLA. מכיוון שאנו משתמשים בחלוקת לפיד, עלינו לאתחל את האימון עם XLA כמכשיר באופן הבא:
    device = "xla"
    torch.distributed.init_process_group(device)

  2. אנו משתמשים בקצה האחורי המבוזר PyTorch/XLA כדי לגשר בין ה-APIs המבוזרים של PyTorch לסמנטיקה של תקשורת XLA.
  3. אנו משתמשים ב- PyTorch/XLA MpDeviceLoader עבור צינורות קליטת הנתונים. MpDeviceLoader עוזר לשפר את הביצועים על ידי חפיפה של שלושה שלבים: מעקב, קומפילציה וטעינת אצווה נתונים למכשיר. עלינו לעטוף את טוען הנתונים של PyTorch עם MpDeviceDataLoader באופן הבא:
    train_device_loader = pl.MpDeviceLoader(train_loader, "xla")

  4. הפעל את שלב האופטימיזציה באמצעות ה-API שסופק על ידי XLA כפי שמוצג בקוד הבא. זה מגבש את ההדרגות בין הליבות ומנפיק את חישוב הצעדים של התקן XLA.
    torch_xla.core.xla_model.optimizer_step(optimizer)

  5. מפה ממשקי API של CUDA (אם יש) לממשקי API גנריים של PyTorch.
  6. החלף את מיטובי האופטימיזציה של CUDA (אם יש) בחלופות PyTorch גנריות.

הדוגמה כולה, המאמנת מודל סיווג טקסט באמצעות SageMaker ו-Trainium, זמינה בהמשך GitHub ריפו. קובץ המחברת כוונון עדין של רובוטריקים לבניית דגמי סיווג באמצעות SageMaker ו-Trainium.ipynb הוא נקודת הכניסה ומכיל הוראות שלב אחר שלב להפעלת האימון.

בדיקות בנצ'מרק

במבחן, הרצנו שתי עבודות הדרכה: אחת ב-ml.trn1.32xlarge ואחת ב-ml.p4d.24xlarge עם אותו גודל אצווה, נתוני אימון ופרמטרים נוספים. במהלך עבודות ההדרכה, מדדנו את זמן החיוב של עבודות ההדרכה של SageMaker, וחישבנו את המחיר-ביצועים על ידי הכפלת הזמן הנדרש להפעלת עבודות הדרכה בשעות במחיר לשעה עבור סוג המופע. בחרנו את התוצאה הטובה ביותר עבור כל סוג מופע מתוך ריצות משימות מרובות.

הטבלה הבאה מסכמת את ממצאי המדד שלנו.

מספר סימוכין סוג מופע מחיר (לצומת * שעה) תפוקה (איטרציות/שנייה) דיוק אימות זמן לחיוב (שנייה) עלות הדרכה ב$
סיווג בסיס BERT ml.trn1.32xlarge 24.725 6.64 0.984 6033 41.47
סיווג בסיס BERT ml.p4d.24xlarge 37.69 5.44 0.984 6553 68.6

התוצאות הראו שמופע ה-Trainium עולה פחות ממופע ה-P4d, ומספק תפוקה ודיוק דומים בעת אימון אותו מודל עם אותם נתוני קלט ופרמטרים של אימון. המשמעות היא שמופע ה-Trainium מספק ביצועי מחיר טובים יותר מאשר מופעי P4D מבוססי GPU. עם דוגמה פשוטה כמו זו, אנו יכולים לראות ש-Trainium מציע זמן אימון מהיר יותר ב-22% ובעלות נמוכה יותר של עד 50% בהשוואה למופעי P4d.

פרוס את המודל המאומן

לאחר שנאמן את המודל, נוכל לפרוס אותו לסוגי מופע שונים כגון CPU, GPU או AWS Inferentia. נקודת המפתח שיש לציין היא שהדגם המאומן אינו תלוי בחומרה מיוחדת כדי לפרוס ולהסיק מסקנות. SageMaker מספקת מנגנונים לפריסת מודל מאומן תוך שימוש במנגנוני זמן אמת או אצווה. דוגמה למחברת ב-Repo GitHub מכילה קוד לפריסת המודל המאומן כנקודת קצה בזמן אמת באמצעות מופע ml.c5.xlarge (מבוסס מעבד).

סיכום

בפוסט זה, בדקנו כיצד להשתמש ב-Trainium ו- SageMaker כדי להגדיר ולהכשיר במהירות מודל סיווג שנותן עד 50% חיסכון בעלויות מבלי להתפשר על הדיוק. אתה יכול להשתמש ב-Trainium עבור מגוון רחב של מקרי שימוש הכוללים אימון מקדים או כוונון עדין של דגמים מבוססי שנאי. למידע נוסף על תמיכה בארכיטקטורות מודלים שונות, עיין ב הנחיות התאמה לאדריכלות מודל.


על הכותבים

מקסם את הביצועים והפחת את עלות האימון ללמידה עמוקה שלך עם AWS Trainium ו-Amazon SageMaker PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.ארון קומאר לוקנת'ה הוא אדריכל בכיר ML Solutions בצוות Amazon SageMaker Service. הוא מתמקד בסיוע ללקוחות לבנות, להכשיר ולהעביר עומסי עבודה של ייצור ML ל-SageMaker בקנה מידה. הוא מתמחה בלמידה עמוקה במיוחד בתחום ה-NLP ו-CV. מחוץ לעבודה, הוא נהנה לרוץ ולטייל.

מקסם את הביצועים והפחת את עלות האימון ללמידה עמוקה שלך עם AWS Trainium ו-Amazon SageMaker PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.מארק יו הוא מהנדס תוכנה ב-AWS SageMaker. הוא מתמקד בבניית מערכות אימון מבוזרות בקנה מידה גדול, אופטימיזציה של ביצועי האימון ופיתוח חומרות אימון ml בעלות ביצועים גבוהים, כולל SageMaker trainium. למארק יש גם ידע מעמיק באופטימיזציה של תשתית למידת מכונה. בזמנו הפנוי הוא נהנה מטיולים וריצה.

מקסם את הביצועים והפחת את עלות האימון ללמידה עמוקה שלך עם AWS Trainium ו-Amazon SageMaker PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.עומרי פוקס הוא מנהל פיתוח תוכנה ב-AWS SageMaker. הוא המנהיג הטכני האחראי על פלטפורמת העבודה לאימון SageMaker, תוך התמקדות באופטימיזציה של ביצועי האימון של SageMaker ושיפור חווית האימון. יש לו תשוקה לטכנולוגיית ML ו-AI מתקדמים. בזמנו הפנוי הוא אוהב רכיבה על אופניים וטיולים.

מקסם את הביצועים והפחת את עלות האימון ללמידה עמוקה שלך עם AWS Trainium ו-Amazon SageMaker PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.גל אושרי הוא מנהל מוצר בכיר בצוות אמזון SageMaker. יש לו ניסיון של 7 שנים בעבודה על כלים, מסגרות ושירותים של Machine Learning.

בול זמן:

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