راه حلی برای طبقه‌بندی ضایعات پوستی بینایی کامپیوتری با استفاده از هوش داده‌های پلاتوبلاک چین Pipelines Amazon SageMaker بسازید. جستجوی عمودی Ai.

با استفاده از Amazon SageMaker Pipelines راه حلی برای طبقه بندی ضایعات پوستی بینایی کامپیوتری بسازید

خطوط لوله آمازون SageMaker یک سرویس یکپارچه سازی و تحویل مداوم (CI/CD) است که برای موارد استفاده از یادگیری ماشین (ML) طراحی شده است. می‌توانید از آن برای ایجاد، خودکارسازی و مدیریت گردش‌های کاری ML سرتاسر استفاده کنید. این چالش با هماهنگ کردن هر مرحله از فرآیند ML که به زمان، تلاش و منابع نیاز دارد، مقابله می کند. برای سهولت استفاده از آن، چندین قالب موجود است که می‌توانید با توجه به نیاز خود آن‌ها را سفارشی کنید.

خدمات تجزیه و تحلیل تصویر و ویدیو کاملاً مدیریت شده نیز پذیرش راه حل های بینایی رایانه را تسریع کرده است. AWS یک سرویس هوش مصنوعی AWS از پیش آموزش دیده و کاملاً مدیریت شده به نام ارائه می دهد شناسایی آمازون که می تواند با استفاده از فراخوانی های API در برنامه های بینایی کامپیوتر ادغام شود و نیازی به تجربه ML ندارد. شما فقط باید یک تصویر به آن ارائه دهید API شناسایی آمازون و می تواند اشیاء مورد نیاز را با توجه به برچسب های از پیش تعریف شده شناسایی کند. همچنین می‌توانید برچسب‌های سفارشی مخصوص مورد استفاده خود را تهیه کنید و یک مدل دید کامپیوتری سفارشی‌سازی کنید، بدون نیاز به تخصص ML.

در این پست، به یک مشکل خاص بینایی کامپیوتری می پردازیم: طبقه بندی ضایعات پوستی، و از Pipelines با سفارشی کردن یک الگوی موجود و متناسب کردن آن با این کار استفاده می کنیم. طبقه بندی دقیق ضایعات پوستی می تواند به تشخیص زودهنگام بیماری های سرطانی کمک کند. با این حال، این یک کار چالش برانگیز در زمینه پزشکی است، زیرا شباهت زیادی بین انواع مختلف ضایعات پوستی وجود دارد. خطوط لوله به ما این امکان را می دهد که از انواع مدل ها و الگوریتم های موجود بهره ببریم و یک خط لوله تولیدی انتها به انتها را با حداقل تلاش و زمان ایجاد کنیم.

بررسی اجمالی راه حل

در این پست، ما یک خط لوله سرتاسر با استفاده از Pipelines برای طبقه بندی تصاویر درماتوسکوپی ضایعات پوستی رایج رنگدانه می سازیم. ما استفاده می کنیم Amazon SageMaker Studio الگوی پروژه الگوی MLOps برای ساخت، آموزش و استقرار مدل ها و کد در ادامه مخزن GitHub. معماری حاصل در شکل زیر نشان داده شده است.

