Bygg en løsning for en hudlesjonsklassifiser med datasyn ved å bruke Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.

Bygg en løsning for en hudlesjonsklassifiser med datasyn ved å bruke Amazon SageMaker Pipelines

Amazon SageMaker-rørledninger er en tjeneste for kontinuerlig integrasjon og kontinuerlig levering (CI/CD) designet for brukstilfeller for maskinlæring (ML). Du kan bruke den til å opprette, automatisere og administrere ende-til-ende ML-arbeidsflyter. Den takler utfordringen med å orkestrere hvert trinn i en ML-prosess, som krever tid, innsats og ressurser. For å lette bruken er flere maler tilgjengelige som du kan tilpasse etter dine behov.

Fullt administrerte bilde- og videoanalysetjenester har også fremskyndet bruken av datasynsløsninger. AWS tilbyr en forhåndstrent og fullt administrert AWS AI-tjeneste kalt Amazon-anerkjennelse som kan integreres i datasynsapplikasjoner ved hjelp av API-kall og krever ingen ML-erfaring. Du må bare gi et bilde til Amazon Rekognition API og den kan identifisere de nødvendige objektene i henhold til forhåndsdefinerte etiketter. Det er også mulig å tilby tilpassede etiketter som er spesifikke for ditt bruksområde og bygge en tilpasset datasynsmodell med lite eller ingen overheadbehov for ML-ekspertise.

I dette innlegget tar vi for oss et spesifikt datasynsproblem: klassifisering av hudlesjoner, og bruker Pipelines ved å tilpasse en eksisterende mal og skreddersy den til denne oppgaven. Nøyaktig klassifisering av hudlesjoner kan hjelpe med tidlig diagnose av kreftsykdommer. Imidlertid er det en utfordrende oppgave i det medisinske feltet, fordi det er stor likhet mellom ulike typer hudlesjoner. Pipelines lar oss dra nytte av en rekke eksisterende modeller og algoritmer, og etablere en ende-til-ende produksjonsrørledning med minimal innsats og tid.

Løsningsoversikt

I dette innlegget bygger vi en ende-til-ende-rørledning ved å bruke Pipelines for å klassifisere dermatoskopiske bilder av vanlige pigmenterte hudlesjoner. Vi bruker Amazon SageMaker Studio prosjektmal MLOps mal for å bygge, trene og distribuere modeller og koden i det følgende GitHub repository. Den resulterende arkitekturen er vist i følgende figur.

For denne pipelinen bruker vi HAM10000 («Human Against Machine with 10000 training images») datasettet, som består av 10,015 XNUMX dermatoskopiske bilder. Oppgaven er en multi-klasse klassifisering innen datasyn. Dette datasettet viser seks av de viktigste diagnostiske kategoriene innen pigmenterte lesjoner: aktiniske keratoser og intraepitelialt karsinom eller Bowens sykdom (akiec), basalcellekarsinom (bcc), godartede keratoselignende lesjoner (sollentiginer eller seboreiske keratoser og lichen-planus som keratoser, bkl), dermatofibrom (df), melanom (mel), melanocytiske nevi (nv), og vaskulære lesjoner (angiomer, angiokeratomer, pyogene granulomer og blødninger, vasc).

For formatet på modellens input bruker vi RecordIO format. Dette er et kompakt format som lagrer bildedata sammen for kontinuerlig lesing og dermed raskere og mer effektiv trening. I tillegg er en av utfordringene ved å bruke HAM10000-datasettet klasseubalansen. Følgende tabell illustrerer klassefordelingen.

Klasse akiec bcc bkl df mel nv vasc
Antall bilder 327 514 1099 115 1113 6705 142
Totalt 10015

For å løse dette problemet, utvider vi datasettet ved å bruke tilfeldige transformasjoner (som beskjæring, vending, speiling og rotering) for å ha alle klasser med omtrent samme antall bilder.

Dette forbehandlingstrinnet bruker MXNet og OpenCV, derfor bruker det et forhåndsbygd MXNet-beholderbilde. Resten av avhengighetene er installert ved hjelp av en requirements.txt fil. Hvis du vil lage og bruke et tilpasset bilde, se Lag Amazon SageMaker-prosjekter med bildebyggende CI/CD-pipelines.

