Creați o soluție pentru un clasificator de leziuni ale pielii cu vedere computerizată folosind Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Căutare verticală. Ai.

Creați o soluție pentru un clasificator de leziuni ale pielii cu vedere computerizată folosind Amazon SageMaker Pipelines

Pipelines Amazon SageMaker este un serviciu de integrare continuă și livrare continuă (CI/CD) conceput pentru cazuri de utilizare a învățării automate (ML). Îl puteți folosi pentru a crea, automatiza și gestiona fluxuri de lucru ML de la capăt la capăt. Acesta abordează provocarea de a orchestra fiecare pas al unui proces ML, care necesită timp, efort și resurse. Pentru a facilita utilizarea acestuia, sunt disponibile mai multe șabloane pe care le puteți personaliza în funcție de nevoile dvs.

Serviciile de analiză a imaginilor și video complet gestionate au accelerat, de asemenea, adoptarea soluțiilor de viziune computerizată. AWS oferă un serviciu AWS AI pregătit și gestionat complet numit Amazon Rekognition care pot fi integrate în aplicațiile de viziune computerizată folosind apeluri API și nu necesită experiență ML. Trebuie doar să oferiți o imagine API-ul Amazon Rekognition și poate identifica obiectele necesare conform etichetelor predefinite. De asemenea, este posibil să oferiți etichete personalizate specifice cazului dvs. de utilizare și să construiți un model personalizat de viziune computerizată, cu o nevoie de expertiză în ML.

În această postare, abordăm o problemă specifică de vedere computerizată: clasificarea leziunilor cutanate și folosim Pipelines prin personalizarea unui șablon existent și adaptarea acestuia la această sarcină. Clasificarea corectă a leziunilor cutanate poate ajuta la diagnosticarea precoce a bolilor canceroase. Cu toate acestea, este o sarcină dificilă în domeniul medical, deoarece există o mare similitudine între diferitele tipuri de leziuni ale pielii. Pipelines ne permite să profităm de o varietate de modele și algoritmi existenți și să stabilim o conductă de producție end-to-end cu efort și timp minim.

Prezentare generală a soluțiilor

În această postare, construim o conductă de la capăt la capăt folosind Pipelines pentru a clasifica imagini dermatoscopice ale leziunilor pigmentare comune ale pielii. Noi folosim Amazon SageMaker Studio șablon de proiect Șablon MLOps pentru construirea, instruirea și implementarea modelelor și codul în cele ce urmează GitHub depozit. Arhitectura rezultată este prezentată în figura următoare.

Pentru această conductă, folosim setul de date HAM10000 („Human Against Machine cu 10000 de imagini de antrenament”), care constă din 10,015 imagini dermatoscopice. Sarcina la îndemână este o clasificare cu mai multe clase în domeniul viziunii computerizate. Acest set de date descrie șase dintre cele mai importante categorii de diagnostic din domeniul leziunilor pigmentare: keratoze actinice și carcinom intraepitelial sau boala Bowen (akiec), carcinom bazocelular (bcc), leziuni benigne asemănătoare keratozei (lentigi solare sau keratoze seboreice și cheratoze asemănătoare lichenului plan, bkl), dermatofibrom (df), melanom (mel), nevi melanocitari (nv), și leziuni vasculare (angioame, angiokeratoame, granuloame piogene și hemoragie, vasc).

Pentru formatul de intrare a modelului, folosim RecordIO format. Acesta este un format compact care stochează împreună datele de imagine pentru o citire continuă și, prin urmare, un antrenament mai rapid și mai eficient. În plus, una dintre provocările utilizării setului de date HAM10000 este dezechilibrul clasei. Următorul tabel ilustrează distribuția claselor.

Clasă akiec bcc bkl df mel nv vasc
Numărul de imagini 327 514 1099 115 1113 6705 142
Total 10015

Pentru a rezolva această problemă, creștem setul de date folosind transformări aleatorii (cum ar fi decuparea, răsturnarea, oglindirea și rotirea) pentru a avea toate clasele cu aproximativ același număr de imagini.

Acest pas de preprocesare folosește MXNet și OpenCV, prin urmare folosește o imagine de container MXNet pre-construită. Restul dependențelor sunt instalate folosind a requirements.txt fişier. Dacă doriți să creați și să utilizați o imagine personalizată, consultați Creați proiecte Amazon SageMaker cu conducte CI/CD pentru crearea de imagini.

