בנו פתרון למסווג נגעי עור לראייה ממוחשבת באמצעות Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.

בנו פתרון למסווג נגעי עור לראייה ממוחשבת באמצעות Amazon SageMaker Pipelines

צינורות 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 לסיווג תמונה ומגדירים את הפרמטרים כדלקמן:

hyperparameters = {
        "num_layers": 18,
        "use_pretrained_model": 1,
        "augmentation_type": 'crop_color_transform',
        "image_shape": '3,224,224', 
        "num_classes": 7,
        "num_training_samples": 29311, 
        "mini_batch_size": 8,
        "epochs": 5, 
        "learning_rate": 0.00001,
        "precision_dtype": 'float32'
    }

    estimator_config = {
        "hyperparameters": hyperparameters,
        "image_uri": training_image,
        "role": role,
        "instance_count": 1,
        "instance_type": "ml.p3.2xlarge",
        "volume_size": 100,
        "max_run": 360000,
        "output_path": "s3://{bucket}/{base_job_prefix}/training_jobs",
    }
    
    image_classifier = sagemaker.estimator.Estimator(**estimator_config)

לפרטים נוספים על תמונת המכולה, עיין ב אלגוריתם סיווג תמונות.

צור פרויקט סטודיו

להנחיות מפורטות כיצד להגדיר את Studio, עיין ב נכלל ב-Amazon SageMaker Domain באמצעות הגדרה מהירה. כדי ליצור את הפרויקט שלך, בצע את השלבים הבאים:

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

הפרויקט לוקח כמה דקות ליצור.

הכן את מערך הנתונים

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

  1. תיכנס לאתר הרווארד DataVerse.
  2. לבחור גישה למערך נתונים, ועיין ברישיון Creative Commons Attribution-NonCommercial 4.0 International Public License.
  3. אם אתה מקבל את הרישיון, בחר Zip בפורמט מקורי והורד את קובץ ה-ZIP.
  4. צור שירות אחסון פשוט של אמזון (Amazon S3) דלי ובחרו שם שמתחיל ב sagemaker (זה מאפשר ל-SageMaker לגשת לדלי ללא הרשאות נוספות).
  5. אתה יכול לאפשר רישום גישה והצפנה עבור שיטות עבודה מומלצות לאבטחה.
  6. העלה dataverse_files.zip אל הדלי.
  7. שמור את נתיב הדלי S3 לשימוש מאוחר יותר.
  8. רשום את שם הדלי שבו אחסנת את הנתונים, ואת שמות התיקיות הבאות, לשימוש מאוחר יותר.

היכונו לעיבוד מקדים של נתונים

מכיוון שאנו משתמשים ב-MXNet וב-OpenCV בשלב העיבוד המקדים שלנו, אנו משתמשים בתמונת MXNet Docker בנויה מראש ומתקינים את שאר התלות באמצעות requirements.txt קוֹבֶץ. כדי לעשות זאת, עליך להעתיק אותו ולהדביק אותו תחתיו pipelines/skin ב sagemaker--modelbuild מאגר. בנוסף, הוסף את MANIFEST.in קובץ באותה רמה כמו setup.py, כדי לומר לפייתון לכלול את requirements.txt קוֹבֶץ. למידע נוסף על MANIFEST.in, מתייחס כולל קבצים בהפצות מקור עם MANIFEST.in. ניתן למצוא את שני הקבצים ב- מאגר GitHub.

שנה את תבנית הצינורות

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

  1. צור תיקיה בתוך דלי ברירת המחדל.
  2. ודא שלתפקיד הביצוע של Studio יש גישה לדלי ברירת המחדל וכן לדלי המכיל את מערך הנתונים.
  3. מרשימת הפרויקטים, בחר את הפרויקט שיצרת זה עתה.
  4. על מאגרים בכרטיסייה, בחר את ההיפר-קישורים לשכפול מקומי של AWS CodeCommit מאגרים למופע Studio המקומי שלך.
    בנו פתרון למסווג נגעי עור לראייה ממוחשבת באמצעות Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.
  5. נווט אל pipelines ספריה בתוך sagemaker--modelbuild ספריה ושנה את שם ה abalone בספרייה skin.
  6. פתח את codebuild-buildspec.yml הקובץ sagemaker--modelbuild ספריה ושנה את נתיב צינור ההפעלה מ run-pipeline —module-name pipelines.abalone.pipeline (שורה 15) לדברים הבאים:
    run-pipeline --module-name pipelines.skin.pipeline 

  7. שמור את הקובץ.
  8. החלף את הקבצים pipelines.py, preprocess.py, ו- evaluate.py בספריית הצינורות עם הקבצים מה- מאגר GitHub.
    בנו פתרון למסווג נגעי עור לראייה ממוחשבת באמצעות Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.
  9. עדכן את preprocess.py קובץ (שורות 183-186) עם מיקום S3 (SKIN_CANCER_BUCKET) ושם התיקיה (SKIN_CANCER_BUCKET_PATH) שבו העלית את ה dataverse_files.zip ארכיון:
    1. skin_cancer_bucket=””
    2. skin_cancer_bucket_path=””
    3. skin_cancer_files=””
    4. skin_cancer_files_ext=””

