פריסת מודלים איכותיים ומאומנים של למידה חישובית (ML) לביצוע אצווה או מסקנות בזמן אמת היא חלק קריטי בהבאת ערך ללקוחות. עם זאת, תהליך הניסוי ב-ML יכול להיות מייגע - יש הרבה גישות שדורשות כמות משמעותית של זמן ליישום. זו הסיבה לכך שדגמי ML שהוכשרו מראש כמו אלה שסופקו ב- PyTorch Model Zoo כל כך מועילים. אמזון SageMaker מספק ממשק אחיד להתנסות בדגמי ML שונים, וגן החיות של PyTorch Model מאפשר לנו להחליף בקלות את הדגמים שלנו בצורה סטנדרטית.
פוסט זה בבלוג מדגים כיצד לבצע הסקת ML באמצעות מודל זיהוי אובייקטים מגן החיות של PyTorch Model בתוך SageMaker. דגמי ML מאומנים מראש מגן החיות של PyTorch Model הם מוכנים וניתן להשתמש בהם בקלות כחלק מיישומי ML. הגדרת דגמי ML אלה כנקודת קצה של SageMaker או טרנספורמציה אצווה של SageMaker עבודה להסקת מסקנות מקוונת או לא מקוונת היא קלה עם השלבים המתוארים בפוסט זה בבלוג. נשתמש ב- a R-CNN מהיר יותר מודל זיהוי אובייקטים לניבוי תיבות תוחמות עבור מחלקות אובייקט מוגדרות מראש.
אנו עוברים על דוגמה מקצה לקצה, מטעינת משקלי מודל זיהוי האובייקטים של Faster R-CNN ועד לשמירתם ל שירות אחסון פשוט של אמזון (Amazon S3) bucket, וכתיבת קובץ נקודת כניסה והבנת הפרמטרים המרכזיים ב- PyTorchModel API. לבסוף, נפרוס את מודל ה-ML, נבצע עליו הסקה באמצעות SageMaker Batch Transform, ונבדוק את פלט מודל ה-ML ונלמד כיצד לפרש את התוצאות. ניתן ליישם פתרון זה על כל דגם אחר שהוכשר מראש בגן החיות של PyTorch Model. לרשימה של דגמים זמינים, עיין ב- תיעוד PyTorch Model Zoo.
סקירת פתרונות
פוסט זה בבלוג יעבור על השלבים הבאים. לגרסת עבודה מלאה של כל השלבים, ראה create_pytorch_model_sagemaker.ipynb
- שלב 1: התקנה
- שלב 2: טעינת דגם ML מבית PyTorch Model Zoo
- שלב 3 שמור והעלה חפצים מדגם ML לאמזון S3
- שלב 4: בניית סקריפטים להסקת מודל ML
- שלב 5: השקת עבודת שינוי אצווה של SageMaker
- שלב 6: הדמיית תוצאות
תרשים אדריכלות
מבנה הספריות
ניתן למצוא את הקוד לבלוג זה מאגר GitHub. בסיס הקוד מכיל את כל מה שאנחנו צריכים כדי לבנות חפצי מודל ML, להפעיל את עבודת הטרנספורמציה ולהמחיש תוצאות.
זוהי זרימת העבודה בה אנו משתמשים. כל השלבים הבאים יתייחסו למודולים במבנה זה.
השמיים sagemaker_torch_model_zoo
התיקיה צריכה להכיל inference.py
כקובץ נקודת כניסה, ו-create_pytorch_model_sagemaker.ipynb כדי לטעון ולשמור את משקלי המודל, ליצור אובייקט מודל של SageMaker ולבסוף להעביר את זה לעבודת טרנספורמציה אצווה של SageMaker. על מנת להביא דגמי ML משלכם, שנה את הנתיבים בסעיף שלב 1: התקנה של המחברת וטען דגם חדש בשלב 2: טעינת דגם ML מקטע PyTorch Model Zoo. שאר השלבים הבאים להלן יישארו זהים.
שלב 1: התקנה
תפקידי IAM
SageMaker מבצעת פעולות על תשתית המנוהלת על ידי SageMaker. SageMaker יכול לבצע רק פעולות מותרות כפי שהוגדרו בתפקיד ביצוע IAM הנלווה למחברת עבור SageMaker. לתיעוד מפורט יותר על יצירת תפקידי IAM וניהול הרשאות IAM, עיין ב- תיעוד תפקידים של AWS SageMaker. אנחנו יכולים ליצור תפקיד חדש, או שנוכל לקבל את מחברת SageMaker (סטודיו).תפקיד הביצוע של ברירת המחדל על ידי הפעלת שורות הקוד הבאות:
הקוד לעיל מקבל את תפקיד הביצוע של SageMaker עבור מופע המחברת. זהו תפקיד IAM שיצרנו עבור מופע המחברת של SageMaker או SageMaker Studio.
פרמטרים הניתנים להגדרה על ידי המשתמש
להלן כל הפרמטרים הניתנים להגדרה הדרושים לבנייה והשקה של עבודת שינוי האצווה של SageMaker שלנו:
שלב 2: טעינת דגם ML מגן החיות של PyTorch Model
לאחר מכן, אנו מציינים מודל זיהוי אובייקטים מגן החיות של PyTorch Model ונשמור את משקלי מודל ה-ML שלו. בדרך כלל, אנו שומרים מודל PyTorch באמצעות סיומות הקובץ .pt או .pth. קטע הקוד למטה מוריד דגם Faster R-CNN ResNet50 ML מאומן מראש מגן החיות של PyTorch Model:
model = torchvision.models.detection.fasterrcnn_resnet50_fpn(pretrained=True)
טרנספורמציה אצווה של SageMaker דורשת כקלט כמה משקולות של דגם, לכן נשמור את מודל ה-ML שהוכשר מראש בתור model.pt. אם נרצה לטעון דגם מותאם אישית, נוכל לשמור את משקלי הדגם מדגם PyTorch אחר בתור model.pt במקום זאת.
שלב 3: שמור והעלה חפצים מדגם ML לאמזון S3
מכיוון שאנו נשתמש ב- SageMaker להסקת ML, עלינו להעלות את משקלי הדגם לדלי S3. אנו יכולים לעשות זאת באמצעות הפקודות הבאות או על ידי הורדה ופשוט גרירה ושחרור של הקובץ ישירות לתוך S3. הפקודות הבאות ידחסו תחילה את קבוצת הקבצים שבתוכה model.pt
ל-tarball ולהעתיק את משקולות הדגם מהמכונה המקומית שלנו לדלי S3.
הערות: כדי להפעיל את הפקודות הבאות, אתה צריך את ממשק שורת הפקודה AWS (AWS CLI) מותקן.
לאחר מכן, אנו מעתיקים את תמונת הקלט שלנו ל-S3. להלן נתיב S3 המלא לתמונה.
אנחנו יכולים להעתיק את התמונה הזו ל-S3 עם פקודת aws s3 cp אחרת.
שלב 4: בניית סקריפטים להסקת מודל ML
כעת נעבור על קובץ נקודות הכניסה שלנו, inference.py
מודול. אנו יכולים לפרוס מודל PyTorch מאומן מחוץ ל-SageMaker באמצעות מחלקה PyTorchModel. ראשית, אנו מציגים את האובייקט PyTorchModelZoo. לאחר מכן נבנה קובץ נקודת כניסה של inference.py כדי לבצע הסקת ML באמצעות טרנספורמציה אצווה של SageMaker על נתונים לדוגמה המתארחים ב-Amazon S3.
הבנת האובייקט PyTorchModel
השמיים PyTorchModel מחלקה בתוך SageMaker Python API מאפשרת לנו לבצע הסקת ML באמצעות חפץ המודל שהורדנו.
כדי להפעיל את המחלקה PyTorchModel, עלינו להבין את פרמטרי הקלט הבאים:
name
: שם המודל; אנו ממליצים להשתמש בשם הדגם + תאריך שעה, או מחרוזת אקראית + תאריך שעה לייחודיות.model_data
: URI S3 של חפץ דגם ML ארוז.entry_point
: קובץ Python המוגדר על ידי המשתמש שישמש את תמונת ההסקת Docker כדי להגדיר מטפלים לבקשות נכנסות. הקוד מגדיר טעינת מודל, עיבוד מקדים של קלט, לוגיקת חיזוי ועיבוד לאחר עיבוד פלט.framework_version
: יש להגדיר לגרסה 1.2 ומעלה כדי לאפשר אריזת דגמי PyTorch אוטומטית.source_dir
: הספרייה של קובץ entry_point.role
: תפקיד IAM להגשת בקשות שירות AWS.image_uri
: השתמש בתמונת המכולה הזו של Amazon ECR Docker כבסיס לסביבת המחשוב של מודל ML.sagemaker_session
: מושב SageMaker.py_version
: גרסת Python לשימוש
קטע הקוד הבא מציג את המחלקה PyTorchModel לביצוע הסקה באמצעות מודל PyTorch שהוכשר מראש:
הבנת קובץ נקודת הכניסה (inference.py)
הפרמטר entry_point מצביע על קובץ Python בשם inference.py
. נקודת כניסה זו מגדירה טעינת מודל, עיבוד מקדים של קלט, לוגיקה חיזוי ועיבוד לאחר עיבוד פלט. הוא משלים את קוד ההגשה של מודל ML ב-PyTorch המובנה מראש מיכל למידה עמוקה של SageMaker תמונה.
Inference.py
יכיל את הפונקציות הבאות. בדוגמה שלנו, אנו מיישמים את model_fn
, input_fn
, predict_fn
ו output_fn
פונקציות לעקוף את ברירת המחדל של מטפל בהסקת PyTorch.
model_fn
: לוקח ספרייה המכילה נקודות ביקורת של מודל סטטי בתמונת ההסקה. פותח וטוען את המודל מנתיב מוגדר ומחזיר מודל PyTorch.input_fn
: מקבל את המטען של הבקשה הנכנסת (request_body) וסוג התוכן של בקשה נכנסת (request_content_type) כקלט. מטפל בפענוח נתונים. יש להתאים את הפונקציה הזו לאיזה קלט המודל מצפה.predict_fn
: קורא למודל על נתונים שהוסרו בסידרה ב-input_fn. מבצע חיזוי על האובייקט המורד בסידריאל עם מודל ה-ML הנטען.output_fn
: מסדר את תוצאת החיזוי לסוג תוכן התגובה הרצוי. ממירה תחזיות המתקבלות מהפונקציה predict_fn לפורמטים JSON, CSV או NPY.
שלב 5: השקת עבודת שינוי אצווה של SageMaker
עבור דוגמה זו, נשיג תוצאות מסקנות ML באמצעות עבודת טרנספורמציה אצווה של SageMaker. עבודות טרנספורמציה באצווה הן שימושיות ביותר כאשר אנו רוצים לקבל מסקנות ממערכי נתונים פעם אחת, ללא צורך בנקודת קצה מתמשכת. אנו מייצרים א מרווה מייקר.שנאי.שנאי אובייקט ליצירה ואינטראקציה עם עבודות טרנספורמציה אצווה של SageMaker.
ראה את התיעוד ליצירת משימת שינוי אצווה בכתובת CreateTransformJob.
שלב 6: הדמיית תוצאות
לאחר שעבודת המרת האצווה של SageMaker תסתיים, נוכל לטעון את פלטי ההסקת ML מאמזון S3. לשם כך, נווט אל קונסולת הניהול של AWS וחפש את Amazon SageMaker. בחלונית השמאלית, מתחת הסקהראה עבודות שינוי אצווה.
לאחר בחירה הפיכת אצווה, ראה את דף האינטרנט המפרט את כל עבודות ההמרה באצוות של SageMaker. אנחנו יכולים לראות את ההתקדמות של ביצוע העבודה האחרונה שלנו.
ראשית, למשרה תהיה הסטטוס "InProgress". לאחר שזה יסתיים, ראה את שינוי הסטטוס ל'הושלם'.
לאחר שהסטטוס מסומן כמושלם, נוכל ללחוץ על העבודה כדי לראות את התוצאות. דף אינטרנט זה מכיל את סיכום העבודה, כולל תצורות של העבודה שזה עתה ביצענו.
תַחַת תצורת נתוני פלט, נראה נתיב פלט S3. כאן נמצא את פלט ה-ML שלנו.
בחר את נתיב הפלט S3 וראה קובץ [image_name].[file_type].out עם נתוני הפלט שלנו. קובץ הפלט שלנו יכיל רשימה של מיפויים. פלט לדוגמה:
לאחר מכן, אנו מעבדים את קובץ הפלט הזה ומדמיינים את התחזיות שלנו. להלן אנו מציינים את סף הביטחון שלנו. אנו מקבלים את רשימת השיעורים מה- מיפוי אובייקטים של מערך נתונים של COCO. במהלך ההסקה, המודל דורש רק את טנסור הקלט ומחזיר את התחזיות שעובדו לאחר עיבוד בתור List[Dict[Tensor]], אחת עבור כל תמונת קלט. השדות של ה-Dict הם כדלקמן, כאשר N הוא מספר הגילויים:
- תיבות (FloatTensor[N, 4]): התיבות החזויות ב
[x1, y1, x2, y2]
פורמט, עם0 <= x1 < x2 <= W and 0 <= y1 < y2 <= H
, שםW
הוא רוחב התמונה וH
הוא גובה התמונה - תוויות (
Int64Tensor[N]
): התוויות החזויות עבור כל זיהוי - ציונים (
Tensor[N]
): ציוני החיזוי עבור כל זיהוי
לפרטים נוספים על הפלט, עיין ב- PyTorch Faster R-CNN FPN תיעוד.
פלט הדגם מכיל תיבות תוחמות עם ציוני ביטחון בהתאמה. אנו יכולים לבצע אופטימיזציה של הצגת תוצאות כוזבות על ידי הסרת תיבות תוחמות שהמודל אינו בטוח בהן. קטעי הקוד הבאים מעבדים את התחזיות בקובץ הפלט ומשרטטים תיבות תוחמות בתחזיות שבהן הציון הוא מעל סף הביטחון שלנו. אנחנו קובעים את סף ההסתברות, CONF_THRESH
, ל-.75 עבור דוגמה זו.
לבסוף, אנו מדמיינים את המיפויים הללו כדי להבין את הפלט שלנו.
הערות: אם התמונה אינה מוצגת במחברת שלך, אנא אתר אותה בעץ הספריות בצד שמאל של JupyterLab ופתח אותה משם.
הפעלת הקוד לדוגמה
לקבלת דוגמה מלאה לעבודה, שכבו את הקוד ב- amazon-sagemaker-examples GitHub ולהפעיל את התאים ב- create_pytorch_model_sagemaker.ipynb
מחברת.
סיכום
בפוסט זה בבלוג, הצגנו דוגמה מקצה לקצה של ביצוע הסקת ML באמצעות מודל זיהוי אובייקטים מגן החיות של PyTorch Model באמצעות טרנספורמציה אצווה של SageMaker. כיסינו את טעינת המשקולות של מודל זיהוי האובייקטים של Faster R-CNN, שמירתם בדלי S3, כתיבת קובץ נקודת כניסה והבנת הפרמטרים המרכזיים ב- PyTorchModel API. לבסוף, פרסנו את המודל וביצענו הסקת מודל ML, דיזמנו את פלט המודל ולמדנו כיצד לפרש את התוצאות.
על הכותבים
דיפיקה חולר הוא מהנדס ML ב- מעבדת פתרונות אמזון ML. היא עוזרת ללקוחות לשלב פתרונות ML כדי לפתור את הבעיות העסקיות שלהם. לאחרונה היא בנתה צינורות הדרכה והסקת מסקנות ללקוחות מדיה ומודלים חזויים לשיווק.
מרסלו אברלה הוא מהנדס ML בארגון AWS AI. הוא מוביל את מאמצי MLOps ב- מעבדת פתרונות אמזון ML, עוזר ללקוחות לעצב ולהטמיע מערכות ML הניתנות להרחבה. המשימה שלו היא להדריך לקוחות במסע ה-ML הארגוני שלהם ולהאיץ את דרכם ב-ML לייצור.
נינאד קולקרני הוא מדען יישומי ב- מעבדת פתרונות אמזון ML. הוא עוזר ללקוחות לאמץ ML ו-AI על ידי בניית פתרונות לטיפול בבעיות העסקיות שלהם. לאחרונה, הוא בנה מודלים חזויים עבור לקוחות ספורט, רכב ומדיה.
יאש שאה הוא מנהל מדע ב- Amazon ML Solutions Lab. הוא וצוות המדענים היישומיים ומהנדסי ה-ML שלו עובדים על מגוון מקרי שימוש ב-ML מתחומי בריאות, ספורט, רכב וייצור.
- AI
- איי אמנות
- מחולל אמנות ai
- איי רובוט
- למידת מכונת אמזון
- מעבדת פתרונות אמזון ML
- אמזון SageMaker
- בינה מלאכותית
- הסמכת בינה מלאכותית
- בינה מלאכותית בבנקאות
- רובוט בינה מלאכותית
- רובוטים של בינה מלאכותית
- תוכנת בינה מלאכותית
- למידת מכונות AWS
- blockchain
- blockchain conference ai
- קוינגניוס
- בינה מלאכותית של שיחה
- קריפטו כנס ai
- של דאל
- למידה עמוקה
- גוגל איי
- למידת מכונה
- אפלטון
- plato ai
- מודיעין אפלטון
- משחק אפלטון
- אפלטון נתונים
- פלטוגיימינג
- סולם ai
- תחביר
- מדריך טכני
- זפירנט