Looge lahendus arvutinägemise nahakahjustuste klassifikaatori jaoks, kasutades Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence'i. Vertikaalne otsing. Ai.

Looge lahendus arvutinägemise nahakahjustuste klassifikaatori jaoks, kasutades Amazon SageMaker Pipelines

Amazon SageMakeri torujuhtmed on pideva integreerimise ja pideva tarnimise (CI/CD) teenus, mis on loodud masinõppe (ML) kasutusjuhtudeks. Saate seda kasutada täielike ML-i töövoogude loomiseks, automatiseerimiseks ja haldamiseks. See lahendab ML-protsessi iga etapi korraldamise väljakutse, mis nõuab aega, jõupingutusi ja ressursse. Selle kasutamise hõlbustamiseks on saadaval mitu malli, mida saate vastavalt oma vajadustele kohandada.

Täielikult hallatavad pildi- ja videoanalüüsi teenused on kiirendanud ka arvutinägemise lahenduste kasutuselevõttu. AWS pakub eelkoolitatud ja täielikult hallatavat AWS AI teenust nimega Amazon Rekognitsioon mida saab API-kõnede abil integreerida arvutinägemisrakendustesse ja mis ei nõua ML-kogemust. Peate lihtsalt esitama pildi Amazon Rekognition API ja see suudab tuvastada vajalikud objektid vastavalt eelnevalt määratletud siltidele. Samuti on võimalik pakkuda teie kasutusjuhtumile spetsiifilisi kohandatud silte ja luua kohandatud arvutinägemise mudel, mis ei vaja ML-teadmisi peaaegu üldse.

Selles postituses käsitleme konkreetset arvutinägemisprobleemi: nahakahjustuste klassifikatsiooni ja kasutame torujuhtmeid, kohandades olemasolevat malli ja kohandades seda selle ülesande jaoks. Täpne nahakahjustuste klassifikatsioon võib aidata vähihaigusi varakult diagnoosida. Kuid see on meditsiinivaldkonnas keeruline ülesanne, kuna erinevat tüüpi nahakahjustused on väga sarnased. Torujuhtmed võimaldavad meil ära kasutada mitmesuguseid olemasolevaid mudeleid ja algoritme ning luua minimaalse pingutuse ja ajaga täieliku tootmisprotsessi.

Lahenduse ülevaade

Selles postituses koostame torujuhtmete abil otsast lõpuni torujuhtme tavaliste pigmenteerunud nahakahjustuste dermatoskoopiliste kujutiste klassifitseerimiseks. Me kasutame Amazon SageMaker Studio projekti mall MLOps mall mudelite ehitamiseks, koolitamiseks ja juurutamiseks ja kood allpool GitHubi hoidla. Saadud arhitektuur on näidatud järgmisel joonisel.

Selle torujuhtme jaoks kasutame andmestikku HAM10000 (“Inimene masina vastu 10000 10,015 treeningpildiga”), mis koosneb XNUMX XNUMX dermatoskoopilisest kujutisest. Käsitletav ülesanne on mitme klassi klassifikatsioon arvutinägemise valdkonnas. Selles andmekogumis on kujutatud kuus kõige olulisemat diagnostilist kategooriat pigmenteerunud kahjustuste valdkonnas: aktiiniline keratoosid ja intraepiteliaalne kartsinoom või Boweni tõbi (akiec), basaalrakuline kartsinoom (bcc), healoomulised keratoositaolised kahjustused (päikese lentigiinid või seborroilised keratoosid ja samblike nagu keratoosid, bkl), dermatofibroom (df), melanoom (mel), melanotsüütide nevi (nv) ja veresoonte kahjustused (angioomid, angiokeratoomid, püogeensed granuloomid ja hemorraagia, vasc).

Mudeli sisendi vormingu jaoks kasutame RecordIO vormingus. See on kompaktne formaat, mis salvestab pildiandmed koos pidevaks lugemiseks ning seega kiiremaks ja tõhusamaks treenimiseks. Lisaks on HAM10000 andmestiku kasutamise üheks väljakutseks klasside tasakaalustamatus. Järgmine tabel illustreerib klasside jaotust.

klass akiec Pimekoopia bkl df mel nv vasc
Piltide arv 327 514 1099 115 1113 6705 142
Summa 10015

Selle probleemi lahendamiseks täiendame andmestikku juhuslike teisenduste (nt kärpimine, ümberpööramine, peegeldamine ja pööramine) abil, et kõigil klassidel oleks ligikaudu sama arv pilte.

