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ă:
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:
- În Studio, alegeți Proiecte meniul de pe Resurse SageMaker meniu.
Pe pagina de proiecte, puteți lansa un șablon SageMaker MLOps preconfigurat. - Alege Șablon MLOps pentru construirea modelelor, instruire și implementare.
- Alege Selectați șablonul de proiect.
- Introduceți un nume de proiect și o scurtă descriere.
- 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:
- Mergi la pagina Harvard DataVerse.
- Alege Accesați setul de date, și revizuiți licența Creative Commons Attribution-NonComercial 4.0 International Public License.
- Dacă acceptați licența, alegeți Format original Zip și descărcați fișierul ZIP.
- 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). - Puteți activa înregistrarea accesului și criptarea pentru cele mai bune practici de securitate.
- Încărcați
dataverse_files.zip
la găleată. - Salvați calea compartimentului S3 pentru o utilizare ulterioară.
- 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:
- Creați un folder în găleata implicită.
- Asigurați-vă că rolul de execuție Studio are acces la compartimentul implicit, precum și la compartimentul care conține setul de date.
- Din lista de proiecte, alegeți-l pe cel pe care tocmai l-ați creat.
- Pe Repozitorii fila, alegeți hyperlinkurile pentru a clona local AWS CodeCommit arhivele către instanța locală Studio.
- Navigați către
pipelines
directorul din interiorulsagemaker--modelbuild
director și redenumițiabalone
directorul laskin
. - Deschideți
codebuild-buildspec.yml
de fișier însagemaker--modelbuild
director și modificați calea conductei de rulare dinrun-pipeline —module-name pipelines.abalone.pipeline
(rândul 15) la următoarele: - Salvați fișierul.
- Înlocuiți fișierele
pipelines.py
,preprocess.py
, și evaluate.py
în directorul pipelines cu fișierele din GitHub depozit. - 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șieruldataverse_files.zip
Arhiva:skin_cancer_bucket=””
skin_cancer_bucket_path=””
skin_cancer_files=””
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
.
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.
- Pentru a efectua modificări, navigați la secțiunea Git din panoul din stânga.
- 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. - Realizați modificările furnizând un rezumat, precum și numele dvs. și o adresă de e-mail.
- Împingeți modificările.
- Navigați înapoi la proiect și alegeți Conducte secţiune.
- 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/CDcodebuild-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). - Când conducta este finalizată, reveniți la pagina proiectului și alegeți Grupuri de modele pentru a inspecta metadatele atașate artefactelor modelului.
- Dacă totul arată bine, alegeți Starea de actualizare fila și aprobați manual modelul.Valoarea implicită
ModelApprovalStatus
este setat laPendingManualApproval
. 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. - 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. - Pentru a implementa punctul final în producție, pe
CodePipeline
consola, alegețisagemaker--modeldeploy
conductă care este în curs de desfășurare. - 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
.
A curăța
Puteți curăța cu ușurință toate resursele create de proiectul SageMaker.
- În panoul de navigare din Studio, alegeți Resurse SageMaker.
- Alege Proiecte din meniul derulant și alegeți proiectul dvs.
- Pe Acţiuni meniu, alegeți Șterge pentru a șterge toate resursele aferente.
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
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.
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.
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.
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ă.
- AI
- ai art
- ai art generator
- ai robot
- Amazon SageMaker
- inteligență artificială
- certificare de inteligență artificială
- inteligența artificială în domeniul bancar
- robot cu inteligență artificială
- roboți cu inteligență artificială
- software de inteligență artificială
- Învățare automată AWS
- blockchain
- conferință blockchain ai
- coingenius
- inteligența artificială conversațională
- criptoconferință ai
- dall-e
- învățare profundă
- google ai
- masina de învățare
- Plato
- platoul ai
- Informații despre date Platon
- Jocul lui Platon
- PlatoData
- platogaming
- scara ai
- sintaxă
- zephyrnet