برای این خط لوله، ما از مجموعه داده HAM10000 ("انسان در برابر ماشین با 10000 تصویر آموزشی") استفاده می کنیم که از 10,015 تصویر درماتوسکوپی تشکیل شده است. وظیفه در دست یک طبقه بندی چند طبقه در زمینه بینایی کامپیوتر است. این مجموعه داده شش مورد از مهم‌ترین دسته‌های تشخیصی در حوزه ضایعات رنگدانه‌ای را به تصویر می‌کشد: کراتوزهای اکتینیک و کارسینوم داخل اپیتلیال یا بیماری بوون.akiecکارسینوم سلول بازال (bccضایعات خوش خیم کراتوز مانند (لنتیژین های خورشیدی یا کراتوزهای سبورئیک و کراتوزهای لیکن پلان، bklدرماتوفیبروما (dfملانوما (melخال های ملانوسیتیک (nvو ضایعات عروقی (آنژیوم، آنژیوکراتوم، گرانولوم پیوژنیک و خونریزی، vasc).

برای فرمت ورودی مدل از عبارت استفاده می کنیم RecordIO قالب این یک فرمت فشرده است که داده های تصویر را برای خواندن مداوم و در نتیجه آموزش سریعتر و کارآمدتر با هم ذخیره می کند. علاوه بر این، یکی از چالش های استفاده از مجموعه داده HAM10000 عدم تعادل کلاس است. جدول زیر توزیع کلاس را نشان می دهد.

طبقه akiec BCC بی سی df مل nv عروق
تعداد تصاویر 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)

برای جزئیات بیشتر در مورد تصویر ظرف، مراجعه کنید الگوریتم طبقه بندی تصاویر.

یک پروژه استودیو ایجاد کنید

برای دستورالعمل های دقیق در مورد نحوه راه اندازی استودیو، مراجعه کنید ورود به دامنه Amazon SageMaker با استفاده از راه اندازی سریع. برای ایجاد پروژه خود، مراحل زیر را انجام دهید:

  1. در استودیو، را انتخاب کنید پروژه ها منو در منابع SageMaker منو.
    راه حلی برای طبقه‌بندی ضایعات پوستی بینایی کامپیوتری با استفاده از هوش داده‌های پلاتوبلاک چین Pipelines Amazon SageMaker بسازید. جستجوی عمودی Ai.
    در صفحه پروژه ها، می توانید یک الگوی SageMaker MLOps از پیش پیکربندی شده را راه اندازی کنید.
  2. را انتخاب کنید الگوی MLOps برای ساخت مدل، آموزش و استقرار.
  3. را انتخاب کنید الگوی پروژه را انتخاب کنید.
    راه حلی برای طبقه‌بندی ضایعات پوستی بینایی کامپیوتری با استفاده از هوش داده‌های پلاتوبلاک چین Pipelines Amazon SageMaker بسازید. جستجوی عمودی Ai.
  4. نام پروژه و توضیحات کوتاه را وارد کنید.
  5. را انتخاب کنید ایجاد پروژه.

ایجاد پروژه چند دقیقه طول می کشد.

مجموعه داده را آماده کنید

برای تهیه مجموعه داده، مراحل زیر را انجام دهید:

  1. رفتن به هاروارد دیتا ورس.
  2. را انتخاب کنید دسترسی به مجموعه داده، و مجوز Creative Commons Attribution-NonCommercial 4.0 International Public License را بررسی کنید.
  3. اگر مجوز را قبول کردید، انتخاب کنید فرمت اصلی زیپ و فایل 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.

قالب Pipelines را تغییر دهید

برای به روز رسانی قالب Pipelines، مراحل زیر را انجام دهید:

  1. یک پوشه در داخل سطل پیش فرض ایجاد کنید.
  2. مطمئن شوید که نقش اجرای Studio به سطل پیش فرض و همچنین سطل حاوی مجموعه داده دسترسی دارد.
  3. از لیست پروژه ها، پروژه ای را که به تازگی ایجاد کرده اید انتخاب کنید.
  4. بر مخازن برگه، پیوندها را برای کلون کردن محلی انتخاب کنید AWS CodeCommit مخازن به نمونه استودیوی محلی شما.
    راه حلی برای طبقه‌بندی ضایعات پوستی بینایی کامپیوتری با استفاده از هوش داده‌های پلاتوبلاک چین Pipelines Amazon SageMaker بسازید. جستجوی عمودی Ai.
  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.
    راه حلی برای طبقه‌بندی ضایعات پوستی بینایی کامپیوتری با استفاده از هوش داده‌های پلاتوبلاک چین Pipelines Amazon SageMaker بسازید. جستجوی عمودی Ai.
  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.

راه حلی برای طبقه‌بندی ضایعات پوستی بینایی کامپیوتری با استفاده از هوش داده‌های پلاتوبلاک چین Pipelines Amazon SageMaker بسازید. جستجوی عمودی Ai.

راه اندازی یک خط لوله

فشار دادن تغییرات متعهد به مخزن CodeCommit (انجام شده در برگه کنترل منبع استودیو) باعث اجرای یک خط لوله جدید می شود، زیرا پل رویداد آمازون مانیتورهای رویداد برای commit ها ما می توانیم با انتخاب خط لوله در داخل پروژه SageMaker، اجرا را نظارت کنیم. تصویر زیر نمونه ای از خط لوله را نشان می دهد که با موفقیت اجرا شد.

راه حلی برای طبقه‌بندی ضایعات پوستی بینایی کامپیوتری با استفاده از هوش داده‌های پلاتوبلاک چین Pipelines Amazon SageMaker بسازید. جستجوی عمودی Ai.

  1. برای انجام تغییرات، به بخش Git در صفحه سمت چپ بروید.
  2. تمام تغییرات مربوطه را مرحله بندی کنید. شما نیازی به پیگیری آن ندارید -checkpoint فایل. شما می توانید یک ورودی به آن اضافه کنید .gitignore پرونده با *checkpoint.* برای نادیده گرفتن آنها
  3. تغییرات را با ارائه خلاصه و همچنین نام و آدرس ایمیل خود انجام دهید.
  4. تغییرات را فشار دهید.
  5. به پروژه برگردید و آن را انتخاب کنید خطوط لوله بخش.
  6. اگر خطوط لوله در حال انجام را انتخاب کنید، مراحل خط لوله ظاهر می شود.
    این به شما امکان می دهد مرحله ای را که در حال حاضر در حال اجرا است نظارت کنید. ممکن است چند دقیقه طول بکشد تا خط لوله ظاهر شود. برای شروع اجرای خط لوله، مراحل تعریف شده در CI/CD را انجام دهید codebuild-buildspec.yml باید با موفقیت اجرا شود برای بررسی وضعیت این مراحل می توانید استفاده کنید AWS CodeBuild. برای اطلاعات بیشتر مراجعه کنید AWS CodeBuild (AMS SSPS).
  7. وقتی خط لوله کامل شد، به صفحه پروژه برگردید و گزینه را انتخاب کنید گروه های مدل برگه برای بازرسی فراداده های پیوست شده به مصنوعات مدل.
  8. اگر همه چیز خوب به نظر می رسد، آن را انتخاب کنید وضعیت به روز رسانی را برگه و مدل را به صورت دستی تأیید کنید. پیش فرض ModelApprovalStatus تنظیم شده است PendingManualApproval. اگر دقت مدل ما بیش از 60 درصد باشد، به رجیستری مدل اضافه می‌شود، اما تا زمانی که تأیید دستی کامل نشود، مستقر نمی‌شود.
  9. حرکت به نقاط پایان صفحه در کنسول SageMaker، که در آن می توانید یک نقطه پایانی در حال ایجاد مرحله بندی را مشاهده کنید. پس از چند دقیقه، نقطه پایانی با InService وضعیت.
  10. برای استقرار نقطه پایانی در تولید، در CodePipeline کنسول، را انتخاب کنید sagemaker--modeldeploy خط لوله ای که در حال حاضر در حال انجام است.
  11. در پایان DeployStaging مرحله، شما باید به صورت دستی استقرار را تأیید کنید.

پس از این مرحله، می توانید نقطه پایانی تولید را در حال استقرار در SageMaker مشاهده کنید نقاط پایان صفحه پس از مدتی، نقطه پایانی به صورت نشان داده می شود InService.

راه حلی برای طبقه‌بندی ضایعات پوستی بینایی کامپیوتری با استفاده از هوش داده‌های پلاتوبلاک چین Pipelines Amazon SageMaker بسازید. جستجوی عمودی Ai.

پاک کردن

شما به راحتی می توانید تمام منابع ایجاد شده توسط پروژه SageMaker را پاکسازی کنید.

  1. در قسمت پیمایش در استودیو، را انتخاب کنید منابع SageMaker.
  2. را انتخاب کنید پروژه ها از منوی کشویی و پروژه خود را انتخاب کنید.
  3. بر اعمال منو ، انتخاب کنید حذف برای حذف تمام منابع مرتبط

راه حلی برای طبقه‌بندی ضایعات پوستی بینایی کامپیوتری با استفاده از هوش داده‌های پلاتوبلاک چین Pipelines Amazon SageMaker بسازید. جستجوی عمودی Ai.

نتایج و مراحل بعدی

ما با موفقیت از Pipelines برای ایجاد یک چارچوب MLOps سرتاسر برای طبقه بندی ضایعات پوستی با استفاده از یک مدل داخلی در مجموعه داده HAM10000 استفاده کردیم. برای پارامترهای ارائه شده در مخزن، نتایج زیر را در مجموعه تست به دست آوردیم.

متری دقت به یاد بیاورید امتیاز F1
ارزش 0.643 0.8 0.713

می‌توانید با تنظیم دقیق فراپارامترهای آن، افزودن تبدیل‌های بیشتر برای افزایش داده‌ها، یا استفاده از روش‌های دیگر، مانند روش نمونه‌برداری بیش از حد اقلیت مصنوعی (SMOTE) یا شبکه‌های متخاصم مولد (GAN) روی بهبود عملکرد مدل بیشتر کار کنید. علاوه بر این، می توانید با استفاده از تصاویر داخلی SageMaker Docker یا تطبیق ظرف خود برای کار بر روی SageMaker از مدل یا الگوریتم خود برای آموزش استفاده کنید. برای جزئیات بیشتر مراجعه کنید استفاده از ظروف Docker با SageMaker.

همچنین می توانید ویژگی های اضافی را به خط لوله خود اضافه کنید. اگر می‌خواهید نظارت را هم شامل شود، می‌توانید انتخاب کنید الگوی MLOps برای ساخت مدل، آموزش، استقرار و نظارت الگو هنگام ایجاد پروژه SageMaker. معماری حاصل یک مرحله نظارت اضافی دارد. یا اگر یک مخزن Git شخص ثالث دارید، می توانید با انتخاب آن از آن استفاده کنید قالب MLOps برای ساخت مدل، آموزش و استقرار با مخازن Git شخص ثالث با استفاده از Jenkins پروژه و ارائه اطلاعات برای هر دو مدل ساخت و مخازن استقرار مدل. این به شما امکان می دهد از هر کد موجود استفاده کنید و در هر زمان یا تلاشی برای ادغام بین SageMaker و Git صرفه جویی کنید. با این حال، برای این گزینه، الف AWS CodeStar اتصال مورد نیاز است.

نتیجه

در این پست نحوه ایجاد یک گردش کار ML با استفاده از Studio و Pipelines خودکار را نشان دادیم. گردش کار شامل دریافت مجموعه داده، ذخیره آن در مکانی قابل دسترس برای مدل ML، پیکربندی یک تصویر ظرف برای پیش پردازش، سپس تغییر کد دیگ بخار برای تطبیق با چنین تصویری است. سپس نحوه راه اندازی خط لوله، مراحلی که خط لوله دنبال می کند و نحوه کار آنها را نشان دادیم. ما همچنین نحوه نظارت بر عملکرد مدل و استقرار مدل را در نقطه پایانی مورد بحث قرار دادیم.

ما اکثر این وظایف را در استودیو انجام دادیم، که به عنوان یک ML IDE فراگیر عمل می کند و توسعه و استقرار چنین مدل هایی را سرعت می بخشد.

این راه حل به وظیفه طبقه بندی پوست محدود نمی شود. با استفاده از الگوریتم‌های داخلی SageMaker یا مدل‌های از پیش آموزش‌دیده شده، می‌توانید آن را به هر کار طبقه‌بندی یا رگرسیون گسترش دهید.


درباره نویسندگان

راه حلی برای طبقه‌بندی ضایعات پوستی بینایی کامپیوتری با استفاده از هوش داده‌های پلاتوبلاک چین Pipelines Amazon SageMaker بسازید. جستجوی عمودی Ai. مریم خثیری مشاور AI/ML در AWS Professional Services Globals و بخشی از تیم مراقبت های بهداشتی و علوم زندگی (HCLS) است. او مشتاق ایجاد راه حل های ML برای مشکلات مختلف است و همیشه مشتاق است تا از فرصت ها و ابتکارات جدید استفاده کند. او در مونیخ آلمان زندگی می کند و مشتاق سفر و کشف سایر نقاط جهان است.

راه حلی برای طبقه‌بندی ضایعات پوستی بینایی کامپیوتری با استفاده از هوش داده‌های پلاتوبلاک چین Pipelines Amazon SageMaker بسازید. جستجوی عمودی Ai.یاسین ظعفوری مشاور AI/ML در خدمات حرفه ای در AWS است. او مشتریان سازمانی جهانی را قادر می سازد تا راه حل های AI/ML را در فضای ابری بسازند و به کار گیرند تا بر چالش های تجاری خود غلبه کنند. او در اوقات فراغت خود از بازی و تماشای ورزش و سفر به دور دنیا لذت می برد.

راه حلی برای طبقه‌بندی ضایعات پوستی بینایی کامپیوتری با استفاده از هوش داده‌های پلاتوبلاک چین Pipelines Amazon SageMaker بسازید. جستجوی عمودی Ai.فوتینوس کیریاکیدس یک مهندس AI/ML در خدمات حرفه ای در AWS است. او مشتاق استفاده از فناوری برای ارائه ارزش به مشتریان و دستیابی به نتایج تجاری است. در پایگاه لندن، در اوقات فراغت خود از دویدن و کاوش لذت می برد.

راه حلی برای طبقه‌بندی ضایعات پوستی بینایی کامپیوتری با استفاده از هوش داده‌های پلاتوبلاک چین Pipelines Amazon SageMaker بسازید. جستجوی عمودی Ai.آنا زاپایشیکووا مشاور ProServe در AI/ML و عضو Amazon Healthcare TFC بود. او به فناوری و تأثیری که می تواند بر مراقبت های بهداشتی بگذارد علاقه دارد. پیشینه او در ساخت MLOps و راه حل های مبتنی بر هوش مصنوعی برای مشکلات مشتریان در حوزه های مختلف مانند بیمه، خودرو و مراقبت های بهداشتی است.

تمبر زمان:

بیشتر از آموزش ماشین AWS