See eeltöötlusetapp kasutab MXNeti ja OpenCV-d, seega kasutatakse eelehitatud MXNeti konteineri kujutist. Ülejäänud sõltuvused installitakse, kasutades a requirements.txt faili. Kui soovite luua ja kasutada kohandatud pilti, vaadake Looge Amazon SageMakeri projekte pildi loomise CI/CD torujuhtmetega.

Treeningsammu jaoks kasutame piltide klassifitseerimiseks SageMakeri sisseehitatud Scikit Dockeri pildilt saadaolevat hindajat ja määrame parameetrid järgmiselt:

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)

Lisateavet konteineri kujutise kohta leiate aadressilt Piltide klassifitseerimise algoritm.

Looge stuudioprojekt

Üksikasjalikud juhised Studio seadistamise kohta leiate aadressilt Kiirseadistuse abil Amazon SageMakeri domeenis. Projekti loomiseks toimige järgmiselt.

  1. Stuudios valige Projektid menüü SageMakeri ressursid menüü.
    Looge lahendus arvutinägemise nahakahjustuste klassifikaatori jaoks, kasutades Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence'i. Vertikaalne otsing. Ai.
    Projektide lehel saate käivitada eelkonfigureeritud SageMaker MLOps malli.
  2. Vali MLOps mall mudeli ehitamiseks, koolituseks ja juurutamiseks.
  3. Vali Valige projekti mall.
    Looge lahendus arvutinägemise nahakahjustuste klassifikaatori jaoks, kasutades Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence'i. Vertikaalne otsing. Ai.
  4. Sisestage projekti nimi ja lühike kirjeldus.
  5. Vali Loo projekt.

Projekti loomiseks kulub paar minutit.

Valmistage ette andmestik

Andmestiku ettevalmistamiseks toimige järgmiselt.

  1. Minna Harvardi DataVerse.
  2. Vali Juurdepääs andmestikuleja vaadake üle litsents Creative Commons Attribution-NonCommercial 4.0 International Public License.
  3. Kui nõustute litsentsiga, valige Algne zip ja laadige alla ZIP-fail.
  4. Loo Amazoni lihtne salvestusteenus (Amazon S3) ämbrisse ja valige nimi, mis algab tähega sagemaker (see võimaldab SageMakeril juurdepääsu ämbrile ilma lisaõigusteta).
  5. Parimate turvatavade huvides saate lubada juurdepääsu logimise ja krüptimise.
  6. Täiendava dataverse_files.zip ämbrisse.
  7. Salvestage S3 ämbri tee hilisemaks kasutamiseks.
  8. Märkige üles selle ämbri nimi, kuhu olete andmed salvestanud, ja kõigi järgnevate kaustade nimed, et neid hiljem kasutada.

Valmistuge andmete eeltöötluseks

Kuna me kasutame oma eeltöötlusetapis MXNeti ja OpenCV-d, kasutame eelehitatud MXNet Dockeri kujutist ja installime ülejäänud sõltuvused, kasutades requirements.txt faili. Selleks peate selle kopeerima ja alla kleepima pipelines/skin aasta sagemaker--modelbuild hoidla. Lisaks lisage MANIFEST.in failiga samal tasemel setup.py, et käskida Pythonil lisada requirements.txt faili. Lisateabe saamiseks MANIFEST.in, viitama Failide kaasamine allikale MANIFEST.in. Mõlemad failid leiate GitHubi hoidla.

Muutke torujuhtmete malli

Torujuhtmete malli värskendamiseks toimige järgmiselt.

  1. Looge vaikeämbri sees kaust.
  2. Veenduge, et Studio täitmisrollil oleks juurdepääs nii vaikesaldrile kui ka andmestikku sisaldavale ämbrile.
  3. Valige projektide loendist see, mille just lõite.
  4. Kohta Hoidlad valige hüperlingid, mida kohalikult kloonida AWS CodeCommit hoidlad teie kohalikku Studio eksemplari.
    Looge lahendus arvutinägemise nahakahjustuste klassifikaatori jaoks, kasutades Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence'i. Vertikaalne otsing. Ai.
  5. Liikuge pipelines kataloogi sees sagemaker--modelbuild kataloogi ja nimetage see ümber abalone kataloogi skin.
  6. avage codebuild-buildspec.yml failil sagemaker--modelbuild kataloogi ja muutke käivituskonveieri teed run-pipeline —module-name pipelines.abalone.pipeline (rida 15) järgmisele:
    run-pipeline --module-name pipelines.skin.pipeline 

  7. Salvestage fail.
  8. Asendage failid pipelines.py, preprocess.pyja evaluate.py torujuhtmete kataloogis koos failidega alates GitHubi hoidla.
    Looge lahendus arvutinägemise nahakahjustuste klassifikaatori jaoks, kasutades Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence'i. Vertikaalne otsing. Ai.
  9. Uuenda preprocess.py fail (read 183-186) asukohaga S3 (SKIN_CANCER_BUCKET) ja kausta nimi (SKIN_CANCER_BUCKET_PATH), kuhu laadisite üles dataverse_files.zip arhiiv:
    1. skin_cancer_bucket=””
    2. skin_cancer_bucket_path=””
    3. skin_cancer_files=””
    4. skin_cancer_files_ext=””

