אפשר CI/CD של נקודות קצה מרובות אזורים של Amazon SageMaker PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.

אפשר CI/CD של נקודות קצה מרובי אזורים של Amazon SageMaker

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

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

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

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

SageMaker Projects פורס צינורות MLOPs להדרכה והן לפריסה; אתה יכול להשתמש באלה כדי לאמן מודל ולפרוס אותו באמצעות נקודת קצה של מסקנות. כדי להפחית את המורכבות והעלות של פתרון מרובה אזורים, אנו מניחים שאתה מאמן את המודל באזור אחד ותפרוס נקודות קצה של מסקנות בשני אזורים או יותר.

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

התבנית של SageMaker Projects פורסת אוטומטית פתרון MLOps עם תבנית דודית, הכוללת את הרכיבים הבאים:

  1. אמזון EventBridge צגים AWS CodeCommit מאגרים לשינויים ומתחיל ריצה של קוד צינור AWS אם מזוהה התחייבות קוד.
  2. אם יש שינוי בקוד, בניית קוד AWS מתזמר את הכשרת המודל באמצעות משרות הדרכה של SageMaker.
  3. לאחר סיום עבודת ההדרכה, ה רישום מודלים של SageMaker רושם ומקטלג את הדגם המאומן.
  4. כדי להתכונן לשלב הפריסה, CodeBuild מרחיב את ברירת המחדל AWS CloudFormation קבצי תצורת תבניות עם פרמטרים של דגם מאושר ממרשם המודלים.
  5. לבסוף, CodePipeline מריץ את תבניות CloudFormation כדי לפרוס את המודל המאושר לנקודות הקצה של הבמה וההפקה.

השלבים הנוספים הבאים משנים את תבנית MLOps Projects כדי לאפשר את פריסת מודל AI/ML באזור המשני:

  1. העתק של ה שירות אחסון פשוט של אמזון (Amazon S3) נדרש דלי באזור הראשי לאחסון חפצי מודל באזור המשני.
  2. תבנית CodePipeline מורחבת עם שלבים נוספים כדי להפעיל פריסה חוצה אזורים של המודל המאושר.
  3. כחלק מתהליך הפריסה חוצה אזורים, תבנית CodePipeline משתמשת בתבנית CloudFormation חדשה כדי לפרוס את נקודת הסיום באזור משני. תבנית CloudFormation פורסת את המודל מחפצי המודל מדלי העתק S3 שנוצר בשלב 6.

9-11 אופציונלי, צור משאבים ב כביש אמזון 53, שער API של אמזון, ו AWS למבדה כדי לנתב תעבורת יישומים לנקודות קצה מסקנות באזור המשני.

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

צור פרויקט SageMaker באזור הראשי שלך (us-east-2 בפוסט זה). השלם את השלבים ב בנייה, אוטומציה, ניהול ושינוי גודל של תהליכי ML באמצעות Amazon SageMaker Pipelines עד המדור שינוי קוד הדוגמה למקרה שימוש מותאם אישית.

