Zgradite rešitev za klasifikator kožnih lezij računalniškega vida z uporabo Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.

Izdelajte rešitev za klasifikator kožnih lezij računalniškega vida z uporabo Amazon SageMaker Pipelines

Amazonski cevovodi SageMaker je storitev stalne integracije in stalne dostave (CI/CD), zasnovana za primere uporabe strojnega učenja (ML). Uporabite ga lahko za ustvarjanje, avtomatizacijo in upravljanje potekov dela ML od konca do konca. Spopada se z izzivom orkestriranja vsakega koraka procesa strojnega pisanja, ki zahteva čas, trud in sredstva. Za lažjo uporabo je na voljo več predlog, ki jih lahko prilagodite svojim potrebam.

Popolnoma upravljane storitve analize slike in videa so prav tako pospešile sprejemanje rešitev računalniškega vida. AWS ponuja vnaprej usposobljeno in v celoti upravljano storitev AWS AI, imenovano Amazonsko ponovno vžiganje ki jih je mogoče integrirati v aplikacije računalniškega vida z uporabo klicev API in ne zahtevajo izkušenj z ML. Zagotoviti morate samo sliko API za ponovni vžig Amazon in lahko identificira zahtevane predmete glede na vnaprej določene oznake. Prav tako je mogoče zagotoviti oznake po meri, specifične za vaš primer uporabe, in zgraditi model računalniškega vida po meri z malo ali nič dodatnih stroškov strokovnega znanja o ML.

V tem prispevku obravnavamo določeno težavo z računalniškim vidom: klasifikacijo kožnih lezij in uporabimo cevovode tako, da prilagodimo obstoječo predlogo in jo prilagodimo tej nalogi. Natančna klasifikacija kožnih lezij lahko pomaga pri zgodnji diagnozi rakavih bolezni. Vendar pa je to na medicinskem področju zahtevna naloga, saj obstaja velika podobnost med različnimi vrstami kožnih lezij. Cevovodi nam omogočajo, da izkoristimo prednosti različnih obstoječih modelov in algoritmov ter vzpostavimo produkcijski cevovod od konca do konca z minimalnim trudom in časom.

Pregled rešitev

V tej objavi gradimo cevovod od konca do konca z uporabo cevovodov za razvrščanje dermatoskopskih slik pogostih pigmentiranih kožnih lezij. Uporabljamo Amazon SageMaker Studio predloga projekta Predloga MLOps za izdelavo, usposabljanje in uvajanje modelov in kodo v nadaljevanju GitHub repozitorij. Nastala arhitektura je prikazana na naslednji sliki.

Za ta nabor podatkov uporabljamo nabor podatkov HAM10000 (»Človek proti stroju s 10000 slikami za usposabljanje«), ki je sestavljen iz 10,015 dermatoskopskih slik. Naloga pri roki je večrazredna klasifikacija na področju računalniškega vida. Ta nabor podatkov prikazuje šest najpomembnejših diagnostičnih kategorij na področju pigmentiranih lezij: aktinične keratoze in intraepitelijski karcinom ali Bowenovo bolezen (akiec), bazalnocelični karcinom (bcc), benigne lezije, podobne keratozi (sončne lentigine ali seboroične keratoze in lichen planusu podobne keratoze, bkl), dermatofibrom (df), melanom (mel), melanocitni nevusi (nv) in vaskularne lezije (angiomi, angiokeratomi, piogeni granulomi in krvavitve, vasc).

Za format vnosa modela uporabljamo RecordIO format. To je kompakten format, ki shranjuje slikovne podatke skupaj za neprekinjeno branje in s tem hitrejše in učinkovitejše usposabljanje. Poleg tega je eden od izzivov uporabe nabora podatkov HAM10000 neravnovesje razredov. Naslednja tabela prikazuje porazdelitev razredov.

Class akiec skp bkl df Mel nv vasc
Število slik 327 514 1099 115 1113 6705 142
Skupaj za plačilo 10015

Da bi rešili to težavo, povečamo nabor podatkov z naključnimi transformacijami (kot so obrezovanje, obračanje, zrcaljenje in vrtenje), da bi imeli vsi razredi približno enako število slik.

Ta korak predprocesiranja uporablja MXNet in OpenCV, zato uporablja vnaprej zgrajeno sliko vsebnika MXNet. Ostale odvisnosti so nameščene z uporabo a requirements.txt mapa. Če želite ustvariti in uporabiti sliko po meri, glejte Ustvarite projekte Amazon SageMaker s cevovodi CI/CD za ustvarjanje slik.

