Rakenna ratkaisu tietokonenäön ihovaurioiden luokittimeen käyttämällä Amazon SageMaker Pipelines PlatoBlockchain Data Intelligenceä. Pystysuuntainen haku. Ai.

Rakenna ratkaisu tietokonenäön ihovaurioiden luokittimeen käyttämällä Amazon SageMaker Pipelinesiä

Amazon SageMaker -putkistot on jatkuvan integroinnin ja jatkuvan toimituksen (CI/CD) palvelu, joka on suunniteltu koneoppimisen (ML) käyttötapauksiin. Sen avulla voit luoda, automatisoida ja hallita päästä päähän ML-työnkulkuja. Se vastaa haasteeseen organisoida ML-prosessin jokainen vaihe, mikä vaatii aikaa, vaivaa ja resursseja. Sen käytön helpottamiseksi on saatavilla useita malleja, joita voit muokata tarpeidesi mukaan.

Täysin hallitut kuva- ja videoanalyysipalvelut ovat myös nopeuttaneet tietokonenäköratkaisujen käyttöönottoa. AWS tarjoaa valmiiksi koulutetun ja täysin hallitun AWS AI -palvelun nimeltä Amazonin tunnistus jotka voidaan integroida tietokonenäkösovelluksiin API-kutsujen avulla eivätkä vaadi ML-kokemusta. Sinun tarvitsee vain tarjota kuva Amazon Rekognition -sovellusliittymä ja se voi tunnistaa tarvittavat objektit ennalta määritettyjen tarrojen mukaan. On myös mahdollista tarjota räätälöityjä tarroja käyttötapauksellesi ja rakentaa räätälöity tietokonenäkömalli ilman, että ML-asiantuntemusta tarvitaan vain vähän tai ei ollenkaan.

Tässä viestissä käsittelemme tiettyä tietokonenäköongelmaa: ihovaurioiden luokittelua ja käytämme Pipelinejä mukauttamalla olemassa olevaa mallia ja räätälöimällä se tähän tehtävään. Tarkka ihovaurioluokitus voi auttaa syöpäsairauksien varhaisessa diagnosoinnissa. Se on kuitenkin haastava tehtävä lääketieteen alalla, koska erilaisten ihovaurioiden välillä on suuri samankaltaisuus. Putkilinjat antavat meille mahdollisuuden hyödyntää erilaisia ​​olemassa olevia malleja ja algoritmeja ja luoda päästä päähän tuotantoprosessin minimaalisella vaivalla ja ajallaan.

Ratkaisun yleiskatsaus

Tässä viestissä rakennamme päästä päähän putkilinjan Pipelines-järjestelmän avulla luokittelemaan dermatoskooppisia kuvia tavallisista pigmentoituneista ihovaurioista. Käytämme Amazon SageMaker Studio projektimalli MLOps-malli mallien rakentamiseen, kouluttamiseen ja käyttöönottoon ja koodi seuraavassa GitHub-arkisto. Tuloksena oleva arkkitehtuuri on esitetty seuraavassa kuvassa.

Tätä putkia varten käytämme HAM10000 ("Human Against Machine with 10000 training image") -tietojoukkoa, joka koostuu 10,015 XNUMX dermatoskooppisesta kuvasta. Käsillä oleva tehtävä on moniluokkainen luokittelu tietokonenäön alalla. Tämä aineisto kuvaa kuusi tärkeintä diagnostista luokkaa pigmentoituneiden leesioiden alueella: aktiiniset keratoosit ja intraepiteliaalinen karsinooma tai Bowenin tauti (akiec), tyvisolusyöpä (bcc), hyvänlaatuiset keratoosin kaltaiset leesiot (auringon lentigines tai seborrooinen keratoosi ja jäkälä, kuten keratoosit, bkl), dermatofibrooma (df), melanooma (mel), melanosyyttinen nevi (nv) ja verisuonivauriot (angioomat, angiokeratomit, pyogeeniset granuloomit ja verenvuoto, vasc).

Mallin syötteen muotoa varten käytämme RecordIO muoto. Tämä on kompakti muoto, joka tallentaa kuvatiedot jatkuvaa lukemista varten ja siten nopeampaa ja tehokkaampaa harjoittelua varten. Lisäksi yksi HAM10000-tietojoukon käytön haasteista on luokan epätasapaino. Seuraava taulukko havainnollistaa luokkajakaumaa.