עדכן את הצינור שלך ב-CodePipeline

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

  1. במסוף CodePipeline באזור הראשי שלך, מצא ובחר את הצינור המכיל את שם הפרויקט שלך ומסתיים בפריסה. צינור זה כבר נוצר עבורך על ידי SageMaker Projects. אתה משנה צינור זה כדי להוסיף שלבי פריסת נקודות קצה של AI/ML עבור האזור המשני.
  2. בחרו ערוך.
  3. בחרו הוסף שלב.
  4. בעד שם במה, להיכנס SecondaryRegionDeployment.
  5. בחרו הוסף שלב.
  6. ב SecondaryRegionDeployment שלב, לבחור הוסף קבוצת פעולה.בקבוצת פעולה זו, אתה מוסיף שלב אישור ידני לפריסת מודל באזור המשני.
  7. בעד שם פעולה, להיכנס ManualApprovaltoDeploytoSecondaryRegion.
  8. בעד ספק פעולה, בחר אישור ידני.
  9. השאר את כל ההגדרות האחרות בברירות המחדל שלהן ובחר בוצע.
  10. ב SecondaryRegionDeployment שלב, לבחור הוסף קבוצת פעולה (לאחר ManualApprovaltoDeploytoSecondaryRegion).בקבוצת פעולה זו, אתה מוסיף שלב פריסת AWS CloudFormation חוצה אזור. אתה מציין את השמות של חפצי בנייה שאתה יוצר מאוחר יותר בפוסט זה.
  11. בעד שם פעולה, להיכנס DeploytoSecondaryRegion.
  12. בעד ספק פעולה, בחר AWS Cloud Formation.
  13. בעד אזור, הזן את שם האזור המשני שלך (לדוגמה, us-west-2).
  14. בעד קלט חפצים, להיכנס BuildArtifact.
  15. בעד ActionMode, להיכנס CreateorUpdateStack.
  16. בעד שם מחסנית, להיכנס DeploytoSecondaryRegion.
  17. תַחַת תבנית, עבור שם חפץ, בחר BuildArtifact.
  18. תַחַת תבנית, עבור שם קובץ, להיכנס template-export-secondary-region.yml.
  19. מגדל השתמש בקובץ תצורה על.
  20. תַחַת תבנית, עבור שם חפץ, בחר BuildArtifact.
  21. תַחַת תבנית, עבור שם קובץ, להיכנס secondary-region-config-export.json.
  22. תַחַת יכולות, בחר CAPABILITY_NAMED_IAM.
  23. בעד תפקיד, בחר AmazonSageMakerServiceCatalogProductsUseRole נוצר על ידי SageMaker Projects.
  24. בחרו בוצע.
  25. בחרו שמור.
  26. אם שמור שינויים בצנרת מופיעה תיבת דו-שיח, בחר שמור שוב.

שנה את תפקיד IAM

אנחנו צריכים להוסיף הרשאות נוספות ל- AWS זהות וניהול גישה תפקיד (IAM) AmazonSageMakerServiceCatalogProductsUseRole נוצר על ידי קטלוג השירות של AWS כדי לאפשר גישה ל-CodePipeline ו-S3 עבור פריסה חוצה אזורים.

  1. במסוף IAM בחר תפקידים בחלונית הניווט.
  2. חפש ובחר AmazonSageMakerServiceCatalogProductsUseRole.
  3. בחר במדיניות IAM תחת שם מדיניות: AmazonSageMakerServiceCatalogProductsUseRole-XXXXXXXXX.
  4. בחרו ערוך מדיניות ולאחר מכן JSON.
  5. שנה את הרשאות AWS CloudFormation כדי לאפשר ל-CodePipeline לסנכרן את דלי S3 באזור המשני. אתה יכול להחליף את מדיניות IAM הקיימת במדיניות המעודכנת מהבאים GitHub ריפו (ראה שורות:16-18, 198, 213)
  6. בחרו מדיניות סקירה.
  7. בחרו שמור את השינויים.

הוסף את תבנית הפריסה עבור האזור המשני

כדי ליצור נקודת קצה של מסקנות באזור המשני, ה- SecondaryRegionDeployment שלב צריך תבנית CloudFormation (עבור endpoint-config-template-secondary-region.yml) וקובץ תצורה (secondary-region-config.json).

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

