לקוחות AWS מסתמכים על Infrastructure as Code (IaC) כדי לתכנן, לפתח ולנהל את תשתית הענן שלהם. IaC מבטיח שתשתיות ושירותי לקוחות יהיו עקביים, ניתנים להרחבה וניתנים לשחזור, תוך יכולת לעקוב אחר שיטות עבודה מומלצות בתחום פעולות הפיתוח (DevOps).
גישה אפשרית אחת לניהול תשתית ושירותי AWS עם IaC היא Terraform, המאפשר למפתחים לארגן את התשתית שלהם במודולי קוד הניתנים לשימוש חוזר. היבט זה הולך ותופס חשיבות בתחום למידת מכונה (ML). פיתוח וניהול צינורות ML, כולל הדרכה והסקת מסקנות עם Terraform כ-IaC, מאפשר לך לשנות את קנה המידה בקלות עבור מספר מקרי שימוש או אזורים ב-ML מבלי שתצטרך לפתח את התשתית מאפס. יתרה מזאת, הוא מספק עקביות לתשתית (לדוגמה, סוג וגודל מופע) להדרכה והסקת מסקנות על פני יישומים שונים של צינור ה-ML. זה מאפשר לך לנתב בקשות ותעבורה נכנסת לשונות אמזון SageMaker נקודות קצה.
בפוסט זה, אנו מראים לך כיצד לפרוס ולנהל צינורות ML באמצעות Terraform ו-Amazon SageMaker.
סקירת פתרונות
פוסט זה מספק קוד ומנחה אותך בשלבים הדרושים לפריסת תשתית AWS עבור צינורות ML עם Terraform להדרכה והסקת מודלים באמצעות Amazon SageMaker. צינור ML מנוהל באמצעות פונקציות שלב AWS לתזמר את השלבים השונים המיושמים בצינור ה-ML, כפי שמוצג באיור הבא.
שלב פונקציות מתחיל an AWS למבדה פונקציה, יצירת מזהה משרה ייחודי, שבו נעשה שימוש לאחר תחילת עבודת הכשרה של SageMaker. Step Functions גם יוצרת מודל, תצורת נקודת קצה ונקודת קצה המשמשת להסקת מסקנות. משאבים נוספים כוללים את הדברים הבאים:
- AWS זהות וניהול גישה (IAM) תפקידים ומדיניות המוצמדים למשאבים על מנת לאפשר אינטראקציה עם משאבים אחרים
- שירות אחסון פשוט של אמזון (Amazon S3) דליים לנתוני אימון ותפוקת דגם
- An מרשם מיכל אלסטי של אמזון (Amazon ECR) מאגר עבור סַוָר תמונה המכילה את ההיגיון של האימון וההסקה
הקוד הקשור ל-ML לאימון והסקת מסקנות עם תמונת Docker מסתמך בעיקר על עבודה קיימת בהמשך מאגר GitHub.
התרשים הבא ממחיש את ארכיטקטורת הפתרון:
אנו מדריכים אותך בשלבים הבאים ברמה הגבוהה:
- פרוס את תשתית ה-AWS שלך עם Terraform.
- דחוף את תמונת ה-Docker שלך לאמזון ECR.
- הפעל את צינור ML.
- הפעל את נקודת הקצה שלך.
מבנה המאגר
תוכל למצוא את המאגר המכיל את הקוד והנתונים המשמשים לפוסט זה בהמשך מאגר GitHub.
המאגר כולל את הספריות הבאות:
/terraform
– מורכב מתיקיות המשנה הבאות:./infrastructure
– מכיל את קובץ main.tf הקורא למודול צינור ML, בנוסף להצהרות משתנות בהן אנו משתמשים לפריסת התשתית./ml-pipeline-module
- מכיל את מודול הצינור Terraform ML, שבו אנו יכולים לעשות שימוש חוזר
/src
– מורכב מתיקיות המשנה הבאות:./container
– מכיל קוד לדוגמה לאימון והסקת הסקה עם ההגדרות של תמונת Docker./lambda_function
- מכיל את קוד Python עבור תצורות יצירת פונקציית Lambda, כגון מזהה עבודה ייחודי עבור עבודת ההדרכה של SageMaker
/data
- מכיל את הקובץ הבא:./iris.csv
– מכיל נתונים לאימון מודל ML
תנאים מוקדמים
לפריצת דרך זו, יהיו עליכם התנאים המוקדמים הבאים:
- חשבון AWS
- Terraform גירסה 0.13.5 ומעלה
- ממשק שורת הפקודה של AWS (AWS CLI) v2
- פיתון 3.7 או יותר
- סַוָר
פרוס את תשתית ה-AWS שלך עם Terraform
כדי לפרוס את צינור ה-ML, עליך להתאים מספר משתנים ושמות בהתאם לצרכים שלך. הקוד לשלב זה נמצא ב- /terraform
במדריך.
בעת אתחול בפעם הראשונה, פתח את הקובץ terraform/infrastructure/terraform.tfvars
ולהתאים את המשתנה שם הפרוייקט לשם הפרויקט שלך, בנוסף למשתנה באזור אם אתה רוצה לפרוס באזור אחר. אתה יכול גם לשנות משתנים נוספים כגון סוגי מופעים לאימון והסקת מסקנות.
לאחר מכן השתמש בפקודות הבאות כדי לפרוס את התשתית עם Terraform:
בדקו את הפלט וודאו שהמשאבים המתוכננים מופיעים כהלכה, ואשרו ב-yes בשלב היישום אם הכל תקין. לאחר מכן עבור אל קונסולת Amazon ECR (או בדוק את הפלט של Terraform בטרמינל) וקבל את כתובת האתר של מאגר ה-ECR שלך שיצרת דרך Terraform.
הפלט צריך להיראות דומה לפלט המוצג הבא, כולל כתובת האתר של מאגר ECR:
דחוף את תמונת ה-Docker שלך לאמזון ECR
כדי שצינור ML ו-SageMaker יאמנו ויספקו נקודת קצה של SageMaker להסקת מסקנות, עליך לספק תמונת Docker ולאחסן אותה באמזון ECR. אתה יכול למצוא דוגמה בספרייה src/container
. אם כבר החלת את תשתית ה-AWS מהשלב הקודם, תוכל לדחוף את תמונת Docker כמתואר. לאחר פיתוח תמונת Docker שלך, תוכל לבצע את הפעולות הבאות ולדחוף אותה לאמזון ECR (התאם את כתובת האתר של Amazon ECR בהתאם לצרכים שלך):
אם כבר החלת את תשתית ה-AWS עם Terraform, אתה יכול לדחוף את השינויים בקוד ובתמונת Docker שלך ישירות לאמזון ECR מבלי לפרוס שוב דרך Terraform.
הפעל את צינור ML
כדי לאמן ולהפעיל את צינור ה-ML, עבור אל מסוף Step Functions והתחל ביישום. אתה יכול לבדוק את ההתקדמות של כל שלב בהדמיה של מכונת המצב. אתה יכול גם לבדוק את התקדמות עבודת ההדרכה של SageMaker ואת המצב של נקודת הקצה של SageMaker.
לאחר שתפעיל בהצלחה את מכונת המצב ב-Step Functions, תוכל לראות שנקודת הקצה של SageMaker נוצרה. במסוף SageMaker, בחר הסקה בחלונית הניווט, אם כן נקודות קצה. הקפד להמתין עד שהסטטוס ישתנה ל-InService.
הפעל את נקודת הקצה שלך
כדי להפעיל את נקודת הקצה שלך (בדוגמה זו, עבור מערך הנתונים של הקשתית), אתה יכול להשתמש בסקריפט של Python הבא עם AWS SDK עבור Python (Boto3). אתה יכול לעשות זאת ממחברת SageMaker, או להטמיע את קטע הקוד הבא בפונקציית Lambda:
לנקות את
אתה יכול להרוס את התשתית שנוצרה על ידי Terraform עם הפקודה terraform destroy, אבל תחילה עליך למחוק את הנתונים והקבצים בדלי S3. יתר על כן, נקודת הקצה של SageMaker (או מספר נקודות קצה של SageMaker אם מופעלות מספר פעמים) נוצרת באמצעות Step Functions ולא מנוהלת באמצעות Terraform. המשמעות היא שהפריסה מתרחשת בעת הפעלת צינור ML עם פונקציות שלב. לכן, ודא שאתה מוחק גם את נקודת הקצה של SageMaker או את נקודות הקצה שנוצרו באמצעות צינור Step Functions ML כדי למנוע עלויות מיותרות. השלם את השלבים הבאים:
- בקונסולת Amazon S3, מחק את מערך הנתונים בדלי ההדרכה של S3.
- מחק את כל הדגמים שאימנת באמצעות צינור ML בדלי דגמי S3, או דרך קונסולת Amazon S3 או AWS CLI.
- הרס את התשתית שנוצרה באמצעות Terraform:
- מחק את נקודות הקצה של SageMaker, תצורת נקודות הקצה והמודלים שנוצרו באמצעות Step Functions, במסוף SageMaker או דרך AWS CLI.
סיכום
מזל טוב! פרסת צינור ML באמצעות SageMaker עם Terraform. פתרון דוגמה זה מראה כיצד ניתן לפרוס בקלות תשתית ושירותים של AWS עבור צינורות ML בצורה ניתנת לשימוש חוזר. זה מאפשר לך לשנות קנה מידה עבור מקרי שימוש או אזורים מרובים, ומאפשר אימון ופריסה של מודלים של ML בלחיצה אחת בצורה עקבית. יתר על כן, אתה יכול להריץ את צינור ה-ML מספר פעמים, למשל, כאשר נתונים חדשים זמינים או שאתה רוצה לשנות את קוד האלגוריתם. אתה יכול גם לבחור לנתב בקשות או תעבורה לנקודות קצה שונות של SageMaker.
אני ממליץ לך לחקור הוספת תכונות אבטחה ואימוץ שיטות אבטחה מומלצות בהתאם לצרכים שלך ולסטנדרטים הפוטנציאליים של החברה. בנוסף, הטמעת פתרון זה בצינורות ה-CI/CD שלך תעניק לך יכולות נוספות באימוץ והקמת שיטות עבודה ותקנים מומלצים של DevOps בהתאם לדרישות שלך.
על המחבר
אוליבר זוליקופר הוא מדען נתונים בשירותי האינטרנט של אמזון. הוא מאפשר ללקוחות ארגוניים גלובליים לבנות, לאמן ולפרוס מודלים של למידת מכונה, כמו גם לנהל את מחזור החיים של מודל ML עם MLOps. בנוסף, הוא בונה ואדריכל פתרונות ענן קשורים.
- "
- 100
- 7
- גישה
- פי
- לרוחב
- פעולות
- תוספת
- נוסף
- אַלגוֹרִיתְם
- תעשיות
- כְּבָר
- אמזון בעברית
- אמזון שירותי אינטרנט
- אחר
- גישה
- ארכיטקטורה
- AREA
- זמין
- AWS
- להיות
- הטוב ביותר
- שיטות עבודה מומלצות
- גוּף
- גבול
- לִבנוֹת
- בונה
- יכולות
- מקרים
- CD
- שינוי
- בחרו
- ענן
- תשתית ענן
- קוד
- חברה
- תְצוּרָה
- קונסול
- מכולה
- מכיל
- עלויות
- נוצר
- יוצר
- לקוח
- לקוחות
- נתונים
- מדען נתונים
- לפרוס
- פרס
- פריסה
- פריסה
- מְתוּאָר
- עיצוב
- להרוס
- הרוס
- לפתח
- מפותח
- מפתחים
- מתפתח
- צעצועי התפתחות
- אחר
- ישירות
- סַוָר
- בקלות
- לאפשר
- לעודד
- נקודת קצה
- מִפְעָל
- הכל
- דוגמה
- קיימים
- לחקור
- אופנה
- תכונות
- תרשים
- ראשון
- firsttime
- לעקוב
- הבא
- פונקציה
- נוסף
- יצירת
- גלוֹבָּלִי
- יש
- איך
- איך
- HTTPS
- זהות
- תמונה
- הפעלה
- יושם
- חשיבות
- לכלול
- כולל
- כולל
- יותר ויותר
- תשתית
- קלט
- אינטראקציה
- IT
- עבודה
- האחרון
- למידה
- קו
- מכונה
- למידת מכונה
- לנהל
- הצליח
- ניהול
- ML
- מודל
- מודלים
- מספר
- שמות
- ניווט
- הכרחי
- מחברה
- לפתוח
- תפעול
- להזמין
- אחר
- מדיניות
- אפשרי
- פוטנציאל
- פּרוֹיֶקט
- לספק
- מספק
- מאגר
- לבקש
- בקשות
- דרישות
- משאבים
- תגובה
- מסלול
- הפעלה
- ריצה
- להרחבה
- סולם
- מַדְעָן
- Sdk
- אבטחה
- שירותים
- דומה
- פָּשׁוּט
- מידה
- מוצק
- פִּתָרוֹן
- פתרונות
- התמחות
- תקנים
- התחלה
- התחלות
- מדינה
- מצב
- אחסון
- חנות
- בהצלחה
- מסוף
- לכן
- דרך
- זמן
- תְנוּעָה
- הדרכה
- ייחודי
- להשתמש
- ראיה
- לחכות
- אינטרנט
- שירותי אינטרנט
- בזמן
- לְלֹא
- תיק עבודות