אינטליגנציה של נתונים גנרטיביים

אלגוריתמים מובנים חדשים של Amazon SageMaker למידול נתונים טבלאי: LightGBM, CatBoost, AutoGluon-Tabular ו-TabTransformer

תאריך:

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

החל מהיום, SageMaker מספקת ארבעה אלגוריתמים חדשים של מודל נתונים טבלאי מובנים: LightGBM, CatBoost, AutoGluon-Tabular ו-TabTransformer. אתה יכול להשתמש באלגוריתמים הפופולריים והמתקדמים האלה הן עבור משימות סיווג טבלאי והן למשימות רגרסיה. הם זמינים דרך אלגוריתמים מובנים על קונסולת SageMaker וכן דרך אמזון SageMaker JumpStart ממשק משתמש בפנים סטודיו SageMaker של אמזון.

להלן רשימה של ארבעת האלגוריתמים המובנים החדשים, עם קישורים לתיעוד שלהם, למחברות לדוגמה ולמקור.

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

LightGBM

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

CatBoost

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

AutoGluon-Tabular

AutoGluon-Tabular הוא פרויקט AutoML בקוד פתוח שפותח ומתוחזק על ידי אמזון, המבצע עיבוד נתונים מתקדם, למידה עמוקה והרכבת מחסנית רב-שכבתית. הוא מזהה אוטומטית את סוג הנתונים בכל עמודה עבור עיבוד מקדים של נתונים חזק, כולל טיפול מיוחד בשדות טקסט. AutoGluon מתאים לדגמים שונים, החל מעצים בעלי חיזוק מהמדף ועד למודלים של רשתות עצביות מותאמות אישית. מודלים אלה מורכבים באופן חדשני: מודלים מוערמים במספר שכבות ומאומנים בצורה שכבתית המבטיחה שניתן לתרגם נתונים גולמיים לתחזיות באיכות גבוהה תוך מגבלת זמן נתונה. התאמת יתר מופחתת לאורך תהליך זה על ידי פיצול הנתונים בדרכים שונות תוך מעקב קפדני אחר דוגמאות מחוץ לקפל. AutoGluon מותאמת לביצועים, והשימוש מחוץ לקופסה השיג מספר מקומות 3 ו-10 מובילים בתחרויות מדעי הנתונים.

Tab Transformer

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

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

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

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

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

אימון אלגוריתם מובנה באמצעות SageMaker SDK

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

from sagemaker import image_uris, model_uris, script_uris

train_model_id, train_model_version, train_scope = "lightgbm-classification-model", "*", "training"
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 model artifact; in the tabular case, the model is not pre-trained 
train_model_uri = model_uris.retrieve(
    model_id=train_model_id, model_version=train_model_version, model_scope=train_scope
)

אל האני train_model_id משתנה ל lightgbm-regression-model אם אנו מתמודדים עם בעיית רגרסיה. המזהים של כל הדגמים האחרים שהוצגו בפוסט זה מפורטים בטבלה הבאה.

מספר סימוכין סוג הבעיה מזהה דגם
LightGBM מִיוּן lightgbm-classification-model
. נסיגה lightgbm-regression-model
CatBoost מִיוּן catboost-classification-model
. נסיגה catboost-regression-model
AutoGluon-Tabular מִיוּן autogluon-classification-ensemble
. נסיגה autogluon-regression-ensemble
Tab Transformer מִיוּן pytorch-tabtransformerclassification-model
. נסיגה pytorch-tabtransformerregression-model

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

import sagemaker
from sagemaker import hyperparameters

sess = sagemaker.Session()
region = sess.boto_session.region_name

# URI of sample training dataset
training_dataset_s3_path = f"s3:///jumpstart-cache-prod-{region}/training-datasets/tabular_multiclass/"

# URI for output artifacts 
output_bucket = sess.default_bucket()
s3_output_location = f"s3://{output_bucket}/jumpstart-example-tabular-training/output"

# Retrieve the default hyper-parameters for training
hyperparameters = hyperparameters.retrieve_default(
    model_id=train_model_id, model_version=train_model_version
)

# [Optional] Override default hyperparameters with custom values
hyperparameters[
    "num_boost_round"
] = "500"  # The same hyperparameter is named as "iterations" for CatBoost

לבסוף, אנו מייצרים SageMaker Estimator עם כל התשומות שאוחזרו ולהשיק את עבודת ההדרכה עם .fit, מעבירים אותו ל-URI של מערך ההדרכה שלנו. ה entry_point התסריט שסופק נקרא בשם transfer_learning.py (זהה עבור משימות ואלגוריתמים אחרים), וערוץ נתוני הקלט שהועבר אליו .fit חייב להיות שם training.

from sagemaker.estimator import Estimator
from sagemaker.utils import name_from_base

# Unique training job name
training_job_name = name_from_base(f"built-in-example-{model_id}")

# Create SageMaker Estimator instance
tc_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,
)

# Launch a SageMaker Training job by passing s3 path of the training data
tc_estimator.fit({"training": training_dataset_s3_path}, logs=True)

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

אימון אלגוריתם מובנה באמצעות SageMaker JumpStart

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

למידע נוסף עיין ב הפעל סיווג טקסט עם Amazon SageMaker JumpStart באמצעות דגמי TensorFlow Hub ו-Huging Face.

סיכום

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

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


על הכותבים

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

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

ז'ואאו מורה הוא אדריכל פתרונות AI/ML מומחה בשירותי האינטרנט של אמזון. הוא מתמקד בעיקר במקרי שימוש ב-NLP ובעזרה ללקוחות לייעל את ההדרכה והפריסה של מודל למידה עמוקה. הוא גם חסיד פעיל של פתרונות ML בעלי קוד נמוך וחומרה מתמחה ב-ML.

ספוט_ימג

המודיעין האחרון

ספוט_ימג

דבר איתנו

שלום שם! איך אני יכול לעזור לך?