הפעל כוונון דגמים אוטומטי עם Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.

הפעל כוונון דגמים אוטומטי עם Amazon SageMaker JumpStart

בדצמבר 2020, AWS הודיע הזמינות הכללית של אמזון SageMaker JumpStart, יכולת של אמזון SageMaker שעוזר לך להתחיל במהירות ובקלות עם למידת מכונה (ML). במרץ 2022, גם אנחנו הודיע התמיכה בממשקי API ב-JumpStart. JumpStart מספקת כוונון עדין ופריסה בלחיצה אחת של מגוון רחב של מודלים מאומנים מראש על פני משימות ML פופולריות, כמו גם מבחר פתרונות מקצה לקצה הפותרים בעיות עסקיות נפוצות. תכונות אלו מסירות את ההרמה הכבדה מכל שלב בתהליך ה-ML, מה שמקל על פיתוח מודלים באיכות גבוהה ומצמצם את זמן הפריסה.

בפוסט זה, אנו מדגימים כיצד להפעיל כוונון דגמים אוטומטי עם JumpStart.

כוונון הדגם האוטומטי של SageMaker

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

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

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

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

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

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

המשימות דגמים מאומנים מראש תומך בערכת נתונים מותאמת אישית מסגרות נתמכות מחברות לדוגמה
סיווג תמונות כן כן PyTorch, TensorFlow מבוא ל-JumpStart - סיווג תמונה
זיהוי אובייקט כן כן PyTorch, TensorFlow, MXNet מבוא ל-JumpStart - זיהוי אובייקטים
פילוח סמנטי כן כן MX Net מבוא ל-JumpStart - פילוח סמנטי
סיווג טקסט כן כן TensorFlow מבוא ל-JumpStart - סיווג טקסט
סיווג צמד משפטים כן כן TensorFlow, פנים מחבקות מבוא ל-JumpStart - סיווג צמד משפטים
תשובת שאלה כן כן PyTorch מבוא ל-JumpStart - תשובה לשאלות
סיווג טבלאי כן כן LightGBM, CatBoost, XGBoost, לומד ליניארי מבוא ל-JumpStart – סיווג טבלאי – LightGBM, CatBoost
מבוא ל-JumpStart - סיווג טבלאי - XGBoost, לומד לינארי
רגרסיה טבלאית כן כן LightGBM, CatBoost, XGBoost, לומד ליניארי מבוא ל-JumpStart - רגרסיה טבלאית - LightGBM, CatBoost
מבוא ל-JumpStart - רגרסיה טבלאית - XGBoost, לומד ליניארי

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

זרימת עבודה טכנית זו נותנת סקירה כללית של התכונות והשלבים השונים של Amazon Sagemaker הדרושים לכוונון אוטומטי של דגם JumpStart.

הפעל כוונון דגמים אוטומטי עם Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.

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

אנו עוברים את השלבים הבאים ברמה גבוהה:

  1. אחזר את הדגם המיומן מראש של JumpStart ואת מיכל התמונות.
  2. הגדר היפרפרמטרים סטטיים.
  3. הגדר את טווחי ההיפרפרמטרים הניתנים לשינוי.
  4. אתחל את כוונון הדגם האוטומטי.
  5. הפעל את עבודת הכוונון.
  6. פרוס את המודל הטוב ביותר לנקודת קצה.

אחזר את הדגם המיומן מראש של JumpStart ואת מיכל התמונות

בחלק זה, אנו בוחרים את מודל הסיווג LightGBM לכוונון עדין. אנו משתמשים בסוג המופע ml.m5.xlarge עליו מתנהל המודל. לאחר מכן אנו מאחזרים את מיכל האימון Docker, את מקור אלגוריתם האימון ואת המודל שהוכשר מראש. ראה את הקוד הבא:

training_instance_type = "ml.m5.xlarge" # Retrieve the docker image
train_image_uri = image_uris.retrieve(
    region=None,
    framework=None,
    model_id=train_model_id,
    model_version=train_model_version,
    image_scope=train_scope,
    instance_type=training_instance_type,
)
# Retrieve the training script
train_source_uri = script_uris.retrieve(
    model_id=train_model_id, model_version=train_model_version, script_scope=train_scope
)
# Retrieve the pre-trained model tarball to further fine-tune
train_model_uri = model_uris.retrieve(
    model_id=train_model_id, model_version=train_model_version, model_scope=train_scope
)

הגדר היפרפרמטרים סטטיים

כעת אנו מאחזרים את הפרמטרים ההיפר-פרמטרים המוגדרים כברירת מחדל עבור דגם LightGBM זה, כפי שהוגדר מראש על-ידי JumpStart. אנחנו גם עוקפים את num_boost_round היפרפרמטר עם ערך מותאם אישית.

# Retrieve the default hyper-parameters for fine-tuning the model
hyperparameters = hyperparameters.retrieve_default(
    model_id=train_model_id, model_version=train_model_version
)
# [Optional] Override default hyperparameters with custom values

הגדר את טווחי ההיפרפרמטרים הניתנים לשינוי

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

