Laadukkaiden, koulutettujen koneoppimismallien (ML) käyttöönotto joko erä- tai reaaliaikaisten päättelyjen suorittamiseksi on kriittinen osa lisäarvoa asiakkaille. ML-kokeiluprosessi voi kuitenkin olla työlästä – on olemassa monia lähestymistapoja, jotka vaativat huomattavan määrän aikaa. Siksi esikoulutetut ML-mallit, kuten julkaisussa esitetyt PyTorchin mallieläintarha ovat niin hyödyllisiä. Amazon Sage Maker tarjoaa yhtenäisen käyttöliittymän erilaisten ML-mallien kokeilemiseen, ja PyTorch Model Zoo mahdollistaa mallien vaihtamisen helposti standardoidulla tavalla.
Tämä blogiviesti näyttää, kuinka ML-johtopäätös tehdään SageMakerin PyTorch Model Zoo -objektin tunnistusmallilla. PyTorch Model Zoon esikoulutetut ML-mallit ovat valmiita ja niitä voidaan helposti käyttää osana ML-sovelluksia. Näiden ML-mallien asettaminen SageMaker-päätepisteeksi tai SageMaker erämuunnos online- tai offline-päätelmien tekeminen on helppoa tässä blogikirjoituksessa kuvattujen vaiheiden avulla. Käytämme a Nopeampi R-CNN objektien tunnistusmalli ennalta määritettyjen objektiluokkien rajoituslaatikoiden ennustamiseen.
Käymme läpi kattavan esimerkin Faster R-CNN -objektintunnistusmallin painojen lataamisesta niiden tallentamiseen Amazonin yksinkertainen tallennuspalvelu (Amazon S3) kauhan ja aloituspistetiedoston kirjoittamiseen ja PyTorchModel API:n avainparametrien ymmärtämiseen. Lopuksi otamme käyttöön ML-mallin, teemme siitä päätelmiä käyttämällä SageMaker Batch Transformia, tarkastamme ML-mallin tulosteen ja opimme tulkitsemaan tuloksia. Tätä ratkaisua voidaan soveltaa mihin tahansa muuhun PyTorch Model Zoon esikoulutettuun malliin. Saatavilla olevien mallien luettelon löydät kohdasta PyTorch Model Zoo -dokumentaatio.
Ratkaisun yleiskatsaus
Tämä blogikirjoitus käy läpi seuraavat vaiheet. Katso kaikkien vaiheiden täydellinen toimiva versio, katso create_pytorch_model_sagemaker.ipynb
- Vaihe 1: Asennus
- Vaihe 2: ML-mallin lataaminen PyTorch Model Zoosta
- Vaihe 3 Tallenna ja lataa ML-mallin artefaktit Amazon S3:een
- Vaihe 4: Luo ML-mallin päättelykomentosarjat
- Vaihe 5: SageMakerin erämuunnostyön käynnistäminen
- Vaihe 6: Visualisoi tulokset
Arkkitehtuurikaavio
Hakemistorakenne
Tämän blogin koodi löytyy tästä GitHub-arkisto. Koodikanta sisältää kaiken, mitä tarvitsemme ML-mallin artefaktien rakentamiseen, muunnostyön käynnistämiseen ja tulosten visualisointiin.
Tämä on käyttämämme työnkulku. Kaikki seuraavat vaiheet viittaavat tämän rakenteen moduuleihin.
- sagemaker_torch_model_zoo
kansion tulisi sisältää inference.py
aloituspistetiedostona ja create_pytorch_model_sagemaker.ipynb mallin painojen lataamiseksi ja tallentamiseksi, SageMaker-malliobjektin luomiseksi ja lopuksi sen siirtämiseksi SageMakerin erämuunnostyöhön. Voit tuoda omia ML-mallejasi muuttamalla polkuja Notebookin Vaihe 1: asennusosiossa ja lataamalla uusi malli Vaiheessa 2: ML-mallin lataaminen PyTorch Model Zoo -osiosta. Muut alla olevat vaiheet säilyvät samoina.
Vaihe 1: Asennus
IAM-roolit
SageMaker suorittaa toimintoja SageMakerin hallinnoimassa infrastruktuurissa. SageMaker voi suorittaa vain toimintoja, jotka on määritelty muistikirjan mukana tulevassa SageMakerin IAM-suoritusroolissa. Katso tarkemmat ohjeet IAM-roolien luomisesta ja IAM-oikeuksien hallinnasta AWS SageMaker -roolien dokumentaatio. Voimme luoda uuden roolin tai voimme saada sen SageMaker (Studio) muistikirjaoletussuoritusrooli suorittamalla seuraavat koodirivit:
Yllä oleva koodi saa muistikirjan ilmentymän SageMaker-suoritusroolin. Tämä on IAM-rooli, jonka loimme SageMaker- tai SageMaker Studio -muistikirjaesiintymäämme varten.
Käyttäjän määritettävissä olevat parametrit
Tässä ovat kaikki määritettävät parametrit, joita tarvitaan SageMaker-erämuunnostyömme rakentamiseen ja käynnistämiseen:
Vaihe 2: Lataa ML-malli PyTorch Model Zoosta
Seuraavaksi määritämme PyTorch Model Zoo -objektin tunnistusmallin ja tallennamme sen ML-mallin painot. Tyypillisesti tallennamme PyTorch-mallin käyttämällä .pt- tai .pth-tiedostotunnistetta. Alla oleva koodinpätkä lataa valmiiksi koulutetun Faster R-CNN ResNet50 ML -mallin PyTorch Model Zoosta:
model = torchvision.models.detection.fasterrcnn_resnet50_fpn(pretrained=True)
SageMaker erämuunnos vaatii syötteenä joitain mallipainoja, joten tallennamme esiopetetun ML-mallin nimellä model.pt. Jos haluamme ladata mukautetun mallin, voimme sen sijaan tallentaa mallin painot toisesta PyTorch-mallista nimellä model.pt.
Vaihe 3: Tallenna ja lataa ML-mallin artefaktit Amazon S3:een
Koska käytämme SageMaker-työkalua ML-johtopäätöksiin, meidän on ladattava mallin painot S3-ämpäriin. Voimme tehdä tämän käyttämällä seuraavia komentoja tai lataamalla ja yksinkertaisesti vetämällä ja pudottamalla tiedosto suoraan S3:een. Seuraavat komennot pakkaavat ensin sisällä olevat tiedostot model.pt
tarballiin ja kopioi mallin painot paikalliselta koneeltamme S3-ämpäriin.
Huomautuksia: Jotta voit suorittaa seuraavat komennot, sinulla on oltava AWS-komentoriviliitäntä (AWS CLI) asennettu.
Seuraavaksi kopioimme syöttökuvamme S3:een. Alla on kuvan koko S3-polku.
Voimme kopioida tämän kuvan S3:lle toisella aws s3 cp -komennolla.
Vaihe 4: Luo ML-mallin päättelykomentosarjat
Nyt käymme läpi aloituspistetiedostomme, inference.py
moduuli. Voimme ottaa käyttöön PyTorch-mallin, joka on koulutettu SageMakerin ulkopuolella PyTorchModel-luokan avulla. Ensin instantoimme PyTorchModelZoo-objektin. Tämän jälkeen rakennamme inference.py-tulopistetiedoston ML-päätelmien suorittamiseksi käyttämällä SageMaker-erämuunnoksia Amazon S3:ssa isännöidyille esimerkkitiedoille.
PyTorchModel-objektin ymmärtäminen
- PyTorchModel luokka SageMaker Python API:ssa antaa meille mahdollisuuden tehdä ML-johtopäätöksiä ladatun malliartefaktin avulla.
PyTorchModel-luokan käynnistämiseksi meidän on ymmärrettävä seuraavat syöttöparametrit:
name
: Mallinimi; Suosittelemme käyttämään joko mallin nimeä + päivämäärä-aikaa tai satunnaista merkkijonoa + päivämäärä-aika ainutlaatuisuuden vuoksi.model_data
: Pakatun ML-mallin artefaktin S3-URI.entry_point
: Käyttäjän määrittämä Python-tiedosto, jota Docker-päättelykuva käyttää käsittelijöiden määrittämiseen saapuville pyynnöille. Koodi määrittelee mallin lataamisen, tulon esikäsittelyn, ennustuslogiikan ja tulosteen jälkikäsittelyn.framework_version
: On asetettava versioon 1.2 tai uudempi, jotta PyTorch-mallin automaattinen uudelleenpakkaus voidaan ottaa käyttöön.source_dir
: Aloituspistetiedoston hakemisto.role
: IAM-rooli AWS-palvelupyyntöjen tekemiseen.image_uri
: Käytä tätä Amazon ECR Docker -konttikuvaa pohjana ML-mallin laskentaympäristölle.sagemaker_session
: SageMaker-istunto.py_version
: Käytettävä Python-versio
Seuraava koodinpätkä instantoi PyTorchModel-luokan suorittamaan päätelmiä käyttämällä esikoulutettua PyTorch-mallia:
Aloituspistetiedoston (inference.py) ymmärtäminen
Parametri entry_point osoittaa Python-tiedostoon nimeltä inference.py
. Tämä aloituskohta määrittää mallin latauksen, tulon esikäsittelyn, ennustuslogiikan ja tulosteen jälkikäsittelyn. Se täydentää valmiiksi rakennetun PyTorchin ML-mallin palvelukoodia SageMaker Deep Learning Container kuva.
Inference.py
sisältää seuraavat toiminnot. Esimerkissämme toteutamme model_fn
, input_fn
, predict_fn
ja output_fn
toiminnot ohittamaan oletusarvoinen PyTorch-päätelmien käsittelijä.
model_fn
: ottaa hakemiston, joka sisältää staattiset mallin tarkistuspisteet päättelykuvassa. Avaa ja lataa mallin määritetystä polusta ja palauttaa PyTorch-mallin.input_fn
: Ottaa syötteenä saapuvan pyynnön hyötykuorman (request_body) ja saapuvan pyynnön sisältötyypin (request_content_type). Hoitaa datan dekoodauksen. Tämä toiminto on säädettävä sen mukaan, mitä tuloa malli odottaa.predict_fn
: Kutsuu mallia tiedoista, jotka on sarjoitettu input_fn:ssä. Suorittaa ennusteen deserialisoidulle objektille ladatulla ML-mallilla.output_fn
: Sarjaa ennusteen tuloksen haluttuun vastauksen sisältötyyppiin. Muuntaa ennustamis_fn-funktiosta saadut ennusteet JSON-, CSV- tai NPY-muotoon.
Vaihe 5: SageMakerin erämuunnostyön käynnistäminen
Tässä esimerkissä saamme ML-johtopäätöstulokset SageMakerin erämuunnostyön kautta. Erämuunnostyöt ovat hyödyllisimpiä, kun haluamme saada päätelmiä tietojoukoista kerran ilman jatkuvaa päätepistettä. Instantoimme a sagemaker.transformer.Transformer objekti SageMakerin erämuunnostöiden luomiseen ja vuorovaikutukseen niiden kanssa.
Katso dokumentaatio erämuunnostyön luomisesta osoitteessa LuoTransformJob.
Vaihe 6: Visualisoi testitulokset
Kun SageMakerin erämuunnostyö on valmis, voimme ladata ML-johtopäätöstulokset Amazon S3:sta. Tätä varten siirry kohtaan AWS-hallintakonsoli ja etsi Amazon SageMaker. Vasemmassa paneelissa, alla PäättelyKatso Erämuunnostyöt.
Valinnan jälkeen Erämuunnos, katso Web-sivu, jossa on lueteltu kaikki SageMakerin erämuunnostyöt. Voimme seurata viimeisimmän työmme edistymistä.
Ensinnäkin työn tila on "Käynnissä". Kun se on valmis, katso, että tila muuttuu Valmis.
Kun tila on merkitty suoritetuksi, voimme klikata työtä nähdäksesi tulokset. Tämä verkkosivu sisältää työn yhteenvedon, mukaan lukien juuri suorittamamme työn määritykset.
Alle Lähtötietojen konfigurointi, näemme S3-lähtöpolun. Täältä löydämme ML-johtopäätöstulosteemme.
Valitse S3-lähtöpolku ja katso [image_name].[file_type].out-tiedosto tulostiedoillamme. Tulostiedostomme sisältää luettelon kartoituksista. Esimerkkituloste:
Seuraavaksi käsittelemme tämän tulostiedoston ja visualisoimme ennusteemme. Alla määritämme luottamuskynnyksemme. Saamme luettelon luokista COCO-tietojoukon objektikartoitus. Päättelyn aikana malli vaatii vain syöttötensorit ja palauttaa jälkikäsitellyt ennusteet Listana[Dict[tensori]], yksi jokaiselle syötekuvalle. Dictin kentät ovat seuraavat, missä N on ilmaisujen lukumäärä:
- laatikot (FloatTensor[N, 4]): ennustetut laatikot
[x1, y1, x2, y2]
muoto, jossa0 <= x1 < x2 <= W and 0 <= y1 < y2 <= H
, JossaW
on kuvan leveys jaH
on kuvan korkeus - etiketit (
Int64Tensor[N]
): kunkin havaitsemisen ennustetut etiketit - pisteet (
Tensor[N]
): kunkin havainnon ennustepisteet
Lisätietoja lähdöstä on kohdassa PyTorchin nopeampi R-CNN FPN -dokumentaatio.
Mallin tulos sisältää rajauslaatikoita vastaavilla luottamuspisteillä. Voimme optimoida väärien positiivisten tulosten näyttämisen poistamalla rajaukset, joiden osalta malli ei ole varma. Seuraavat koodinpätkät käsittelevät tulostiedoston ennusteita ja piirtävät rajauslaatikoita ennusteisiin, joissa pisteet ylittävät luottamuskynnyksemme. Asetamme todennäköisyysrajan, CONF_THRESH
, arvoon 75 tässä esimerkissä.
Lopuksi visualisoimme nämä kartoitukset, jotta voimme ymmärtää tulostemme.
Huomautuksia: jos kuva ei näy muistikirjassasi, etsi se JupyterLabin vasemmalla puolella olevasta hakemistopuusta ja avaa se sieltä.
Esimerkkikoodin suorittaminen
Jos haluat täydellisen toimivan esimerkin, kloonaa koodi tiedostoon amazon-sagemaker-examples GitHub ja suorita solut create_pytorch_model_sagemaker.ipynb
muistikirja.
Yhteenveto
Tässä blogiviestissä esittelimme täydellisen esimerkin ML-päätelmien suorittamisesta PyTorch Model Zoon objektintunnistusmallilla käyttämällä SageMaker-erämuunnoksia. Käsittelimme Faster R-CNN -objektien tunnistusmallin painojen lataamista, niiden tallentamista S3-säihöön, aloituspistetiedoston kirjoittamista ja PyTorchModel-sovellusliittymän avainparametrien ymmärtämistä. Lopuksi otimme mallin käyttöön ja suoritimme ML-mallin päättelyn, visualisoimme mallin tulosteen ja opimme tulkitsemaan tuloksia.
Tietoja Tekijät
Dipika Khullar on ML-insinööri Amazon ML Solutions Lab. Hän auttaa asiakkaita integroimaan ML-ratkaisuja liiketoiminnan ongelmien ratkaisemiseksi. Viimeksi hän on rakentanut koulutus- ja päätelmäputkia media-asiakkaille sekä ennakoivia malleja markkinointiin.
Marcelo Aberle on ML-insinööri AWS AI -organisaatiossa. Hän johtaa MLOpsin ponnisteluja Amazon ML Solutions Lab, auttaa asiakkaita suunnittelemaan ja toteuttamaan skaalautuvia ML-järjestelmiä. Hänen tehtävänsä on opastaa asiakkaita heidän yrityksen ML-matkallaan ja nopeuttaa heidän ML-polkuaan tuotantoon.
Ninad Kulkarni on soveltuva tutkija Amazon ML Solutions Lab. Hän auttaa asiakkaita ottamaan käyttöön ML:n ja tekoälyn rakentamalla ratkaisuja heidän liiketoimintaongelmiinsa. Viimeksi hän on rakentanut ennakoivia malleja urheilu-, auto- ja media-asiakkaille.
Yash Shah on tiedepäällikkö Amazon ML Solutions Lab. Hän ja hänen ammattitutkijoistaan ja ML-insinööreistä koostuva tiiminsä työskentelevät useiden ML-käyttötapausten parissa terveydenhoidosta, urheilusta, autoteollisuudesta ja teollisuudesta.
- AI
- ai taide
- ai taiteen generaattori
- ai robotti
- Amazonin koneoppiminen
- Amazon ML Solutions Lab
- Amazon Sage Maker
- tekoäly
- tekoälyn sertifiointi
- tekoäly pankkitoiminnassa
- tekoäly robotti
- tekoälyrobotit
- tekoälyohjelmisto
- AWS-koneoppiminen
- blockchain
- blockchain-konferenssi ai
- coingenius
- keskustelullinen tekoäly
- kryptokonferenssi ai
- dall's
- syvä oppiminen
- google ai
- koneoppiminen
- Platon
- plato ai
- Platonin tietotieto
- Platon peli
- PlatonData
- platopeliä
- mittakaava ai
- syntaksi
- Tekniset ohjeet
- zephyrnet