Amazon SageMaker XGBoost מציעה כעת הדרכת GPU מבוזרת במלואה | שירותי האינטרנט של אמזון

Amazon SageMaker XGBoost מציעה כעת הדרכת GPU מבוזרת במלואה | שירותי האינטרנט של אמזון

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

השמיים אלגוריתם SageMaker XGBoost מאפשר לך להפעיל בקלות אימון והסקת XGBoost ב- SageMaker. XGBoost (eXtreme Gradient Boosting) הוא יישום פופולרי ויעיל בקוד פתוח של אלגוריתם העצים המוגברים בשיפוע. הגברת גרדיאנט היא אלגוריתם למידה מפוקח המנסה לחזות במדויק משתנה יעד על ידי שילוב של מכלול של הערכות מקבוצה של מודלים פשוטים וחלשים יותר. אלגוריתם XGBoost מתפקד היטב בתחרויות ML בגלל הטיפול החזק שלו במגוון סוגי נתונים, קשרים, הפצות ומגוון ההיפרפרמטרים שאתה יכול לכוונן עדין. אתה יכול להשתמש ב-XGBoost עבור רגרסיה, סיווג (בינארי ורב מחלקות) ובעיות דירוג. אתה יכול להשתמש ב-GPUs כדי להאיץ אימון על מערכי נתונים גדולים.

היום, אנו שמחים לבשר זאת SageMaker XGBoost מציע כעת אימון GPU מבוזר במלואו.

החל מגרסה 1.5-1 ומעלה, כעת תוכל להשתמש בכל ה-GPUs בעת שימוש במופעים מרובי-GPU. התכונה החדשה נותנת מענה לצרכים שלך להשתמש באימון GPU מבוזר במלואו בעת התמודדות עם מערכי נתונים גדולים. המשמעות היא יכולת להשתמש במספר ענן מחשוב אלסטי של אמזון (Amazon EC2) מופעים (GPU) ושימוש בכל ה-GPUs לכל מופע.

אימון GPU מבוזר עם מופעי ריבוי GPU

עם SageMaker XGBoost גרסה 1.2-2 ואילך, אתה יכול להשתמש במופע אחד או יותר של GPU יחיד לאימון. ה היפרפרמטר יש להגדיר את tree_method ל-gpu_hist. כאשר משתמשים ביותר ממופע אחד (הגדרה מבוזרת), יש לחלק את הנתונים בין המופעים באופן הבא (זהה לשלבי ההדרכה המבוזרים שאינם ב-GPU המוזכרים ב- אלגוריתם XGBoost). למרות שאופציה זו היא בעלת ביצועים וניתן להשתמש בה בהגדרות הדרכה שונות, היא אינה משתרעת על השימוש בכל ה-GPUs בעת בחירת מופעי ריבוי GPU כגון g5.12xlarge.

עם SageMaker XGBoost גרסה 1.5-1 ומעלה, כעת תוכל להשתמש בכל ה-GPUs בכל מופע בעת שימוש במופעי ריבוי GPU. היכולת להשתמש בכל ה-GPUs במופע רב-GPU מוצעת על ידי שילוב של לוּחַ מַחווָנִים מסגרת.

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

התצורות לשימוש באפשרות זו זהות לאפשרות הקודמת, למעט ההבדלים הבאים:

  • הוסף את החדש היפרפרמטר use_dask_gpu_training עם ערך מחרוזת true.
  • בעת יצירת קלט הדרכה, הגדר את פרמטר ההפצה ל FullyReplicated, בין אם משתמשים במופעים בודדים או מרובים. המסגרת הבסיסית של Dask תבצע את טעינת הנתונים ותפצל את הנתונים בין עובדי Dask. זה שונה מהגדרת הפצת הנתונים עבור כל שאר האימונים המבוזרים עם SageMaker XGBoost.

שים לב שפיצול נתונים לקבצים קטנים יותר עדיין חל על Parquet, כאשר Dask יקרא כל קובץ בתור חלוקה. מכיוון שיהיה לך Dask Worker לכל GPU, מספר הקבצים צריך להיות גדול מספירת המופעים * ספירת GPU לכל מופע. כמו כן, הפיכת כל קובץ לקטן מדי ומספר גדול מאוד של קבצים עלול לפגוע בביצועים. למידע נוסף, ראה הימנע מגרפים גדולים מאוד. עבור CSV, אנו עדיין ממליצים לפצל קבצים גדולים לקטנים יותר כדי להפחית את זמן הורדת הנתונים ולאפשר קריאה מהירה יותר. עם זאת, זו לא דרישה.

נכון לעכשיו, פורמטי הקלט הנתמכים עם אפשרות זו הם:

  • text/csv
  • application/x-parquet