For treningstrinnet bruker vi estimatoren som er tilgjengelig fra SageMaker innebygde Scikit Docker-bilde for bildeklassifisering og stiller inn parameterne 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 ytterligere detaljer om beholderbildet, se Bildeklassifiseringsalgoritme.

Lag et Studio-prosjekt

For detaljerte instruksjoner om hvordan du setter opp Studio, se Ombord på Amazon SageMaker-domene ved hjelp av hurtigoppsett. For å opprette prosjektet, fullfør følgende trinn:

  1. I Studio velger du Prosjekter menyen på SageMaker-ressurser menyen.
    Bygg en løsning for en hudlesjonsklassifiser med datasyn ved å bruke Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.
    På prosjektsiden kan du starte en forhåndskonfigurert SageMaker MLOps-mal.
  2. Velg MLOps mal for modellbygging, opplæring og distribusjon.
  3. Velg Velg prosjektmal.
    Bygg en løsning for en hudlesjonsklassifiser med datasyn ved å bruke Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.
  4. Skriv inn et prosjektnavn og en kort beskrivelse.
  5. Velg Opprett prosjekt.

Prosjektet tar noen minutter å lage.

Forbered datasettet

For å klargjøre datasettet, fullfør følgende trinn:

  1. Gå til Harvard DataVerse.
  2. Velg Få tilgang til datasett, og se gjennom lisensen Creative Commons Attribution-NonCommercial 4.0 International Public License.
  3. Hvis du godtar lisensen, velg Zip i originalformat og last ned ZIP-filen.
  4. Lag en Amazon enkel lagringstjeneste (Amazon S3) bøtte og velg et navn som begynner med sagemaker (dette lar SageMaker få tilgang til bøtta uten ekstra tillatelser).
  5. Du kan aktivere tilgangslogging og kryptering for beste praksis for sikkerhet.
  6. Last opp dataverse_files.zip til bøtta.
  7. Lagre S3-skuttebanen for senere bruk.
  8. Noter navnet på bøtten du har lagret dataene i, og navnene på eventuelle påfølgende mapper, for å bruke senere.

Forbered deg på dataforbehandling

Fordi vi bruker MXNet og OpenCV i forbehandlingstrinnet vårt, bruker vi et forhåndsbygd MXNet Docker-bilde og installerer de gjenværende avhengighetene ved å bruke requirements.txt fil. For å gjøre det, må du kopiere den og lime den inn under pipelines/skin i sagemaker--modelbuild oppbevaringssted. I tillegg legger du til MANIFEST.in fil på samme nivå som setup.py, for å fortelle Python å inkludere requirements.txt fil. For mer informasjon om MANIFEST. I, referere til Inkludert filer i kildedistribusjoner med MANIFEST.in. Begge filene finnes i GitHub repository.

Endre malen for rørledninger

For å oppdatere Pipelines-malen, fullfør følgende trinn:

  1. Opprett en mappe i standardbøtten.
  2. Sørg for at Studio-utførelsesrollen har tilgang til standard bøtte så vel som bøtte som inneholder datasettet.
  3. Fra listen over prosjekter velger du det du nettopp opprettet.
  4. repositories fanen, velg hyperkoblingene du vil klone lokalt AWS CodeCommit repositories til din lokale Studio-forekomst.
    Bygg en løsning for en hudlesjonsklassifiser med datasyn ved å bruke Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.
  5. Naviger til pipelines katalog inne i sagemaker--modelbuild katalogen og gi nytt navn til abalone katalog til skin.
  6. Åpne codebuild-buildspec.yml fil i sagemaker--modelbuild katalogen og endre løpsrørledningen fra run-pipeline —module-name pipelines.abalone.pipeline (linje 15) til følgende:
    run-pipeline --module-name pipelines.skin.pipeline 

  7. Lagre filen.
  8. Bytt ut filene pipelines.py, preprocess.py, og evaluate.py i pipelines-katalogen med filene fra GitHub repository.
    Bygg en løsning for en hudlesjonsklassifiser med datasyn ved å bruke Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.
  9. Oppdater preprocess.py fil (linje 183-186) med S3-plasseringen (SKIN_CANCER_BUCKET) og mappenavn (SKIN_CANCER_BUCKET_PATH) hvor du lastet opp 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 eksempelet vil datasettet bli lagret under s3://monai-bucket-skin-cancer/skin_cancer_bucket_prefix/dataverse_files.zip.