luokka akiec BCC bkl df mel nv vasc
Kuvien määrä 327 514 1099 115 1113 6705 142
Yhteensä 10015

Tämän ongelman ratkaisemiseksi lisäämme tietojoukkoa käyttämällä satunnaisia ​​muunnoksia (kuten rajaamista, kääntämistä, peilausta ja kiertämistä), jotta kaikilla luokilla on suunnilleen sama määrä kuvia.

Tämä esikäsittelyvaihe käyttää MXNetiä ja OpenCV:tä, joten se käyttää valmiiksi rakennettua MXNet-säiliökuvaa. Loput riippuvuudet asennetaan käyttämällä a requirements.txt tiedosto. Jos haluat luoda ja käyttää mukautettua kuvaa, katso Luo Amazon SageMaker -projekteja kuvarakentamisen CI/CD -putkilinjoilla.

Harjoitusvaiheessa käytämme kuvien luokitteluun SageMakerin sisäänrakennetusta Scikit Docker -kuvasta saatavaa estimaattoria ja asetamme parametrit seuraavasti:

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)

Lisätietoja säilökuvasta on kohdassa Kuvan luokittelualgoritmi.

Luo Studio-projekti

Katso yksityiskohtaiset ohjeet Studion käyttöönotosta kohdasta Sisääntulo Amazon SageMaker -verkkotunnukseen pika-asetuksella. Luo projekti suorittamalla seuraavat vaiheet:

  1. Valitse Studiossa Projektit -valikko SageMaker-resurssit valikosta.
    Rakenna ratkaisu tietokonenäön ihovaurioiden luokittimeen käyttämällä Amazon SageMaker Pipelines PlatoBlockchain Data Intelligenceä. Pystysuuntainen haku. Ai.
    Projektisivulla voit käynnistää esikonfiguroidun SageMaker MLOps -mallin.
  2. Valita MLOps-malli mallin rakentamiseen, koulutukseen ja käyttöönottoon.
  3. Valita Valitse projektimalli.
    Rakenna ratkaisu tietokonenäön ihovaurioiden luokittimeen käyttämällä Amazon SageMaker Pipelines PlatoBlockchain Data Intelligenceä. Pystysuuntainen haku. Ai.
  4. Anna projektin nimi ja lyhyt kuvaus.
  5. Valita Luo hanke.

Projektin luominen kestää muutaman minuutin.

Valmistele tietojoukko

Valmistele tietojoukko suorittamalla seuraavat vaiheet:

  1. Mene Harvard DataVerse.
  2. Valita Käytä tietojoukkoa, ja tarkista Creative Commons Attribution-NonCommercial 4.0 International Public License -lisenssi.
  3. Jos hyväksyt lisenssin, valitse Alkuperäinen Zip-muoto ja lataa ZIP-tiedosto.
  4. Luo Amazonin yksinkertainen tallennuspalvelu (Amazon S3) ämpäri ja valitse nimi, joka alkaa kirjaimella sagemaker (tämän avulla SageMaker voi käyttää ämpäriä ilman lisäoikeuksia).
  5. Voit ottaa käyttöön kirjaamisen ja salauksen turvallisuuden parhaiden käytäntöjen vuoksi.
  6. Lataa dataverse_files.zip ämpäriin.
  7. Tallenna S3-ämpäripolku myöhempää käyttöä varten.
  8. Kirjoita muistiin sen ryhmän nimi, johon olet tallentanut tiedot, sekä mahdollisten myöhempien kansioiden nimet käytettäväksi myöhemmin.

Valmistaudu tietojen esikäsittelyyn

Koska käytämme esikäsittelyvaiheessamme MXNetiä ja OpenCV:tä, käytämme valmiiksi rakennettua MXNet Docker -näköistiedostoa ja asennamme loput riippuvuudet käyttämällä requirements.txt tiedosto. Voit tehdä tämän kopioimalla sen ja liittämällä sen alle pipelines/skin vuonna sagemaker--modelbuild arkisto. Lisää lisäksi MANIFEST.in tiedosto samalla tasolla kuin setup.py, käskeäksesi Pythonia sisällyttämään requirements.txt tiedosto. Lisätietoja aiheesta MANIFEST.in, viitata Sisältää tiedostot lähdejakeluissa MANIFEST.in:n kanssa. Molemmat tiedostot löytyvät GitHub-arkisto.