מצב הקלט הבא נתמך:

הקוד ייראה דומה לקוד הבא:

import os
import boto3
import re
import sagemaker
from sagemaker.session import Session
from sagemaker.inputs import TrainingInput
from sagemaker.xgboost.estimator import XGBoost role = sagemaker.get_execution_role()
region = sagemaker.Session().boto_region_name
session = Session() bucket = "<Specify S3 Bucket>"
prefix = "<Specify S3 prefix>" hyperparams = { "objective": "reg:squarederror", "num_round": "500", "verbosity": "3", "tree_method": "gpu_hist", "eval_metric": "rmse", "use_dask_gpu_training": "true"
} output_path = "s3://{}/{}/output".format(bucket, prefix) content_type = "application/x-parquet"
instance_type = "ml.g4dn.2xlarge" xgboost_container = sagemaker.image_uris.retrieve("xgboost", region, "1.5-1")
xgb_script_mode_estimator = sagemaker.estimator.Estimator( image_uri=xgboost_container, hyperparameters=hyperparams, role=role, instance_count=1, instance_type=instance_type, output_path=output_path, max_run=7200, ) test_data_uri = " <specify the S3 uri for training dataset>"
validation_data_uri = “<specify the S3 uri for validation dataset>” train_input = TrainingInput( test_data_uri, content_type=content_type
) validation_input = TrainingInput( validation_data_uri, content_type=content_type
) xgb_script_mode_estimator.fit({"train": train_input, "validation": validation_input})

צילומי המסך הבאים מציגים יומן עבודות אימון מוצלח מהמחברת.

Amazon SageMaker XGBoost מציעה כעת הדרכת GPU מבוזרת במלואה | Amazon Web Services PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.

מבחני ביצועים

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

זמן בר חיוב מתייחס לזמן השעון המוחלט של הקיר. זמן האימון הוא רק זמן האימון XGBoost, הנמדד מה- train() להתקשר עד לשמירה של הדגם שירות אחסון פשוט של אמזון (אמזון S3).

מדדי ביצועים על מערכי נתונים גדולים

השימוש בריבוי GPU מתאים בדרך כלל למערכי נתונים גדולים עם הכשרה מורכבת. יצרנו מערך נתונים דמה עם 2,497,248,278 שורות ו-28 תכונות לבדיקה. מערך הנתונים היה 150 GB והורכב מ-1,419 קבצים. כל קובץ היה בגודל של בין 105-115 מגה-בייט. שמרנו את הנתונים בפורמט פרקט בדלי S3. כדי לדמות אימון מורכב במקצת, השתמשנו במערך הנתונים הזה עבור משימת סיווג בינארי, עם 1,000 סיבובים, כדי להשוות ביצועים בין מסלול האימון של GPU יחיד למסלול האימון מרובה GPU.

הטבלה הבאה מכילה את זמן האימון הניתנים לחיוב והשוואת הביצועים בין מסלול האימון של GPU יחיד למסלול האימון מרובה GPU.

נתיב אימון עם GPU יחיד
סוג מופע ספירת מקרים זמן / מופעים שניתן לחיוב זמני אימון
g4dn.xlarge 20 אזל הזיכרון
g4dn.2xlarge 20 אזל הזיכרון
g4dn.4xlarge 15 1710 1551.9
16 1592 1412.2
17 1542 1352.2
18 1423 1281.2
19 1346 1220.3
נתיב אימון מרובה GPU (עם Dask)
סוג מופע ספירת מקרים זמן / מופעים שניתן לחיוב זמני אימון
g4dn.12xlarge 7 אזל הזיכרון
8 1143 784.7
9 1039 710.73
10 978 676.7
12 940 614.35

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

עליך להשתמש במופע EC2 שיש לו מספיק כוח מחשוב כדי למנוע שגיאות חסר זיכרון בעת ​​התמודדות עם מערכי נתונים גדולים.

אפשר לצמצם עוד יותר את הזמן הכולל עם ההגדרה של GPU יחיד על ידי שימוש במופעים רבים יותר או במופעים חזקים יותר. עם זאת, מבחינת עלות, זה עשוי להיות יקר יותר. לדוגמה, הטבלה הבאה מציגה את השוואת זמן האימון והעלות עם מופע יחיד של GPU g4dn.8xlarge.

נתיב אימון עם GPU יחיד
סוג מופע ספירת מקרים זמן / מופעים שניתן לחיוב עלות ($)
g4dn.8xlarge 15 1679 15.22
17 1509 15.51
19 1326 15.22
נתיב אימון מרובה GPU (עם Dask)
סוג מופע ספירת מקרים זמן / מופעים שניתן לחיוב עלות ($)
g4dn.12xlarge 8 1143 9.93
10 978 10.63
12 940 12.26

