פרוס פתרון לכידת נתונים של למידת מכונה ב-AWS Lambda PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.

פרוס פתרון לכידת נתונים של למידת מכונה ב-AWS Lambda

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

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

בדצמבר 2020 הציגה Lambda תמיכה בתמונות מיכל כפורמט אריזה. תכונה זו הגדילה את מגבלת גודל חבילת הפריסה מ-500 MB ל-10 GB. לפני השקת תכונה זו, אילוץ גודל החבילה הקשה על פריסת מסגרות ML כמו TensorFlow או PyTorch to Lambda. לאחר ההשקה, מגבלת גודל החבילה המוגדלת הפכה את ML לעומס עבודה בר-קיימא ואטרקטיבי לפריסה בלמבדה. בשנת 2021, הסקת ML הייתה אחד מסוגי עומס העבודה הגדלים במהירות הגבוהה ביותר בשירות Lambda.

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

סקירה כללית של הפיתרון

פרויקט זה מכיל קוד מקור וקבצים תומכים עבור יישום ללא שרת המספק הסקת מסקנות בזמן אמת באמצעות מודל מענה לשאלות מבוסס דיסטילברט. הפרויקט משתמש במודל של עיבוד שפה טבעית (NLP) של חיבוק שאלות ותשובות PyTorch לבצע משימות מסקנות בשפה טבעית. הפרויקט מכיל גם פתרון לביצוע לכידת נתוני מסקנות עבור תחזיות המודל. כותב הפונקציות למבדה יכול לקבוע בדיוק אילו נתונים מקלט בקשת ההסקה ותוצאת החיזוי לשלוח אל התוסף. בפתרון זה, אנו שולחים את הקלט והתשובה מהדגם אל הרחבה. לאחר מכן, ההרחבה שולחת מעת לעת את הנתונים ל- an שירות אחסון פשוט של אמזון דלי (Amazon S3). אנו בונים את תוסף לכידת הנתונים כתמונת מיכל באמצעות a makefile. לאחר מכן אנו בונים את פונקציית ההסקת Lambda כתמונת מיכל ומוסיפים את תמונת מיכל ההרחבה כשכבת תמונת מיכל. התרשים הבא מציג סקירה כללית של הארכיטקטורה.