{
  "Parameters": {
    "StageName": "secondary-prod",
    "EndpointInstanceCount": "1",
    "EndpointInstanceType": "ml.m5.large",
    "SamplingPercentage": "100",
    "EnableDataCapture": "true"
  }

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

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

צילום מסך של קבצי תצורה

שנה את קובץ ה-Build Python

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

  • אחזר את המיקום של חפצי דגם ו מרשם מיכל אלסטי של אמזון (Amazon ECR) URI עבור תמונת הדגם באזור המשני
  • הכן קובץ פרמטרים המשמש להעברת הארגומנטים הספציפיים לדגם לתבנית CloudFormation הפורסת את המודל באזור המשני

אתה יכול להוריד את המעודכן build.py קובץ והחלף את הקיים בתיקייה שלך. בסטודיו, בחר סייר קבצים ולאחר מכן את התיקיה המכילה את שם הפרויקט שלך ומסתיימת ב modeldeploy. אתר את הקובץ build.py והחלף אותו בקובץ שהורדת.

תבנית CloudFormation משתמשת בחפצי המודל המאוחסנים בדלי S3 ובנתיב התמונה של Amazon ECR כדי לפרוס את נקודת הקצה של ההסקה באזור המשני. זה שונה מהפריסה ממרשם המודלים באזור הראשי, מכיוון שאינך צריך שיהיה לך רישום מודל באזור המשני.

צילום מסך של פרמטרים של סביבה ראשונית ומשנית

שנה את קובץ buildspec

buildspec.yml מכיל הוראות המופעלות על ידי CodeBuild. אנו משנים את הקובץ הזה כדי לבצע את הפעולות הבאות:

  • התקן את ספריית SageMaker Python הדרושה לתמיכה בהפעלת הקוד
  • עברו דרך הפרמטרים – אזור משני ופרמטרים ספציפיים לדגם build.py
  • הוסף את סנכרון התוכן של דלי S3 מהאזורים הראשיים למשניים
  • ייצא את התבנית המשנית של Region CloudFormation וקובץ הפרמטרים המשויך כחפצים של שלב CodeBuild

פתח את buildspec.yml קובץ מתיקיית פריסת המודל ובצע את השינויים המודגשים כפי שמוצג בצילום המסך הבא.

צילום מסך של קובץ build yaml

לחלופין, אתה יכול להוריד את הדברים הבאים buildspec.yml קובץ כדי להחליף את קובץ ברירת המחדל.

הוסף משתני סביבת CodeBuild

בשלב זה, אתה מוסיף פרמטרים של תצורה הנדרשים עבור CodeBuild כדי ליצור את קבצי התצורה של פריסת המודל באזור המשני.

  1. במסוף CodeBuild באזור הראשי, מצא את הפרויקט המכיל את שם הפרויקט שלך ומסתיים בפריסה. פרויקט זה כבר נוצר עבורך על ידי SageMaker Projects.

צילום מסך של צינור קוד

  1. בחר את הפרויקט ועל ערוך בתפריט, בחר סביבה.

צילום מסך של תצורות

  1. ב תצורה מתקדמת סעיף, בטל את הבחירה אפשר ל-AWS CodeBuild לשנות את תפקיד השירות הזה כדי שניתן יהיה להשתמש בו עם פרויקט הבנייה הזה.
  2. הוסף את משתני הסביבה הבאים, תוך הגדרת השמות של תבניות CloudFormation הנוספות, אזור משני ופרמטרים ספציפיים לדגם:
    1. EXPORT_TEMPLATE_NAME_SECONDARY_REGION - ל ערך, להיכנס template-export-secondary-region.yml ועבור סוּג, בחר טקסט רגיל.
    2. EXPORT_TEMPLATE_SECONDARY_REGION_CONFIG - ל ערך, להיכנס secondary-region-config-export.json ועבור סוּג, בחר טקסט רגיל.
    3. AWS_SECONDARY_REGION - ל ערך, הזן us-west-2 ועבור סוּג, בחר טקסט רגיל.
    4. מִסגֶרֶת - ל ערך, להיכנס xgboost (החלף עם המסגרת שלך) ועבור סוּג, בחר טקסט רגיל.
    5. MODEL_VERSION - ל ערך, הזן 1.0-1 (החלף בגרסת הדגם שלך) ועבור סוּג, בחר טקסט רגיל.
  3. העתק את הערך של ARTIFACT_BUCKET לתוך Notepad או עורך טקסט אחר. אתה צריך את הערך הזה בשלב הבא.
  4. בחרו עדכן את הסביבה.

אתה צריך את הערכים שציינת עבור אימון מודל FRAMEWORK ו MODEL_VERSION. לדוגמה, כדי למצוא את הערכים הללו עבור מודל Abalone המשמש בפריסת לוח הדוד של MLOps, פתח את Studio וב- סייר קבצים תפריט, פתח את התיקיה עם שם הפרויקט שלך וכלה ב-modelbuild. נווט אל pipelines/abalone ולפתוח את pipeline.py קוֹבֶץ. לחפש אחר sagemaker.image_uris.retrieve ולהעתיק את הערכים הרלוונטיים.

צילום מסך של ML framework

צור דלי העתק S3 באזור המשני

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

  1. במסוף S3 של אמזון בחר צור דלי.
  2. בעד שם הדלי, הזן את הערך של ARTEFACT_BUCKET הועתק בשלב הקודם והוסף -replica עד הסוף (לדוגמה, sagemaker-project-X-XXXXXXXX-replica.
  3. בעד אזור AWS, הזן את האזור המשני שלך (us-west-2).
  4. השאר את כל שאר הערכים בברירת המחדל שלהם ובחר צור דלי.

אישור מודל לפריסה

שלב הפריסה של הצינור מחייב להתחיל מודל מאושר. זה נדרש לפריסה באזור הראשי.

  1. בסטודיו (אזור ראשוני), בחר משאבי SageMaker בחלונית הניווט.
  2. בעד בחר את המשאב לתצוגה, בחר רישום דגמים.
  3. בחר את שם קבוצת הדגמים החל בשם הפרויקט שלך.
  4. בחלונית הימנית, בדוק את גרסת הדגם, השלב והסטטוס.
  5. אם המצב מופיע בהמתנה, בחר את גרסת הדגם ולאחר מכן בחר עדכן מצב.
  6. שנה סטטוס ל מאושר, ואז לבחור עדכן מצב.

פרוס ואמת את השינויים

כל השינויים הנדרשים לפריסה מרובת אזורים של נקודת הסיום של SageMaker שלך הושלמו כעת ותוכל להתחיל בתהליך הפריסה.

  1. בסטודיו, שמור את כל הקבצים שערכת, בחר Git, ובחר את המאגר המכיל את שם הפרויקט שלך ומסתיים בפריסה.
  2. בחר את סימן הפלוס כדי לבצע שינויים.
  3. תַחַת השתנה, להוסיף build.py ו buildspec.yml.
  4. תַחַת ללא מעקב, להוסיף endpoint-config-template-secondary-region.yml ו secondary-region-config.json.
  5. הכנס תגובה ב- <br> סיכום שדה ובחר לְבַצֵעַ.
  6. דחף את השינויים למאגר על ידי בחירה דחוף.

דחיפה של שינויים אלה למאגר CodeCommit מפעילה הפעלת צינור חדשה, מכיוון שאירוע EventBridge עוקב אחר commits שנדחפו. לאחר מספר רגעים, אתה יכול לעקוב אחר הריצה על ידי ניווט אל הצינור במסוף CodePipeline.

הקפד לספק אישור ידני לפריסה לייצור ולאזור המשני.

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

צילום מסך של לוח המחוונים של מייצר המרווה

הוסף שער API וכביש 53 (אופציונלי)

אתה יכול לחלופין לעקוב אחר ההוראות ב התקשר לנקודת קצה של מודל Amazon SageMaker באמצעות Amazon API Gateway ו-AWS Lambda לחשוף את נקודת הסיום של SageMaker באזור המשני כ-API באמצעות API Gateway ולמבדה.

לנקות את

כדי למחוק את פרויקט SageMaker, ראה מחק פרויקט MLOps באמצעות Amazon SageMaker Studio. כדי להבטיח שנקודת הסיום המשנית תושמד, עבור אל מסוף AWS CloudFormation ומחק את הערימות הקשורות באזורים הראשיים והמשניים שלך; זה הורס את נקודות הסיום של SageMaker.

סיכום

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

אנא ספר לנו את המשוב שלך בקטע ההערות.


על הכותבים

אפשר CI/CD של נקודות קצה מרובות אזורים של Amazon SageMaker PlatoBlockchain Data Intelligence. חיפוש אנכי. איי. מהראן נג'פי, דוקטורט, הוא ארכיטקט פתרונות בכיר עבור AWS המתמקד בפתרונות AI/ML ו-SaaS בקנה מידה.

אפשר CI/CD של נקודות קצה מרובות אזורים של Amazon SageMaker PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.סטיבן אליכין הוא ארכיטקט פתרונות בכיר עבור AWS המתמקד ב-MLOps בקנה מידה.

בול זמן:

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