Za korak usposabljanja uporabimo ocenjevalec, ki je na voljo v sliki Scikit Docker, vgrajeni v SageMaker, za klasifikacijo slik in nastavimo parametre, kot sledi:

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)

Za nadaljnje podrobnosti o sliki vsebnika glejte Algoritem za klasifikacijo slik.

Ustvarite projekt Studio

Za podrobna navodila o tem, kako nastaviti Studio, glejte Vključite se v domeno Amazon SageMaker s hitro nastavitvijo. Če želite ustvariti svoj projekt, izvedite naslednje korake:

  1. V Studiu izberite projekti v meniju Viri SageMaker meni.
    Zgradite rešitev za klasifikator kožnih lezij računalniškega vida z uporabo Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.
    Na strani projektov lahko zaženete vnaprej konfigurirano predlogo SageMaker MLOps.
  2. Izberite Predloga MLOps za izdelavo, usposabljanje in uvajanje modelov.
  3. Izberite Izberite predlogo projekta.
    Zgradite rešitev za klasifikator kožnih lezij računalniškega vida z uporabo Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.
  4. Vnesite ime projekta in kratek opis.
  5. Izberite Ustvarite projekt.

Ustvarjanje projekta traja nekaj minut.

Pripravite nabor podatkov

Za pripravo nabora podatkov izvedite naslednje korake:

  1. Pojdi na Harvard DataVerse.
  2. Izberite Access Datasetin preglejte licenco Creative Commons Attribution-NonCommercial 4.0 International Public License.
  3. Če sprejmete licenco, izberite Izvirni format Zip in prenesite datoteko ZIP.
  4. Ustvari Preprosta storitev shranjevanja Amazon (Amazon S3) in izberite ime, ki se začne z sagemaker (to SageMakerju omogoča dostop do vedra brez dodatnih dovoljenj).
  5. Za najboljše varnostne prakse lahko omogočite beleženje dostopa in šifriranje.
  6. Pošiljanje dataverse_files.zip v vedro.
  7. Shranite pot vedra S3 za kasnejšo uporabo.
  8. Zabeležite si ime vedra, v katerega ste shranili podatke, in imena vseh naslednjih map, ki jih boste uporabili pozneje.

Pripravite se na predhodno obdelavo podatkov

Ker v našem koraku predprocesiranja uporabljamo MXNet in OpenCV, uporabljamo vnaprej zgrajeno sliko MXNet Docker in namestimo preostale odvisnosti z uporabo requirements.txt mapa. Če želite to narediti, ga morate kopirati in prilepiti pod pipelines/skin v sagemaker--modelbuild repozitorij. Poleg tega dodajte MANIFEST.in datoteko na isti ravni kot setup.py, da povem Pythonu, naj vključi requirements.txt mapa. Za več informacij o MANIFEST.in, nanašati se na Vključitev datotek v izvornih distribucijah z MANIFEST.in. Obe datoteki najdete v GitHub repozitorij.

Spremenite predlogo Cevovodi

Če želite posodobiti predlogo Cevovodi, izvedite naslednje korake:

  1. Ustvarite mapo znotraj privzetega vedra.
  2. Prepričajte se, da ima izvajalska vloga Studio dostop do privzetega vedra in vedra, ki vsebuje nabor podatkov.
  3. Na seznamu projektov izberite tistega, ki ste ga pravkar ustvarili.
  4. o Repozitoriji izberite hiperpovezave za lokalno kloniranje AWS CodeCommit repozitorije v vaš lokalni primerek Studio.
    Zgradite rešitev za klasifikator kožnih lezij računalniškega vida z uporabo Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.
  5. Pomaknite se na pipelines imenik znotraj sagemaker--modelbuild imenik in ga preimenujte abalone imenik skin.
  6. odprite codebuild-buildspec.yml datoteko v sagemaker--modelbuild imenik in spremenite pot cevovoda izvajanja iz run-pipeline —module-name pipelines.abalone.pipeline (vrstica 15) na naslednje:
    run-pipeline --module-name pipelines.skin.pipeline 

  7. Shranite datoteko.
  8. Zamenjajte datoteke pipelines.py, preprocess.pyin evaluate.py v imeniku pipelines z datotekami iz GitHub repozitorij.
    Zgradite rešitev za klasifikator kožnih lezij računalniškega vida z uporabo Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.
  9. Posodobite preprocess.py datoteka (vrstice 183-186) z lokacijo S3 (SKIN_CANCER_BUCKET) in ime mape (SKIN_CANCER_BUCKET_PATH), kamor ste naložili dataverse_files.zip arhiv:
    1. skin_cancer_bucket=””
    2. skin_cancer_bucket_path=””
    3. skin_cancer_files=””
    4. skin_cancer_files_ext=””