Muuta Pipelines-mallia

Päivitä Pipelines-malli seuraavasti:

  1. Luo kansio oletusämpäriin.
  2. Varmista, että Studion suoritusroolilla on pääsy oletussäilöön sekä tietojoukon sisältävään säilöyn.
  3. Valitse projektiluettelosta juuri luomasi projekti.
  4. On Asennuslähteet -välilehti, valitse hyperlinkit kloonataksesi ne paikallisesti AWS CodeCommit arkistot paikalliseen Studio-esiintymään.
    Rakenna ratkaisu tietokonenäön ihovaurioiden luokittimeen käyttämällä Amazon SageMaker Pipelines PlatoBlockchain Data Intelligenceä. Pystysuuntainen haku. Ai.
  5. Siirry pipelines hakemiston sisällä sagemaker--modelbuild hakemistoon ja nimeä se uudelleen abalone hakemistoon skin.
  6. Avaa codebuild-buildspec.yml Tiedosto sagemaker--modelbuild hakemistosta ja muokkaa ajon liukuhihnan polkua run-pipeline —module-name pipelines.abalone.pipeline (rivi 15) seuraavaan:
    run-pipeline --module-name pipelines.skin.pipeline 

  7. Tallenna tiedosto.
  8. Vaihda tiedostot pipelines.py, preprocess.pyja evaluate.py pipelines-hakemistossa tiedostojen kanssa GitHub-arkisto.
    Rakenna ratkaisu tietokonenäön ihovaurioiden luokittimeen käyttämällä Amazon SageMaker Pipelines PlatoBlockchain Data Intelligenceä. Pystysuuntainen haku. Ai.
  9. Päivitä preprocess.py tiedosto (rivit 183-186), jossa on S3-sijainti (SKIN_CANCER_BUCKET) ja kansion nimi (SKIN_CANCER_BUCKET_PATH) johon latasit dataverse_files.zip arkisto:
    1. skin_cancer_bucket=””
    2. skin_cancer_bucket_path=””
    3. skin_cancer_files=””
    4. skin_cancer_files_ext=””

Edellisessä esimerkissä tietojoukko tallennettaisiin alle s3://monai-bucket-skin-cancer/skin_cancer_bucket_prefix/dataverse_files.zip.

Rakenna ratkaisu tietokonenäön ihovaurioiden luokittimeen käyttämällä Amazon SageMaker Pipelines PlatoBlockchain Data Intelligenceä. Pystysuuntainen haku. Ai.

Käynnistä putkilinjan ajo

Sitoutuneiden muutosten työntäminen CodeCommit-tietovarastoon (tehty Studion lähteenhallinta-välilehdellä) käynnistää uuden liukuhihnan ajon, koska Amazon EventBridge tapahtumavalvojia sitoumuksia varten. Voimme seurata ajoa valitsemalla putkilinjan SageMaker-projektin sisällä. Seuraavassa kuvakaappauksessa on esimerkki putkesta, joka suoritettiin onnistuneesti.

