צינורות SageMaker של אמזון הוא שירות אינטגרציה מתמשכת ואספקה מתמשכת (CI/CD) המיועד למקרי שימוש של למידת מכונה (ML). אתה יכול להשתמש בו כדי ליצור, לבצע אוטומציה ולנהל זרימות עבודה של ML מקצה לקצה. הוא מתמודד עם האתגר של תזמור כל שלב בתהליך ML, הדורש זמן, מאמץ ומשאבים. כדי להקל על השימוש בו, זמינות מספר תבניות שתוכל להתאים אישית לפי הצרכים שלך.
שירותי ניתוח תמונה ווידאו מנוהלים במלואם גם האיצו את האימוץ של פתרונות ראייה ממוחשבת. AWS מציעה שירות AWS AI מאומן מראש ומנוהל במלואו בשם אמזון שניתן לשלב ביישומי ראייה ממוחשבת באמצעות קריאות API ואינם דורשים ניסיון ב-ML. אתה רק צריך לספק תמונה ל אמזון זיהוי API והוא יכול לזהות את האובייקטים הנדרשים לפי תוויות מוגדרות מראש. אפשר גם לספק תוויות מותאמות אישית ספציפיות למקרה השימוש שלך ולבנות מודל ראייה ממוחשבת מותאם אישית עם מעט או ללא צורך תקורה במומחיות ML.
בפוסט זה, אנו מתייחסים לבעיית ראייה ממוחשבת ספציפית: סיווג נגעי עור, ומשתמשים ב-Pipelines על ידי התאמה אישית של תבנית קיימת והתאמתה למשימה זו. סיווג מדויק של נגעי העור יכול לסייע באבחון מוקדם של מחלות סרטן. עם זאת, מדובר במשימה מאתגרת בתחום הרפואי, מכיוון שיש דמיון גבוה בין סוגים שונים של נגעי עור. צינורות מאפשרים לנו לנצל את מגוון הדגמים והאלגוריתמים הקיימים, ולהקים צינור ייצור מקצה לקצה במינימום מאמץ וזמן.
סקירת פתרונות
בפוסט זה, אנו בונים צינור מקצה לקצה באמצעות Pipelines כדי לסווג תמונות דרמטוסקופיות של נגעי עור פיגמנטיים נפוצים. אנו משתמשים ב- סטודיו SageMaker של אמזון תבנית פרויקט תבנית MLOps לבניית, הכשרה ופריסת מודלים והקוד בהמשך מאגר GitHub. הארכיטקטורה המתקבלת מוצגת באיור הבא.
עבור צינור זה, אנו משתמשים במערך הנתונים של HAM10000 ("Human Against Machine with 10000 תמונות אימון"), המורכב מ-10,015 תמונות דרמטוסקופיות. המשימה העומדת על הפרק היא סיווג רב כיתתי בתחום הראייה הממוחשבת. מערך נתונים זה מתאר שש מקטגוריות האבחון החשובות ביותר בתחום הנגעים הפיגמנטיים: קרטוזות אקטיניות וקרצינומה תוך-אפיתלית או מחלת ביון (akiec
), קרצינומה של תאי בסיס (bcc
), נגעים דמויי קרטוזיס שפירים (לנטיגנים סולארים או קרטוזות סבוריאה וחזזית-פלנוס כמו קרטוזות, bkl
), דרמטופיברומה (df
), מלנומה (mel
), nevi מלנוציטי (nv
), ונגעים בכלי הדם (אנגיומות, אנגיוקרטימות, גרנולומות פיוגניות ודימום, vasc
).
עבור הפורמט של הקלט של המודל, אנו משתמשים ב- RecordIO
פוּרמָט. זהו פורמט קומפקטי המאחסן את נתוני התמונה יחד לקריאה רציפה ולכן אימון מהיר ויעיל יותר. בנוסף, אחד האתגרים בשימוש במערך הנתונים של HAM10000 הוא חוסר האיזון בכיתה. הטבלה הבאה ממחישה את התפלגות המעמדות.
כיתה | akiec | BCC | bkl | df | מל | nv | vasc |
מספר תמונות | 327 | 514 | 1099 | 115 | 1113 | 6705 | 142 |
סה"כ | 10015 |
כדי לטפל בבעיה זו, אנו מגדילים את מערך הנתונים באמצעות טרנספורמציות אקראיות (כגון חיתוך, היפוך, שיקוף וסיבוב) כך שכל המחלקות יהיו עם מספר זהה של תמונות בערך.
שלב עיבוד מקדים זה משתמש ב-MXNet וב-OpenCV, ולכן הוא משתמש בתמונת מיכל MXNet בנויה מראש. שאר התלות מותקנות באמצעות a requirements.txt
קוֹבֶץ. אם ברצונך ליצור ולהשתמש בתמונה מותאמת אישית, עיין ב צור פרוייקטים של Amazon SageMaker עם צינורות CI/CD לבניית תמונה.
עבור שלב ההדרכה, אנו משתמשים באומדן הזמין מתמונת Scikit Docker המובנית של SageMaker לסיווג תמונה ומגדירים את הפרמטרים כדלקמן:
לפרטים נוספים על תמונת המכולה, עיין ב אלגוריתם סיווג תמונות.
צור פרויקט סטודיו
להנחיות מפורטות כיצד להגדיר את Studio, עיין ב נכלל ב-Amazon SageMaker Domain באמצעות הגדרה מהירה. כדי ליצור את הפרויקט שלך, בצע את השלבים הבאים:
- בסטודיו, בחר את פרויקטים תפריט בתפריט משאבי SageMaker תפריט.
בדף הפרויקטים, אתה יכול להשיק תבנית SageMaker MLOps מוגדרת מראש. - לבחור תבנית MLOps לבניית מודלים, אימונים ופריסה.
- לבחור בחר תבנית פרויקט.
- הזן שם פרויקט ותיאור קצר.
- לבחור צור פרוייקט.
הפרויקט לוקח כמה דקות ליצור.
הכן את מערך הנתונים
כדי להכין את מערך הנתונים, בצע את השלבים הבאים:
- תיכנס לאתר הרווארד DataVerse.
- לבחור גישה למערך נתונים, ועיין ברישיון Creative Commons Attribution-NonCommercial 4.0 International Public License.
- אם אתה מקבל את הרישיון, בחר Zip בפורמט מקורי והורד את קובץ ה-ZIP.
- צור שירות אחסון פשוט של אמזון (Amazon S3) דלי ובחרו שם שמתחיל ב
sagemaker
(זה מאפשר ל-SageMaker לגשת לדלי ללא הרשאות נוספות). - אתה יכול לאפשר רישום גישה והצפנה עבור שיטות עבודה מומלצות לאבטחה.
- העלה
dataverse_files.zip
אל הדלי. - שמור את נתיב הדלי S3 לשימוש מאוחר יותר.
- רשום את שם הדלי שבו אחסנת את הנתונים, ואת שמות התיקיות הבאות, לשימוש מאוחר יותר.
היכונו לעיבוד מקדים של נתונים
מכיוון שאנו משתמשים ב-MXNet וב-OpenCV בשלב העיבוד המקדים שלנו, אנו משתמשים בתמונת MXNet Docker בנויה מראש ומתקינים את שאר התלות באמצעות requirements.txt
קוֹבֶץ. כדי לעשות זאת, עליך להעתיק אותו ולהדביק אותו תחתיו pipelines/skin
ב sagemaker--modelbuild
מאגר. בנוסף, הוסף את MANIFEST.in
קובץ באותה רמה כמו setup.py
, כדי לומר לפייתון לכלול את requirements.txt
קוֹבֶץ. למידע נוסף על MANIFEST.in, מתייחס כולל קבצים בהפצות מקור עם MANIFEST.in. ניתן למצוא את שני הקבצים ב- מאגר GitHub.
שנה את תבנית הצינורות
כדי לעדכן את תבנית הצינורות, בצע את השלבים הבאים:
- צור תיקיה בתוך דלי ברירת המחדל.
- ודא שלתפקיד הביצוע של Studio יש גישה לדלי ברירת המחדל וכן לדלי המכיל את מערך הנתונים.
- מרשימת הפרויקטים, בחר את הפרויקט שיצרת זה עתה.
- על מאגרים בכרטיסייה, בחר את ההיפר-קישורים לשכפול מקומי של AWS CodeCommit מאגרים למופע Studio המקומי שלך.
- נווט אל
pipelines
ספריה בתוךsagemaker--modelbuild
ספריה ושנה את שם הabalone
בספרייהskin
. - פתח את
codebuild-buildspec.yml
הקובץsagemaker--modelbuild
ספריה ושנה את נתיב צינור ההפעלה מrun-pipeline —module-name pipelines.abalone.pipeline
(שורה 15) לדברים הבאים: - שמור את הקובץ.
- החלף את הקבצים
pipelines.py
,preprocess.py
, ו- evaluate.py
בספריית הצינורות עם הקבצים מה- מאגר GitHub. - עדכן את
preprocess.py
קובץ (שורות 183-186) עם מיקום S3 (SKIN_CANCER_BUCKET
) ושם התיקיה (SKIN_CANCER_BUCKET_PATH
) שבו העלית את הdataverse_files.zip
ארכיון:skin_cancer_bucket=””
skin_cancer_bucket_path=””
skin_cancer_files=””
skin_cancer_files_ext=””
בדוגמה הקודמת, מערך הנתונים יאוחסן תחת s3://monai-bucket-skin-cancer/skin_cancer_bucket_prefix/dataverse_files.zip
.
הפעל הפעלת צינור
דחיפה של שינויים מחויבים למאגר CodeCommit (נעשה בכרטיסיית בקרת המקור של Studio) מפעילה הפעלת צינור חדש, מכיוון ש אמזון EventBridge מעקב אחר אירועים עבור התחייבויות. אנו יכולים לפקח על הריצה על ידי בחירת הצינור בתוך פרויקט SageMaker. צילום המסך הבא מציג דוגמה לצינור שרץ בהצלחה.
- כדי לבצע את השינויים, נווט לקטע Git בחלונית השמאלית.
- שלב את כל השינויים הרלוונטיים. אתה לא צריך לעקוב אחר ה
-checkpoint
קוֹבֶץ. אתה יכול להוסיף ערך ל-.gitignore
קובץ עם*checkpoint.*
להתעלם מהם. - בצע את השינויים על ידי מתן סיכום, כמו גם שמך וכתובת דוא"ל.
- דחף את השינויים.
- נווט חזרה אל הפרויקט ובחר את צינורות סָעִיף.
- אם תבחר את הצינורות בתהליך, השלבים של הצינור יופיעו.
זה מאפשר לך לעקוב אחר השלב שפועל כעת. ייתכן שיחלפו מספר דקות עד שהצינור יופיע. כדי שהצינור יתחיל לפעול, השלבים המוגדרים ב-CI/CDcodebuild-buildspec.yml
צריך לרוץ בהצלחה. כדי לבדוק את הסטטוס של שלבים אלה, אתה יכול להשתמש בניית קוד AWS. למידע נוסף, עיין ב AWS CodeBuild (AMS SSPS). - כאשר הצינור הושלם, חזור לדף הפרויקט ובחר את קבוצות דוגמניות לשונית כדי לבדוק את המטא נתונים המצורפים לחפצי המודל.
- אם הכל נראה טוב, בחר את עדכון מצב לשונית ולאשר את הדגם באופן ידני. ברירת המחדל
ModelApprovalStatus
מוגדרPendingManualApproval
. אם המודל שלנו דיוק יותר מ- 60%, הוא מתווסף לרישום הדגמים, אך לא נפרס עד לסיום האישור הידני. - נווט אל נקודות קצה דף במסוף SageMaker, שבו אתה יכול לראות נקודת קצה יצירתית. לאחר מספר דקות, נקודת הקצה מופיעה עם
InService
מעמד. - כדי לפרוס את נקודת הקצה לייצור, ב-
CodePipeline
מסוף, בחר אתsagemaker--modeldeploy
צינור שנמצא כעת בתהליך. - בסופו של
DeployStaging
בשלב, עליך לאשר ידנית את הפריסה.
לאחר שלב זה, תוכל לראות את נקודת הקצה של הייצור נפרסת ב- SageMaker נקודות קצה עמוד. לאחר זמן מה, נקודת הסיום מופיעה כ InService
.
לנקות את
אתה יכול לנקות בקלות את כל המשאבים שנוצרו על ידי פרויקט SageMaker.
- בחלונית הניווט בסטודיו, בחר משאבי SageMaker.
- לבחור פרויקטים מהתפריט הנפתח ובחר את הפרויקט שלך.
- על פעולות בתפריט, בחר מחק כדי למחוק את כל המשאבים הקשורים.
תוצאות והצעדים הבאים
השתמשנו בהצלחה ב-Pipelines כדי ליצור מסגרת MLOps מקצה לקצה לסיווג נגעי עור באמצעות מודל מובנה במערך הנתונים של HAM10000. עבור הפרמטרים שסופקו במאגר, השגנו את התוצאות הבאות על ערכת הבדיקות.
מטרי | דיוק | להיזכר | ציון F1 |
ערך | 0.643 | 0.8 | 0.713 |
אתה יכול לעבוד עוד על שיפור הביצועים של המודל על ידי כוונון עדין של הפרמטרים שלו, הוספת טרנספורמציות נוספות להגדלת נתונים, או שימוש בשיטות אחרות, כגון Synthetic Minority Oversampling Technique (SMOTE) או Generative Adversarial Networks (GANs). יתר על כן, אתה יכול להשתמש במודל או באלגוריתם משלך לאימון על ידי שימוש בתמונות SageMaker Docker מובנות או התאמת מיכל משלך לעבודה על SageMaker. לפרטים נוספים, עיין ב שימוש בקונטיינרים של Docker עם SageMaker.
אתה יכול גם להוסיף תכונות נוספות לצינור שלך. אם אתה רוצה לכלול ניטור, אתה יכול לבחור את תבנית MLOps לבניית מודלים, הדרכה, פריסה וניטור תבנית בעת יצירת פרויקט SageMaker. לארכיטקטורה המתקבלת יש שלב ניטור נוסף. או אם יש לך מאגר Git קיים של צד שלישי, אתה יכול להשתמש בו על ידי בחירה ב- תבנית MLOps לבניית מודלים, הדרכה ופריסה עם מאגרי Git של צד שלישי באמצעות Jenkins פרויקט ומתן מידע הן עבור בניית מודלים והן עבור מאגרי פריסת מודלים. זה מאפשר לך להשתמש בכל קוד קיים וחוסך לך כל זמן או מאמץ באינטגרציה בין SageMaker ו-Git. עם זאת, עבור אפשרות זו, א AWS CodeStar נדרש חיבור.
סיכום
בפוסט זה, הראינו כיצד ליצור זרימת עבודה ML מקצה לקצה באמצעות Studio ו-Pipelines אוטומטיים. זרימת העבודה כוללת קבלת מערך הנתונים, אחסונו במקום נגיש למודל ה-ML, הגדרת תמונת מיכל לעיבוד מקדים, ואז שינוי קוד ה-boilerplate כך שיתאים לתמונה כזו. לאחר מכן הראינו כיצד להפעיל את הצינור, את השלבים שהצינור עוקב אחריהם ואיך הם עובדים. דנו גם כיצד לנטר את ביצועי המודל ולפרוס את המודל לנקודת קצה.
ביצענו את רוב המשימות הללו בתוך Studio, שפועל כ-ML IDE מקיף, ומאיץ את הפיתוח והפריסה של מודלים כאלה.
פתרון זה אינו קשור למשימת סיווג העור. אתה יכול להרחיב אותו לכל משימת סיווג או רגרסיה באמצעות כל אחד מהאלגוריתמים המובנים של SageMaker או מודלים מאומנים מראש.
על המחברים
מרים כתירי הוא יועץ AI/ML ב-AWS Professional Services Globals והוא חלק מצוות הבריאות ומדעי החיים (HCLS). היא נלהבת לבנות פתרונות ML לבעיות שונות ותמיד להוטה לקפוץ על הזדמנויות ויוזמות חדשות. היא מתגוררת במינכן, גרמניה ורוצה לטייל ולגלות חלקים אחרים של העולם.
יאסין זעפורי הוא יועץ AI/ML בשירותים מקצועיים ב-AWS. הוא מאפשר ללקוחות ארגוניים גלובליים לבנות ולפרוס פתרונות AI/ML בענן כדי להתגבר על האתגרים העסקיים שלהם. בזמנו הפנוי הוא נהנה לשחק ולצפות בספורט ולטייל ברחבי העולם.
פוטינוס קיריאקידס הוא מהנדס AI/ML בשירותים מקצועיים ב-AWS. הוא נלהב מהשימוש בטכנולוגיה כדי לספק ערך ללקוחות ולהשיג תוצאות עסקיות. בסיס בלונדון, בזמנו הפנוי הוא נהנה לרוץ ולחקור.
אנה זפאישצ'יקובה היה יועץ ProServe ב-AI/ML וחבר ב- Amazon Healthcare TFC. היא נלהבת מהטכנולוגיה וההשפעה שהיא יכולה לעשות על שירותי הבריאות. הרקע שלה הוא בבניית MLOps ופתרונות המונעים בינה מלאכותית לבעיות לקוחות במגוון תחומים כמו ביטוח, רכב ושירותי בריאות.
- AI
- איי אמנות
- מחולל אמנות ai
- איי רובוט
- אמזון SageMaker
- בינה מלאכותית
- הסמכת בינה מלאכותית
- בינה מלאכותית בבנקאות
- רובוט בינה מלאכותית
- רובוטים של בינה מלאכותית
- תוכנת בינה מלאכותית
- למידת מכונות AWS
- blockchain
- blockchain conference ai
- קוינגניוס
- בינה מלאכותית של שיחה
- קריפטו כנס ai
- של דאל
- למידה עמוקה
- גוגל איי
- למידת מכונה
- אפלטון
- plato ai
- מודיעין אפלטון
- משחק אפלטון
- אפלטון נתונים
- פלטוגיימינג
- סולם ai
- תחביר
- זפירנט