MLOps בקצה עם Amazon SageMaker Edge Manager ו-AWS IoT Greengrass PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.

MLOps בקצה עם Amazon SageMaker Edge Manager ו-AWS IoT Greengrass

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

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

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

בפוסט זה, אתה לומד כיצד לענות על כל השאלות הללו ולבנות פתרון מקצה לקצה לאוטומציה של צינור ML@Edge שלך. אתה תראה איך להשתמש מנהל הקצה של אמזון SageMaker, סטודיו SageMaker של אמזון, ו AWS IoT Greengrass v2 ליצור סביבת MLOps (ML Operations) הממכנת את תהליך הבנייה והפריסה של מודלים של ML לציי גדול של התקני קצה.

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

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

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

פתרון זה מורכב מהחשבונות הבאים:

  • חשבון Data Lake - מהנדסי נתונים קולטים, מאחסנים ומכינים נתונים ממקורות נתונים מרובים, כולל מסדי נתונים מקומיים והתקני IoT.
  • חשבון כלי עבודה - מפעילי IT מנהלים ובודקים צינורות CI/CD לאספקה ​​רציפה אוטומטית ופריסה של חבילות מודל ML על פני חשבונות טרום הייצור והייצור עבור התקני קצה מרוחקים. ריצות של צינורות CI/CD אוטומטיות באמצעות שימוש ב אמזון EventBridge, שעוקבת אחר אירועי סטטוס שינוי של מודלים ויעדים של ML קוד צינור AWS.
  • חשבון ניסויים ופיתוח - מדעני נתונים יכולים לערוך מחקר ולהתנסות בטכניקות מודלים ואלגוריתמים מרובים כדי לפתור בעיות עסקיות המבוססות על ML, תוך יצירת פתרונות הוכחה לקונספט. מהנדסי ML ומדעני נתונים משתפים פעולה כדי להרחיב את הוכחת הרעיון, תוך יצירת זרימות עבודה אוטומטיות באמצעות צינורות SageMaker של אמזון להכין נתונים ולבנות, לאמן ולארוז מודלים של ML. פריסת הצינורות מונעת באמצעות צינורות CI/CD, בעוד שבקרת הגרסה של הדגמים מושגת באמצעות רישום דגמי אמזון SageMaker. מדעני נתונים מעריכים את המדדים של גרסאות דגמים מרובות ומבקשים לקדם את הדגם הטוב ביותר לייצור על ידי הפעלת צינור ה-CI/CD.
  • חשבון טרום ייצור – לפני קידום המודל לסביבת הייצור, יש לבדוק את המודל כדי להבטיח חוסן בסביבת סימולציה. לכן, סביבת הקדם-ייצור היא סימולטור של סביבת הייצור, בה נפרסות ונבדקות אוטומטית נקודות קצה של מודל SageMaker. שיטות מבחן עשויות לכלול מבחן אינטגרציה, מבחן מאמץ או מבחנים ספציפיים ל-ML על תוצאות מסקנות. במקרה זה, סביבת הייצור אינה נקודת קצה מדגם SageMaker אלא מכשיר קצה. כדי לדמות התקן קצה בקדם-ייצור, שתי גישות אפשריות: השתמש ב-an ענן מחשוב אלסטי של אמזון (Amazon EC2) מופע עם אותם מאפייני חומרה, או השתמש במצע בדיקה במעבדה המורכב מההתקנים בפועל. עם תשתית זו, צינור ה-CI/CD פורס את המודל לסימולטור המתאים ומבצע את הבדיקות המרובות באופן אוטומטי. לאחר שהבדיקות פועלות בהצלחה, צינור ה-CI/CD דורש אישור ידני (לדוגמה, מבעל העניין של IoT כדי לקדם את המודל לייצור).
  • חשבון ייצור - במקרה של אירוח המודל בענן AWS, צינור ה-CI/CD פורס נקודת קצה של מודל SageMaker בחשבון הייצור. במקרה זה, סביבת הייצור מורכבת ממספר ציים של התקני קצה. לכן, צינור ה-CI/CD משתמש ב-Edge Manager כדי לפרוס את הדגמים לצי המכשירים המקביל.
  • מכשירי Edge - התקני קצה מרוחקים הם התקני חומרה שיכולים להריץ דגמי ML באמצעות Edge Manager. זה מאפשר לאפליקציה במכשירים אלה לנהל את הדגמים, להפעיל מסקנות נגד הדגמים וללכוד נתונים בצורה מאובטחת לתוך שירות אחסון פשוט של אמזון (אמזון S3).

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

