Byg en løsning til en computersynsklassificering af hudlæsioner ved hjælp af Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

Byg en løsning til en computervisionsklassificering af hudlæsioner ved hjælp af Amazon SageMaker Pipelines

Amazon SageMaker Pipelines er en kontinuerlig integration og kontinuerlig levering (CI/CD) service designet til maskinlæring (ML) use cases. Du kan bruge det til at oprette, automatisere og administrere end-to-end ML-arbejdsgange. Det tackler udfordringen med at orkestrere hvert trin i en ML-proces, hvilket kræver tid, indsats og ressourcer. For at lette brugen er der flere skabeloner tilgængelige, som du kan tilpasse efter dine behov.

Fuldt administrerede billed- og videoanalysetjenester har også fremskyndet indførelsen af ​​computervisionsløsninger. AWS tilbyder en forudtrænet og fuldt administreret AWS AI-tjeneste kaldet Amazon-anerkendelse der kan integreres i computervision-applikationer ved hjælp af API-kald og kræver ingen ML-erfaring. Du skal blot give et billede til API til Amazon Rekognition og den kan identificere de nødvendige objekter i henhold til foruddefinerede etiketter. Det er også muligt at levere brugerdefinerede etiketter, der er specifikke for din brugssituation, og bygge en tilpasset computervisionsmodel med lidt eller intet overheadbehov for ML-ekspertise.

I dette indlæg behandler vi et specifikt computersynsproblem: klassificering af hudlæsioner og bruger Pipelines ved at tilpasse en eksisterende skabelon og skræddersy den til denne opgave. Nøjagtig klassificering af hudlæsioner kan hjælpe med tidlig diagnose af kræftsygdomme. Det er dog en udfordrende opgave på det medicinske område, fordi der er stor lighed mellem forskellige slags hudlæsioner. Pipelines giver os mulighed for at drage fordel af en række eksisterende modeller og algoritmer og etablere en ende-til-ende-produceret pipeline med minimal indsats og tid.

Løsningsoversigt

I dette indlæg bygger vi en ende-til-ende-pipeline ved hjælp af Pipelines til at klassificere dermatoskopiske billeder af almindelige pigmenterede hudlæsioner. Vi bruger Amazon SageMaker Studio projektskabelon MLOps skabelon til opbygning, træning og implementering af modeller og koden i det følgende GitHub repository. Den resulterende arkitektur er vist i følgende figur.

Til denne pipeline bruger vi datasættet HAM10000 ("Human Against Machine with 10000 training images"), som består af 10,015 dermatoskopiske billeder. Opgaven er en multi-class klassifikation inden for computersyn. Dette datasæt viser seks af de vigtigste diagnostiske kategorier inden for pigmentlæsioner: aktiniske keratoser og intraepitelialt karcinom eller Bowens sygdom (akiec), basalcellekarcinom (bcc), godartede keratose-lignende læsioner (sollentiginer eller seborroiske keratoser og lichen-planus-lignende keratoser, bkl), dermatofibrom (df), melanom (mel), melanocytiske nevi (nv), og vaskulære læsioner (angiomer, angiokeratomer, pyogene granulomer og blødninger, vasc).

Til formatet af modellens input bruger vi RecordIO format. Dette er et kompakt format, der gemmer billeddata sammen til kontinuerlig læsning og derfor hurtigere og mere effektiv træning. Derudover er en af ​​udfordringerne ved at bruge HAM10000-datasættet klasseubalancen. Følgende tabel illustrerer klassefordelingen.

Klasse akiec bcc BKL df mel nv vasc
Antal billeder 327 514 1099 115 1113 6705 142
I alt 10015

For at løse dette problem udvider vi datasættet ved hjælp af tilfældige transformationer (såsom beskæring, spejlvending, spejling og rotation) for at have alle klasser med omtrent det samme antal billeder.

Dette forbehandlingstrin bruger MXNet og OpenCV, derfor bruger det et forudbygget MXNet-containerbillede. Resten af ​​afhængighederne installeres ved hjælp af en requirements.txt fil. Hvis du vil oprette og bruge et brugerdefineret billede, se Opret Amazon SageMaker-projekter med billedopbygning af CI/CD-pipelines.