Eelmises näites salvestatakse andmestik alla s3://monai-bucket-skin-cancer/skin_cancer_bucket_prefix/dataverse_files.zip.

Looge lahendus arvutinägemise nahakahjustuste klassifikaatori jaoks, kasutades Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence'i. Vertikaalne otsing. Ai.

Käivitage torujuhtme käitamine

Tehtud muudatuste edastamine CodeCommiti hoidlasse (seda tehakse Studio allika juhtimise vahekaardil) käivitab uue konveieri käivitamise, kuna Amazon EventBridge sündmuste jälgib kohustusi. Käitamist saame jälgida, valides SageMakeri projekti sees torujuhtme. Järgmisel ekraanipildil on näide edukalt töötatud torujuhtmest.

Looge lahendus arvutinägemise nahakahjustuste klassifikaatori jaoks, kasutades Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence'i. Vertikaalne otsing. Ai.

  1. Muudatuste tegemiseks liikuge vasakpoolsel paanil jaotisesse Git.
  2. Tehke kõik asjakohased muudatused. Te ei pea jälgima -checkpoint faili. Saate lisada kirje .gitignore faili *checkpoint.* neid ignoreerida.
  3. Kinnitage muudatused, esitades kokkuvõtte ning oma nime ja e-posti aadressi.
  4. Lükake muudatused sisse.
  5. Liikuge tagasi projekti juurde ja valige Torujuhtmed sektsiooni.
  6. Kui valite pooleliolevad konveierid, kuvatakse konveieri etapid.
    See võimaldab teil jälgida praegu käimasolevat sammu. Konveieri kuvamiseks võib kuluda paar minutit. Konveieri käivitamiseks järgige CI/CD-s määratletud samme codebuild-buildspec.yml peab edukalt jooksma. Nende sammude oleku kontrollimiseks võite kasutada AWS CodeBuild. Lisateabe saamiseks vaadake AWS CodeBuild (AMS SSPS).
  7. Kui torujuhe on lõpetatud, minge tagasi projekti lehele ja valige Mudelrühmad vahekaarti, et kontrollida mudeli artefaktidele lisatud metaandmeid.
  8. Kui kõik tundub hea, valige oleku uuendus vahekaarti ja kinnitage mudel käsitsi. Vaikimisi ModelApprovalStatus on seatud väärtusele PendingManualApproval. Kui meie mudeli täpsus on suurem kui 60%, lisatakse see mudeliregistrisse, kuid seda ei juurutata enne, kui käsitsi kinnitamine on lõppenud.
  9. Liikuge Lõpp-punktid SageMakeri konsooli lehele, kus näete faasi lõpp-punkti loomist. Mõne minuti pärast kuvatakse lõpp-punkt koos InService status.
  10. Lõpp-punkti juurutamiseks tootmisse, CodePipeline konsool, valige sagemaker--modeldeploy torujuhe, mis on hetkel pooleli.
  11. Aasta lõpus DeployStaging etapis, peate juurutamise käsitsi heaks kiitma.

Pärast seda sammu näete tootmise lõpp-punkti juurutamist SageMakeris Lõpp-punktid lehel. Mõne aja pärast kuvatakse lõpp-punkt kujul InService.

Looge lahendus arvutinägemise nahakahjustuste klassifikaatori jaoks, kasutades Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence'i. Vertikaalne otsing. Ai.

Koristage

Saate hõlpsalt puhastada kõik SageMakeri projektiga loodud ressursid.

  1. Valige Studio navigeerimispaanil SageMakeri ressursid.
  2. Vali Projektid rippmenüüst ja valige oma projekt.
  3. Kohta Meetmete menüüst valige kustutama kõigi seotud ressursside kustutamiseks.

Looge lahendus arvutinägemise nahakahjustuste klassifikaatori jaoks, kasutades Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence'i. Vertikaalne otsing. Ai.

Tulemused ja järgmised sammud

Kasutasime edukalt torujuhtmeid, et luua täielik MLOps-raamistik nahakahjustuste klassifitseerimiseks, kasutades HAM10000 andmestiku sisseehitatud mudelit. Hoidlas esitatud parameetrite puhul saime testikomplektis järgmised tulemused.

meetriline Täpsus Tagasikutsumine F1 skoor
Väärtus 0.643 0.8 0.713

