מדעני נתונים מאמנים לעתים קרובות את המודלים שלהם באופן מקומי ומחפשים שירות אירוח מתאים לפריסת המודלים שלהם. למרבה הצער, אין מנגנון או מדריך מוגדר לפריסת מודלים מאומנים מראש לענן. בפוסט זה, אנו מסתכלים על פריסת מודלים מאומנים אמזון SageMaker אירוח כדי להפחית את זמן הפריסה שלך.
SageMaker הוא שירות למידת מכונה (ML) מנוהל במלואו. עם SageMaker, אתה יכול לבנות ולאמן במהירות מודלים של ML ולפרוס אותם ישירות בסביבה מתארחת מוכנה לייצור. בנוסף, אינך צריך לנהל שרתים. אתה מקבל סביבת מחברת Jupyter משולבת עם גישה קלה למקורות הנתונים שלך. אתה יכול לבצע ניתוח נתונים, לאמן את המודלים שלך ולבדוק אותם באמצעות אלגוריתמים משלך או להשתמש באלגוריתמי ML שסופקו על ידי SageMaker המותאמים לפעול ביעילות מול מערכי נתונים גדולים הפרוסים על פני מספר מכונות. הדרכה ואירוח מחויבים לפי דקות שימוש, ללא עמלות מינימום וללא התחייבויות מראש.
סקירת פתרונות
מדעני נתונים מאמנים לפעמים מודלים באופן מקומי באמצעות ה-IDE שלהם או שולחים את המודלים הללו לצוות ההנדסה של ML לצורך פריסה או פשוט מריצים תחזיות מקומית על מכונות חזקות. בפוסט זה, אנו מציגים ספריית Python המפשטת את תהליך פריסת המודלים ל- SageMaker עבור אירוח על נקודות קצה בזמן אמת או ללא שרת.
ספריית Python זו מעניקה למדעני נתונים ממשק פשוט להתחיל במהירות ב- SageMaker ללא צורך להכיר כל אחת מהפונקציונליות של SageMaker ברמה נמוכה.
אם יש לך מודלים שעברו הכשרה מקומית תוך שימוש ב-IDE המועדף עליך וברצונך ליהנות מקנה המידה של הענן, תוכל להשתמש בספרייה זו כדי לפרוס את המודל שלך ל- SageMaker. עם SageMaker, בנוסף לכל יתרונות קנה המידה של פלטפורמת ML מבוססת ענן, יש לך גישה לכלי הדרכה ייעודיים (אימון מבוזר, כוונון היפרפרמטרים), ניהול ניסויים, ניהול מודלים, זיהוי הטיה, יכולת הסבר מודל ועוד רבים אחרים יכולות שיכולות לעזור לך בכל היבט של מחזור החיים של ML. אתה יכול לבחור מבין שלוש המסגרות הפופולריות ביותר עבור ML: Scikit-learn, PyTorch ו-TensorFlow, ותוכל לבחור את סוג המחשוב שאתה רוצה. ברירות מחדל מסופקות לאורך כל הדרך כך שמשתמשי ספרייה זו יכולים לפרוס את המודלים שלהם ללא צורך בקבלת החלטות מורכבות או ללמוד מושגים חדשים. בפוסט זה, אנו מראים לך כיצד להתחיל עם ספרייה זו ולבצע אופטימיזציה של פריסת דגמי ה-ML שלך באירוח של SageMaker.
ניתן למצוא את הספרייה ב- מאגר GitHub.
ערכת הכלים להגירה של SageMaker
השמיים SageMakerMigration
הכיתה זמינה דרך ספריית Python שפורסמה ב-GitHub. הוראות להתקנת ספרייה זו מסופקות במאגר; ודא שאתה פועל לפי ה-README כדי להגדיר כראוי את הסביבה שלך. לאחר התקנת ספרייה זו, שאר הפוסט הזה מדבר על איך אתה יכול להשתמש בה.
השמיים SageMakerMigration
המחלקה מורכבת מהפשטות ברמה גבוהה על ממשקי API של SageMaker המפחיתות באופן משמעותי את השלבים הדרושים לפריסת המודל שלך ל- SageMaker, כפי שמוצג באיור הבא. זה מיועד לניסויים כדי שמפתחים יוכלו להתחיל במהירות ולבדוק את SageMaker. זה לא מיועד להגירות ייצור.
עבור דגמי Scikit-learn, PyTorch ו-TensorFlow, ספרייה זו תומכת בפריסת מודלים מאומנים לנקודת קצה של SageMaker בזמן אמת או לנקודת קצה ללא שרת. למידע נוסף על אפשרויות ההסקה ב- SageMaker, עיין ב פרוס מודלים להסקת מסקנות.
נקודות קצה בזמן אמת לעומת ללא שרת
הסקת מסקנות בזמן אמת היא אידיאלית עבור עומסי עבודה מסקנות שבהן יש לך דרישות זמן אמת, אינטראקטיביות וזמן אחזור נמוך. אתה יכול לפרוס את המודל שלך לשירותי אירוח של SageMaker ולקבל נקודת קצה שניתן להשתמש בה להסקת מסקנות. נקודות קצה אלו מנוהלות באופן מלא ותומכות בקנה מידה אוטומטי.
SageMaker Serverless Inference היא אפשרות מסקנת ייעודית שמקלה עליך לפרוס ולהרחיב מודלים של ML. מסקנות ללא שרתים אידיאלית לעומסי עבודה שיש להם תקופות סרק בין פרצי תנועה ויכולים לסבול התחלות קרות. נקודות קצה ללא שרת משיקים אוטומטית משאבי מחשוב ומרחיבים אותם פנימה והחוצה בהתאם לתעבורה, ומבטלים את הצורך לבחור סוגי מופעים או לנהל מדיניות קנה מידה. זה מסיר את ההרמה הכבדה הבלתי מובחנת של בחירה וניהול שרתים.
בהתאם למקרה השימוש שלך, ייתכן שתרצה לארח במהירות את הדגם שלך ב- SageMaker מבלי שיהיה לו מופע תמיד דלוק וייגרם בעלויות, ובמקרה זה נקודת קצה ללא שרת היא פתרון מצוין.
הכן את המודל המיומן שלך ואת תסריט ההסקה שלך
לאחר שזיהית את הדגם שברצונך לפרוס ב- SageMaker, עליך לוודא שהמודל יוצג ל- SageMaker בפורמט הנכון. נקודות הקצה של SageMaker מורכבות בדרך כלל משני מרכיבים: חפץ המודל המאומן (.pth, .pkl וכן הלאה) וסקריפט מסקנות. סקריפט ההסקה אינו תמיד חובה, אך אם אינו מסופק, מפעילי ברירת המחדל עבור מיכל ההגשה שבו אתה משתמש מוחלים. חיוני לספק סקריפט זה אם אתה צריך להתאים אישית את פונקציונליות הקלט/פלט שלך להסקת מסקנות.
חפץ המודל המאומן הוא פשוט מודל שמור של Scikit-learn, PyTorch או TensorFlow. עבור Scikit-learn, זה בדרך כלל קובץ חמוצים, עבור PyTorch זהו קובץ .pt או .pth, ועבור TensorFlow זוהי תיקייה עם נכסים, קבצי .pb ומשתנים אחרים.
באופן כללי, אתה צריך להיות מסוגל לשלוט כיצד המודל שלך מעבד קלט ומבצע הסקה, ולשלוט בפורמט הפלט עבור התגובה שלך. עם SageMaker, אתה יכול לספק תסריט מסקנות כדי להוסיף התאמה אישית זו. כל סקריפט מסקנות המשמש את SageMaker חייב להיות בעל אחת או יותר מארבע פונקציות המטפל הבאות: model_fn
, input_fn
, predict_fn
, ו output_fn
.
שימו לב שארבע הפונקציות הללו חלות על PyTorch ו Scikit-ללמוד מיכלים במיוחד. ל-TensorFlow יש מטפלים מעט שונים מכיוון שהוא משולב עם הגשת TensorFlow. עבור תסריט מסקנות עם TensorFlow, יש לך שניים מטפלי מודל: Input_handler ו-output_handler. שוב, לאלה יש את אותה מטרת עיבוד מקדים ואחרי עיבוד שאיתה אתה יכול לעבוד, אבל הם מוגדרים בצורה שונה במקצת לשילוב עם הגשת TensorFlow. עבור מודלים של PyTorch, model_fn היא פונקציה חובה שתהיה בתסריט ההסקה.
model_fn
זוהי הפונקציה שנקראת לראשונה כאשר אתה מפעיל את נקודת הקצה של SageMaker שלך. זה המקום שבו אתה כותב את הקוד שלך כדי לטעון את הדגם. לדוגמה:
בהתאם למסגרת ולסוג המודל, קוד זה עשוי להשתנות, אך הפונקציה חייבת להחזיר מודל מאותחל.
input_fn
זוהי הפונקציה השנייה שנקראת כאשר נקודת הקצה שלך מופעלת. פונקציה זו לוקחת את הנתונים שנשלחים לנקודת הקצה להסקת הסקה ומנתחת אותם לפורמט הנדרש כדי שהמודל ייצור חיזוי. לדוגמה:
השמיים request_body
מכיל את הנתונים שישמשו להפקת הסקת מסקנות מהמודל ומנתח בפונקציה זו כך שיהיו בפורמט הנדרש.
predict_fn
זוהי הפונקציה השלישית שנקראת כאשר המודל שלך מופעל. פונקציה זו לוקחת את נתוני הקלט המעובדים המוחזרים מהם input_fn
ומשתמש במודל שהוחזר ממנו model_fn
לעשות את התחזית. לדוגמה:
באפשרותך להוסיף output_fn
לנתח את הפלט של predict_fn
לפני החזרתו ללקוח. חתימת הפונקציה היא def output_fn(prediction, content_type)
.
העבר את הדגם המאומן שלך ל- SageMaker
לאחר שיש לך את קובץ המודל המיומן שלך ואת סקריפט ההסקות, עליך לשים את הקבצים האלה בתיקייה באופן הבא:
לאחר שהמודל וסקריפט ההסקה שלך הוכנו ונשמרו במבנה התיקיות הזה, המודל שלך מוכן לפריסה ב- SageMaker. ראה את הקוד הבא:
לאחר פריסת נקודת הקצה שלך, הקפד לנקות את כל המשאבים שלא תשתמש בהם דרך מסוף SageMaker או דרך delete_endpoint קריאת API של Boto3.
סיכום
המטרה של פרויקט SageMaker Migration Toolkit היא להקל על מדעני נתונים להכניס את המודלים שלהם ל- SageMaker כדי לנצל את ההסקה המבוססת על ענן. המאגר ימשיך להתפתח ולתמוך באפשרויות נוספות להעברת עומסי עבודה ל- SageMaker. הקוד הוא קוד פתוח ואנו מברכים על תרומות מהקהילה באמצעות בקשות משיכה ובעיות.
בדוק מאגר GitHub כדי לחקור יותר על שימוש בכלי הגירה של SageMaker, ואל תהסס לתרום גם דוגמאות או בקשות תכונה להוספה לפרויקט!
על המחברים
קירית תדאקה הוא אדריכל ML Solutions העובד בצוות Amazon SageMaker Service SA. לפני שהצטרפה ל-AWS, קירית בילתה זמן בעבודה בסטארט-אפים של בינה מלאכותית בשלבים מוקדמים ולאחריה זמן מה בייעוץ בתפקידים שונים במחקר AI, MLOps ומנהיגות טכנית.
רם וג'יראג'ו הוא אדריכל ML עם צוות שירות SageMaker. הוא מתמקד בסיוע ללקוחות לבנות ולמטב את פתרונות ה-AI/ML שלהם ב-Amazon SageMaker. בזמנו הפנוי הוא אוהב לטייל ולכתוב.
- AI
- איי אמנות
- מחולל אמנות ai
- איי רובוט
- אמזון SageMaker
- בינה מלאכותית
- הסמכת בינה מלאכותית
- בינה מלאכותית בבנקאות
- רובוט בינה מלאכותית
- רובוטים של בינה מלאכותית
- תוכנת בינה מלאכותית
- למידת מכונות AWS
- blockchain
- blockchain conference ai
- קוינגניוס
- בינה מלאכותית של שיחה
- קריפטו כנס ai
- של דאל
- למידה עמוקה
- גוגל איי
- בינוני (200)
- למידת מכונה
- אפלטון
- plato ai
- מודיעין אפלטון
- משחק אפלטון
- אפלטון נתונים
- פלטוגיימינג
- סולם ai
- תחביר
- זפירנט