Til træningstrinnet bruger vi estimatoren tilgængelig fra SageMaker indbyggede Scikit Docker-billede til billedklassificering og indstiller parametrene som følger:

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)

For yderligere detaljer om containerbilledet, se Billedklassificeringsalgoritme.

Opret et Studio-projekt

For detaljerede instruktioner om, hvordan du opsætter Studio, se Ombord på Amazon SageMaker Domain ved hjælp af hurtig opsætning. For at oprette dit projekt skal du udføre følgende trin:

  1. I Studio skal du vælge Projekter menuen på SageMaker ressourcer menu.
    Byg en løsning til en computersynsklassificering af hudlæsioner ved hjælp af Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Lodret søgning. Ai.
    På projektsiden kan du starte en forudkonfigureret SageMaker MLOps skabelon.
  2. Vælg MLOps skabelon til modelbygning, træning og implementering.
  3. Vælg Vælg projektskabelon.
    Byg en løsning til en computersynsklassificering af hudlæsioner ved hjælp af Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Lodret søgning. Ai.
  4. Indtast et projektnavn og en kort beskrivelse.
  5. Vælg Opret projekt.

Projektet tager et par minutter at blive oprettet.

Forbered datasættet

For at forberede datasættet skal du udføre følgende trin:

  1. Gå til Harvard DataVerse.
  2. Vælg Få adgang til datasæt, og gennemgå licensen Creative Commons Attribution-NonCommercial 4.0 International Public License.
  3. Hvis du accepterer licensen, skal du vælge Zip i originalformat og download ZIP-filen.
  4. Opret en Amazon Simple Storage Service (Amazon S3) spand og vælg et navn, der starter med sagemaker (dette giver SageMaker adgang til bøtten uden nogen ekstra tilladelser).
  5. Du kan aktivere adgangslogning og kryptering for bedste praksis for sikkerhed.
  6. Upload dataverse_files.zip til spanden.
  7. Gem S3 skovlstien til senere brug.
  8. Noter navnet på den bøtte, du har gemt dataene i, og navnene på eventuelle efterfølgende mapper, som du kan bruge senere.

Forbered dig på dataforbehandling

Fordi vi bruger MXNet og OpenCV i vores forbehandlingstrin, bruger vi et forudbygget MXNet Docker-image og installerer de resterende afhængigheder ved hjælp af requirements.txt fil. For at gøre det skal du kopiere det og indsætte det under pipelines/skin i sagemaker--modelbuild depot. Derudover tilføjes MANIFEST.in fil på samme niveau som setup.py, for at fortælle Python at inkludere requirements.txt fil. For mere information om MANIFEST.in, henvise til Inkluderer filer i kildedistributioner med MANIFEST.in. Begge filer kan findes i GitHub repository.

Skift skabelonen Pipelines

Udfør følgende trin for at opdatere Pipelines-skabelonen:

  1. Opret en mappe i standardbøtten.
  2. Sørg for, at Studio-udførelsesrollen har adgang til standardindstillingen såvel som den kurv, der indeholder datasættet.
  3. Fra listen over projekter skal du vælge det, du lige har oprettet.
  4. Arkiver fanen, skal du vælge hyperlinks til lokalt at klone AWS CodeCommit repositories til din lokale Studio-instans.
    Byg en løsning til en computersynsklassificering af hudlæsioner ved hjælp af Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Lodret søgning. Ai.
  5. Naviger til pipelines mappe inde i sagemaker--modelbuild bibliotek og omdøb abalone mappe til skin.
  6. Åbne codebuild-buildspec.yml fil i sagemaker--modelbuild mappe og rediger kørselspipelinestien fra run-pipeline —module-name pipelines.abalone.pipeline (linje 15) til følgende:
    run-pipeline --module-name pipelines.skin.pipeline 

  7. Gem filen.
  8. Udskift filerne pipelines.py, preprocess.pyog evaluate.py i pipelines-mappen med filerne fra GitHub repository.
    Byg en løsning til en computersynsklassificering af hudlæsioner ved hjælp af Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Lodret søgning. Ai.
  9. Opdatér preprocess.py fil (linje 183-186) med S3-placeringen (SKIN_CANCER_BUCKET) og mappenavn (SKIN_CANCER_BUCKET_PATH), hvor du har uploadet dataverse_files.zip arkiv:
    1. skin_cancer_bucket=””
    2. skin_cancer_bucket_path=””
    3. skin_cancer_files=””
    4. skin_cancer_files_ext=””