Pentru pasul de antrenament, folosim estimatorul disponibil din imaginea Scikit Docker încorporată SageMaker pentru clasificarea imaginilor și setăm parametrii după cum urmează:

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)

Pentru mai multe detalii despre imaginea containerului, consultați Algoritmul de clasificare a imaginilor.

Creați un proiect Studio

Pentru instrucțiuni detaliate despre cum să configurați Studio, consultați Accesați domeniul Amazon SageMaker folosind Configurare rapidă. Pentru a vă crea proiectul, parcurgeți următorii pași:

  1. În Studio, alegeți Proiecte meniul de pe Resurse SageMaker meniu.
    Creați o soluție pentru un clasificator de leziuni ale pielii cu vedere computerizată folosind Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Căutare verticală. Ai.
    Pe pagina de proiecte, puteți lansa un șablon SageMaker MLOps preconfigurat.
  2. Alege Șablon MLOps pentru construirea modelelor, instruire și implementare.
  3. Alege Selectați șablonul de proiect.
    Creați o soluție pentru un clasificator de leziuni ale pielii cu vedere computerizată folosind Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Căutare verticală. Ai.
  4. Introduceți un nume de proiect și o scurtă descriere.
  5. Alege Creați un proiect.

Proiectul durează câteva minute pentru a fi creat.

Pregătiți setul de date

Pentru a pregăti setul de date, parcurgeți următorii pași:

  1. Mergi la pagina Harvard DataVerse.
  2. Alege Accesați setul de date, și revizuiți licența Creative Commons Attribution-NonComercial 4.0 International Public License.
  3. Dacă acceptați licența, alegeți Format original Zip și descărcați fișierul ZIP.
  4. Creați o Serviciul Amazon de stocare simplă (Amazon S3) și alegeți un nume care începe cu sagemaker (acest lucru permite SageMaker să acceseze găleata fără permisiuni suplimentare).
  5. Puteți activa înregistrarea accesului și criptarea pentru cele mai bune practici de securitate.
  6. Încărcați dataverse_files.zip la găleată.
  7. Salvați calea compartimentului S3 pentru o utilizare ulterioară.
  8. Notați numele compartimentului în care ați stocat datele și numele oricăror foldere ulterioare, pentru a le utiliza mai târziu.

Pregătiți-vă pentru preprocesarea datelor

Deoarece folosim MXNet și OpenCV în pasul nostru de preprocesare, folosim o imagine MXNet Docker predefinită și instalăm dependențele rămase folosind requirements.txt fişier. Pentru a face acest lucru, trebuie să-l copiați și să-l lipiți sub pipelines/skin în sagemaker--modelbuild repertoriu. În plus, adăugați MANIFEST.in fișier la același nivel cu setup.py, pentru a-i spune lui Python să includă requirements.txt fişier. Pentru mai multe informații despre MANIFEST.in, a se referi la Includerea fișierelor în distribuțiile sursă cu MANIFEST.in. Ambele fișiere pot fi găsite în GitHub depozit.

Schimbați șablonul Pipelines

Pentru a actualiza șablonul Pipelines, parcurgeți următorii pași:

  1. Creați un folder în găleata implicită.
  2. Asigurați-vă că rolul de execuție Studio are acces la compartimentul implicit, precum și la compartimentul care conține setul de date.
  3. Din lista de proiecte, alegeți-l pe cel pe care tocmai l-ați creat.
  4. Pe Repozitorii fila, alegeți hyperlinkurile pentru a clona local AWS CodeCommit arhivele către instanța locală Studio.
    Creați o soluție pentru un clasificator de leziuni ale pielii cu vedere computerizată folosind Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Căutare verticală. Ai.
  5. Navigați către pipelines directorul din interiorul sagemaker--modelbuild director și redenumiți abalone directorul la skin.
  6. Deschideți codebuild-buildspec.yml de fișier în sagemaker--modelbuild director și modificați calea conductei de rulare din run-pipeline —module-name pipelines.abalone.pipeline (rândul 15) la următoarele:
    run-pipeline --module-name pipelines.skin.pipeline 

  7. Salvați fișierul.
  8. Înlocuiți fișierele pipelines.py, preprocess.py, și evaluate.py în directorul pipelines cu fișierele din GitHub depozit.
    Creați o soluție pentru un clasificator de leziuni ale pielii cu vedere computerizată folosind Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Căutare verticală. Ai.
  9. Actualizați preprocess.py fișier (liniile 183-186) cu locația S3 (SKIN_CANCER_BUCKET) și numele folderului (SKIN_CANCER_BUCKET_PATH) unde ați încărcat fișierul dataverse_files.zip Arhiva:
    1. skin_cancer_bucket=””
    2. skin_cancer_bucket_path=””
    3. skin_cancer_files=””
    4. skin_cancer_files_ext=””