חשבון טרום-הפקה: תאום דיגיטלי

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

השירותים המעורבים הם כדלקמן:

  • ליבת IoT של AWS - אנו משתמשים ליבת IoT של AWS כדי ליצור אובייקטים של AWS IoT, ליצור צי מכשירים, לרשום את צי המכשירים כדי שיוכל לקיים אינטראקציה עם הענן, ליצור אישורי X.509 כדי לאמת מכשירי קצה ל-AWS IoT Core, לשייך את כינוי התפקיד ל-AWS IoT Core שנוצר כאשר הצי יצר, קבל נקודת קצה ספציפית לחשבון AWS עבור ספק האישורים, קבל קובץ רשמי של Amazon Root CA והעלה את קובץ Amazon CA לאמזון S3.
  • אמזון Sagemaker Neo - יוצר קשת ניאו מבצע אופטימיזציה אוטומטית של מודלים של למידת מכונה כדי שהמסק יפעל מהר יותר ללא אובדן דיוק. הוא תומך במודל למידת מכונה שכבר נבנה עם DarkNet, Keras, MXNet, PyTorch, TensorFlow, TensorFlow-Lite, ONNX או XGBoost ואומן באמזון SageMaker או בכל מקום אחר. לאחר מכן אתה בוחר את פלטפורמת החומרה היעד שלך, שיכולה להיות מופע אירוח של SageMaker או מכשיר קצה המבוסס על מעבדים של Ambarella, Apple, ARM, Intel, MediaTek, Nvidia, NXP, Qualcomm, RockChip, Texas Instruments או Xilinx.
  • מנהל הקצה - אנו משתמשים ב-Edge Manager כדי לרשום ולנהל את מכשיר הקצה בתוך ציי Sagemaker. ציים הם אוספים של מכשירים מקובצים באופן הגיוני שבהם אתה יכול להשתמש כדי לאסוף ולנתח נתונים. חוץ מזה, אריזת Edge Manager, אורזת את המודל הממוטב ויוצרת רכיב AWS IoT Greengrass V2 שניתן לפרוס ישירות. אתה יכול להשתמש ב-Edge Manager כדי להפעיל דגמי ML בצי של מצלמות חכמות, רמקולים חכמים, רובוטים וציי מכשירים אחרים של SageMaker.
  • AWS IoT Greengrass V2 - AWS IoT Greengrass מאפשר לך לפרוס רכיבים בהתקנים המדומים באמצעות מופע EC2. על ידי שימוש בסוכן AWS IoT Greengrass V2 במופעי EC2, נוכל לפשט את הגישה, הניהול והפריסה של הסוכן והמודל Edge Manager למכשירים. ללא AWS IoT Greengrass V2, הגדרת מכשירים וציים לשימוש ב-Edge Manager מחייבת אותך להעתיק ידנית את הסוכן מדלי שחרור של S3. עם שילוב AWS IoT Greengrass V2 ו-Edge Manager, אפשר להשתמש ברכיבי AWS IoT Greengrass V2. הרכיבים הם מודולי תוכנה מובנים מראש שיכולים לחבר התקני קצה לשירותי AWS או שירות צד שלישי באמצעות AWS IoT Greengrass.
  • סוכן מנהל הקצה – סוכן Edge Manager נפרס באמצעות AWS IoT Greengrass V2 במופע EC2. הסוכן יכול לטעון מספר דגמים בו זמנית ולהסיק מדגמים טעונים במכשירי קצה. מספר הדגמים שהסוכן יכול לטעון נקבע על פי הזיכרון הזמין במכשיר.
  • אמזון S3 - אנו משתמשים בדלי S3 כדי לאחסן את הנתונים שנלכדו מסוכן Edge Manager.

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

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