חישוב העלות מבוסס על המחיר לפי דרישה עבור כל מופע. למידע נוסף, עיין ב מופעי אמזון EC2 G4.

מדדי איכות הדגם

לאיכות הדגם, השווינו מדדי הערכה בין אפשרות ה-Dask GPU לאפשרות ה-GPU הבודדת, והרצנו הדרכה על סוגי מופעים וספירות מופעים שונים. עבור משימות שונות, השתמשנו במערך נתונים והיפרפרמטרים שונים, כאשר כל מערך נתונים מפוצל לקבוצות אימון, אימות ובדיקות.

עבור סיווג בינארי (binary:logistic) המשימה, השתמשנו ב- HIGGS מערך נתונים בפורמט CSV. לפיצול ההדרכה של מערך הנתונים יש 9,348,181 שורות ו-28 תכונות. מספר הסיבובים בשימוש היה 1,000. הטבלה הבאה מסכמת את התוצאות.

אימון רב-GPU עם Dask
סוג מופע מספר GPUs / מופע ספירת מקרים זמן / מופעים שניתן לחיוב דיוק % F1 % ROC AUC %
g4dn.2xlarge 1 1 343 75.97 77.61 84.34
g4dn.4xlarge 1 1 413 76.16 77.75 84.51
g4dn.8xlarge 1 1 413 76.16 77.75 84.51
g4dn.12xlarge 4 1 157 76.16 77.74 84.52

עבור רגרסיה (reg:squarederror), השתמשנו ב- מונית ירוקה של ניו יורק מערך נתונים (עם כמה שינויים) בפורמט פרקט. לפיצול ההדרכה של מערך הנתונים יש 72,921,051 שורות ו-8 תכונות. מספר הסיבובים בשימוש היה 500. הטבלה הבאה מציגה את התוצאות.

אימון רב-GPU עם Dask
סוג מופע מספר GPUs / מופע ספירת מקרים זמן / מופעים שניתן לחיוב MSE R2 מיי
g4dn.2xlarge 1 1 775 21.92 0.7787 2.43
g4dn.4xlarge 1 1 770 21.92 0.7787 2.43
g4dn.8xlarge 1 1 705 21.92 0.7787 2.43
g4dn.12xlarge 4 1 253 21.93 0.7787 2.44

מדדי איכות הדגם דומים בין אפשרות האימון מרובה GPU (Dask) לבין אפשרות ההדרכה הקיימת. איכות הדגם נשארת עקבית בעת שימוש בהגדרה מבוזרת עם מספר מופעים או GPUs.

סיכום

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

למידע נוסף על SageMaker והדרכה מבוזרת באמצעות Dask, בדוק LightGBM המובנית של Amazon SageMaker מציעה כעת הדרכה מבוזרת באמצעות Dask


על הכותבים

Amazon SageMaker XGBoost מציעה כעת הדרכת GPU מבוזרת במלואה | Amazon Web Services PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.Dhirj Thakur הוא אדריכל פתרונות עם שירותי האינטרנט של אמזון. הוא עובד עם לקוחות AWS ושותפים בכדי לספק הנחיות בנושא אימוץ ענן ארגוני, הגירה ואסטרטגיה. הוא נלהב מהטכנולוגיה ונהנה לבנות ולהתנסות בתחום הניתוח וה- AI / ML.

Amazon SageMaker XGBoost מציעה כעת הדרכת GPU מבוזרת במלואה | Amazon Web Services PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.דיואן צ'ודהורי הוא מהנדס פיתוח תוכנה עם שירותי האינטרנט של אמזון. הוא עובד על האלגוריתמים של אמזון SageMaker ועל הצעות JumpStart. מלבד בניית תשתיות AI/ML, הוא גם נלהב מבניית מערכות מבוזרות ניתנות להרחבה.

שין הואנגד"ר שין הואנג הוא מדען יישומי עבור אלגוריתמים מובנים של Amazon SageMaker JumpStart ו-Amazon SageMaker. הוא מתמקד בפיתוח אלגוריתמים של למידת מכונה ניתנים להרחבה. תחומי העניין שלו במחקר הם בתחום של עיבוד שפה טבעית, למידה עמוקה הניתנת להסבר על נתונים טבלאיים וניתוח חזק של צבירת מרחב-זמן לא פרמטרית. הוא פרסם מאמרים רבים בכנסים ACL, ICDM, KDD ובכתב העת Royal Statistical Society: Series A.

Amazon SageMaker XGBoost מציעה כעת הדרכת GPU מבוזרת במלואה | Amazon Web Services PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.טוני קרוז

בול זמן:

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