Bygg en løsning for en hudlesjonsklassifiser med datasyn ved å bruke Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.

Utløs en rørledning

Å skyve forpliktede endringer til CodeCommit-depotet (gjort på Studio-kildekontrollfanen) utløser en ny pipeline-kjøring, fordi en Amazon EventBridge hendelsesmonitorer for forpliktelser. Vi kan overvåke kjøringen ved å velge rørledningen inne i SageMaker-prosjektet. Følgende skjermbilde viser et eksempel på en rørledning som kjørte.

Bygg en løsning for en hudlesjonsklassifiser med datasyn ved å bruke Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.

  1. For å foreta endringene, naviger til Git-delen i venstre rute.
  2. Iscenesett alle relevante endringer. Du trenger ikke å holde styr på -checkpoint fil. Du kan legge til en oppføring i .gitignore fil med *checkpoint.* å ignorere dem.
  3. Forplikte endringene ved å oppgi et sammendrag samt navnet ditt og en e-postadresse.
  4. Trykk på endringene.
  5. Naviger tilbake til prosjektet og velg Rørledninger seksjon.
  6. Hvis du velger rørledningene som pågår, vises trinnene i rørledningen.
    Dette lar deg overvåke trinnet som kjører for øyeblikket. Det kan ta et par minutter før rørledningen vises. For at rørledningen skal begynne å kjøre, er trinnene definert i CI/CD codebuild-buildspec.yml må kjøre vellykket. For å sjekke statusen til disse trinnene, kan du bruke AWS CodeBuild. For mer informasjon, se AWS CodeBuild (AMS SSPS).
  7. Når rørledningen er fullført, går du tilbake til prosjektsiden og velger Modellgrupper for å inspisere metadataene som er knyttet til modellartefaktene.
  8. Hvis alt ser bra ut, velg Oppdatere status og godkjenne modellen manuelt. Standard ModelApprovalStatus er satt til PendingManualApproval. Hvis modellen vår har mer enn 60% nøyaktighet, blir den lagt til i modellregisteret, men ikke distribuert før manuell godkjenning er fullført.
  9. Naviger til endepunkter siden på SageMaker-konsollen, hvor du kan se et iscenesettelsesendepunkt opprettes. Etter noen minutter vises endepunktet med InService status.
  10. For å distribuere endepunktet i produksjon, på CodePipeline konsollen, velg sagemaker--modeldeploy rørledningen som er i gang.
  11. Ved slutten av den DeployStaging fase, må du manuelt godkjenne distribusjonen.

Etter dette trinnet kan du se produksjonsendepunktet blir distribuert på SageMaker endepunkter side. Etter en stund vises endepunktet som InService.

Bygg en løsning for en hudlesjonsklassifiser med datasyn ved å bruke Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.

Rydd opp

Du kan enkelt rydde opp i alle ressursene som er opprettet av SageMaker-prosjektet.

  1. Velg i navigasjonsruten i Studio SageMaker-ressurser.
  2. Velg Prosjekter fra rullegardinmenyen og velg prosjektet ditt.
  3. handlinger meny, velg Delete for å slette alle relaterte ressurser.

Bygg en løsning for en hudlesjonsklassifiser med datasyn ved å bruke Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.

Resultater og neste steg

Vi brukte med hell Pipelines for å lage et ende-til-ende MLOps-rammeverk for klassifisering av hudlesjoner ved å bruke en innebygd modell på HAM10000-datasettet. For parametrene gitt i depotet, fikk vi følgende resultater på testsettet.

Metric Precision Husker F1-poengsum
Verdi 0.643 0.8 0.713