hyperparameter_ranges = {
    "learning_rate": ContinuousParameter(1e-4, 1, scaling_type="Logarithmic"),
    "num_boost_round": IntegerParameter(2, 30),
    "early_stopping_rounds": IntegerParameter(2, 30),
    "num_leaves": IntegerParameter(10, 50),
    "feature_fraction": ContinuousParameter(0, 1),
    "bagging_fraction": ContinuousParameter(0, 1),
    "bagging_freq": IntegerParameter(1, 10),
    "max_depth": IntegerParameter(5, 30),
    "min_data_in_leaf": IntegerParameter(5, 50),
}

אתחל את כוונון הדגם האוטומטי

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

השמיים HyperparameterTuner מקבל כפרמטרים את אובייקט האומד, מדד היעד שעל פיו נקבעת קבוצת ההיפרפרמטרים הטובה ביותר, המספר הכולל של משרות ההדרכה (max_jobs) כדי להתחיל לעבודת כוונון היפרפרמטרים, ועבודות האימון המקבילות המקסימליות להפעיל (max_parallel_jobs). עבודות הדרכה מופעלות עם אלגוריתם LightGBM, וערכי ההיפרפרמטר שיש להם את המינימום mlogloss נבחר מדד. למידע נוסף על הגדרת כוונון דגמים אוטומטי, ראה שיטות עבודה מומלצות לכוונון היפרפרמטרים.

# Create SageMaker Estimator instance
tabular_estimator = Estimator(
    role=aws_role,
    image_uri=train_image_uri,
    source_dir=train_source_uri,
    model_uri=train_model_uri,
    entry_point="transfer_learning.py",
    instance_count=1,
    instance_type=training_instance_type,
    max_run=360000,
    hyperparameters=hyperparameters,
    output_path=s3_output_location,
) tuner = HyperparameterTuner(
    estimator=tabular_estimator,
    objective_metric_name="multi_logloss",
    hyperparameter_ranges=hyperparameter_ranges,
    metric_definitions=[{"Name": "multi_logloss", "Regex": "multi_logloss: ([0-9\.]+)"}],
    strategy="Bayesian",
    max_jobs=10,
    max_parallel_jobs=2,
    objective_type="Minimize",
    base_tuning_job_name=training_job_name,
)

בקוד הקודם, אנו אומרים למקלט להפעיל לכל היותר 10 ניסויים (max_jobs) ורק שני ניסויים במקביל בכל פעם (max_parallel_jobs). שני הפרמטרים הללו שומרים על עלות וזמן האימון שלך בשליטה.

הפעל את עבודת הכוונון

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

tuner.fit({"training": training_dataset_s3_path}, logs=True)

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

פרוס את המודל הטוב ביותר לנקודת קצה

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

tuner.deploy(
    initial_instance_count=1,
    instance_type=inference_instance_type,
    entry_point="inference.py",
    image_uri=deploy_image_uri,
    source_dir=deploy_source_uri,
    endpoint_name=endpoint_name,
    enable_network_isolation=True
)

כעת נוכל לבדוק את נקודת הקצה שנוצרה על ידי הגשת בקשות להסקת מסקנות. ניתן לעקוב אחר המשך התהליך במדריך המצורף מחברה.

סיכום

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

בפוסט זה, הראינו את הערך של הפעלת כוונון דגמים אוטומטי על דגם מיומן מראש של JumpStart באמצעות ממשקי API של SageMaker. השתמשנו באלגוריתם LightGBM והגדרנו מקסימום 10 משרות הדרכה. סיפקנו גם קישורים למחברות לדוגמה המציגות את מסגרות ה-ML התומכות באופטימיזציה של מודל JumpStart.

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


על המחבר

הפעל כוונון דגמים אוטומטי עם Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.דאג מבאיה הוא ארכיטקט פתרונות שותפים בכיר עם התמקדות בנתונים וניתוחים. דאג עובד בשיתוף פעולה הדוק עם שותפי AWS, ועוזר להם לשלב פתרונות נתונים וניתוח בענן.

הפעל כוונון דגמים אוטומטי עם Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.קרותי ג'ייסימה ראו הוא אדריכל פתרונות שותפים בצוות Scale-PSA. Kruthi עורך אימותים טכניים עבור שותפים המאפשרים להם להתקדם בנתיב השותפים.

הפעל כוונון דגמים אוטומטי עם Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.ג'יאניס מיטרופולוס הוא מהנדס פיתוח תוכנה עבור SageMaker כוונון דגם אוטומטי.

הפעל כוונון דגמים אוטומטי עם Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.ד"ר אשיש חתן הוא מדען יישומי בכיר עם אמזון SageMaker JumpStart ו אלגוריתמים מובנים של Amazon SageMaker ומסייע בפיתוח אלגוריתמים של למידת מכונה. הוא חוקר פעיל בלמידת מכונה והסקה סטטיסטית ופרסם מאמרים רבים בכנסים NeurIPS, ICML, ICLR, JMLR ו-ACL.

בול זמן:

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