I det foregående eksempel ville datasættet blive gemt under s3://monai-bucket-skin-cancer/skin_cancer_bucket_prefix/dataverse_files.zip.

Byg en løsning til en computersynsklassificering af hudlæsioner ved hjælp af Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

Udløs en pipeline-kørsel

Ved at skubbe forpligtede ændringer til CodeCommit-lageret (udført på Studio-kildekontrolfanen) udløser en ny pipelinekørsel, fordi en Amazon Eventbridge begivenhedsmonitorer for commits. Vi kan overvåge kørslen ved at vælge pipeline inde i SageMaker-projektet. Følgende skærmbillede viser et eksempel på en pipeline, der kørte med succes.

Byg en løsning til en computersynsklassificering af hudlæsioner ved hjælp af Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

  1. For at udføre ændringerne skal du navigere til Git-sektionen i venstre rude.
  2. Iscenesætter alle relevante ændringer. Du behøver ikke holde styr på -checkpoint fil. Du kan tilføje en post til .gitignore fil med *checkpoint.* at ignorere dem.
  3. Forpligt dig til ændringerne ved at give et resumé samt dit navn og en e-mailadresse.
  4. Tryk på ændringerne.
  5. Naviger tilbage til projektet og vælg Rørledninger sektion.
  6. Hvis du vælger de igangværende pipelines, vises pipelinens trin.
    Dette giver dig mulighed for at overvåge det trin, der kører i øjeblikket. Det kan tage et par minutter, før pipelinen vises. For at pipelinen kan begynde at køre, skal trinene defineret i CI/CD codebuild-buildspec.yml skal køre med succes. For at kontrollere status for disse trin, kan du bruge AWS CodeBuild. For mere information, se AWS CodeBuild (AMS SSPS).
  7. Når pipelinen er færdig, skal du gå tilbage til projektsiden og vælge Modelgrupper fanen for at inspicere de metadata, der er knyttet til modelartefakterne.
  8. Hvis alt ser godt ud, skal du vælge Opdater status fanen og manuelt godkende modellen.Standard ModelApprovalStatus er sat til PendingManualApproval. Hvis vores model har mere end 60 % nøjagtighed, føjes den til modelregistret, men implementeres ikke, før den manuelle godkendelse er fuldført.
  9. Naviger til Endpoints side på SageMaker-konsollen, hvor du kan se et iscenesættelsesendepunkt blive oprettet. Efter få minutter er slutpunktet opført med InService status.
  10. For at implementere slutpunktet i produktionen, på CodePipeline konsol, vælg sagemaker--modeldeploy pipeline, der i øjeblikket er i gang.
  11. I slutningen af DeployStaging fase, skal du manuelt godkende implementeringen.

Efter dette trin kan du se produktionsendepunktet blive implementeret på SageMaker Endpoints side. Efter et stykke tid viser endepunktet som InService.

Byg en løsning til en computersynsklassificering af hudlæsioner ved hjælp af Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

Ryd op

Du kan nemt rydde op i alle de ressourcer, der er skabt af SageMaker-projektet.

  1. Vælg i navigationsruden i Studio SageMaker ressourcer.
  2. Vælg Projekter fra rullemenuen og vælg dit projekt.
  3. handlinger menu, vælg Slette for at slette alle relaterede ressourcer.

Byg en løsning til en computersynsklassificering af hudlæsioner ved hjælp af Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

Resultater og næste skridt

Vi brugte med succes Pipelines til at skabe en ende-til-ende MLOps-ramme til klassificering af hudlæsioner ved hjælp af en indbygget model på HAM10000-datasættet. For de parametre, der er angivet i depotet, opnåede vi følgende resultater på testsættet.

metric Precision Recall f1 score
Værdi 0.643 0.8 0.713