הרחבות למבדה הן דרך להגדיל את פונקציות למבדה. בפרויקט זה, אנו משתמשים בתוסף למבדה חיצוני כדי לרשום את בקשת ההסקה ואת החיזוי מההסקת ההסקה. ההרחבה החיצונית פועלת כתהליך נפרד בסביבת זמן הריצה של Lambda, ומפחיתה את ההשפעה על פונקציית ההסקה. עם זאת, הפונקציה חולקת משאבים כגון CPU, זיכרון ואחסון עם פונקציית Lambda. אנו ממליצים להקצות מספיק זיכרון לפונקציית Lambda כדי להבטיח זמינות אופטימלית של משאבים. (בבדיקה שלנו, הקצנו 5 ג'יגה-בייט של זיכרון לפונקציית ה-Inference Lambda וראינו זמינות אופטימלית של משאבים והשהיית ההסקה). כאשר ההסקה הושלמה, שירות Lambda מחזיר את התגובה באופן מיידי ואינו ממתין עד שהסיומת תסיים את רישום הבקשה והתגובה ל-S3 bucket. עם דפוס זה, הרחבת הניטור אינה משפיעה על זמן ההסקה. למידע נוסף על הרחבות למבדה בדוק את סדרות הסרטונים האלה.

תוכן הפרויקט

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

אתה יכול להוריד את קוד המקור עבור פרויקט זה מ מאגר GitHub.

פרויקט זה כולל את הקבצים והתיקיות הבאים:

  • app/app.py – קוד לפונקציית Lambda של האפליקציה, כולל הקוד להסקת ML.
  • אפליקציה/Dockerfile – ה-Dockerfile לבניית תמונת המכולה שאורזת את פונקציית ההסקה, הדגם שהוורד מ-Hugging Face, והסיומת Lambda הבנויה כשכבה. בניגוד לפונקציות .zip, לא ניתן לחבר שכבות לפונקציות Lambda ארוזות במכולות בזמן יצירת הפונקציה. במקום זאת, אנו בונים את השכבה ומעתיקים את תוכנה לתמונת המכולה.
  • רחבות – קבצי הרחבות של צג הדגם. הרחבה זו של Lambda משמשת לתיעוד הקלט לפונקציית ההסקה והתחזית המתאימה לדלי S3.
  • אפליקציה/דגם – הדגם שהורד מ- Hugging Face.
  • app/requirements.txt – התלות של Python שיותקנו בקונטיינר.
  • אירועים - אירועי הזמנה שבהם אתה יכול להשתמש כדי לבדוק את הפונקציה.
  • template.yaml – קובץ מתאר המגדיר את משאבי ה-AWS של האפליקציה.

האפליקציה משתמשת במספר משאבי AWS, כולל פונקציות Lambda ו-an שער API של אמזון ממשק API. משאבים אלה מוגדרים ב- template.yaml קובץ בפרויקט זה. אתה יכול לעדכן את התבנית כדי להוסיף משאבי AWS באמצעות אותו תהליך פריסה שמעדכן את קוד היישום שלך.

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

לפריצת דרך זו, יהיו עליכם התנאים המוקדמים הבאים:

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

כדי לבנות את האפליקציה שלך בפעם הראשונה, בצע את השלבים הבאים:

  • הפעל את הקוד הבא במעטפת שלך. (זה יבנה גם את ההרחבה):
  • בנה תמונת Docker של אפליקציית צג הדגם. תוכן הבנייה נמצא ב- .aws-sam בספרייה
docker build -t serverless-ml-model-monitor:latest .

docker tag serverless-ml-model-monitor:latest .dkr.ecr.us-east-1.amazonaws.com/serverless-ml-model-monitor:latest

  • כניסה לאמזון ECR:
aws ecr get-login-password --region us-east-1 docker login --username AWS --password-stdin .dkr.ecr.us-east-1.amazonaws.com

  • צור מאגר באמזון ECR:

aws ecr create-repositoryrepository-name serverless-ml-model-monitor--image-scanning-configuration scanOnPush=true--region us-east-1

  • דחוף את תמונת המכולה לאמזון ECR:
docker push .dkr.ecr.us-east-1.amazonaws.com/serverless-ml-model-monitor:latest

  • בטל תגובה שורה מס' 1 ב אפליקציה/Dockerfile וערוך אותו כך שיצביע על תמונת מאגר ה-ECR הנכונה, ואז בטל את ההערה לשורות #6 ו- #7 ב אפליקציה/Dockerfile:
WORKDIR /opt
COPY --from=layer /opt/ .

  • בנה שוב את האפליקציה:

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

  • לבסוף, פרוס את פונקציית Lambda, שער API והרחבה:
sam deploy --guided

פקודה זו אורזת ופורסת את האפליקציה שלך ל-AWS עם סדרה של הנחיות:

  • שם ערימה : שם הפרוס AWS CloudFormation לַעֲרוֹם. זה צריך להיות ייחודי לחשבון ולאזור שלך, ונקודת התחלה טובה תהיה משהו שתואם את שם הפרויקט שלך.
  • אזור AWS : אזור ה-AWS שאליו אתה פורס את האפליקציה שלך.
  • אשר שינויים לפני הפריסה : אם מוגדר ל yes, כל ערכות השינוי מוצגות לך לפני ההפעלה לבדיקה ידנית. אם מוגדר לא, ה-AWS SAM CLI פורס אוטומטית שינויים באפליקציה.
  • אפשר יצירת תפקידים של AWS SAM CLI IAM : תבניות SAM רבות של AWS, כולל דוגמה זו, יוצרות AWS זהות וניהול גישה תפקידי (IAM) הנדרשים עבור פונקציות Lambda הכלולים כדי לגשת לשירותי AWS. כברירת מחדל, היקף אלה מצטמצם למינימום ההרשאות הנדרשות. כדי לפרוס מחסנית CloudFormation שיוצרת או משנה תפקידי IAM, ה CAPABILITY_IAM ערך עבור capabilities חייב להיות מסופק. אם לא ניתנת הרשאה דרך הנחיה זו, כדי לפרוס את הדוגמה הזו עליך לעבור במפורש --capabilities CAPABILITY_IAM אל ה sam deploy פקודה.
  • שמור ארגומנטים ב-samconfig.toml : אם מוגדר ל yes, הבחירות שלך נשמרות בקובץ תצורה בתוך הפרויקט כך שבעתיד תוכל פשוט להפעיל sam deploy ללא פרמטרים לפריסת שינויים באפליקציה שלך.

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

בדוק את היישום

כדי לבדוק את האפליקציה, השתמש ב-Postman או ב-Curl כדי לשלוח בקשה לנקודת הקצה של API Gateway. לדוגמה:

curl -X POST -H "Content-Type: text/plain" https://.execute-api.us-east-1.amazonaws.com/Prod/nlp-qa -d '{"question": "Where do you live?", "context": "My name is Clara and I live in Berkeley."}'

אתה אמור לראות פלט כמו הקוד הבא. מודל ה-ML הסיק מהקשר והחזיר את התשובה לשאלתנו.

{
    "Question": "Where do you live?",
    "Answer": "Berkeley",
    "score": 0.9113729596138
}

לאחר מספר דקות, אתה אמור לראות קובץ בדלי S3 nlp-qamodel-model-monitoring-modelmonitorbucket- עם הקלט והמסק מתועדים.

לנקות את

כדי למחוק את היישום לדוגמה שיצרת, השתמש ב-AWS CLI:

aws cloudformation delete-stack --stack-name 

סיכום

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

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


על הכותבים

פרוס פתרון לכידת נתונים של למידת מכונה ב-AWS Lambda PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.דן פוקס הוא אדריכל פתרונות מומחים ראשי בארגון המומחים העולמי לחסרי שרתים. דן עובד עם לקוחות כדי לעזור להם למנף שירותים ללא שרתים כדי לבנות יישומים ניתנים להרחבה, סובלני תקלות, בעלי ביצועים גבוהים וחסכוניים. דן אסיר תודה על היכולת לחיות ולעבוד בבולדר המקסימה, קולורדו.

פרוס פתרון לכידת נתונים של למידת מכונה ב-AWS Lambda PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.ניוטון ג'יין הוא מנהל מוצר בכיר האחראי על בניית חוויות חדשות עבור לקוחות למידת מכונה, מחשוב ביצועים גבוהים (HPC) ועיבוד מדיה ב-AWS Lambda. הוא מוביל את הפיתוח של יכולות חדשות להגברת הביצועים, הפחתת השהייה, שיפור מדרגיות, שיפור האמינות והפחתת עלויות. הוא גם מסייע ללקוחות AWS בהגדרת אסטרטגיה יעילה ללא שרת עבור היישומים עתירי המחשוב שלהם.

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

פרוס פתרון לכידת נתונים של למידת מכונה ב-AWS Lambda PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.וודה רמאן הוא ארכיטקט פתרונות מומחה בכיר ללמידת מכונה המבוסס במרילנד. Veda עובדת עם לקוחות כדי לעזור להם לבנות יישומי למידת מכונה יעילים, מאובטחים וניתנים להרחבה. Veda מעוניינת לעזור ללקוחות למנף טכנולוגיות ללא שרתים ללימוד מכונה.

פרוס פתרון לכידת נתונים של למידת מכונה ב-AWS Lambda PlatoBlockchain Data Intelligence. חיפוש אנכי. איי. ג'וש קאן הוא מוביל הטכנולוגיה העולמי לחסרי שרתים וארכיטקט פתרונות ראשי. הוא מוביל קהילה גלובלית של מומחים ללא שרתים ב-AWS שעוזרים ללקוחות בכל הגדלים, מסטארט-אפים ועד לארגונים הגדולים בעולם, להשתמש ביעילות בטכנולוגיות ללא שרתים של AWS.

בול זמן:

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