În exemplul precedent, setul de date ar fi stocat sub s3://monai-bucket-skin-cancer/skin_cancer_bucket_prefix/dataverse_files.zip.

Creați o soluție pentru un clasificator de leziuni ale pielii cu vedere computerizată folosind Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Căutare verticală. Ai.

Declanșați o rulare a conductei

Împingerea modificărilor comise în depozitul CodeCommit (efectuat în fila Control sursă Studio) declanșează o nouă rulare a conductei, deoarece un Amazon EventBridge monitorizări de evenimente pentru comiteri. Putem monitoriza rularea alegând conducta din cadrul proiectului SageMaker. Următoarea captură de ecran arată un exemplu de conductă care a rulat cu succes.

Creați o soluție pentru un clasificator de leziuni ale pielii cu vedere computerizată folosind Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Căutare verticală. Ai.

  1. Pentru a efectua modificări, navigați la secțiunea Git din panoul din stânga.
  2. Efectuați toate modificările relevante. Nu trebuie să urmăriți -checkpoint fişier. Puteți adăuga o intrare la .gitignore fișier cu *checkpoint.* să le ignore.
  3. Realizați modificările furnizând un rezumat, precum și numele dvs. și o adresă de e-mail.
  4. Împingeți modificările.
  5. Navigați înapoi la proiect și alegeți Conducte secţiune.
  6. Dacă alegeți conductele în curs, apar pașii conductei.
    Acest lucru vă permite să monitorizați pasul care rulează în prezent. Poate dura câteva minute până când conducta să apară. Pentru ca conducta să înceapă să ruleze, pașii definiți în CI/CD codebuild-buildspec.yml trebuie să ruleze cu succes. Pentru a verifica starea acestor pași, puteți utiliza AWS CodeBuild. Pentru mai multe informații, consultați AWS CodeBuild (AMS SSPS).
  7. Când conducta este finalizată, reveniți la pagina proiectului și alegeți Grupuri de modele pentru a inspecta metadatele atașate artefactelor modelului.
  8. Dacă totul arată bine, alegeți Starea de actualizare fila și aprobați manual modelul.Valoarea implicită ModelApprovalStatus este setat la PendingManualApproval. Dacă modelul nostru are o precizie mai mare de 60%, acesta este adăugat în registrul modelului, dar nu este implementat până la finalizarea aprobării manuale.
  9. Navigați către Puncte finale pagina de pe consola SageMaker, unde puteți vedea un punct final de procesare în curs de creare. După câteva minute, punctul final este listat cu InService stare.
  10. Pentru a implementa punctul final în producție, pe CodePipeline consola, alegeți sagemaker--modeldeploy conductă care este în curs de desfășurare.
  11. La sfârșitul DeployStaging faza, trebuie să aprobați manual implementarea.

După acest pas, puteți vedea punctul final de producție implementat pe SageMaker Puncte finale pagină. După un timp, punctul final arată ca InService.

Creați o soluție pentru un clasificator de leziuni ale pielii cu vedere computerizată folosind Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Căutare verticală. Ai.

A curăța

Puteți curăța cu ușurință toate resursele create de proiectul SageMaker.

  1. În panoul de navigare din Studio, alegeți Resurse SageMaker.
  2. Alege Proiecte din meniul derulant și alegeți proiectul dvs.
  3. Pe Acţiuni meniu, alegeți Șterge pentru a șterge toate resursele aferente.

Creați o soluție pentru un clasificator de leziuni ale pielii cu vedere computerizată folosind Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Căutare verticală. Ai.

Rezultate și următorii pași

Am folosit cu succes Pipelines pentru a crea un cadru MLOps end-to-end pentru clasificarea leziunilor cutanate folosind un model încorporat în setul de date HAM10000. Pentru parametrii furnizați în depozit, am obținut următoarele rezultate pe setul de testare.

metric Precizie Rechemare Scor F1
Valoare 0.643 0.8 0.713

