מובנית אמזון SageMaker אלגוריתם XGBoost מספק מיכל מנוהל להפעלת הפופולרי XGBoost מסגרת למידת מכונה (ML), עם נוחות נוספת של תמיכה בהכשרה מתקדמת או בתכונות הסקה כמו אימון מבוזר, פיצול מערכי נתונים עבור מערכי נתונים בקנה מידה גדול, בדיקת מודל A/B, או מסקנות מרובות דגמים נקודות קצה. אתה יכול גם להרחיב את האלגוריתם החזק הזה כדי להתאים לדרישות שונות.
אריזת הקוד והתלות במיכל אחד היא גישה נוחה וחזקה למטרות תחזוקת קוד, שחזור וביקורת לטווח ארוך. שינוי המכולה עוקב ישירות אחר מיכל הבסיס בנאמנות ומונע שכפול של פונקציות קיימות שכבר נתמכות על ידי מיכל הבסיס. בפוסט זה, אנו סוקרים את פעולתו הפנימית של מיכל האלגוריתם של SageMaker XGBoost ומספקים סקריפטים פרגמטיים להתאמה אישית ישירה של המיכל.
מבנה המכולה של SageMaker XGBoost
אלגוריתם XGBoost המובנה של SageMaker ארוז כמיכל עצמאי, זמין ב- GitHub, וניתן להאריך תחת רישיון הקוד הפתוח של Apache 2.0 הידידותי למפתחים. המכולה אורזת את אלגוריתם XGBoost בקוד פתוח וכלים נלווים להפעלת האלגוריתם בסביבת SageMaker המשולבת עם שירותי ענן אחרים של AWS. זה מאפשר לך לאמן דגמי XGBoost על מגוון של מקורות מידע, עשה תחזיות אצווה על נתונים לא מקוונים, או מארח נקודת קצה של מסקנות בזמן אמת צינור.
המכולה תומכת בפעולות הדרכה והסקת מסקנות עם נקודות כניסה שונות. עבור מצב הסקה, ניתן למצוא את הערך בפונקציה הראשית ב- סקריפט serving.py. להגשת מסקנות בזמן אמת, הקונטיינר מפעיל א בקבוקמבוסס שרת אינטרנט זה כאשר הופעל, מקבל בקשה מקודדת HTTP המכילה את הנתונים, מפענח את הנתונים ל-XGBoost's DMatrix פוּרמָט, טוען את הדגם, ומחזירה an תגובה מקודדת HTTP חזרה. שיטות אלה מובלעות תחת שירות ניקוד class, שניתן להתאים אישית גם דרך מצב הסקריפט במידה רבה (ראה את הנספח למטה).
נקודת הכניסה למצב אימון (מצב אלגוריתם) היא הפונקציה העיקרית ב- training.py. הפונקציה הראשית מגדירה את סביבת האימון וקוראת לפונקציית עבודת ההדרכה. זה גמיש מספיק כדי לאפשר אימון מבוזר או צומת יחיד, או כלי עזר כמו אימות צולב. את לב תהליך האימון ניתן למצוא ב רכבת_עבודה פונקציה.
ניתן למצוא קבצי Docker המארזים את המכולה ב- GitHub ריפו. שימו לב שהמכולה בנויה בשני שלבים: א בסיס מיכל נבנה תחילה, ואחריו את סופי מיכל למעלה.
סקירת פתרונות
אתה יכול לשנות ולבנות מחדש את המיכל באמצעות קוד המקור. עם זאת, זה כרוך באיסוף ובנייה מחדש של כל התלות והחבילות מאפס. בפוסט זה, אנו דנים בגישה פשוטה יותר המשנה את הקונטיינר על גבי תמונת המכיל של אלגוריתם SageMaker XGBoost שכבר נבנתה וזמינה לציבור באופן ישיר.
בגישה זו, אנחנו למשוך עותק של תמונת SageMaker XGBoost הציבורית, שנה את הסקריפטים או הוסף חבילות, ובנה מחדש את המיכל למעלה. ניתן לאחסן את המיכל ששונה במאגר פרטי. בדרך זו, אנו נמנעים מבנייה מחדש של תלות מתווך ובמקום זאת בונים ישירות על גבי הספריות שכבר נבנו באריזה בקונטיינר הרשמי.
האיור הבא מציג סקירה כללית של הסקריפט המשמש למשיכת תמונת הבסיס הציבורית, שינוי ובנייה מחדש של התמונה והעלאתה לתמונה פרטית מרשם מיכל אלסטי של אמזון מאגר (Amazon ECR). ה תסריט bash בקוד המצורף לפוסט זה מבצע את כל שלבי זרימת העבודה המוצגים בתרשים. המלווה מחברה מציג דוגמה שבה URI של גרסה ספציפית של אלגוריתם SageMaker XGBoost מאוחזר לראשונה ומועבר ל- תסריט bash, שמחליף שניים מהסקריפטים של Python בתמונה, בונה אותה מחדש ודוחף את התמונה ששונתה למאגר פרטי של אמזון ECR. אתה יכול לשנות את הקוד המצורף כך שיתאים לצרכים שלך.
תנאים מוקדמים
אל האני מאגר GitHub מכיל את הקוד הנלווה לפוסט הזה. אתה יכול להפעיל את מחברת מדגם בחשבון ה-AWS שלך, או השתמש בנתונים המסופקים AWS CloudFormation מחסנית כדי לפרוס את המחברת באמצעות מחברת SageMaker. אתה צריך את התנאים המוקדמים הבאים:
- חשבון AWS.
- הרשאות הכרחיות להפעלת SageMaker טרנספורמציה והדרכה באצווה, והרשאות אמזון ECR. תבנית CloudFormation יוצרת דוגמה AWS זהות וניהול גישה (IAM) תפקידים.
פרוס את הפתרון
כדי ליצור את משאבי הפתרון שלך באמצעות AWS CloudFormation, בחר השקת ערימה:
המחסנית פורסת מחברת SageMaker שהוגדרה מראש לשבט את מאגר GitHub. ההליכה מחברה כולל את השלבים למשוך את תמונת SageMaker XGBoost הציבורית עבור גרסה נתונה, לשנות אותה ולדחוף את המכולה המותאמת אישית למאגר פרטי של Amazon ECR. המחברת משתמשת בציבור מערך נתונים של אבלון כדוגמה, מאמן מודל באמצעות מצב האימון המובנה של SageMaker XGBoost, ומשתמש מחדש במודל זה בתמונה המותאמת אישית כדי לבצע עבודות טרנספורמציה אצווה המייצרות מסקנות יחד עם ערכי SHAP.
סיכום
אלגוריתמים מובנים של SageMaker מספקים מגוון תכונות ופונקציונליות, וניתן להרחיב אותם עוד יותר תחת רישיון הקוד הפתוח של Apache 2.0. בפוסט זה, סקרנו כיצד להרחיב את מיכל הייצור המובנה עבור אלגוריתם SageMaker XGBoost כדי לעמוד בדרישות הייצור כמו קוד אחורה ותאימות API.
המחברת והעוזר לדוגמה סקריפטים לספק נקודת התחלה נוחה להתאים אישית את תמונת המיכל של SageMaker XGBoost כמו שהיית רוצה. תן לזה הזדמנות!
נספח: מצב סקריפט
מצב סקריפט מספק דרך לשנות אלגוריתמים מובנים רבים של SageMaker על ידי מתן ממשק שיחליף את הפונקציות האחראיות על שינוי הקלט וטעינת המודל. מצב הסקריפט אינו גמיש כמו שינוי ישיר של הקונטיינר, אבל הוא מספק מסלול מבוסס פייתון להתאמה אישית של האלגוריתם המובנה ללא צורך לעבוד ישירות איתו סַוָר.
במצב סקריפט, א user-module
מסופק כדי להתאים אישית את פענוח הנתונים, טעינת המודל וביצוע תחזיות. מודול המשתמש יכול להגדיר א transformer_fn
המטפל בכל היבטי הטיפול בבקשה ועד הכנת התגובה. או במקום להגדיר transformer_fn
, אתה יכול לספק שיטות מותאמות אישית model_fn
, input_fn
, predict_fn
, ו output_fn
בנפרד כדי להתאים אישית את טעינת המודל ואת הפענוח והכנת הקלט לחיזוי. לסקירה יסודית יותר של מצב סקריפט, ראה הביאו דגם משלכם עם מצב סקריפט של SageMaker.
על הכותבים
פיימן רזאגי הוא מדען נתונים ב-AWS. הוא בעל תואר דוקטור בתורת המידע מאוניברסיטת טורונטו והיה מדען פוסט-דוקטורט באוניברסיטת דרום קליפורניה (USC), לוס אנג'לס. לפני שהצטרף ל-AWS, פיימן היה מהנדס מערכות צוות בקוואלקום שתרם למספר תקני תקשורת בינלאומיים בולטים. הוא חיבר כמה מאמרי מחקר מדעיים שנבדקו על ידי עמיתים בתחום הסטטיסטיקה והנדסת מערכות, ונהנה מהורות ורכיבה על אופניים מחוץ לעבודה.
- "
- 100
- גישה
- להתאים
- חֶשְׁבּוֹן
- מתקדם
- אַלגוֹרִיתְם
- אלגוריתמים
- תעשיות
- כְּבָר
- אמזון בעברית
- API
- גישה
- AREA
- מאמרים
- AWS
- לִבנוֹת
- מובנה
- קליפורניה
- לבחור
- בכיתה
- ענן
- שירותי ענן
- קוד
- איסוף
- לחלוטין
- מכולה
- מכיל
- נוחות
- נוֹחַ
- יוצר
- מנהג
- נתונים
- מדען נתונים
- לפרוס
- פורס
- אחר
- ישירות
- לדון
- מופץ
- סַוָר
- מהנדס
- סביבה
- דוגמה
- להאריך
- תכונות
- תרשים
- ראשון
- גמיש
- הבא
- פוּרמָט
- מצא
- מסגרת
- פונקציה
- נוסף
- GitHub
- גדול
- מחזיק
- איך
- איך
- HTTPS
- זהות
- תמונה
- מידע
- קלט
- משולב
- מִמְשָׁק
- ברמה בינלאומית
- IT
- עבודה
- מקומות תעסוקה
- למידה
- רישיון
- לטווח ארוך
- לוס אנג'לס
- מכונה
- למידת מכונה
- עושה
- עשייה
- הצליח
- ML
- מודל
- מודלים
- יותר
- מחברה
- מספר
- רשמי
- לא מחובר
- תפעול
- אחר
- שֶׁלוֹ
- נקודה
- פופולרי
- חזק
- נבואה
- התחזיות
- פְּרָטִי
- תהליך
- לייצר
- הפקה
- לספק
- מספק
- מתן
- ציבורי
- למטרות
- זמן אמת
- מאגר
- לבקש
- דרישות
- מחקר
- משאבים
- תגובה
- אחראי
- החזרות
- סקירה
- מסלול
- הפעלה
- מַדְעָן
- שירותים
- הגשה
- sharding
- תוכנה
- פִּתָרוֹן
- קוד מקור
- דרומי
- לערום
- תקנים
- סטטיסטיקה
- נתמך
- מסייע
- תומך
- מערכות
- המקור
- דרך
- יַחַד
- כלים
- חלק עליון
- טורונטו
- הדרכה
- רכבות
- לשנות
- הפיכה
- אוניברסיטה
- להשתמש
- מגוון
- ויקיפדיה
- תיק עבודות
- היה