חשבון ייצור וסביבת קצה

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

ציי מכשירי Edge שייכים לחשבון הייצור של AWS. לחשבון זה יש תצורות אבטחה ורשת ספציפיות כדי לאפשר תקשורת בין מכשירי הענן לקצה. שירותי ה-AWS העיקריים שנפרסו בחשבון הייצור הם Edge Manager, שאחראי על ניהול כל ציי המכשירים, איסוף נתונים ותפעול מודלים של ML, ו-AWS IoT Core, שמנהלת אובייקטים, אישורים, כינוי תפקידים ונקודות קצה של IoT.

במקביל, עלינו להגדיר מכשיר קצה עם השירותים והרכיבים לניהול דגמי ML. המרכיבים העיקריים הם כדלקמן:

  • AWS IoT Greengrass V2
  • סוכן Edge Manager
  • תעודות IoT של AWS
  • Application.py, האחראי על תזמור תהליך ההסקה (שליפת מידע ממקור נתוני הקצה וביצוע הסקת הסקה באמצעות סוכן Edge Manager ומודל ML נטען)
  • חיבור ל-Amazon S3 או לחשבון אגם הנתונים לאחסון נתונים מוסקים

צינור ML אוטומטי

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

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

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

MLOps בקצה עם Amazon SageMaker Edge Manager ו-AWS IoT Greengrass PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.

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

השלבים להגדרת צינור ML לאפשר אימון רציף וניהול גרסאות של מודלים של ML הם כדלקמן:

  • עיבוד מוקדם - תהליך ניקוי הנתונים, הנדסת תכונות ויצירת מערכי נתונים לצורך אימון אלגוריתם ML
  • הדרכה – תהליך האימון של אלגוריתם ה-ML שפותח להפקת גרסה חדשה של חפץ מודל ה-ML
  • הערכה - תהליך ההערכה של מודל ה-ML שנוצר, לחילוץ מדדי מפתח הקשורים להתנהגות המודל על נתונים חדשים שלא נראו בשלב ההדרכה
  • הַרשָׁמָה - תהליך הגירסה של חפץ מודל ה-ML המאומן החדש על ידי קישור המדדים שחולצו עם החפץ שנוצר

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

הפעל צינורות CI/CD באמצעות EventBridge

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

MLOps בקצה עם Amazon SageMaker Edge Manager ו-AWS IoT Greengrass PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.

כלל זה עוקב אחר קבוצת חבילות המודל של SageMaker על ידי חיפוש עדכונים של חבילות המודל בסטטוס Approved or Rejected.

לאחר מכן, הכלל של EventBridge מוגדר לכוון CodePipeline, שמתחיל את זרימת העבודה של יצירת רכיב AWS IoT Greengrass חדש על ידי שימוש אמזון SageMaker Neo ו-Edge Manager.

בצע אופטימיזציה של מודלים של ML עבור ארכיטקטורת היעד

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

עיין בהמשך מחברה לדוגמא כיצד להרכיב מודל PyTorch Resnet18 באמצעות Neo.

בנה את חבילת הפריסה על ידי הכללת רכיב AWS IoT Greengrass

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

לאחר שתגדיר את הצי והידור של המודל, עליך להפעיל עבודת אריזה של Edge Manager, המכינה את המודל לפריסה לצי. אתה יכול להתחיל עבודת אריזה על ידי שימוש ב-Boto3 SDK. עבור הפרמטרים שלנו, אנו משתמשים במודל האופטימלי וב-metadata של המודל. על ידי הוספת הפרמטרים הבאים ל OutputConfig, העבודה מכינה גם רכיב AWS IoT Greengrass V2 עם הדגם:

  • PresetDeploymentType
  • PresetDeploymentConfig

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

import boto3
import time

SageMaker_client = boto3.client('SageMaker')

