בניית צינור MLOps מקצה לקצה לבדיקת איכות חזותית בקצה - חלק 1 | שירותי האינטרנט של אמזון

בניית צינור MLOps מקצה לקצה לבדיקת איכות חזותית בקצה - חלק 1 | שירותי האינטרנט של אמזון

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

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

פוסט זה מתמקד בתכנון ארכיטקטורת הצינור הכוללת של MLOps; חלק 2 ו חלק 3 מסדרה זו מתמקדים ביישום הרכיבים הבודדים. סיפקנו יישום לדוגמה בקובץ המצורף מאגר GitHub כדי שתנסה את עצמך. אם אתה רק התחלת עם MLOps בקצה ב-AWS, עיין ב MLOps בקצה עם Amazon SageMaker Edge Manager ו-AWS IoT Greengrass לסקירה כללית וארכיטקטורת התייחסות.

מקרה שימוש: בדיקת איכות תגי מתכת

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

תג מתכת עם שריטות

הגדרת ארכיטקטורת הצינור

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

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

מה זה אומר על ארכיטקטורת הצינורות שלנו?

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

שרבוט צינור MLOps

הבה נבחן את הארכיטקטורה הכוללת של צינור MLOps בפירוט:

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

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

ארכיטקטורת יעד

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

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

ארכיטקטורת צינור MLOps

בדומה לקודם, בואו נעבור על זרימת העבודה צעד אחר צעד ונזהה אילו שירותי AWS מתאימים לדרישות שלנו:

  1. שירות אחסון פשוט של אמזון (Amazon S3) משמש לאחסון נתוני תמונה גולמיים מכיוון שהוא מספק לנו פתרון אחסון בעלות נמוכה.
  2. זרימת העבודה של התיוג מתוכננת באמצעות פונקציות שלב AWS, מנוע זרימת עבודה ללא שרת המקל על תזמורת השלבים של זרימת העבודה של התיוג. כחלק מזרימת עבודה זו, אנו משתמשים האמת של אמזון SageMaker לאוטומציה מלאה של התיוג באמצעות עבודות תיוג וכוח אדם מנוהל. AWS למבדה משמש להכנת הנתונים, התחלת עבודות התיוג ואחסון התוויות חנות הפונקציות של אמזון SageMaker.
  3. SageMaker Feature Store מאחסן את התוויות. היא מאפשרת לנו לנהל ולשתף באופן מרכזי את התכונות שלנו ומספקת לנו יכולות מובנות של גירסאות נתונים, מה שהופך את הצינור שלנו לחזק יותר.
  4. אנו מתזמרים את בניית המודל ואת צינור ההדרכה באמצעות צינורות SageMaker של אמזון. הוא משתלב עם שאר התכונות של SageMaker הנדרשות באמצעות שלבים מובנים. משרות SageMaker Training משמשים לאוטומציה של אימון המודל, ו משרות SageMaker Processing משמשים להכנת הנתונים ולהערכת ביצועי המודל. בדוגמה זו, אנו משתמשים ב- Ultralytics YOLOv8 ארכיטקטורת חבילת Python וארכיטקטורת מודל לאימון וייצוא מודל זיהוי אובייקטים ל- אונקס פורמט דגם ML לניידות.
  5. אם הביצועים מקובלים, הדגם המאומן נרשם ב רישום הדגמים של אמזון SageMaker עם מספר גרסה מצטבר מצורף. הוא משמש כממשק שלנו בין שלבי הדרכה של המודל ושלבי פריסת הקצה. אנחנו גם מנהלים כאן את מצב האישור של דגמים. בדומה לשאר השירותים שבהם נעשה שימוש, הוא מנוהל במלואו, כך שאיננו צריכים לדאוג להפעלת התשתית שלנו.
  6. זרימת העבודה של פריסת הקצה מתבצעת אוטומטית באמצעות Step Functions, בדומה לזרימת העבודה של תיוג. אנו יכולים להשתמש באינטגרציות ה-API של Step Functions כדי לקרוא בקלות ל-API של שירות AWS השונים הנדרשים כמו AWS IoT Greengrass כדי ליצור רכיבי דגם חדשים ולאחר מכן לפרוס את הרכיבים למכשיר הקצה.
  7. AWS IoT Greengrass משמש כסביבת זמן הריצה של מכשיר הקצה. הוא מנהל את מחזור חיי הפריסה של המודל שלנו ורכיבי ההסקה בקצה. זה מאפשר לנו לפרוס בקלות גרסאות חדשות של המודל ורכיבי ההסקה שלנו באמצעות קריאות API פשוטות. בנוסף, דגמי ML בקצה בדרך כלל אינם פועלים בבידוד; אנחנו יכולים להשתמש במגוון AWS ו קהילה סיפק רכיבים של AWS IoT Greengrass כדי להתחבר לשירותים אחרים.

הארכיטקטורה המתוארת דומה לארכיטקטורה ברמה הגבוהה שלנו שהוצגה קודם לכן. Amazon S3, SageMaker Feature Store ו- SageMaker Model Registry משמשים כממשקים בין הצינורות השונים. כדי למזער את המאמץ להפעיל ולהפעיל את הפתרון, אנו משתמשים בשירותים מנוהלים וללא שרתים בכל מקום אפשרי.

מיזוג לתוך מערכת CI/CD חזקה

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

צינור CI/CD

בואו נעבור על ארכיטקטורת ה-CI/CD:

  1. AWS CodeCommit פועל כמאגר Git שלנו. למען הפשטות, בדוגמה שסיפקנו, הפרדנו את החלקים הנבדלים (תיוג, אימון מודלים, פריסת קצה) באמצעות תיקיות משנה במאגר git יחיד. בתרחיש אמיתי, כל צוות עשוי להשתמש במאגרים שונים עבור כל חלק.
  2. פריסת התשתית מתבצעת אוטומטית באמצעות AWS CDK וכל חלק (תיוג, הדרכה וקצה) מקבל אפליקציית AWS CDK משלו כדי לאפשר פריסות עצמאיות.
  3. תכונת הצינור של AWS CDK משתמשת קוד צינור AWS לאוטומציה של התשתית ופריסות הקוד.
  4. AWS CDK פורס שני צינורות קוד עבור כל שלב: צינור נכסים וצינור זרימת עבודה. הפרדנו את זרימת העבודה מפריסת הנכסים כדי לאפשר לנו להתחיל את זרימות העבודה בנפרד במקרה שאין שינויים בנכס (לדוגמה, כאשר יש תמונות חדשות זמינות להדרכה).
    • צינור קוד הנכס פורס את כל התשתית הנדרשת כדי שזרימת העבודה תפעל בהצלחה, כגון AWS זהות וניהול גישה תפקידים (IAM), פונקציות למבדה ותמונות מיכל המשמשות במהלך האימון.
    • צינור קוד זרימת העבודה מריץ את זרימת העבודה בפועל של תיוג, הדרכה או פריסת קצה.
  5. צינורות נכסים מופעלים אוטומטית בעת הביצוע וכן כאשר צינור זרימת עבודה קודם הושלם.
  6. כל התהליך מופעל על פי לוח זמנים באמצעות an אמזון EventBridge כלל להסבה מחדש סדירה.

עם שילוב CI/CD, כל השרשרת מקצה לקצה היא כעת אוטומטית לחלוטין. הצינור מופעל בכל פעם שקוד משתנה במאגר ה-git שלנו וכן בלוח זמנים שיתאים לשינויים בנתונים.

לחשוב קדימה

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

סיכום

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

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


על המחברים

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

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

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

בול זמן:

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