Mudeli jõudluse parandamiseks saate edasi töötada, viimistledes selle hüperparameetreid, lisades andmete suurendamiseks rohkem teisendusi või kasutades muid meetodeid, nagu sünteetilise vähemuse ülediskreetmise tehnika (SMOTE) või generatiivsed võistlevad võrgud (GAN). Lisaks saate treenimiseks kasutada oma mudelit või algoritmi, kasutades sisseehitatud SageMaker Dockeri pilte või kohandades oma konteinerit SageMakeriga töötamiseks. Lisateabe saamiseks vaadake Dockeri konteinerite kasutamine koos SageMakeriga.

Samuti saate oma torustikule lisada lisafunktsioone. Kui soovite lisada seiret, saate valida MLOps mall mudeli ehitamiseks, koolituseks, juurutamiseks ja jälgimiseks malli SageMakeri projekti loomisel. Saadud arhitektuuril on täiendav jälgimisetapp. Või kui teil on olemasolev kolmanda osapoole Giti hoidla, saate seda kasutada, valides MLOps mall mudelite loomiseks, koolituseks ja juurutamiseks kolmandate osapoolte Giti hoidlates, kasutades Jenkinsi projekt ja teabe pakkumine nii mudelite ehitamise kui ka mudeli juurutamise hoidlate jaoks. See võimaldab teil kasutada mis tahes olemasolevat koodi ja säästab aega või vaeva SageMakeri ja Giti vahelise integreerimisel. Kuid selle valiku puhul a AWS CodeStar ühendus on vajalik.

Järeldus

Selles postituses näitasime, kuidas Studio ja automatiseeritud torujuhtmete abil luua täielikku ML-i töövoogu. Töövoog hõlmab andmestiku hankimist, selle salvestamist ML-mudelile juurdepääsetavasse kohta, konteineri kujutise konfigureerimist eeltöötlemiseks ja seejärel plaadikoodi muutmist sellise pildi jaoks. Seejärel näitasime, kuidas torujuhe käivitada, milliseid samme torujuhe järgib ja kuidas need toimivad. Arutasime ka mudeli jõudluse jälgimist ja mudeli lõpp-punkti juurutamist.

Enamiku neist ülesannetest täitsime Studios, mis toimib kõikehõlmava ML IDE-na ning kiirendab selliste mudelite väljatöötamist ja kasutuselevõttu.

See lahendus ei ole seotud naha klassifitseerimise ülesandega. Saate seda laiendada mis tahes klassifitseerimis- või regressiooniülesandele, kasutades mis tahes SageMakeri sisseehitatud algoritme või eelkoolitatud mudeleid.


Autoritest

Looge lahendus arvutinägemise nahakahjustuste klassifikaatori jaoks, kasutades Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence'i. Vertikaalne otsing. Ai. Mariem Kthiri on AI/ML konsultant ettevõttes AWS Professional Services Globals ja kuulub tervishoiu- ja bioteaduste (HCLS) meeskonda. Ta on kirglik ML-lahenduste loomisest erinevatele probleemidele ja on alati innukas uute võimaluste ja algatustega. Ta elab Saksamaal Münchenis ja soovib reisida ja avastada teisi maailma osi.

Looge lahendus arvutinägemise nahakahjustuste klassifikaatori jaoks, kasutades Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence'i. Vertikaalne otsing. Ai.Yassine Zaafouri on AI/ML konsultant AWS-i professionaalsetes teenustes. Ta võimaldab globaalsetel ettevõtetel klientidel luua ja juurutada AI/ML lahendusi pilves, et ületada oma äriprobleemid. Vabal ajal meeldib talle mängida ja sporti vaadata ning maailmas ringi reisida.

Looge lahendus arvutinägemise nahakahjustuste klassifikaatori jaoks, kasutades Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence'i. Vertikaalne otsing. Ai.Fotinos Kyriakides on AWS-i professionaalsete teenuste AI/ML-i insener. Ta on kirglik tehnoloogia kasutamise vastu, et pakkuda klientidele väärtust ja saavutada äritulemusi. Baasis Londonis, vabal ajal naudib ta jooksmist ja avastamist.

Looge lahendus arvutinägemise nahakahjustuste klassifikaatori jaoks, kasutades Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence'i. Vertikaalne otsing. Ai.Anna Zapaištšikova oli ProServe'i konsultant AI/ML-is ja Amazon Healthcare TFC liige. Ta on kirglik tehnoloogia ja selle mõju tervishoiule. Tema taust on MLO-de ja AI-põhiste lahenduste loomine klientide probleemidele erinevates valdkondades, nagu kindlustus, autotööstus ja tervishoid.

Ajatempel:

Veel alates AWS-i masinõpe