העבר את דגמי Amazon SageMaker Autopilot ML מניסוי לייצור באמצעות Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.

העבר את דגמי ה-Amazon SageMaker Autopilot ML מניסוי לייצור באמצעות Amazon SageMaker Pipelines

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

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

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

סקירת מערך נתונים

אנו משתמשים במערך האשפוז החוזר הזמין לציבור עבור חולי סוכרת כדי לחזות אשפוז חוזר של חולי סוכרת תוך 30 יום לאחר השחרור. זוהי גרסה מדוגמת של "סוכרת 130-בתי חולים בארה"ב לשנים 1999-2008 סט נתונים". זוהי בעיית סיווג רב-מעמדית מכיוון שאפשרויות הקבלה החוזרת הן אחת מהן < 30 אם המטופל אושפז מחדש תוך 30 יום, > 30 אם החולה אושפז מחדש לאחר 30 יום, או לא ללא תיעוד של אשפוז חוזר.

מערך הנתונים מכיל 50,000 שורות ו-15 עמודות. זה כולל מידע דמוגרפי על חולים יחד עם רישומי ביקוריהם בבית החולים ו readmitted בתור עמודת היעד. הטבלה הבאה מסכמת את פרטי העמודה.

שם עמודה תיאור
גזע_קווקזי ערכים: 0 עבור לא, 1 עבור כן
גזע_אפריקאי_אמריקאי ערכים: 0 עבור לא, 1 עבור כן
גזע_היספני ערכים: 0 עבור לא, 1 עבור כן
גזע_אסיה ערכים: 0 עבור לא, 1 עבור כן
גזע_אחר ערכים: 0 עבור לא, 1 עבור כן
גיל טווח גילאים 0-100
זמן בבית חולים מספר הימים בין הקבלה לשחרור
מספר נהלי מעבדה מספר בדיקות המעבדה שבוצעו במהלך המפגש
מספר תרופות מספר השמות הגנריים המובהקים שניהלו במהלך המפגש
מספר ביקורי חירום מספר ביקורי החירום של המטופל בשנה שקדמה למפגש
מספר ביקורי אשפוז מספר ביקורי האשפוז של המטופל בשנה שקדמה למפגש
מספר אבחנות מספר האבחונים שהוכנסו למערכת
החלפת תרופות מציין אם היה שינוי בתרופות לסוכרתיות (במינון או שם כללי); ערכים: 0 ו-1
תרופות לסוכרת מציין אם נרשמה תרופה כלשהי לסוכרת; ערכים: 0 ללא שינויים במרשם ו-1 עבור שינוי במרשם
התקבל מחדש ימים לאשפוז חוזר; ערכים: 30 אם המטופל אושפז מחדש תוך יותר מ-30 יום, ולא ללא תיעוד של אשפוז חוזר

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

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

להלן השלבים הנדרשים לתהליך הכשרת הטייס האוטומטי הזה מקצה לקצה:

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

שלבי צנרת של SageMaker

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

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

  1. An AWS למבדה הפונקציה מתחילה את עבודת האימון של הטייס האוטומטי.
  2. שלב התקשרות חוזר עוקב באופן רציף אחר מצב העבודה הזה.
  3. כאשר סטטוס עבודת ההדרכה הושלם, אנו משתמשים בעבודת עיבוד של SageMaker כדי להעריך את ביצועי המודל.
  4. לבסוף, אנו משתמשים בפונקציית Lambda נוספת כדי לרשום את מודל ה-ML ואת מדדי הביצועים לרישום המודל של SageMaker.

קבצי הנתונים נקראים מה- שירות אחסון פשוט של אמזון (Amazon S3) דלי ושלבי הצינור נקראים ברצף.

דיאגרמת אדריכלות של צינור SageMaker

דיאגרמת אדריכלות של צינור SageMaker

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

תנאים מוקדמים