Puteți lucra în continuare la îmbunătățirea performanței modelului prin reglarea fină a hiperparametrilor acestuia, adăugând mai multe transformări pentru creșterea datelor sau folosind alte metode, cum ar fi Tehnica de supraeșantionare a minorității sintetice (SMOTE) sau rețele adverse generative (GAN). În plus, puteți folosi propriul dvs. model sau algoritm pentru antrenament utilizând imaginile Docker SageMaker încorporate sau adaptându-vă propriul container pentru a funcționa pe SageMaker. Pentru mai multe detalii, consultați Utilizarea containerelor Docker cu SageMaker.

De asemenea, puteți adăuga caracteristici suplimentare la conducta dvs. Dacă doriți să includeți monitorizarea, puteți alege Șablon MLOps pentru construirea de modele, instruire, implementare și monitorizare șablon la crearea proiectului SageMaker. Arhitectura rezultată are o etapă suplimentară de monitorizare. Sau dacă aveți un depozit Git terță parte existent, îl puteți utiliza alegând Șablon MLOps pentru construirea de modele, instruire și implementare cu depozite Git terțe folosind Jenkins proiect și furnizarea de informații atât pentru depozitele de construire a modelelor, cât și pentru implementarea modelelor. Acest lucru vă permite să utilizați orice cod existent și vă economisește timp sau efort pentru integrarea dintre SageMaker și Git. Cu toate acestea, pentru această opțiune, a AWS CodeStar este necesară conexiunea.

Concluzie

În această postare, am arătat cum să creați un flux de lucru ML end-to-end folosind Studio și Pipelines automatizate. Fluxul de lucru include obținerea setului de date, stocarea acestuia într-un loc accesibil modelului ML, configurarea unei imagini container pentru preprocesare, apoi modificarea codului standard pentru a găzdui o astfel de imagine. Apoi am arătat cum să declanșăm conducta, pașii pe care îi urmează și cum funcționează. Am discutat, de asemenea, cum să monitorizăm performanța modelului și să implementăm modelul la un punct final.

Am efectuat majoritatea acestor sarcini în cadrul Studio, care acționează ca un IDE ML cuprinzător și accelerează dezvoltarea și implementarea unor astfel de modele.

Această soluție nu este legată de sarcina de clasificare a pielii. Îl puteți extinde la orice activitate de clasificare sau regresie utilizând oricare dintre algoritmii încorporați SageMaker sau modelele pre-antrenate.


Despre autori

Creați o soluție pentru un clasificator de leziuni ale pielii cu vedere computerizată folosind Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Căutare verticală. Ai. Mariem Kthiri este consultant AI/ML la AWS Professional Services Globals și face parte din echipa Health Care and Life Science (HCLS). Este pasionată de construirea de soluții ML pentru diverse probleme și mereu dornică să profite de noi oportunități și inițiative. Ea locuiește în Munchen, Germania și este dornică să călătorească și să descopere alte părți ale lumii.

Creați o soluție pentru un clasificator de leziuni ale pielii cu vedere computerizată folosind Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Căutare verticală. Ai.Yassine Zaafouri este consultant AI/ML în cadrul Serviciilor profesionale la AWS. El permite clienților întreprinderi globale să construiască și să implementeze soluții AI/ML în cloud pentru a depăși provocările lor de afaceri. În timpul liber, îi place să joace și să urmărească sporturi și să călătorească în jurul lumii.

Creați o soluție pentru un clasificator de leziuni ale pielii cu vedere computerizată folosind Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Căutare verticală. Ai.Fotinos Kyriakides este inginer AI/ML în cadrul Serviciilor profesionale din AWS. Este pasionat de utilizarea tehnologiei pentru a oferi valoare clienților și pentru a obține rezultate în afaceri. Baza din Londra, în timpul liber îi place să alerge și să exploreze.

Creați o soluție pentru un clasificator de leziuni ale pielii cu vedere computerizată folosind Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Căutare verticală. Ai.Anna Zapaishchykova a fost consultant ProServe în AI/ML și membru al Amazon Healthcare TFC. Este pasionată de tehnologie și de impactul pe care îl poate avea asupra sănătății. Experiența ei este în construirea de soluții MLOps și AI pentru problemele clienților într-o varietate de domenii, cum ar fi asigurări, auto și asistență medicală.

Timestamp-ul:

Mai mult de la Învățare automată AWS