Rakenna ratkaisu tietokonenäön ihovaurioiden luokittimeen käyttämällä Amazon SageMaker Pipelines PlatoBlockchain Data Intelligenceä. Pystysuuntainen haku. Ai.

  1. Jos haluat vahvistaa muutokset, siirry vasemman ruudun Git-osioon.
  2. Tee kaikki asiaankuuluvat muutokset. Sinun ei tarvitse seurata tilannetta -checkpoint tiedosto. Voit lisätä merkinnän .gitignore tiedoston kanssa *checkpoint.* jättää ne huomiotta.
  3. Vahvista muutokset antamalla yhteenveto sekä nimesi ja sähköpostiosoitteesi.
  4. Paina muutokset.
  5. Siirry takaisin projektiin ja valitse putkistojen osiossa.
  6. Jos valitset meneillään olevat liukuhihnat, liukuhihnan vaiheet tulevat näkyviin.
    Tämän avulla voit valvoa parhaillaan käynnissä olevaa vaihetta. Voi kestää muutaman minuutin, ennen kuin liukuhihna tulee näkyviin. Jotta liukuhihna käynnistyy, CI/CD:ssä määritetyt vaiheet codebuild-buildspec.yml täytyy juosta onnistuneesti. Voit tarkistaa näiden vaiheiden tilan käyttämällä AWS CodeBuild. Lisätietoja on kohdassa AWS CodeBuild (AMS SSPS).
  7. Kun liukuhihna on valmis, palaa projektisivulle ja valitse Malliryhmät -välilehteä tarkistaaksesi mallin artefakteihin liitetyt metatiedot.
  8. Jos kaikki näyttää hyvältä, valitse status Update -välilehti ja hyväksy malli manuaalisesti. Oletus ModelApprovalStatus asetetaan PendingManualApproval. Jos mallimme tarkkuus on yli 60%, se lisätään mallirekisteriin, mutta sitä ei käytetä ennen manuaalisen hyväksynnän päättymistä.
  9. Siirry Endpoints SageMaker-konsolin sivulle, jossa voit nähdä vaiheittaisen päätepisteen luomisen. Muutaman minuutin kuluttua päätepiste näkyy luettelossa InService tila.
  10. Voit ottaa päätepisteen käyttöön tuotannossa CodePipeline konsoli, valitse sagemaker--modeldeploy putki, joka on parhaillaan käynnissä.
  11. Lopussa DeployStaging vaiheessa, sinun on hyväksyttävä käyttöönotto manuaalisesti.

Tämän vaiheen jälkeen voit nähdä tuotannon päätepisteen käyttöönoton SageMakerissa Endpoints sivu. Hetken kuluttua päätepiste näkyy muodossa InService.

Rakenna ratkaisu tietokonenäön ihovaurioiden luokittimeen käyttämällä Amazon SageMaker Pipelines PlatoBlockchain Data Intelligenceä. Pystysuuntainen haku. Ai.

Puhdistaa

Voit helposti puhdistaa kaikki SageMaker-projektin luomat resurssit.

  1. Valitse Studion navigointiruudusta SageMaker-resurssit.
  2. Valita Projektit avattavasta valikosta ja valitse projektisi.
  3. On Toiminnot valikosta, valitse Poista poistaaksesi kaikki liittyvät resurssit.

Rakenna ratkaisu tietokonenäön ihovaurioiden luokittimeen käyttämällä Amazon SageMaker Pipelines PlatoBlockchain Data Intelligenceä. Pystysuuntainen haku. Ai.

Tulokset ja seuraavat vaiheet

Käytimme Pipelinesiä menestyksekkäästi luodaksemme päästä-päähän MLOps-kehyksen ihovaurioiden luokittelua varten käyttämällä HAM10000-tietojoukon sisäänrakennettua mallia. Arkistossa toimitetuille parametreille saimme seuraavat tulokset testijoukosta.

metrinen Tarkkuus Palauttaa mieleen F1 pisteet
Arvo 0.643 0.8 0.713

Voit parantaa mallin suorituskykyä edelleen hienosäätämällä sen hyperparametreja, lisäämällä muunnoksia tiedon lisäämistä varten tai käyttämällä muita menetelmiä, kuten Synthetic Minority Oversampling Technique (SMOTE) tai Generative Adversarial Networks (GANs). Lisäksi voit käyttää omaa malliasi tai algoritmiasi harjoitteluun käyttämällä sisäänrakennettuja SageMaker Docker -kuvia tai mukauttamalla omaa säilösi toimimaan SageMakerissa. Katso lisätietoja osoitteesta Docker-astioiden käyttö SageMakerin kanssa.

Voit myös lisätä lisäominaisuuksia putkistoon. Jos haluat sisällyttää valvonnan, voit valita MLOps-malli mallin rakentamista, koulutusta, käyttöönottoa ja seurantaa varten mallia SageMaker-projektia luotaessa. Tuloksena olevassa arkkitehtuurissa on ylimääräinen valvontavaihe. Tai jos sinulla on olemassa kolmannen osapuolen Git-arkisto, voit käyttää sitä valitsemalla MLOps-malli mallin rakentamiseen, koulutukseen ja käyttöönottoon kolmannen osapuolen Git-varastoissa Jenkinsin avulla projektin ja tietojen tarjoaminen sekä mallin rakentamiseen että mallin käyttöönottotietovarastoihin. Näin voit hyödyntää mitä tahansa olemassa olevaa koodia ja säästää aikaa tai vaivaa SageMakerin ja Gitin välisessä integraatiossa. Kuitenkin tälle vaihtoehdolle a AWS CodeStar yhteys tarvitaan.