SageMaker_client.create_edge_packaging_job(
    EdgePackagingJobName="mlops-edge-packaging-{}".format(int(time.time()*1000)),
    CompilationJobName=compilation_job_name,
    ModelName="PytorchMLOpsEdgeModel",
    ModelVersion="1.0.0",
    RoleArn=role,
    OutputConfig={
        'S3OutputLocation': 's3://{}/model/'.format(bucket_name),
        "PresetDeploymentType": "GreengrassV2Component",
        "PresetDeploymentConfig": json.dumps(
            {"ComponentName": component_name, "ComponentVersion": component_version}
        ),
    }
)

פרוס דגמי ML בקצה בקנה מידה

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

  • מדיניות IAM – מדיניות זו מאפשרת הקצאה אוטומטית של מכשירים כאלה, המחוברים למשתמש או לתפקיד המבצע את ההקצאה. צריך להיות לו הרשאות כתיבה של IoT כדי ליצור את הדבר והקבוצה של IoT, כמו גם לצרף את המדיניות הדרושה למכשיר. למידע נוסף, עיין ב מדיניות IAM מינימלית עבור מתקין להקצאת משאבים.
  • תפקיד IAM - תפקיד זה מצורף לדברים ולקבוצות ה-IoT שאנו יוצרים. אתה יכול ליצור את התפקיד הזה בזמן ההקצאה עם הרשאות בסיסיות, אבל יהיו לו תכונות כמו גישה לאמזון S3 או שירות ניהול מפתח AWS (AWS KMS) שאולי יהיה צורך מאוחר יותר. אתה יכול ליצור את התפקיד הזה מראש ולהשתמש בו מחדש כאשר אנו מספקים את המכשיר. למידע נוסף, עיין ב מתן הרשאה למכשירי ליבה לקיים אינטראקציה עם AWS.

התקנה והקצאה של AWS IoT Greengrass

לאחר שהמדיניות והתפקיד של IAM ייקבעו, אנחנו מוכנים לעשות זאת התקן את תוכנת AWS IoT Greengrass Core עם הקצאת משאבים אוטומטית. למרות שניתן לספק את משאבי ה-IoT בעקבות השלבים הידניים, ישנו הליך נוח של הקצאה אוטומטית של משאבים אלו במהלך ההתקנה של גרעין AWS IoT Greengrass v2. זוהי האפשרות המועדפת להכניס במהירות מכשירים חדשים לפלטפורמה. חוץ מזה default-jdk, נדרשות התקנה של חבילות אחרות, כגון curl, unzip, ו python3.

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

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

אריזת רכיבי דגם ומסקנות

לאחר פיתוח הקוד שלנו, נוכל לפרוס גם את הקוד (להסקת מסקנות) וגם את דגמי ה-ML שלנו כרכיבים במכשירים שלנו.

לאחר הכשרה של מודל ה-ML ב- SageMaker, תוכל לבצע אופטימיזציה של המודל עם Neo באמצעות עבודת הידור של Sagemaker. לאחר מכן ניתן לארוז את חפצי המודל המלוכדים המתקבלים לתוך רכיב GreenGrass V2 באמצעות מארז Edge Manager. לאחר מכן, ניתן לרשום אותו כרכיב מותאם אישית ב- הרכיבים שלי סעיף על קונסולת AWS IoT Greengrass. רכיב זה כבר מכיל את הפקודות הנחוצות למחזור החיים להורדה ולפירוק של חפץ הדגם במכשיר שלנו, כך שקוד ההסקה יוכל לטעון אותו כדי לשלוח את התמונות שצולמו דרכו.

לגבי קוד ההסקה, עלינו ליצור רכיב באמצעות המסוף או ממשק שורת הפקודה של AWS (AWS CLI). ראשית, אנו אורזים את קוד ההסקת המקור שלנו והתלות הנדרשת לאמזון S3. לאחר שהעלינו את הקוד, נוכל ליצור את הרכיב שלנו באמצעות מתכון ב-.yaml או JSON כמו הדוגמה הבאה:

