خطوط لوله آمازون 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 برای طبقه بندی تصاویر استفاده می کنیم و پارامترها را به صورت زیر تنظیم می کنیم:
برای جزئیات بیشتر در مورد تصویر ظرف، مراجعه کنید الگوریتم طبقه بندی تصاویر.
یک پروژه استودیو ایجاد کنید
برای دستورالعمل های دقیق در مورد نحوه راه اندازی استودیو، مراجعه کنید ورود به دامنه Amazon SageMaker با استفاده از راه اندازی سریع. برای ایجاد پروژه خود، مراحل زیر را انجام دهید:
- در استودیو، را انتخاب کنید پروژه ها منو در منابع SageMaker منو.
در صفحه پروژه ها، می توانید یک الگوی SageMaker MLOps از پیش پیکربندی شده را راه اندازی کنید. - را انتخاب کنید الگوی MLOps برای ساخت مدل، آموزش و استقرار.
- را انتخاب کنید الگوی پروژه را انتخاب کنید.
- نام پروژه و توضیحات کوتاه را وارد کنید.
- را انتخاب کنید ایجاد پروژه.
ایجاد پروژه چند دقیقه طول می کشد.
مجموعه داده را آماده کنید
برای تهیه مجموعه داده، مراحل زیر را انجام دهید:
- رفتن به هاروارد دیتا ورس.
- را انتخاب کنید دسترسی به مجموعه داده، و مجوز Creative Commons Attribution-NonCommercial 4.0 International Public License را بررسی کنید.
- اگر مجوز را قبول کردید، انتخاب کنید فرمت اصلی زیپ و فایل 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.
قالب Pipelines را تغییر دهید
برای به روز رسانی قالب Pipelines، مراحل زیر را انجام دهید:
- یک پوشه در داخل سطل پیش فرض ایجاد کنید.
- مطمئن شوید که نقش اجرای Studio به سطل پیش فرض و همچنین سطل حاوی مجموعه داده دسترسی دارد.
- از لیست پروژه ها، پروژه ای را که به تازگی ایجاد کرده اید انتخاب کنید.
- بر مخازن برگه، پیوندها را برای کلون کردن محلی انتخاب کنید AWS CodeCommit مخازن به نمونه استودیوی محلی شما.
- حرکت به
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 (انجام شده در برگه کنترل منبع استودیو) باعث اجرای یک خط لوله جدید می شود، زیرا پل رویداد آمازون مانیتورهای رویداد برای commit ها ما می توانیم با انتخاب خط لوله در داخل پروژه SageMaker، اجرا را نظارت کنیم. تصویر زیر نمونه ای از خط لوله را نشان می دهد که با موفقیت اجرا شد.
- برای انجام تغییرات، به بخش Git در صفحه سمت چپ بروید.
- تمام تغییرات مربوطه را مرحله بندی کنید. شما نیازی به پیگیری آن ندارید
-checkpoint
فایل. شما می توانید یک ورودی به آن اضافه کنید.gitignore
پرونده با*checkpoint.*
برای نادیده گرفتن آنها - تغییرات را با ارائه خلاصه و همچنین نام و آدرس ایمیل خود انجام دهید.
- تغییرات را فشار دهید.
- به پروژه برگردید و آن را انتخاب کنید خطوط لوله بخش.
- اگر خطوط لوله در حال انجام را انتخاب کنید، مراحل خط لوله ظاهر می شود.
این به شما امکان می دهد مرحله ای را که در حال حاضر در حال اجرا است نظارت کنید. ممکن است چند دقیقه طول بکشد تا خط لوله ظاهر شود. برای شروع اجرای خط لوله، مراحل تعریف شده در CI/CD را انجام دهیدcodebuild-buildspec.yml
باید با موفقیت اجرا شود برای بررسی وضعیت این مراحل می توانید استفاده کنید AWS CodeBuild. برای اطلاعات بیشتر مراجعه کنید 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 |
میتوانید با تنظیم دقیق فراپارامترهای آن، افزودن تبدیلهای بیشتر برای افزایش دادهها، یا استفاده از روشهای دیگر، مانند روش نمونهبرداری بیش از حد اقلیت مصنوعی (SMOTE) یا شبکههای متخاصم مولد (GAN) روی بهبود عملکرد مدل بیشتر کار کنید. علاوه بر این، می توانید با استفاده از تصاویر داخلی SageMaker Docker یا تطبیق ظرف خود برای کار بر روی SageMaker از مدل یا الگوریتم خود برای آموزش استفاده کنید. برای جزئیات بیشتر مراجعه کنید استفاده از ظروف Docker با SageMaker.
همچنین می توانید ویژگی های اضافی را به خط لوله خود اضافه کنید. اگر میخواهید نظارت را هم شامل شود، میتوانید انتخاب کنید الگوی MLOps برای ساخت مدل، آموزش، استقرار و نظارت الگو هنگام ایجاد پروژه SageMaker. معماری حاصل یک مرحله نظارت اضافی دارد. یا اگر یک مخزن Git شخص ثالث دارید، می توانید با انتخاب آن از آن استفاده کنید قالب MLOps برای ساخت مدل، آموزش و استقرار با مخازن Git شخص ثالث با استفاده از Jenkins پروژه و ارائه اطلاعات برای هر دو مدل ساخت و مخازن استقرار مدل. این به شما امکان می دهد از هر کد موجود استفاده کنید و در هر زمان یا تلاشی برای ادغام بین SageMaker و Git صرفه جویی کنید. با این حال، برای این گزینه، الف AWS CodeStar اتصال مورد نیاز است.
نتیجه
در این پست نحوه ایجاد یک گردش کار ML با استفاده از Studio و Pipelines خودکار را نشان دادیم. گردش کار شامل دریافت مجموعه داده، ذخیره آن در مکانی قابل دسترس برای مدل ML، پیکربندی یک تصویر ظرف برای پیش پردازش، سپس تغییر کد دیگ بخار برای تطبیق با چنین تصویری است. سپس نحوه راه اندازی خط لوله، مراحلی که خط لوله دنبال می کند و نحوه کار آنها را نشان دادیم. ما همچنین نحوه نظارت بر عملکرد مدل و استقرار مدل را در نقطه پایانی مورد بحث قرار دادیم.
ما اکثر این وظایف را در استودیو انجام دادیم، که به عنوان یک 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
- ربات ai
- آمازون SageMaker
- هوش مصنوعی
- گواهی هوش مصنوعی
- هوش مصنوعی در بانکداری
- ربات هوش مصنوعی
- ربات های هوش مصنوعی
- نرم افزار هوش مصنوعی
- آموزش ماشین AWS
- بلاکچین
- کنفرانس بلاک چین ai
- coingenius
- هوش مصنوعی محاوره ای
- کنفرانس کریپتو ai
- دل-ه
- یادگیری عمیق
- گوگل ai
- فراگیری ماشین
- افلاطون
- افلاطون آی
- هوش داده افلاطون
- بازی افلاطون
- PlatoData
- بازی پلاتو
- مقیاس Ai
- نحو
- زفیرنت