Yhteenveto

Tässä viestissä näytimme, kuinka luodaan päästä päähän ML-työnkulku Studion ja automatisoitujen putkien avulla. Työnkulkuun sisältyy tietojoukon hankkiminen, sen tallentaminen ML-mallin käytettävissä olevaan paikkaan, säiliökuvan määrittäminen esikäsittelyä varten ja sitten vakiokoodin muokkaaminen tällaisen kuvan mukaiseksi. Sitten näytimme, kuinka liukuhihna laukaistaan, vaiheet, joita putkisto seuraa, ja kuinka ne toimivat. Keskustelimme myös mallin suorituskyvyn valvomisesta ja mallin käyttöönotosta päätepisteeseen.

Suoritimme suurimman osan näistä tehtävistä Studiossa, joka toimii kaiken kattavana ML IDE:nä ja nopeuttaa tällaisten mallien kehitystä ja käyttöönottoa.

Tämä ratkaisu ei ole sidottu ihon luokittelutehtävään. Voit laajentaa sen mihin tahansa luokitus- tai regressiotehtävään käyttämällä mitä tahansa SageMakerin sisäänrakennettua algoritmia tai esikoulutettua malleja.


Tietoja kirjoittajista

Rakenna ratkaisu tietokonenäön ihovaurioiden luokittimeen käyttämällä Amazon SageMaker Pipelines PlatoBlockchain Data Intelligenceä. Pystysuuntainen haku. Ai. Mariem Kthiri on AI/ML-konsultti AWS Professional Services Globalsissa ja on osa Health Care and Life Science (HCLS) -tiimiä. Hän on intohimoinen rakentamaan ML-ratkaisuja erilaisiin ongelmiin ja on aina innokas tarttumaan uusiin mahdollisuuksiin ja aloitteisiin. Hän asuu Münchenissä, Saksassa ja on innokas matkustamaan ja tutustumaan muihin osiin maailmaa.

Rakenna ratkaisu tietokonenäön ihovaurioiden luokittimeen käyttämällä Amazon SageMaker Pipelines PlatoBlockchain Data Intelligenceä. Pystysuuntainen haku. Ai.Yassine Zaafouri on AI/ML-konsultti AWS:n Professional Services -yksikössä. Hän antaa globaaleille yritysasiakkaille mahdollisuuden rakentaa ja ottaa käyttöön AI/ML-ratkaisuja pilvessä selviytyäkseen liiketoiminnan haasteistaan. Vapaa-ajallaan hän nauttii pelaamisesta ja urheilun katsomisesta sekä matkustamisesta ympäri maailmaa.

Rakenna ratkaisu tietokonenäön ihovaurioiden luokittimeen käyttämällä Amazon SageMaker Pipelines PlatoBlockchain Data Intelligenceä. Pystysuuntainen haku. Ai.Fotinos Kyriakides on AI/ML-insinööri ammattipalveluissa AWS:ssä. Hän on intohimoinen teknologian käyttämisestä arvon tuottamiseksi asiakkaille ja liiketoiminnan tulosten saavuttamiseksi. Tukikohta Lontoossa, vapaa-ajallaan hän nauttii juoksemisesta ja tutkimisesta.

Rakenna ratkaisu tietokonenäön ihovaurioiden luokittimeen käyttämällä Amazon SageMaker Pipelines PlatoBlockchain Data Intelligenceä. Pystysuuntainen haku. Ai.Anna Zapaishchykova oli ProServe-konsultti AI/ML:ssä ja Amazon Healthcare TFC:n jäsen. Hän on intohimoinen teknologiasta ja sen vaikutuksista terveydenhuoltoon. Hänen taustansa on rakentaa MLOps-ratkaisuja ja tekoälypohjaisia ​​ratkaisuja asiakkaiden ongelmiin useilla aloilla, kuten vakuutus-, auto- ja terveydenhuolto.

Aikaleima:

Lisää aiheesta AWS-koneoppiminen