אמזון 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 עם תבנית דודית, הכוללת את הרכיבים הבאים:
- אמזון EventBridge צגים AWS CodeCommit מאגרים לשינויים ומתחיל ריצה של קוד צינור AWS אם מזוהה התחייבות קוד.
- אם יש שינוי בקוד, בניית קוד AWS מתזמר את הכשרת המודל באמצעות משרות הדרכה של SageMaker.
- לאחר סיום עבודת ההדרכה, ה רישום מודלים של SageMaker רושם ומקטלג את הדגם המאומן.
- כדי להתכונן לשלב הפריסה, CodeBuild מרחיב את ברירת המחדל AWS CloudFormation קבצי תצורת תבניות עם פרמטרים של דגם מאושר ממרשם המודלים.
- לבסוף, CodePipeline מריץ את תבניות CloudFormation כדי לפרוס את המודל המאושר לנקודות הקצה של הבמה וההפקה.
השלבים הנוספים הבאים משנים את תבנית MLOps Projects כדי לאפשר את פריסת מודל AI/ML באזור המשני:
- העתק של ה שירות אחסון פשוט של אמזון (Amazon S3) נדרש דלי באזור הראשי לאחסון חפצי מודל באזור המשני.
- תבנית CodePipeline מורחבת עם שלבים נוספים כדי להפעיל פריסה חוצה אזורים של המודל המאושר.
- כחלק מתהליך הפריסה חוצה אזורים, תבנית CodePipeline משתמשת בתבנית CloudFormation חדשה כדי לפרוס את נקודת הסיום באזור משני. תבנית CloudFormation פורסת את המודל מחפצי המודל מדלי העתק S3 שנוצר בשלב 6.
9-11 אופציונלי, צור משאבים ב כביש אמזון 53, שער API של אמזון, ו AWS למבדה כדי לנתב תעבורת יישומים לנקודות קצה מסקנות באזור המשני.
תנאים מוקדמים
צור פרויקט SageMaker באזור הראשי שלך (us-east-2 בפוסט זה). השלם את השלבים ב בנייה, אוטומציה, ניהול ושינוי גודל של תהליכי ML באמצעות Amazon SageMaker Pipelines עד המדור שינוי קוד הדוגמה למקרה שימוש מותאם אישית.
עדכן את הצינור שלך ב-CodePipeline
בסעיף זה, אנו דנים כיצד להוסיף אישור ידני של CodePipeline ושלבי פריסת מודל חוצה אזורים לצינור הקיים שלך שנוצר עבורך על ידי SageMaker.
- במסוף CodePipeline באזור הראשי שלך, מצא ובחר את הצינור המכיל את שם הפרויקט שלך ומסתיים בפריסה. צינור זה כבר נוצר עבורך על ידי SageMaker Projects. אתה משנה צינור זה כדי להוסיף שלבי פריסת נקודות קצה של AI/ML עבור האזור המשני.
- בחרו ערוך.
- בחרו הוסף שלב.
- בעד שם במה, להיכנס
SecondaryRegionDeployment
. - בחרו הוסף שלב.
- ב
SecondaryRegionDeployment
שלב, לבחור הוסף קבוצת פעולה.בקבוצת פעולה זו, אתה מוסיף שלב אישור ידני לפריסת מודל באזור המשני. - בעד שם פעולה, להיכנס
ManualApprovaltoDeploytoSecondaryRegion
. - בעד ספק פעולה, בחר אישור ידני.
- השאר את כל ההגדרות האחרות בברירות המחדל שלהן ובחר בוצע.
- ב
SecondaryRegionDeployment
שלב, לבחור הוסף קבוצת פעולה (לאחרManualApprovaltoDeploytoSecondaryRegion
).בקבוצת פעולה זו, אתה מוסיף שלב פריסת AWS CloudFormation חוצה אזור. אתה מציין את השמות של חפצי בנייה שאתה יוצר מאוחר יותר בפוסט זה. - בעד שם פעולה, להיכנס
DeploytoSecondaryRegion
. - בעד ספק פעולה, בחר AWS Cloud Formation.
- בעד אזור, הזן את שם האזור המשני שלך (לדוגמה,
us-west-2
). - בעד קלט חפצים, להיכנס
BuildArtifact
. - בעד ActionMode, להיכנס
CreateorUpdateStack
. - בעד שם מחסנית, להיכנס
DeploytoSecondaryRegion
. - תַחַת תבנית, עבור שם חפץ, בחר
BuildArtifact
. - תַחַת תבנית, עבור שם קובץ, להיכנס
template-export-secondary-region.yml
. - מגדל השתמש בקובץ תצורה על.
- תַחַת תבנית, עבור שם חפץ, בחר
BuildArtifact
. - תַחַת תבנית, עבור שם קובץ, להיכנס
secondary-region-config-export.json
. - תַחַת יכולות, בחר
CAPABILITY_NAMED_IAM
. - בעד תפקיד, בחר
AmazonSageMakerServiceCatalogProductsUseRole
נוצר על ידי SageMaker Projects. - בחרו בוצע.
- בחרו שמור.
- אם שמור שינויים בצנרת מופיעה תיבת דו-שיח, בחר שמור שוב.
שנה את תפקיד IAM
אנחנו צריכים להוסיף הרשאות נוספות ל- AWS זהות וניהול גישה תפקיד (IAM) AmazonSageMakerServiceCatalogProductsUseRole
נוצר על ידי קטלוג השירות של AWS כדי לאפשר גישה ל-CodePipeline ו-S3 עבור פריסה חוצה אזורים.
- במסוף IAM בחר תפקידים בחלונית הניווט.
- חפש ובחר
AmazonSageMakerServiceCatalogProductsUseRole
. - בחר במדיניות IAM תחת שם מדיניות:
AmazonSageMakerServiceCatalogProductsUseRole-XXXXXXXXX
. - בחרו ערוך מדיניות ולאחר מכן JSON.
- שנה את הרשאות AWS CloudFormation כדי לאפשר ל-CodePipeline לסנכרן את דלי S3 באזור המשני. אתה יכול להחליף את מדיניות IAM הקיימת במדיניות המעודכנת מהבאים GitHub ריפו (ראה שורות:16-18, 198, 213)
- בחרו מדיניות סקירה.
- בחרו שמור את השינויים.
הוסף את תבנית הפריסה עבור האזור המשני
כדי ליצור נקודת קצה של מסקנות באזור המשני, ה- SecondaryRegionDeployment
שלב צריך תבנית CloudFormation (עבור endpoint-config-template-secondary-region.yml
) וקובץ תצורה (secondary-region-config.json
).
תבנית CloudFormation מוגדרת כולה באמצעות פרמטרים; אתה יכול לשנות אותו עוד יותר כדי להתאים לצרכים שלך. באופן דומה, אתה יכול להשתמש בקובץ התצורה כדי להגדיר את הפרמטרים עבור תצורת השקת נקודת הקצה, כגון סוג המופע וספירת המופעים:
כדי להוסיף קבצים אלה לפרויקט שלך, הורד אותם מהקישורים המסופקים והעלה אותם אל סטודיו 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
קובץ מתיקיית פריסת המודל ובצע את השינויים המודגשים כפי שמוצג בצילום המסך הבא.
לחלופין, אתה יכול להוריד את הדברים הבאים buildspec.yml
קובץ כדי להחליף את קובץ ברירת המחדל.
הוסף משתני סביבת CodeBuild
בשלב זה, אתה מוסיף פרמטרים של תצורה הנדרשים עבור CodeBuild כדי ליצור את קבצי התצורה של פריסת המודל באזור המשני.
- במסוף CodeBuild באזור הראשי, מצא את הפרויקט המכיל את שם הפרויקט שלך ומסתיים בפריסה. פרויקט זה כבר נוצר עבורך על ידי SageMaker Projects.
- בחר את הפרויקט ועל ערוך בתפריט, בחר סביבה.
- ב תצורה מתקדמת סעיף, בטל את הבחירה אפשר ל-AWS CodeBuild לשנות את תפקיד השירות הזה כדי שניתן יהיה להשתמש בו עם פרויקט הבנייה הזה.
- הוסף את משתני הסביבה הבאים, תוך הגדרת השמות של תבניות CloudFormation הנוספות, אזור משני ופרמטרים ספציפיים לדגם:
- EXPORT_TEMPLATE_NAME_SECONDARY_REGION - ל ערך, להיכנס
template-export-secondary-region.yml
ועבור סוּג, בחר טקסט רגיל. - EXPORT_TEMPLATE_SECONDARY_REGION_CONFIG - ל ערך, להיכנס
secondary-region-config-export.json
ועבור סוּג, בחר טקסט רגיל. - AWS_SECONDARY_REGION - ל ערך, הזן us-west-2 ועבור סוּג, בחר טקסט רגיל.
- מִסגֶרֶת - ל ערך, להיכנס
xgboost
(החלף עם המסגרת שלך) ועבור סוּג, בחר טקסט רגיל. - MODEL_VERSION - ל ערך, הזן 1.0-1 (החלף בגרסת הדגם שלך) ועבור סוּג, בחר טקסט רגיל.
- EXPORT_TEMPLATE_NAME_SECONDARY_REGION - ל ערך, להיכנס
- העתק את הערך של
ARTIFACT_BUCKET
לתוך Notepad או עורך טקסט אחר. אתה צריך את הערך הזה בשלב הבא. - בחרו עדכן את הסביבה.
אתה צריך את הערכים שציינת עבור אימון מודל FRAMEWORK
ו MODEL_VERSION
. לדוגמה, כדי למצוא את הערכים הללו עבור מודל Abalone המשמש בפריסת לוח הדוד של MLOps, פתח את Studio וב- סייר קבצים תפריט, פתח את התיקיה עם שם הפרויקט שלך וכלה ב-modelbuild. נווט אל pipelines/abalone
ולפתוח את pipeline.py
קוֹבֶץ. לחפש אחר sagemaker.image_uris.retrieve
ולהעתיק את הערכים הרלוונטיים.
צור דלי העתק S3 באזור המשני
אנחנו צריכים ליצור דלי S3 כדי להחזיק את חפצי הדגם באזור המשני. SageMaker משתמש בדלי הזה כדי לקבל את הגרסה העדכנית ביותר של הדגם כדי להעלות נקודת קצה של הסקה. אתה צריך לעשות זאת רק פעם אחת. CodeBuild מסנכרן אוטומטית את תוכן הדלי באזור הראשי עם דלי השכפול עם כל הפעלת צינור.
- במסוף S3 של אמזון בחר צור דלי.
- בעד שם הדלי, הזן את הערך של
ARTEFACT_BUCKET
הועתק בשלב הקודם והוסף-replica
עד הסוף (לדוגמה,sagemaker-project-X-XXXXXXXX-replica
. - בעד אזור AWS, הזן את האזור המשני שלך (
us-west-2
). - השאר את כל שאר הערכים בברירת המחדל שלהם ובחר צור דלי.
אישור מודל לפריסה
שלב הפריסה של הצינור מחייב להתחיל מודל מאושר. זה נדרש לפריסה באזור הראשי.
- בסטודיו (אזור ראשוני), בחר משאבי SageMaker בחלונית הניווט.
- בעד בחר את המשאב לתצוגה, בחר רישום דגמים.
- בחר את שם קבוצת הדגמים החל בשם הפרויקט שלך.
- בחלונית הימנית, בדוק את גרסת הדגם, השלב והסטטוס.
- אם המצב מופיע בהמתנה, בחר את גרסת הדגם ולאחר מכן בחר עדכן מצב.
- שנה סטטוס ל מאושר, ואז לבחור עדכן מצב.
פרוס ואמת את השינויים
כל השינויים הנדרשים לפריסה מרובת אזורים של נקודת הסיום של SageMaker שלך הושלמו כעת ותוכל להתחיל בתהליך הפריסה.
- בסטודיו, שמור את כל הקבצים שערכת, בחר Git, ובחר את המאגר המכיל את שם הפרויקט שלך ומסתיים בפריסה.
- בחר את סימן הפלוס כדי לבצע שינויים.
- תַחַת השתנה, להוסיף
build.py
וbuildspec.yml
. - תַחַת ללא מעקב, להוסיף
endpoint-config-template-secondary-region.yml
וsecondary-region-config.json
. - הכנס תגובה ב- <br> סיכום שדה ובחר לְבַצֵעַ.
- דחף את השינויים למאגר על ידי בחירה דחוף.
דחיפה של שינויים אלה למאגר 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 שלך באופן גלובלי.
אנא ספר לנו את המשוב שלך בקטע ההערות.
על הכותבים
מהראן נג'פי, דוקטורט, הוא ארכיטקט פתרונות בכיר עבור AWS המתמקד בפתרונות AI/ML ו-SaaS בקנה מידה.
סטיבן אליכין הוא ארכיטקט פתרונות בכיר עבור AWS המתמקד ב-MLOps בקנה מידה.
- מתקדם (300)
- AI
- איי אמנות
- מחולל אמנות ai
- איי רובוט
- אמזון SageMaker
- בינה מלאכותית
- הסמכת בינה מלאכותית
- בינה מלאכותית בבנקאות
- רובוט בינה מלאכותית
- רובוטים של בינה מלאכותית
- תוכנת בינה מלאכותית
- למידת מכונות AWS
- blockchain
- blockchain conference ai
- קוינגניוס
- בינה מלאכותית של שיחה
- קריפטו כנס ai
- של דאל
- למידה עמוקה
- גוגל איי
- רמות למידה
- למידת מכונה
- אפלטון
- plato ai
- מודיעין אפלטון
- משחק אפלטון
- אפלטון נתונים
- פלטוגיימינג
- סולם ai
- תחביר
- מדריך טכני
- זפירנט