---
RecipeFormatVersion: 2020-01-25
ComponentName: dummymodel.inference
ComponentVersion: 0.0.1
ComponentDescription: Deploys inference code to a client
ComponentPublisher: Amazon Web Services, Inc.
ComponentDependencies:
  aws.GreenGrass.TokenExchangeService:
    VersionRequirement: '>=0.0.0'
    DependencyType: HARD
  dummymodel:
    VersionRequirement: '>=0.0.0'
    DependencyType: HARD
Manifests:
  - Platform:
      os: linux
      architecture: "*"
    Lifecycle:
      install: |-
        apt-get install python3-pip
        pip3 install numpy
        pip3 install sysv_ipc
        pip3 install boto3
        pip3 install grpcio-tools
        pip3 install grpcio
        pip3 install protobuf
        pip3 install SageMaker
        tar xf {artifacts:path}/sourcedir.tar.gz
      run:
        script: |-
          sleep 5 && sudo python3 {work:path}/inference.py 
    Artifacts:
      - URI: s3://BUCKET-NAME/path/to/inference/sourcedir.tar.gz
        Permission:
          Execute: OWNER

מתכון לדוגמה זה מציג את השם והתיאור של הרכיב שלנו, כמו גם את התנאים המוקדמים הנחוצים לפני פקודת ה-Run script שלנו. המתכון פורק את החפץ בסביבת תיקיית עבודה במכשיר, ואנחנו משתמשים בנתיב הזה כדי להריץ את קוד ההסקה שלנו. פקודת AWS CLI ליצירת מתכון כזה היא:

aws greengrassv2 create-component-version --region $REGION 
                                          --inline-recipe fileb://path/to/recipe.yaml

כעת אתה יכול לראות את הרכיב הזה שנוצר בקונסולת AWS IoT Greengrass.

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

לאחר שהמודל וקוד ההסקה שלנו הוגדרו כרכיבים, אנחנו מוכנים לפרוס אותם.

פרוס את האפליקציה והמודל באמצעות AWS IoT Greengrass

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

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

אנו יוצרים תצורת פריסה עם הרכיבים המותאמים אישית עבור המודל והקוד שיצרנו זה עתה. הגדרה זו מוגדרת בקובץ JSON המפרט את שם הפריסה והיעד, כמו גם את הרכיבים בפריסה. אנו יכולים להוסיף ולעדכן את פרמטרי התצורה של כל רכיב, כמו למשל בסוכן Edge Manager, שבו אנו מציינים את שם הצי והדלי.

{
    "targetArn": "targetArn",
    "deploymentName": "dummy-deployment",
    "components": {
        "aws.GreenGrass.Nucleus": {
            "version": "2.5.3",
        },
        "aws.GreenGrass.Cli": {
            "version": "2.5.3"
        },
        "aws.GreenGrass.SageMakerEdgeManager": {
            "version": 1.1.0,
            "configurationUpdate": {
                "merge": {
                "DeviceFleetName": "FLEET-NAME",
                "BucketName": "BUCKET-NAME-URI"
                }
            }
        },
        "dummymodel.inference": {
            "version": "0.0.1"
        },
        "dummymodel": {
            "version": "0.0.1"
        }
    }
}

ראוי לציין שהוספנו לא רק את הדגם, רכיבי ההסקה והסוכן, אלא גם את AWS IoT Greengrass CLI ואת הגרעין כרכיבים. הראשון יכול לסייע באיתור באגים בפריסות מסוימות באופן מקומי במכשיר. האחרון מתווסף לפריסה כדי להגדיר את הגישה הדרושה לרשת מהמכשיר עצמו במידת הצורך (לדוגמה, הגדרות פרוקסי), וגם במקרה שאתה רוצה לבצע שדרוג OTA של גרעין AWS IoT Greengrass v2. הגרעין אינו נפרס מכיוון שהוא מותקן במכשיר, ורק עדכון התצורה יוחל (אלא אם כן קיים שדרוג). כדי לפרוס, אנחנו פשוט צריכים להפעיל את הפקודה הבאה על התצורה הקודמת. זכור להגדיר את ה-ARN היעד עליו תוחל הפריסה (דבר IoT או קבוצת IoT). אנחנו יכולים גם לפרוס את הרכיבים האלה מהמסוף.