Du kan jobbe videre med å forbedre ytelsen til modellen ved å finjustere hyperparametrene, legge til flere transformasjoner for dataforsterkning eller bruke andre metoder, for eksempel Synthetic Minority Oversampling Technique (SMOTE) eller Generative Adversarial Networks (GAN). Videre kan du bruke din egen modell eller algoritme for trening ved å bruke innebygde SageMaker Docker-bilder eller tilpasse din egen container til å fungere på SageMaker. For ytterligere detaljer, se Bruke Docker-containere med SageMaker.

Du kan også legge til tilleggsfunksjoner til pipeline. Hvis du vil inkludere overvåking, kan du velge MLOps mal for modellbygging, opplæring, distribusjon og overvåking mal når du oppretter SageMaker-prosjektet. Den resulterende arkitekturen har et ekstra overvåkingstrinn. Eller hvis du har et eksisterende tredjeparts Git-depot, kan du bruke det ved å velge MLOps mal for modellbygging, opplæring og distribusjon med tredjeparts Git-depoter ved bruk av Jenkins prosjekt og gi informasjon for både modellbygging og modelldistribusjonslager. Dette lar deg bruke hvilken som helst eksisterende kode og sparer deg for tid eller krefter på integrasjon mellom SageMaker og Git. Imidlertid, for dette alternativet, a AWS CodeStar tilkobling er nødvendig.

konklusjonen

I dette innlegget viste vi hvordan du lager en ende-til-ende ML-arbeidsflyt ved hjelp av Studio og automatiserte pipelines. Arbeidsflyten inkluderer å hente datasettet, lagre det på et sted som er tilgjengelig for ML-modellen, konfigurere et beholderbilde for forhåndsbehandling, og deretter modifisere kjelekoden for å imøtekomme et slikt bilde. Deretter viste vi hvordan man trigger rørledningen, trinnene som rørledningen følger, og hvordan de fungerer. Vi diskuterte også hvordan man overvåker modellens ytelse og distribuerer modellen til et endepunkt.

Vi utførte de fleste av disse oppgavene i Studio, som fungerer som en altomfattende ML IDE, og akselererer utviklingen og distribusjonen av slike modeller.

Denne løsningen er ikke bundet til hudklassifiseringsoppgaven. Du kan utvide den til enhver klassifiserings- eller regresjonsoppgave ved å bruke hvilken som helst av SageMaker innebygde algoritmer eller forhåndstrente modeller.


Om forfatterne

Bygg en løsning for en hudlesjonsklassifiser med datasyn ved å bruke Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Vertikalt søk. Ai. Mariem Kthiri er AI/ML-konsulent hos AWS Professional Services Globals og er en del av Health Care and Life Science (HCLS)-teamet. Hun brenner for å bygge ML-løsninger for ulike problemer og alltid ivrig etter å hoppe på nye muligheter og initiativ. Hun bor i München, Tyskland og er opptatt av å reise og oppdage andre deler av verden.

Bygg en løsning for en hudlesjonsklassifiser med datasyn ved å bruke Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.Yassine Zaafouri er AI/ML-konsulent innen Professional Services hos AWS. Han gjør det mulig for globale bedriftskunder å bygge og distribuere AI/ML-løsninger i skyen for å overvinne forretningsutfordringene deres. På fritiden liker han å spille og se på sport og reise rundt i verden.

Bygg en løsning for en hudlesjonsklassifiser med datasyn ved å bruke Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.Fotinos Kyriakides er AI/ML-ingeniør innen Professional Services i AWS. Han brenner for å bruke teknologien for å gi verdi til kundene og oppnå forretningsresultater. Base i London, på fritiden liker han å løpe og utforske.

Bygg en løsning for en hudlesjonsklassifiser med datasyn ved å bruke Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.Anna Zapaishchykova var en ProServe-konsulent i AI/ML og medlem av Amazon Healthcare TFC. Hun er lidenskapelig opptatt av teknologi og virkningen den kan ha på helsevesenet. Hennes bakgrunn er i å bygge MLOps og AI-drevne løsninger på kundeproblemer innen en rekke domener som forsikring, bil og helsevesen.

Tidstempel:

Mer fra AWS maskinlæring