V prejšnjem primeru bi bil nabor podatkov shranjen pod s3://monai-bucket-skin-cancer/skin_cancer_bucket_prefix/dataverse_files.zip.

Zgradite rešitev za klasifikator kožnih lezij računalniškega vida z uporabo Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.

Sproži zagon cevovoda

Potiskanje potrjenih sprememb v repozitorij CodeCommit (izvedeno na zavihku za nadzor vira Studio) sproži nov zagon cevovoda, ker Amazon EventBridge spremlja dogodke za objave. Potek lahko spremljamo z izbiro cevovoda znotraj projekta SageMaker. Naslednji posnetek zaslona prikazuje primer cevovoda, ki se je uspešno izvajal.

Zgradite rešitev za klasifikator kožnih lezij računalniškega vida z uporabo Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.

  1. Če želite potrditi spremembe, se pomaknite do razdelka Git v levem podoknu.
  2. Izvedite vse pomembne spremembe. Ni vam treba slediti -checkpoint mapa. Vnos lahko dodate v .gitignore datoteko s *checkpoint.* ignorirati jih.
  3. Izvedite spremembe tako, da navedete povzetek ter svoje ime in e-poštni naslov.
  4. Potisnite spremembe.
  5. Pomaknite se nazaj do projekta in izberite Cevovodi oddelek.
  6. Če izberete cevovode v teku, se prikažejo koraki cevovoda.
    To vam omogoča spremljanje koraka, ki se trenutno izvaja. Morda bo trajalo nekaj minut, da se prikaže cevovod. Za začetek izvajanja cevovoda so potrebni koraki, opredeljeni v CI/CD codebuild-buildspec.yml morajo uspešno teči. Če želite preveriti stanje teh korakov, lahko uporabite AWS CodeBuild. Za več informacij glejte AWS CodeBuild (AMS SSPS).
  7. Ko je cevovod končan, se vrnite na stran projekta in izberite Vzorčne skupine za pregled metapodatkov, priloženih artefaktom modela.
  8. Če vse izgleda dobro, izberite Stanje posodobitve in ročno odobrite model. Privzeto ModelApprovalStatus nastavljena na PendingManualApproval. Če ima naš model več kot 60-odstotno natančnost, je dodan v register modelov, vendar ne bo uveden, dokler ni zaključena ročna odobritev.
  9. Pomaknite se na Končne točke stran na konzoli SageMaker, kjer si lahko ogledate ustvarjanje uprizoritvene končne točke. Po nekaj minutah je končna točka navedena z InService Status.
  10. Če želite uvesti končno točko v produkcijo, na CodePipeline konzolo, izberite sagemaker--modeldeploy cevovoda, ki je trenutno v teku.
  11. Na koncu DeployStaging fazi, morate ročno odobriti uvedbo.

Po tem koraku si lahko ogledate produkcijsko končno točko, ki se uvaja v SageMaker Končne točke strani. Čez nekaj časa se končna točka prikaže kot InService.

Zgradite rešitev za klasifikator kožnih lezij računalniškega vida z uporabo Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.

Čiščenje

Z lahkoto lahko počistite vse vire, ustvarjene s projektom SageMaker.

  1. V podoknu za krmarjenje v Studiu izberite Viri SageMaker.
  2. Izberite projekti v spustnem meniju in izberite svoj projekt.
  3. o Proces izberite meni Brisanje da izbrišete vse povezane vire.

Zgradite rešitev za klasifikator kožnih lezij računalniškega vida z uporabo Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.

Rezultati in naslednji koraki

Uspešno smo uporabili cevovode za ustvarjanje ogrodja MLOps od konca do konca za klasifikacijo kožnih lezij z uporabo vgrajenega modela na naboru podatkov HAM10000. Za parametre, navedene v repozitoriju, smo na testnem nizu dobili naslednje rezultate.

Metric Precision Recall Ocena F1
vrednost 0.643 0.8 0.713