aws greengrassv2 create-deployment --region $REGION 
                                   --cli-input-json file://path/to/deployment.json

ניטור ונהל מודלים של ML הפרוסים עד הקצה

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

MLOps בקצה עם Amazon SageMaker Edge Manager ו-AWS IoT Greengrass PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.

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

MLOps בקצה עם Amazon SageMaker Edge Manager ו-AWS IoT Greengrass PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.

נתונים שנלכדו על ידי כל מכשיר דרך ה-Edge Agent נשלחים לדלי S3 בפורמט JSON lines (JSONL). תהליך שליחת הנתונים שנלכדו מנוהל מנקודת מבט של אפליקציה. לכן אתה חופשי להחליט אם לשלוח את הנתונים האלה, באיזו תדירות ובאיזה תדירות.

MLOps בקצה עם Amazon SageMaker Edge Manager ו-AWS IoT Greengrass PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.

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

סיכום

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

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


על המחברים

MLOps בקצה עם Amazon SageMaker Edge Manager ו-AWS IoT Greengrass PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.ברונו פיסטון הוא אדריכל פתרונות AI/ML מומחה ל-AWS שבסיסו במילאנו. הוא עובד עם לקוחות בכל סדר גודל כדי לעזור להם להבין לעומק את הצרכים הטכניים שלהם ולתכנן פתרונות בינה מלאכותית ו-Machine Learning המנצלים את המיטב של AWS Cloud ו-Amazon Machine Learning. תחום המומחיות שלו הם Machine Learning מקצה לקצה, Machine Learning Industrialization ו-MLOps. הוא נהנה לבלות עם חבריו ולחקור מקומות חדשים, כמו גם לנסוע ליעדים חדשים.

MLOps בקצה עם Amazon SageMaker Edge Manager ו-AWS IoT Greengrass PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.מתאו קלברזה הוא ארכיטקט מסירת לקוחות AI/ML בצוות השירותים המקצועיים של AWS. הוא עובד עם ארגונים גדולים ב-EMEA על פרויקטים של AI/ML, ועוזר להם להציע, לתכנן, לספק, להרחיב ולמטב את עומסי ייצור ה-ML. המומחיות העיקרית שלו הן תפעול ML (MLOps) ו- Machine Learning ב-Edge. המטרה שלו היא לקצר את הזמן שלהם להעריך ולהאיץ את התוצאות העסקיות על ידי מתן שיטות עבודה מומלצות של AWS. בזמנו הפנוי הוא אוהב לטייל ולטייל.

MLOps בקצה עם Amazon SageMaker Edge Manager ו-AWS IoT Greengrass PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.ראול דיאז גרסיה הוא Sr Data Scientist בצוות השירותים המקצועיים של AWS. הוא עובד עם לקוחות ארגוניים גדולים ברחבי EMEA, שם הוא עוזר להם לאפשר פתרונות הקשורים ל-Computer Vision ולמידת מכונה במרחב ה-IoT.

MLOps בקצה עם Amazon SageMaker Edge Manager ו-AWS IoT Greengrass PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.סוקראטיס קרטקיס הוא ארכיטקט פתרונות בכיר ללימוד מכונה עבור שירותי האינטרנט של אמזון. Sokratis מתמקדת במתן אפשרות ללקוחות ארגוניים לתעש את פתרונות ה-Machine Learning (ML) שלהם על ידי ניצול שירותי AWS ועיצוב מודל התפעול שלהם, כלומר בסיס MLOps, ומפת הדרכים של טרנספורמציה תוך מינוף שיטות הפיתוח הטובות ביותר. הוא השקיע 15+ שנים על המצאה, עיצוב, הובלה והטמעה של פתרונות ML ואינטרנט של הדברים (IoT) חדשניים ברמת ייצור מקצה לקצה בתחומי האנרגיה, הקמעונאות, הבריאות, הפיננסים/בנקאות, ספורט מוטורי וכו'. סוקראטיס אוהב לבלות את זמנו הפנוי עם משפחה וחברים, או לרכוב על אופנועים.

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

בול זמן:

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