Du kan arbejde yderligere på at forbedre modellens ydeevne ved at finjustere dens hyperparametre, tilføje flere transformationer til dataforøgelse eller bruge andre metoder, såsom Synthetic Minority Oversampling Technique (SMOTE) eller Generative Adversarial Networks (GAN'er). Ydermere kan du bruge din egen model eller algoritme til træning ved at bruge indbyggede SageMaker Docker-billeder eller tilpasse din egen container til at fungere på SageMaker. For yderligere detaljer henvises til Brug af Docker-containere med SageMaker.

Du kan også tilføje yderligere funktioner til din pipeline. Hvis du vil inkludere overvågning, kan du vælge MLOps skabelon til modelbygning, træning, implementering og overvågning skabelon, når du opretter SageMaker-projektet. Den resulterende arkitektur har et ekstra overvågningstrin. Eller hvis du har et eksisterende tredjeparts Git-lager, kan du bruge det ved at vælge MLOps skabelon til modelopbygning, træning og implementering med tredjeparts Git repositories ved hjælp af Jenkins projekt og leverer information til både modelbygning og modelimplementeringslager. Dette giver dig mulighed for at bruge enhver eksisterende kode og sparer dig for enhver tid eller kræfter på integration mellem SageMaker og Git. Men for denne mulighed, en AWS CodeStar forbindelse er påkrævet.

Konklusion

I dette indlæg viste vi, hvordan man opretter en end-to-end ML-arbejdsgang ved hjælp af Studio og automatiserede pipelines. Workflowet omfatter at hente datasættet, gemme det på et sted, der er tilgængeligt for ML-modellen, konfigurere et containerbillede til forbehandling og derefter ændre kedelkoden for at imødekomme et sådant billede. Derefter viste vi, hvordan man trigger pipelinen, de trin, som pipelinen følger, og hvordan de fungerer. Vi diskuterede også, hvordan man overvåger modellens ydeevne og implementerer modellen til et slutpunkt.

Vi udførte de fleste af disse opgaver i Studio, der fungerer som en altomfattende ML IDE, og accelererer udviklingen og implementeringen af ​​sådanne modeller.

Denne løsning er ikke bundet til hudklassificeringsopgaven. Du kan udvide det til enhver klassificerings- eller regressionsopgave ved hjælp af en hvilken som helst af SageMaker indbyggede algoritmer eller forudtrænede modeller.


Om forfatterne

Byg en løsning til en computersynsklassificering af hudlæsioner ved hjælp af Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Lodret søgning. Ai. Mariem Kthiri er AI/ML-konsulent hos AWS Professional Services Globals og er en del af Health Care and Life Science (HCLS) teamet. Hun brænder for at bygge ML-løsninger til forskellige problemstillinger og altid ivrig efter at hoppe på nye muligheder og initiativer. Hun bor i München, Tyskland og er ivrig efter at rejse og opdage andre dele af verden.

Byg en løsning til en computersynsklassificering af hudlæsioner ved hjælp af Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Lodret søgning. Ai.Yassine Zaafouri er AI/ML konsulent indenfor Professional Services hos AWS. Han gør det muligt for globale virksomhedskunder at bygge og implementere AI/ML-løsninger i skyen for at overvinde deres forretningsmæssige udfordringer. I sin fritid nyder han at spille og se sport og rejse rundt i verden.

Byg en løsning til en computersynsklassificering af hudlæsioner ved hjælp af Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Lodret søgning. Ai.Fotinos Kyriakides er AI/ML-ingeniør indenfor Professional Services i AWS. Han brænder for at bruge teknologien til at give værdi til kunderne og opnå forretningsresultater. Base i London, i sin fritid nyder han at løbe og udforske.

Byg en løsning til en computersynsklassificering af hudlæsioner ved hjælp af Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Lodret søgning. Ai.Anna Zapaishchykova var ProServe-konsulent i AI/ML og medlem af Amazon Healthcare TFC. Hun brænder for teknologi og den indflydelse, den kan have på sundhedsvæsenet. Hendes baggrund er i at bygge MLOps og AI-drevne løsninger på kundeproblemer inden for en række forskellige domæner såsom forsikring, bilindustrien og sundhedspleje.

Tidsstempel:

Mere fra AWS maskinindlæring