Nadalje lahko delate na izboljšanju učinkovitosti modela tako, da natančno prilagodite njegove hiperparametre, dodate več transformacij za povečanje podatkov ali uporabite druge metode, kot je tehnika sintetičnega manjšinskega nadvzorčenja (SMOTE) ali generativna kontradiktorna omrežja (GAN). Poleg tega lahko uporabite svoj model ali algoritem za usposabljanje z uporabo vgrajenih slik SageMaker Docker ali prilagajanjem lastnega vsebnika za delo v SageMakerju. Za dodatne podrobnosti glejte Uporaba Docker posod z SageMakerjem.

Svojemu cevovodu lahko dodate tudi dodatne funkcije. Če želite vključiti spremljanje, lahko izberete Predloga MLOps za izdelavo modela, usposabljanje, uvajanje in spremljanje predlogo pri ustvarjanju projekta SageMaker. Nastala arhitektura ima dodaten korak spremljanja. Če pa imate obstoječe repozitorij Git tretje osebe, ga lahko uporabite tako, da izberete Predloga MLOps za gradnjo modela, usposabljanje in uvajanje z repozitoriji Git tretjih oseb z uporabo Jenkinsa projekt in zagotavljanje informacij za repozitorije gradnje modelov in uvajanja modelov. To vam omogoča, da uporabite katero koli obstoječo kodo in vam prihrani čas ali trud pri integraciji med SageMaker in Git. Vendar pa je za to možnost a AWS CodeStar potrebna je povezava.

zaključek

V tej objavi smo pokazali, kako ustvariti potek dela ML od konca do konca z uporabo programa Studio in avtomatiziranih cevovodov. Delovni tok vključuje pridobivanje nabora podatkov, njegovo shranjevanje na mesto, ki je dostopno modelu ML, konfiguriranje slike vsebnika za predhodno obdelavo in nato spreminjanje predloge kode, da se prilagodi takšni sliki. Nato smo pokazali, kako sprožiti cevovod, korake, ki jim cevovod sledi, in kako delujejo. Razpravljali smo tudi o tem, kako spremljati delovanje modela in razmestiti model na končno točko.

Večino teh nalog smo opravili znotraj Studia, ki deluje kot vseobsegajoč ML IDE in pospešuje razvoj in uvajanje tovrstnih modelov.

Ta rešitev ni vezana na nalogo klasifikacije kože. Razširite ga lahko na katero koli nalogo klasifikacije ali regresije z uporabo katerega koli od vgrajenih algoritmov SageMaker ali vnaprej usposobljenih modelov.


O avtorjih

Zgradite rešitev za klasifikator kožnih lezij računalniškega vida z uporabo Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Navpično iskanje. Ai. Mariem Kthiri je svetovalec za AI/ML pri AWS Professional Services Globals in je del ekipe Health Care and Life Science (HCLS). Navdušena je nad ustvarjanjem rešitev ML za različne težave in vedno pripravljena skočiti na nove priložnosti in pobude. Živi v Münchnu v Nemčiji in rada potuje ter odkriva druge dele sveta.

Zgradite rešitev za klasifikator kožnih lezij računalniškega vida z uporabo Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.Yassine Zaafouri je svetovalec za AI/ML znotraj strokovnih storitev pri AWS. Globalnim poslovnim strankam omogoča izgradnjo in uvajanje rešitev AI/ML v oblaku za premagovanje njihovih poslovnih izzivov. V prostem času rad igra in spremlja šport ter potuje po svetu.

Zgradite rešitev za klasifikator kožnih lezij računalniškega vida z uporabo Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.Fotinos Kyriakides je inženir AI/ML znotraj strokovnih storitev v AWS. Navdušen je nad uporabo tehnologije za zagotavljanje vrednosti strankam in doseganje poslovnih rezultatov. Baza v Londonu, v prostem času uživa v teku raziskuje.

Zgradite rešitev za klasifikator kožnih lezij računalniškega vida z uporabo Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.Anna Zapaishchykova je bil ProServe Consultant za AI/ML in član Amazon Healthcare TFC. Navdušena je nad tehnologijo in vplivom, ki ga lahko ima na zdravstveno varstvo. Njeno ozadje se ukvarja z gradnjo MLOps in rešitev, ki jih poganja AI za težave strank na različnih področjih, kot so zavarovalništvo, avtomobilizem in zdravstvo.

Časovni žig:

Več od Strojno učenje AWS