עבור הדרכה זו, השלם את השלבים המוקדמים הבאים:

  1. הגדר חשבון AWS.
  2. צור סביבת סטודיו.
  3. צור שניים AWS זהות וניהול גישה (IAM) תפקידים: LambdaExecutionRole ו SageMakerExecutionRole, עם הרשאות כמתואר במחברת SageMaker. יש להקטין את המדיניות המנוהלת עוד יותר לשיפור האבטחה. להנחיות, עיין ב יצירת תפקיד להאצלת הרשאות למשתמש IAM.
  4. במסוף Studio, העלה את הקוד מה- GitHub ריפו.
  5. פתח את המחברת של SageMaker autopilot_pipelines_demo_notebook.ipynb ולהפעיל את התאים מתחת קבל מערך נתונים כדי להוריד את הנתונים ולהעלות אותם לדלי S3 שלך.
    1. הורד את הנתונים ופתח אותם לתיקיה בשם נתונים:
      !unzip -o data/data.zip -d data
      !mkdir data
      !wget https://static.us-east-1.prod.workshops.aws/public/d56bf7ad-9738-4edf-9be0-f03cd22d8cf2/static/resources/hcls/diabetic.zip -nc -O data/data.zip
      

    2. פצל את הנתונים לקובצי רכבת ובדיקה והעלה אותם ל-S3 שלך. קובץ ה-train-val מחולק אוטומטית למערכי נתונים של הדרכה ואימות על ידי טייס אוטומטי. קובץ הבדיקה מפוצל לשני קבצים נפרדים: קובץ אחד ללא עמודת היעד וקובץ אחר עם עמודת היעד בלבד.
      data = pd.read_csv(DATASET_PATH)
      train_val_data = data.sample(frac=0.8)
      test_data = data.drop(train_val_data.index)
      train_val_data.to_csv(train_val_dataset_s3_path.default_value, index=False, header=True)
      test_data.drop(target_attribute_name.default_value, axis=1).to_csv(
      x_test_s3_path.default_value, index=False, header=False
      )
      test_data[target_attribute_name.default_value].to_csv(
      y_test_s3_path.default_value, index=False, header=True)
      

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

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

בחלק זה, אנו מדריכים אותך בהגדרת ארבעת השלבים בצנרת.

התחל את עבודת הטייס האוטומטי

שלב צינור זה משתמש ב-a צעד למבדה, המריץ פונקציית Lambda ללא שרת. אנו משתמשים בצעד למבדה מכיוון שהקריאה ל-API לטייס אוטומטי היא קלת משקל. פונקציות Lambda הן ללא שרת ומתאימות היטב למשימה זו. למידע נוסף על שלבי Lambda, עיין ב השתמש בשלב של SageMaker Pipeline Lambda עבור פריסות מודל קל משקל. פונקציית Lambda ב- start_autopilot_job.py תסריט יוצר עבודת טייס אוטומטי.

אנו משתמשים בקריאה ל-API של Boto3 Autopilot create_auto_ml_job כדי לציין את תצורת עבודת הטייס האוטומטי, עם הפרמטרים הבאים:

  • AutoMLJobName – שם עבודת הטייס האוטומטי.
  • InputDataConfig – נתוני ההדרכה, מיקום הנתונים באמזון S3, וכן סוג נתונים S3 עם ערכים חוקיים כגון S3Prefix, ManifestFile, ו AugmentedManifestFile.
  • OutputDataConfig – נתיב הפלט S3 שבו מאוחסנים חפצים מעבודת AutoML.
  • סוג בעיה - סוג בעיה (MulticlassClassification למקרה השימוש שלנו).
  • AutoMLJobObjective - F1macro הוא שלנו מדד אובייקטיבי למקרה השימוש שלנו.
  • AutoMLJobConfig - מצב אימון מצוין כאן. אנו משתמשים בגרסה החדשה ששוחררה מצב אימון אנסמבל מופעל על ידי AutoGluon.

ראה את הקוד הבא:

def lambda_handler(event, context):
sagemaker_client.create_auto_ml_job(
AutoMLJobName=event["AutopilotJobName"],
InputDataConfig=[
{
"DataSource": {
"S3DataSource": {
"S3DataType": "S3Prefix",
"S3Uri": event["TrainValDatasetS3Path"],
}
},
"TargetAttributeName": event["TargetAttributeName"],
}
],
OutputDataConfig={"S3OutputPath": event["TrainingOutputS3Path"]},
ProblemType=event["ProblemType"],
AutoMLJobObjective={"MetricName": event["AutopilotObjectiveMetricName"]},
AutoMLJobConfig={
"CompletionCriteria": {
"MaxCandidates": event["MaxCandidates"],
"MaxRuntimePerTrainingJobInSeconds": event[
"MaxRuntimePerTrainingJobInSeconds"
],
"MaxAutoMLJobRuntimeInSeconds": event["MaxAutoMLJobRuntimeInSeconds"],
},
"Mode": event["AutopilotMode"],
},
RoleArn=event["AutopilotExecutionRoleArn"],
)

בדוק את מצב עבודת הטייס האוטומטי

A שלב התקשרות חוזרת עוזר לנו לעקוב אחר מצב עבודת ההדרכה של הטייס האוטומטי.

השלב עוקב שוב ושוב אחר מצב עבודת האימון על ידי שימוש בפונקציית Lambda נפרדת check_autopilot_job_status.py עד להשלמתו.

שלב ההתקשרות חוזר מציב אסימון ב- שירות תורים פשוט של אמזון תור (Amazon SQS) שמפעיל פונקציית Lambda כדי לבדוק את מצב עבודת ההדרכה:

  • אם העבודה עדיין פועלת, פונקציית Lambda מעלה חריגה וההודעה מועברת בחזרה לתור SQS
  • אם העבודה הושלמה, פונקציית Lambda שולחת הודעת הצלחה בחזרה אל Callback שלב והצינור ממשיך עם השלב הבא