בדוגמה הקודמת, מערך הנתונים יאוחסן תחת s3://monai-bucket-skin-cancer/skin_cancer_bucket_prefix/dataverse_files.zip.

בנו פתרון למסווג נגעי עור לראייה ממוחשבת באמצעות Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.

הפעל הפעלת צינור

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

בנו פתרון למסווג נגעי עור לראייה ממוחשבת באמצעות Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.

  1. כדי לבצע את השינויים, נווט לקטע Git בחלונית השמאלית.
  2. שלב את כל השינויים הרלוונטיים. אתה לא צריך לעקוב אחר ה -checkpoint קוֹבֶץ. אתה יכול להוסיף ערך ל- .gitignore קובץ עם *checkpoint.* להתעלם מהם.
  3. בצע את השינויים על ידי מתן סיכום, כמו גם שמך וכתובת דוא"ל.
  4. דחף את השינויים.
  5. נווט חזרה אל הפרויקט ובחר את צינורות סָעִיף.
  6. אם תבחר את הצינורות בתהליך, השלבים של הצינור יופיעו.
    זה מאפשר לך לעקוב אחר השלב שפועל כעת. ייתכן שיחלפו מספר דקות עד שהצינור יופיע. כדי שהצינור יתחיל לפעול, השלבים המוגדרים ב-CI/CD codebuild-buildspec.yml צריך לרוץ בהצלחה. כדי לבדוק את הסטטוס של שלבים אלה, אתה יכול להשתמש בניית קוד AWS. למידע נוסף, עיין ב AWS CodeBuild (AMS SSPS).
  7. כאשר הצינור הושלם, חזור לדף הפרויקט ובחר את קבוצות דוגמניות לשונית כדי לבדוק את המטא נתונים המצורפים לחפצי המודל.
  8. אם הכל נראה טוב, בחר את עדכון מצב לשונית ולאשר את הדגם באופן ידני. ברירת המחדל ModelApprovalStatus מוגדר PendingManualApproval. אם המודל שלנו דיוק יותר מ- 60%, הוא מתווסף לרישום הדגמים, אך לא נפרס עד לסיום האישור הידני.
  9. נווט אל נקודות קצה דף במסוף SageMaker, שבו אתה יכול לראות נקודת קצה יצירתית. לאחר מספר דקות, נקודת הקצה מופיעה עם InService מעמד.
  10. כדי לפרוס את נקודת הקצה לייצור, ב- CodePipeline מסוף, בחר את sagemaker--modeldeploy צינור שנמצא כעת בתהליך.
  11. בסופו של DeployStaging בשלב, עליך לאשר ידנית את הפריסה.

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

בנו פתרון למסווג נגעי עור לראייה ממוחשבת באמצעות Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.

לנקות את

אתה יכול לנקות בקלות את כל המשאבים שנוצרו על ידי פרויקט SageMaker.

  1. בחלונית הניווט בסטודיו, בחר משאבי SageMaker.
  2. לבחור פרויקטים מהתפריט הנפתח ובחר את הפרויקט שלך.
  3. על פעולות בתפריט, בחר מחק כדי למחוק את כל המשאבים הקשורים.

בנו פתרון למסווג נגעי עור לראייה ממוחשבת באמצעות Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.

תוצאות והצעדים הבאים

השתמשנו בהצלחה ב-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 או מודלים מאומנים מראש.


על המחברים

בנו פתרון למסווג נגעי עור לראייה ממוחשבת באמצעות Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. חיפוש אנכי. איי. מרים כתירי הוא יועץ AI/ML ב-AWS Professional Services Globals והוא חלק מצוות הבריאות ומדעי החיים (HCLS). היא נלהבת לבנות פתרונות ML לבעיות שונות ותמיד להוטה לקפוץ על הזדמנויות ויוזמות חדשות. היא מתגוררת במינכן, גרמניה ורוצה לטייל ולגלות חלקים אחרים של העולם.

בנו פתרון למסווג נגעי עור לראייה ממוחשבת באמצעות Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.יאסין זעפורי הוא יועץ AI/ML בשירותים מקצועיים ב-AWS. הוא מאפשר ללקוחות ארגוניים גלובליים לבנות ולפרוס פתרונות AI/ML בענן כדי להתגבר על האתגרים העסקיים שלהם. בזמנו הפנוי הוא נהנה לשחק ולצפות בספורט ולטייל ברחבי העולם.

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

בנו פתרון למסווג נגעי עור לראייה ממוחשבת באמצעות Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.אנה זפאישצ'יקובה היה יועץ ProServe ב-AI/ML וחבר ב- Amazon Healthcare TFC. היא נלהבת מהטכנולוגיה וההשפעה שהיא יכולה לעשות על שירותי הבריאות. הרקע שלה הוא בבניית MLOps ופתרונות המונעים בינה מלאכותית לבעיות לקוחות במגוון תחומים כמו ביטוח, רכב ושירותי בריאות.

בול זמן:

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