अमेज़न SageMaker पाइपलाइन मशीन लर्निंग (एमएल) उपयोग के मामलों के लिए डिज़ाइन की गई एक सतत एकीकरण और निरंतर डिलीवरी (सीआई/सीडी) सेवा है। आप इसका उपयोग एंड-टू-एंड एमएल वर्कफ़्लो बनाने, स्वचालित करने और प्रबंधित करने के लिए कर सकते हैं। यह एमएल प्रक्रिया के प्रत्येक चरण को व्यवस्थित करने की चुनौती से निपटता है, जिसके लिए समय, प्रयास और संसाधनों की आवश्यकता होती है। इसके उपयोग को सुविधाजनक बनाने के लिए, कई टेम्पलेट उपलब्ध हैं जिन्हें आप अपनी आवश्यकताओं के अनुसार अनुकूलित कर सकते हैं।
पूरी तरह से प्रबंधित छवि और वीडियो विश्लेषण सेवाओं ने भी कंप्यूटर विज़न समाधानों को अपनाने में तेजी लाई है। AWS एक पूर्व-प्रशिक्षित और पूरी तरह से प्रबंधित AWS AI सेवा प्रदान करता है जिसे कहा जाता है अमेज़ॅन रेकग्निशन जिसे एपीआई कॉल का उपयोग करके कंप्यूटर विज़न अनुप्रयोगों में एकीकृत किया जा सकता है और इसके लिए किसी एमएल अनुभव की आवश्यकता नहीं है। आपको बस एक छवि प्रदान करनी है अमेज़ॅन रिकग्निशन एपीआई और यह पूर्व-परिभाषित लेबल के अनुसार आवश्यक वस्तुओं की पहचान कर सकता है। आपके उपयोग के मामले के लिए विशिष्ट कस्टम लेबल प्रदान करना और एमएल विशेषज्ञता की बहुत कम या बिना किसी ओवरहेड आवश्यकता के एक अनुकूलित कंप्यूटर विज़न मॉडल बनाना भी संभव है।
इस पोस्ट में, हम एक विशिष्ट कंप्यूटर दृष्टि समस्या का समाधान करते हैं: त्वचा घाव वर्गीकरण, और मौजूदा टेम्पलेट को अनुकूलित करके और इसे इस कार्य के अनुरूप बनाकर पाइपलाइनों का उपयोग करते हैं। त्वचा के घावों का सटीक वर्गीकरण कैंसर रोगों के शीघ्र निदान में मदद कर सकता है। हालाँकि, चिकित्सा क्षेत्र में यह एक चुनौतीपूर्ण कार्य है, क्योंकि विभिन्न प्रकार के त्वचा घावों के बीच उच्च समानता होती है। पाइपलाइनें हमें विभिन्न प्रकार के मौजूदा मॉडलों और एल्गोरिदम का लाभ उठाने और न्यूनतम प्रयास और समय के साथ एक एंड-टू-एंड उत्पादन पाइपलाइन स्थापित करने की अनुमति देती हैं।
समाधान अवलोकन
इस पोस्ट में, हम सामान्य रंजित त्वचा घावों की डर्माटोस्कोपिक छवियों को वर्गीकृत करने के लिए पाइपलाइनों का उपयोग करके एक एंड-टू-एंड पाइपलाइन का निर्माण करते हैं। हम उपयोग करते हैं अमेज़ॅन सैजमेकर स्टूडियो परियोजना का खाका मॉडल निर्माण, प्रशिक्षण और तैनाती के लिए MLOps टेम्पलेट और निम्नलिखित में कोड गिटहब भंडार. परिणामी वास्तुकला को निम्नलिखित चित्र में दिखाया गया है।
इस पाइपलाइन के लिए, हम HAM10000 ("10000 प्रशिक्षण छवियों के साथ मशीन के खिलाफ मानव") डेटासेट का उपयोग करते हैं, जिसमें 10,015 डर्माटोस्कोपिक छवियां शामिल हैं। वर्तमान कार्य कंप्यूटर विज़न के क्षेत्र में एक बहु-स्तरीय वर्गीकरण है। यह डेटासेट पिगमेंटेड घावों के क्षेत्र में छह सबसे महत्वपूर्ण नैदानिक श्रेणियों को दर्शाता है: एक्टिनिक केराटोज़ और इंट्रापीथेलियल कार्सिनोमा या बोवेन रोग (akiec
), बैसल सेल कर्सिनोमा (bcc
), सौम्य केराटोसिस-जैसे घाव (सौर लेंटिगाइन या सेबोरहाइक केराटोज़ और लाइकेन-प्लैनस जैसे केराटोज़, bkl
), डर्माटोफाइब्रोमा (df
), मेलेनोमा (mel
), मेलानोसाइटिक नेवी (nv
), और संवहनी घाव (एंजियोमास, एंजियोकेराटोमास, पाइोजेनिक ग्रैनुलोमा और रक्तस्राव, vasc
).
मॉडल के इनपुट के प्रारूप के लिए, हम इसका उपयोग करते हैं RecordIO
प्रारूप। यह एक कॉम्पैक्ट प्रारूप है जो निरंतर पढ़ने के लिए छवि डेटा को एक साथ संग्रहीत करता है और इसलिए तेज़ और अधिक कुशल प्रशिक्षण देता है। इसके अलावा, HAM10000 डेटासेट का उपयोग करने की चुनौतियों में से एक वर्ग असंतुलन है। निम्न तालिका वर्ग वितरण को दर्शाती है।
वर्ग | akiec | गुप्त प्रतिलिपि | BKL | df | मेल | nv | वास्क |
छवियों की संख्या | 327 | 514 | 1099 | 115 | 1113 | 6705 | 142 |
कुल | 10015 |
इस समस्या को हल करने के लिए, हम यादृच्छिक परिवर्तनों (जैसे क्रॉपिंग, फ्लिपिंग, मिररिंग और रोटेटिंग) का उपयोग करके डेटासेट को बढ़ाते हैं ताकि सभी वर्गों में लगभग समान संख्या में छवियां हों।
यह प्रीप्रोसेसिंग चरण MXNet और OpenCV का उपयोग करता है, इसलिए यह पूर्व-निर्मित MXNet कंटेनर छवि का उपयोग करता है। शेष निर्भरताएँ a का उपयोग करके स्थापित की जाती हैं requirements.txt
फ़ाइल। यदि आप एक कस्टम छवि बनाना और उपयोग करना चाहते हैं, तो देखें छवि निर्माण CI/CD पाइपलाइनों के साथ Amazon SageMaker प्रोजेक्ट बनाएं.
प्रशिक्षण चरण के लिए, हम छवि वर्गीकरण के लिए सेजमेकर निर्मित स्किकिट डॉकर छवि से उपलब्ध अनुमानक का उपयोग करते हैं और निम्नानुसार पैरामीटर सेट करते हैं:
कंटेनर छवि के बारे में अधिक जानकारी के लिए, देखें छवि वर्गीकरण एल्गोरिदम.
एक स्टूडियो प्रोजेक्ट बनाएं
स्टूडियो कैसे स्थापित करें, इस पर विस्तृत निर्देशों के लिए देखें त्वरित सेटअप का उपयोग करके अमेज़न सैजमेकर डोमेन पर ऑनबोर्ड. अपना प्रोजेक्ट बनाने के लिए, निम्नलिखित चरणों को पूरा करें:
- स्टूडियो में, चुनें परियोजनाओं मेनू पर SageMaker संसाधन मेनू.
प्रोजेक्ट पेज पर, आप पूर्व-कॉन्फ़िगर किए गए SageMaker MLOps टेम्पलेट लॉन्च कर सकते हैं। - चुनें मॉडल निर्माण, प्रशिक्षण और तैनाती के लिए MLOps टेम्पलेट.
- चुनें प्रोजेक्ट टेम्पलेट का चयन करें.
- प्रोजेक्ट का नाम और संक्षिप्त विवरण दर्ज करें.
- चुनें प्रोजेक्ट बनाएं.
प्रोजेक्ट बनने में कुछ मिनट लगते हैं.
डेटासेट तैयार करें
डेटासेट तैयार करने के लिए, निम्नलिखित चरणों को पूरा करें:
- हार्वर्ड डेटावर्स.
- चुनें डेटासेट तक पहुंचें, और लाइसेंस क्रिएटिव कॉमन्स एट्रिब्यूशन-नॉन-कमर्शियल 4.0 इंटरनेशनल पब्लिक लाइसेंस की समीक्षा करें।
- यदि आप लाइसेंस स्वीकार करते हैं, तो चुनें मूल प्रारूप ज़िप और ज़िप फ़ाइल डाउनलोड करें.
- एक बनाएं अमेज़न सरल भंडारण सेवा (अमेज़ॅन S3) बकेट और से शुरू होने वाला नाम चुनें
sagemaker
(यह सेजमेकर को बिना किसी अतिरिक्त अनुमति के बकेट तक पहुंचने की अनुमति देता है)। - आप सुरक्षा सर्वोत्तम प्रथाओं के लिए एक्सेस लॉगिंग और एन्क्रिप्शन सक्षम कर सकते हैं।
- अपलोड
dataverse_files.zip
बाल्टी को. - बाद में उपयोग के लिए S3 बकेट पथ सहेजें।
- जिस बकेट में आपने डेटा संग्रहीत किया है उसका नाम और बाद में उपयोग करने के लिए किसी भी बाद के फ़ोल्डर के नाम नोट कर लें।
डेटा प्रीप्रोसेसिंग के लिए तैयारी करें
चूँकि हम अपने प्रीप्रोसेसिंग चरण में MXNet और OpenCV का उपयोग कर रहे हैं, हम एक पूर्व-निर्मित MXNet डॉकर छवि का उपयोग करते हैं और शेष निर्भरताएँ स्थापित करते हैं requirements.txt
फ़ाइल। ऐसा करने के लिए, आपको इसे कॉपी करके नीचे पेस्ट करना होगा pipelines/skin
में sagemaker--modelbuild
भण्डार. इसके अलावा, जोड़ें MANIFEST.in
के समान स्तर पर फ़ाइल करें setup.py
, पायथन को शामिल करने के लिए कहना requirements.txt
फ़ाइल। के बारे में अधिक जानकारी के लिए मैनिफ़ेस्ट.इन, को देखें MANIFEST.in के साथ स्रोत वितरण में फ़ाइलें शामिल करना. दोनों फ़ाइलें यहां पाई जा सकती हैं गिटहब भंडार.
पाइपलाइन टेम्पलेट बदलें
पाइपलाइन टेम्पलेट को अद्यतन करने के लिए, निम्नलिखित चरणों को पूरा करें:
- डिफ़ॉल्ट बकेट के अंदर एक फ़ोल्डर बनाएं.
- सुनिश्चित करें कि स्टूडियो निष्पादन भूमिका की डिफ़ॉल्ट बकेट के साथ-साथ डेटासेट वाली बकेट तक पहुंच हो।
- परियोजनाओं की सूची से, वह चुनें जिसे आपने अभी बनाया है।
- पर डेटा संग्रह स्थान टैब, स्थानीय रूप से क्लोन करने के लिए हाइपरलिंक चुनें AWS कोडकॉमिट आपके स्थानीय स्टूडियो उदाहरण के लिए रिपॉजिटरी।
- पर नेविगेट करें
pipelines
निर्देशिका के अंदरsagemaker--modelbuild
निर्देशिका और नाम बदलेंabalone
निर्देशिका मेंskin
. - ओपन
codebuild-buildspec.yml
में दायरsagemaker--modelbuild
निर्देशिका और रन पाइपलाइन पथ को संशोधित करेंrun-pipeline —module-name pipelines.abalone.pipeline
(पंक्ति 15) निम्नलिखित के लिए: - फ़ाइल सहेजें.
- फ़ाइलें बदलें
pipelines.py
,preprocess.py
, और ईvaluate.py
पाइपलाइन निर्देशिका में फ़ाइलों के साथ गिटहब भंडार. - अपडेट करें
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 रिपॉजिटरी (स्टूडियो स्रोत नियंत्रण टैब पर किया गया) में प्रतिबद्ध परिवर्तनों को दबाने से एक नई पाइपलाइन चालू हो जाती है, क्योंकि एक अमेज़न EventBridge प्रतिबद्धताओं के लिए इवेंट मॉनिटर। हम सेजमेकर प्रोजेक्ट के अंदर पाइपलाइन का चयन करके रन की निगरानी कर सकते हैं। निम्नलिखित स्क्रीनशॉट एक पाइपलाइन का उदाहरण दिखाता है जो सफलतापूर्वक चला।
- परिवर्तन करने के लिए, बाएँ फलक पर Git अनुभाग पर जाएँ।
- सभी प्रासंगिक परिवर्तन चरणबद्ध करें. आपको इसका ट्रैक रखने की आवश्यकता नहीं है
-checkpoint
फ़ाइल। आप इसमें एक प्रविष्टि जोड़ सकते हैं.gitignore
के साथ फाइल*checkpoint.*
उन्हें अनदेखा करना. - सारांश के साथ-साथ अपना नाम और ईमेल पता प्रदान करके परिवर्तन करें।
- परिवर्तनों को पुश करें.
- प्रोजेक्ट पर वापस जाएँ और चुनें पाइप लाइनें अनुभाग।
- यदि आप प्रगतिरत पाइपलाइनों को चुनते हैं, तो पाइपलाइन के चरण दिखाई देंगे।
यह आपको वर्तमान में चल रहे चरण की निगरानी करने की अनुमति देता है। पाइपलाइन दिखाई देने में कुछ मिनट लग सकते हैं। पाइपलाइन को चालू करने के लिए, सीआई/सीडी में परिभाषित चरणcodebuild-buildspec.yml
सफलतापूर्वक चलाना होगा. इन चरणों की स्थिति की जांच करने के लिए, आप इसका उपयोग कर सकते हैं एडब्ल्यूएस कोडबिल्ड. अधिक जानकारी के लिए देखें एडब्ल्यूएस कोडबिल्ड (एएमएस एसएसपीएस). - जब पाइपलाइन पूरी हो जाए, तो प्रोजेक्ट पेज पर वापस जाएं और चुनें मॉडल समूह मॉडल कलाकृतियों से जुड़े मेटाडेटा का निरीक्षण करने के लिए टैब।
- यदि सब कुछ अच्छा लगता है, तो चुनें स्थिति अद्यतन टैब और मॉडल को मैन्युअल रूप से अनुमोदित करें। डिफ़ॉल्ट
ModelApprovalStatus
इसके लिए सेट हैPendingManualApproval
। यदि हमारे मॉडल में 60% से अधिक सटीकता है, तो इसे मॉडल रजिस्ट्री में जोड़ा जाता है, लेकिन इसे तब तक तैनात नहीं किया जाता है जब तक कि मैनुअल अनुमोदन पूरा नहीं हो जाता। - पर नेविगेट करें endpoints सेजमेकर कंसोल पर पेज, जहां आप एक स्टेजिंग एंडपॉइंट बनाया जा रहा देख सकते हैं। कुछ मिनटों के बाद, एंडपॉइंट को इसके साथ सूचीबद्ध किया जाता है
InService
स्थिति। - उत्पादन में समापन बिंदु को तैनात करने के लिए, पर
CodePipeline
कंसोल, चुनेंsagemaker--modeldeploy
पाइपलाइन जो वर्तमान में प्रगति पर है। - के अंत में
DeployStaging
चरण, आपको परिनियोजन को मैन्युअल रूप से अनुमोदित करने की आवश्यकता है।
इस चरण के बाद, आप सेजमेकर पर उत्पादन समापन बिंदु को तैनात होते हुए देख सकते हैं endpoints पृष्ठ। थोड़ी देर के बाद, समापन बिंदु इस प्रकार दिखता है InService
.
क्लीन अप
आप सेजमेकर प्रोजेक्ट द्वारा बनाए गए सभी संसाधनों को आसानी से साफ कर सकते हैं।
- स्टूडियो में नेविगेशन फलक में, चुनें SageMaker संसाधन.
- चुनें परियोजनाओं ड्रॉप-डाउन मेनू से और अपना प्रोजेक्ट चुनें।
- पर क्रियाएँ मेनू, चुनें मिटाना सभी संबंधित संसाधनों को हटाने के लिए.
परिणाम और अगले चरण
हमने HAM10000 डेटासेट पर एक अंतर्निहित मॉडल का उपयोग करके त्वचा के घावों के वर्गीकरण के लिए एंड-टू-एंड MLOps फ्रेमवर्क बनाने के लिए पाइपलाइनों का सफलतापूर्वक उपयोग किया। रिपॉजिटरी में दिए गए मापदंडों के लिए, हमें परीक्षण सेट पर निम्नलिखित परिणाम प्राप्त हुए।
मैट्रिक | शुद्धता | वापस बुलाना | एफ 1 का स्कोर |
वैल्यू | 0.643 | 0.8 | 0.713 |
आप मॉडल के हाइपरपैरामीटर को ठीक करके, डेटा वृद्धि के लिए और अधिक परिवर्तन जोड़कर, या सिंथेटिक माइनॉरिटी ओवरसैंपलिंग तकनीक (एसएमओटीई) या जेनरेटिव एडवरसैरियल नेटवर्क (जीएएन) जैसे अन्य तरीकों का उपयोग करके मॉडल के प्रदर्शन को बेहतर बनाने पर आगे काम कर सकते हैं। इसके अलावा, आप प्रशिक्षण के लिए अंतर्निहित सेजमेकर डॉकर छवियों का उपयोग करके या सेजमेकर पर काम करने के लिए अपने स्वयं के कंटेनर को अनुकूलित करके अपने स्वयं के मॉडल या एल्गोरिदम का उपयोग कर सकते हैं। अधिक जानकारी के लिए देखें सेजमेकर के साथ डॉकर कंटेनरों का उपयोग करना.
आप अपनी पाइपलाइन में अतिरिक्त सुविधाएँ भी जोड़ सकते हैं। यदि आप निगरानी शामिल करना चाहते हैं, तो आप चुन सकते हैं मॉडल निर्माण, प्रशिक्षण, तैनाती और निगरानी के लिए एमएलओपीएस टेम्पलेट सेजमेकर प्रोजेक्ट बनाते समय टेम्पलेट। परिणामी आर्किटेक्चर में एक अतिरिक्त निगरानी कदम है। या यदि आपके पास मौजूदा तृतीय-पक्ष Git रिपॉजिटरी है, तो आप इसे चुनकर उपयोग कर सकते हैं जेनकिंस का उपयोग करके तृतीय-पक्ष Git रिपॉजिटरी के साथ मॉडल निर्माण, प्रशिक्षण और तैनाती के लिए MLOps टेम्पलेट प्रोजेक्ट और मॉडल निर्माण और मॉडल परिनियोजन रिपॉजिटरी दोनों के लिए जानकारी प्रदान करना। यह आपको किसी भी मौजूदा कोड का उपयोग करने की अनुमति देता है और सेजमेकर और गिट के बीच एकीकरण पर आपका कोई भी समय या प्रयास बचाता है। हालाँकि, इस विकल्प के लिए, a AWS कोडस्टार कनेक्शन आवश्यक है.
निष्कर्ष
इस पोस्ट में, हमने दिखाया कि स्टूडियो और स्वचालित पाइपलाइनों का उपयोग करके एंड-टू-एंड एमएल वर्कफ़्लो कैसे बनाया जाए। वर्कफ़्लो में डेटासेट प्राप्त करना, इसे एमएल मॉडल के लिए सुलभ स्थान पर संग्रहीत करना, प्रीप्रोसेसिंग के लिए एक कंटेनर छवि को कॉन्फ़िगर करना, फिर ऐसी छवि को समायोजित करने के लिए बॉयलरप्लेट कोड को संशोधित करना शामिल है। फिर हमने दिखाया कि पाइपलाइन को कैसे ट्रिगर किया जाए, पाइपलाइन किन चरणों का पालन करती है, और वे कैसे काम करते हैं। हमने इस बात पर भी चर्चा की कि मॉडल के प्रदर्शन की निगरानी कैसे की जाए और मॉडल को अंतिम बिंदु पर कैसे तैनात किया जाए।
हमने इनमें से अधिकांश कार्य स्टूडियो के भीतर किए, जो एक सर्वव्यापी एमएल आईडीई के रूप में कार्य करता है, और ऐसे मॉडलों के विकास और तैनाती को गति देता है।
यह समाधान त्वचा वर्गीकरण कार्य से बाध्य नहीं है। आप सेजमेकर के किसी भी अंतर्निहित एल्गोरिदम या पूर्व-प्रशिक्षित मॉडल का उपयोग करके इसे किसी भी वर्गीकरण या प्रतिगमन कार्य तक बढ़ा सकते हैं।
लेखक के बारे में
मरियम कथिरी AWS प्रोफेशनल सर्विसेज ग्लोबल्स में AI/ML सलाहकार हैं और हेल्थ केयर एंड लाइफ साइंस (HCLS) टीम का हिस्सा हैं। वह विभिन्न समस्याओं के लिए एमएल समाधान बनाने को लेकर उत्साहित हैं और हमेशा नए अवसरों और पहलों का लाभ उठाने के लिए उत्सुक रहती हैं। वह म्यूनिख, जर्मनी में रहती है और दुनिया के अन्य हिस्सों की यात्रा और खोज करने की इच्छुक है।
यासीन ज़ाफौरी AWS में व्यावसायिक सेवाओं के भीतर एक AI/ML सलाहकार है। वह वैश्विक उद्यम ग्राहकों को उनकी व्यावसायिक चुनौतियों से पार पाने के लिए क्लाउड में एआई/एमएल समाधान बनाने और तैनात करने में सक्षम बनाता है। अपने खाली समय में, वह खेलना, खेल देखना और दुनिया भर में यात्रा करना पसंद करते हैं।
फ़ोटिनोस क्यारीकाइड्स AWS में व्यावसायिक सेवाओं के अंतर्गत एक AI/ML इंजीनियर है। उन्हें ग्राहकों को मूल्य प्रदान करने और व्यावसायिक परिणाम प्राप्त करने के लिए प्रौद्योगिकी का उपयोग करने का शौक है। लंदन में रहते हुए, अपने खाली समय में वह दौड़ना और खोजबीन करना पसंद करते हैं।
अन्ना ज़पैश्चिकोवा एआई/एमएल में प्रोसर्व कंसल्टेंट और अमेज़ॅन हेल्थकेयर टीएफसी के सदस्य थे। वह प्रौद्योगिकी और स्वास्थ्य सेवा पर इसके प्रभाव के बारे में भावुक है। उनकी पृष्ठभूमि बीमा, ऑटोमोटिव और स्वास्थ्य सेवा जैसे विभिन्न डोमेन में ग्राहकों की समस्याओं के लिए एमएलओपीएस और एआई-संचालित समाधान बनाने में है।
- AI
- ai कला
- ऐ कला जनरेटर
- ऐ रोबोट
- अमेज़न SageMaker
- कृत्रिम बुद्धिमत्ता
- कृत्रिम बुद्धिमत्ता प्रमाणन
- बैंकिंग में आर्टिफिशियल इंटेलिजेंस
- आर्टिफिशियल इंटेलिजेंस रोबोट
- आर्टिफिशियल इंटेलिजेंस रोबोट
- कृत्रिम बुद्धि सॉफ्टवेयर
- AWS मशीन लर्निंग
- blockchain
- ब्लॉकचेन सम्मेलन एआई
- कॉइनजीनियस
- संवादी कृत्रिम बुद्धिमत्ता
- क्रिप्टो सम्मेलन एआई
- दल-ए
- ध्यान लगा के पढ़ना या सीखना
- इसे गूगल करें
- यंत्र अधिगम
- प्लेटो
- प्लेटो एआई
- प्लेटो डेटा इंटेलिजेंस
- प्लेटो गेम
- प्लेटोडाटा
- प्लेटोगेमिंग
- स्केल एआई
- वाक्यविन्यास
- जेफिरनेट