אנו משתמשים בשילוב של a Callback צעד ופונקציית למדה. ישנה אפשרות חלופית להשתמש במשימת עיבוד של SageMaker במקום זאת.

הערך את דגם הטייס האוטומטי הטוב ביותר

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

כאשר עבודת ההמרה האצווה הושלמה, אנו מקבלים תחזיות פלט עבור ערכת הבדיקה. תחזיות הפלט מושוות לתוויות בפועל (האמת הקרקעית) באמצעות פונקציות מדדים של Scikit-learn. אנו מעריכים את התוצאות שלנו על סמך ה ציון F1, דיוק, ו זוכר. מדדי הביצועים נשמרים בקובץ JSON, שאליו יש הפניה בעת רישום המודל בשלב הבא.

רשום את דגם הטייס האוטומטי

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

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

העבר את דגמי Amazon SageMaker Autopilot ML מניסוי לייצור באמצעות Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.

אתה יכול להשתמש בדוח יכולת ההסבר ב- הסבר לשונית כדי להבין את התחזיות של הדגם שלך.

העבר את דגמי Amazon SageMaker Autopilot ML מניסוי לייצור באמצעות Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.

כדי להציג את הניסויים המופעלים עבור כל מודל שנוצר, נווט אל ניסויים וניסויים עמוד. בחר (לחץ לחיצה ימנית) באחד מהניסויים הרשומים ובחר תאר את עבודת AutoML לצפייה בלוח המובילים של הדגם.

העבר את דגמי Amazon SageMaker Autopilot ML מניסוי לייצור באמצעות Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.

כדי להציג את שלבי הצינור ב- ניסויים וניסויים עמוד, בחר (לחץ לחיצה ימנית) על הניסוי ובחר פתח את פרטי הצינור.

העבר את דגמי Amazon SageMaker Autopilot ML מניסוי לייצור באמצעות Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.

צור והפעל את הצינור

לאחר שהגדרנו את שלבי הצינור, נשלב אותם לכדי א צינור SageMaker. השלבים מופעלים ברצף. הצינור מריץ את כל השלבים עבור עבודת AutoML, תוך שימוש בטייס אוטומטי להדרכה, הערכת מודל ורישום מודל. ראה את הקוד הבא:

pipeline = Pipeline(
name="autopilot-demo-pipeline",
parameters=[
autopilot_job_name,
target_attribute_name,
train_val_dataset_s3_path,
x_test_s3_path,
y_test_s3_path,
max_autopilot_candidates,
max_autopilot_job_runtime,
max_autopilot_training_job_runtime,
instance_count,
instance_type,
model_approval_status,
],
steps=[
step_start_autopilot_job,
step_check_autopilot_job_status_callback,
step_autopilot_model_evaluation,
step_register_autopilot_model,
],
sagemaker_session=sagemaker_session,
)

פרוס את הדגם

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

שים לב שסקריפט זה משותף למטרות הדגמה, אך מומלץ לעקוב אחר צינור CI/CD חזק יותר לפריסת ייצור. למידע נוסף, עיין ב בנייה, אוטומציה, ניהול ושינוי גודל של תהליכי ML באמצעות Amazon SageMaker Pipelines.

סיכום

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

התחל על ידי גישה לקוד ב- GitHub ריפו לאמן ולפרוס דגמי AutoML מותאמים אישית משלך.

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


על הכותבים

העבר את דגמי Amazon SageMaker Autopilot ML מניסוי לייצור באמצעות Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.פייר דה מלארד הוא Full-Stack Data Scientist עבור AWS ונלהב לעזור ללקוחות לשפר את התוצאות העסקיות שלהם עם למידת מכונה. הוא בנה פתרונות AI/ML בכל מגזר הבריאות. הוא מחזיק במספר אישורי AWS. בזמנו הפנוי, פייר נהנה מסקי בשטח ודייג.

העבר את דגמי Amazon SageMaker Autopilot ML מניסוי לייצור באמצעות Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.פאואני דואה הוא מדען יישומי בארגון AWS AI. במעבדת פתרונות ML של אמזון, היא עובדת עם לקוחות כדי לפתור את הבעיות העסקיות שלהם באמצעות פתרונות ML. מחוץ לעבודה, היא נהנית לטייל, לקרוא ולאפות.

העבר את דגמי Amazon SageMaker Autopilot ML מניסוי לייצור באמצעות Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.מרסלו אברלה הוא מהנדס ML בארגון AWS AI. הוא מוביל את מאמצי MLOps במעבדת פתרונות ML של אמזון, ועוזר ללקוחות לעצב ולהטמיע מערכות ML ניתנות להרחבה. המשימה שלו היא להדריך לקוחות במסע ה-ML הארגוני שלהם ולהאיץ את דרכם ב-ML לייצור. הוא מעריץ של הטבע בקליפורניה ונהנה מטיולי הליכה ורכיבה על אופניים ברחבי סן פרנסיסקו.

בול זמן:

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