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:
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:
- I Studio velger du Prosjekter menyen på SageMaker-ressurser menyen.
På prosjektsiden kan du starte en forhåndskonfigurert SageMaker MLOps-mal. - Velg MLOps mal for modellbygging, opplæring og distribusjon.
- Velg Velg prosjektmal.
- Skriv inn et prosjektnavn og en kort beskrivelse.
- Velg Opprett prosjekt.
Prosjektet tar noen minutter å lage.
Forbered datasettet
For å klargjøre datasettet, fullfør følgende trinn:
- Gå til Harvard DataVerse.
- Velg Få tilgang til datasett, og se gjennom lisensen Creative Commons Attribution-NonCommercial 4.0 International Public License.
- Hvis du godtar lisensen, velg Zip i originalformat og last ned ZIP-filen.
- 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). - Du kan aktivere tilgangslogging og kryptering for beste praksis for sikkerhet.
- Last opp
dataverse_files.zip
til bøtta. - Lagre S3-skuttebanen for senere bruk.
- 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:
- Opprett en mappe i standardbøtten.
- Sørg for at Studio-utførelsesrollen har tilgang til standard bøtte så vel som bøtte som inneholder datasettet.
- Fra listen over prosjekter velger du det du nettopp opprettet.
- På repositories fanen, velg hyperkoblingene du vil klone lokalt AWS CodeCommit repositories til din lokale Studio-forekomst.
- Naviger til
pipelines
katalog inne isagemaker--modelbuild
katalogen og gi nytt navn tilabalone
katalog tilskin
. - Åpne
codebuild-buildspec.yml
fil isagemaker--modelbuild
katalogen og endre løpsrørledningen frarun-pipeline —module-name pipelines.abalone.pipeline
(linje 15) til følgende: - Lagre filen.
- Bytt ut filene
pipelines.py
,preprocess.py
, og evaluate.py
i pipelines-katalogen med filene fra GitHub repository. - Oppdater
preprocess.py
fil (linje 183-186) med S3-plasseringen (SKIN_CANCER_BUCKET
) og mappenavn (SKIN_CANCER_BUCKET_PATH
) hvor du lastet oppdataverse_files.zip
arkiv:skin_cancer_bucket=””
skin_cancer_bucket_path=””
skin_cancer_files=””
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
.
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.
- For å foreta endringene, naviger til Git-delen i venstre rute.
- 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. - Forplikte endringene ved å oppgi et sammendrag samt navnet ditt og en e-postadresse.
- Trykk på endringene.
- Naviger tilbake til prosjektet og velg Rørledninger seksjon.
- 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/CDcodebuild-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). - Når rørledningen er fullført, går du tilbake til prosjektsiden og velger Modellgrupper for å inspisere metadataene som er knyttet til modellartefaktene.
- Hvis alt ser bra ut, velg Oppdatere status og godkjenne modellen manuelt. Standard
ModelApprovalStatus
er satt tilPendingManualApproval
. 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. - Naviger til endepunkter siden på SageMaker-konsollen, hvor du kan se et iscenesettelsesendepunkt opprettes. Etter noen minutter vises endepunktet med
InService
status. - For å distribuere endepunktet i produksjon, på
CodePipeline
konsollen, velgsagemaker--modeldeploy
rørledningen som er i gang. - 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
.
Rydd opp
Du kan enkelt rydde opp i alle ressursene som er opprettet av SageMaker-prosjektet.
- Velg i navigasjonsruten i Studio SageMaker-ressurser.
- Velg Prosjekter fra rullegardinmenyen og velg prosjektet ditt.
- På handlinger meny, velg Delete for å slette alle relaterte ressurser.
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
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.
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.
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.
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.
- AI
- ai kunst
- ai art generator
- du har en robot
- Amazon SageMaker
- kunstig intelligens
- sertifisering av kunstig intelligens
- kunstig intelligens i bankvirksomhet
- kunstig intelligens robot
- kunstig intelligens roboter
- programvare for kunstig intelligens
- AWS maskinlæring
- blockchain
- blockchain konferanse ai
- coingenius
- samtale kunstig intelligens
- kryptokonferanse ai
- dall sin
- dyp læring
- google det
- maskinlæring
- plato
- plato ai
- Platon Data Intelligence
- Platon spill
- PlatonData
- platogaming
- skala ai
- syntaks
- zephyrnet