Amazon SageMaker -putkistot antaa datatieteilijöille ja koneoppimisen (ML) insinööreille mahdollisuuden automatisoida koulutustyönkulkuja, mikä auttaa sinua luomaan toistettavan prosessin mallinkehitysvaiheiden organisoimiseksi nopeaa kokeilua ja mallien uudelleenkoulutusta varten. Voit automatisoida koko mallin rakentamisen työnkulun, mukaan lukien tietojen valmistelun, ominaisuuksien suunnittelun, mallikoulutuksen, mallin virityksen ja mallin validoinnin, ja luetteloida sen mallirekisteriin. Voit määrittää liukuhihnat toimimaan automaattisesti säännöllisin väliajoin tai kun tietyt tapahtumat käynnistyvät, tai voit suorittaa ne manuaalisesti tarpeen mukaan.
Tässä viestissä korostamme joitain parannuksia Amazon Sage Maker SDK ja esittelevät Amazon SageMaker Pipelinesin uusia ominaisuuksia, jotka helpottavat ML-harjoittajien ML-mallien rakentamista ja kouluttamista.
Pipelines jatkaa kehittäjäkokemuksensa uudistamista, ja näiden viimeaikaisten julkaisujen ansiosta voit nyt käyttää palvelua entistä räätälöidymmin:
- 2.99.0, 2.101.1, 2.102.0, 2.104.0 – Päivitetty dokumentaatio
PipelineVariable
käyttö estimaattorille, prosessorille, virittimelle, muuntajalle ja mallin perusluokille, Amazon-malleille ja kehysmalleille. SDK:n uudempiin versioihin tulee lisää muutoksia, jotka tukevat kaikkia arvioijien ja prosessorien alaluokkia. - 2.90.0 – Saatavuus ModelStep integroitujen malliresurssien luonti- ja rekisteröintitehtäviin.
- 2.88.2 – Saatavuus PipelineSession hallittua vuorovaikutusta SageMaker-yksiköiden ja -resurssien kanssa.
- 2.88.2 – Alaluokkayhteensopivuus työnkulun putkilinjan työn vaiheet joten voit rakentaa töiden abstraktioita ja määrittää ja suorittaa prosessointi-, koulutus-, muunnos- ja viritystöitä aivan kuten ilman putkia.
- 2.76.0 – Saatavuus FailStep pysäyttää ehdollisesti viallisen putkilinjan.
Tässä viestissä opastamme sinut työnkulun läpi käyttämällä esimerkkitietojoukkoa, jossa keskitytään mallin rakentamiseen ja käyttöönottoon, jotta voidaan näyttää, kuinka Pipelinesin uudet ominaisuudet otetaan käyttöön. Loppujen lopuksi sinulla pitäisi olla tarpeeksi tietoa, jotta voit käyttää näitä uudempia ominaisuuksia ja yksinkertaistaa ML-työkuormia.
Ominaisuuksien yleiskatsaus
Pipelines tarjoaa seuraavat uudet ominaisuudet:
- Pipeline-muuttujan huomautus – Tietyt menetelmäparametrit hyväksyvät useita syöttötyyppejä, mukaan lukien
PipelineVariables
, ja lisäasiakirjoja on lisätty selventämään missäPipelineVariables
ovat tuettuja sekä SageMaker SDK:n uusimmassa vakaassa versiossa että funktioiden aloitusallekirjoituksessa. Esimerkiksi seuraavassa TensorFlow-estimaattorissa init-allekirjoitus näyttää nyt senmodel_dir
jaimage_uri
tukiPipelineVariables
, kun taas muut parametrit eivät. Lisätietoja on kohdassa TensorFlow estimaattori.- Ennen:
- Jälkeen:
- Putkilinjan istunto - PipelineSession on uusi konsepti, joka esiteltiin yhtenäistämään SageMaker SDK:ta ja esittelee liukuhihnaresurssien laiskan alustuksen (ajokutsut kaapataan, mutta niitä ei suoriteta ennen kuin liukuhihna on luotu ja suoritettu). The
PipelineSession
konteksti periiSageMakerSession
ja ottaa käyttöön käteviä menetelmiä, joiden avulla voit olla vuorovaikutuksessa muiden SageMaker-kokonaisuuksien ja -resurssien kanssa, kuten koulutustöitä, päätepisteitä ja syöttötietojoukkoja, jotka on tallennettu Amazonin yksinkertainen tallennuspalvelu (Amazon S3). - Alaluokan yhteensopivuus työnkulun putkilinjan työn vaiheiden kanssa – Voit nyt rakentaa töiden abstraktioita ja konfiguroida ja suorittaa prosessointi-, koulutus-, muunnos- ja viritystöitä aivan kuten ilman putkistoa.
- Esimerkiksi luomalla käsittelyvaiheen kanssa
SKLearnProcessor
vaadittiin aiemmin seuraavaa: - Kuten näemme edellisestä koodista,
ProcessingStep
täytyy tehdä periaatteessa sama esikäsittelylogiikka kuin.run
, vain aloittamatta API-kutsua työn aloittamiseksi. Mutta kun alaluokan yhteensopivuus on nyt otettu käyttöön työnkulun putkilinjan työn vaiheilla, julistammestep_args
argumentti, joka ottaa esikäsittelylogiikan .run:n kanssa, jotta voit rakentaa työn abstraktion ja määrittää sen samalla tavalla kuin käyttäisit sitä ilman putkia. Kuljemme myös sisäänpipeline_session
, Joka onPipelineSession
objekti sen sijaansagemaker_session
varmistaaksesi, että ajokutsut kaapataan, mutta niitä ei kutsuta ennen kuin liukuhihna on luotu ja suoritettu. Katso seuraava koodi:
- Esimerkiksi luomalla käsittelyvaiheen kanssa
- Mallivaihe (virtaviivainen lähestymistapa mallin luonti- ja rekisteröintivaiheineen) -Pipelines tarjoaa kaksi vaihetyyppiä integroitaviksi SageMaker-malleihin:
CreateModelStep
jaRegisterModel
. Voit nyt saavuttaa molemmat käyttämällä vainModelStep
tyyppi. Huomaa, että aPipelineSession
tarvitaan tämän saavuttamiseksi. Tämä tuo samankaltaisuuden liukuhihnavaiheiden ja SDK:n välille.- Ennen:
-
- Jälkeen:
- Epäonnistunut vaihe (putkilinjan ajon ehdollinen pysäytys) -
FailStep
sallii putkilinjan pysäyttämisen vikatilassa, jos ehto täyttyy, kuten jos mallin pistemäärä on alle tietyn kynnyksen.
Ratkaisun yleiskatsaus
Tässä ratkaisussa aloituspisteesi on Amazon SageMaker Studio integroitu kehitysympäristö (IDE) nopeaa kokeilua varten. Studio tarjoaa ympäristön päästä päähän Pipelines-kokemuksen hallintaan. Studion avulla voit ohittaa AWS-hallintakonsoli koko työnkulun hallintaan. Lisätietoja putkien hallinnasta Studiossa on kohdassa Tarkastele, seuraa ja suorita SageMaker-putkistoja SageMaker Studiossa.
Seuraava kaavio havainnollistaa ML-työnkulun korkean tason arkkitehtuuria eri vaiheilla kouluttaa ja luoda päätelmiä käyttämällä uusia ominaisuuksia.
Putkilinja sisältää seuraavat vaiheet:
- Esikäsittele tiedot tarvittavien ominaisuuksien rakentamiseksi ja jaa tiedot juna-, validointi- ja testitietosarjoiksi.
- Luo koulutustyö SageMaker XGBoost -kehyksen avulla.
- Arvioi koulutettu malli testitietojoukon avulla.
- Tarkista, onko AUC-pistemäärä ennalta määritellyn kynnyksen yläpuolella.
- Jos AUC-pistemäärä on pienempi kuin kynnys, pysäytä liukuhihnan ajo ja merkitse se epäonnistuneeksi.
- Jos AUC-pistemäärä on suurempi kuin kynnys, luo SageMaker-malli ja rekisteröi se SageMaker-mallirekisteriin.
- Käytä erämuutosta annetussa tietojoukossa käyttämällä edellisessä vaiheessa luotua mallia.
Edellytykset
Jotta voit seurata tätä viestiä, tarvitset AWS-tilin a Studion verkkotunnus.
Pipelines on integroitu suoraan SageMaker-kokonaisuuksiin ja -resursseihin, joten sinun ei tarvitse olla vuorovaikutuksessa muiden AWS-palvelujen kanssa. Sinun ei myöskään tarvitse hallita resursseja, koska se on täysin hallittu palvelu, mikä tarkoittaa, että se luo ja hallitsee resursseja puolestasi. Lisätietoja eri SageMaker-komponenteista, jotka ovat sekä itsenäisiä Python-sovellusliittymiä että Studion integroituja komponentteja, on SageMaker tuotesivu.
Ennen kuin aloitat, asenna SageMaker SDK -versio >= 2.104.0 ja xlrd >=1.0.0 Studio-muistikirjaan käyttämällä seuraavaa koodinpätkää:
ML-työnkulku
Tässä viestissä käytät seuraavia komponentteja:
- Tietojen valmistelu
- SageMaker-käsittely – SageMaker Processing on täysin hallittu palvelu, jonka avulla voit suorittaa mukautettuja datamuunnoksia ja ominaisuussuunnittelua ML-työkuormille.
- Mallirakennus
- Mallin koulutus ja arviointi
- Harjoittelu yhdellä napsautuksella – SageMakerin hajautettu harjoitusominaisuus. SageMaker tarjoaa hajautettuja koulutuskirjastoja tietojen rinnakkaisuudelle ja mallin rinnakkaisuudelle. Kirjastot on optimoitu SageMaker-harjoitusympäristöä varten, ne auttavat mukauttamaan hajautettuja harjoitustyösi SageMakeriin ja parantavat harjoitusnopeutta ja suoritustehoa.
- SageMaker-kokeet – Experiments on SageMakerin ominaisuus, jonka avulla voit järjestää, seurata, vertailla ja arvioida ML-iteraatioita.
- SageMaker-erämuunnos – Erämuunnos tai offline-pisteytys on hallittu palvelu SageMakerissa, jonka avulla voit ennustaa suuremman tietojoukon ML-mallejasi käyttämällä.
- Työnkulun orkestrointi
SageMaker-liukuhihna on sarja toisiinsa yhdistettyjä vaiheita, jotka on määritelty JSON-liukuhihnamääritelmässä. Se koodaa liukuhihnan käyttämällä suunnattua asyklistä kuvaajaa (DAG). DAG antaa tietoa liukuhihnan kunkin vaiheen vaatimuksista ja suhteista, ja sen rakenteen määräävät vaiheiden väliset datariippuvuudet. Nämä riippuvuudet luodaan, kun vaiheen lähdön ominaisuudet välitetään syötteenä toiseen vaiheeseen.
Seuraava kaavio havainnollistaa SageMaker-liukuhihnan eri vaiheita (vaihtumisennusteen käyttötapauksessa), joissa SageMaker päättelee vaiheiden väliset yhteydet vaihemääritelmien määrittämien tulojen ja lähtöjen perusteella.
Seuraavissa osissa käydään läpi putkilinjan kunkin vaiheen luominen ja koko putkilinjan käyttäminen luomisen jälkeen.
Hankkeen rakenne
Aloitetaan projektin rakenteesta:
- /sm-pipelines-end-to-end-example – Projektin nimi
- / data – Tietojoukot
- /putket – Liukuhihnakomponenttien kooditiedostot
- /customerchurn
- preprocess.py
- arvioida.py
- /customerchurn
- sagemaker-pipelines-project.ipynb – Muistikirja, joka käy läpi mallinnuksen työnkulun Pipelinesin uusien ominaisuuksien avulla
Lataa tietojoukko
Jotta voit seurata tätä viestiä, sinun on ladattava ja tallennettava näytetiedosto datakansion alla projektin kotihakemistossa, johon tiedosto tallennetaan Amazonin elastinen tiedostojärjestelmä (Amazon EFS) Studio-ympäristössä.
Rakenna putkilinjan komponentit
Nyt olet valmis rakentamaan putkilinjan komponentit.
Tuo lausekkeita ja ilmoittaa parametrit ja vakiot
Luo Studio-muistikirja nimeltä sagemaker-pipelines-project.ipynb
projektin kotihakemistossa. Kirjoita seuraava koodilohko soluun ja suorita solu määrittääksesi SageMaker- ja S3-asiakasobjektit, luo PipelineSession
ja määritä S3-säilön sijainti käyttämällä SageMaker-istunnon mukana tulevaa oletussäilöä:
Liukulinjat tukevat parametrointia, jonka avulla voit määrittää syöttöparametreja ajon aikana muuttamatta liukuhihnakoodia. Voit käyttää alla olevia moduuleja sagemaker.workflow.parameters
moduuli, kuten ParameterInteger
, ParameterFloat
ja ParameterString
, määrittää eri tietotyyppien liukuhihnaparametreja. Suorita seuraava koodi asettaaksesi useita syöttöparametreja:
Luo erätietojoukko
Luo erätietojoukko, jota käytät myöhemmin erämuunnosvaiheessa:
Lataa tiedot S3-ämpäriin
Lataa tietojoukot Amazon S3:een:
Määritä käsittelyskripti ja käsittelyvaihe
Tässä vaiheessa valmistelet Python-komentosarjan ominaisuuksien suunnittelua, yhtä kuumakoodausta varten ja kurkkaat mallin rakentamiseen käytettävät koulutus-, validointi- ja testijaot. Suorita seuraava koodi luodaksesi käsittelyskripti:
Suorita seuraavaksi seuraava koodilohko prosessorin ilmentämiseksi ja Liukulinjat-vaihe suorittaaksesi käsittelykomentosarjan. Koska käsittelyskripti on kirjoitettu Pandas-kielellä, käytät a SKLearnProcessor. Putket ProcessingStep
funktio ottaa seuraavat argumentit: prosessori, syötteen S3 sijainnit raakatietojoukoille ja ulostulon S3 sijainnit käsiteltyjen tietojoukkojen tallentamiseksi.
Määrittele harjoitusvaihe
Määritä mallikoulutus käyttämällä SageMaker XGBoost -estimaattoria ja putkia TrainingStep
toiminto:
Määritä arviointiskripti ja mallin arviointivaihe
Suorita seuraava koodilohko arvioidaksesi mallin koulutuksen jälkeen. Tämä skripti kapseloi logiikan sen tarkistamiseksi, täyttääkö AUC-pisteet määritetyn kynnyksen.
Suorita seuraavaksi seuraava koodilohko prosessorin ilmentämiseksi ja Liukulinjat-vaihe suorittaaksesi arviointikomentosarjan. Koska arviointikomentosarja käyttää XGBoost-pakettia, käytät a ScriptProcessor
yhdessä XGBoost-kuvan kanssa. Putket ProcessingStep
funktio ottaa seuraavat argumentit: prosessori, syötteen S3 sijainnit raakatietojoukoille ja ulostulon S3 sijainnit käsiteltyjen tietojoukkojen tallentamiseksi.
Määritä mallin luontivaihe
Suorita seuraava koodilohko luodaksesi SageMaker-mallin käyttämällä Pipelines-mallivaihetta. Tämä vaihe käyttää koulutusvaiheen tulosta mallin pakkaamiseen käyttöönottoa varten. Huomaa, että ilmentymän tyyppiargumentin arvo välitetään käyttämällä aiemmin viestissä määrittämääsi Pipelines-parametria.
Määritä erämuunnosvaihe
Suorita seuraava koodilohko suorittaaksesi erämuunnos harjoitetun mallin avulla ensimmäisessä vaiheessa luodulla eräsyötteellä:
Määritä rekisterimallin vaihe
Seuraava koodi rekisteröi mallin SageMaker-mallirekisteriin käyttämällä Pipelines-mallivaihetta:
Määritä epäonnistumisvaihe putkilinjan pysäyttämiseksi
Seuraava koodi määrittää Liukulinjat epäonnistuvat -vaiheen putkilinjan ajon pysäyttämiseksi virheilmoituksella, jos AUC-pisteet eivät täytä määritettyä kynnysarvoa:
Määritä ehtovaihe tarkistaaksesi AUC-pisteet
Seuraava koodi määrittää ehtovaiheen, jolla tarkistetaan AUC-pisteet ja luodaan ehdollisesti malli ja suoritetaan erämuunnos ja rekisteröidään malli mallirekisteriin tai pysäytetään liukuhihnan ajo epäonnistuneessa tilassa:
Rakenna ja käytä putkistoa
Kun olet määrittänyt kaikki komponenttivaiheet, voit koota ne Pipelines-objektiksi. Liukuhihnan järjestystä ei tarvitse määrittää, koska Pipelines päättelee järjestysjärjestyksen automaattisesti vaiheiden välisten riippuvuuksien perusteella.
Suorita seuraava koodi muistikirjan soluun. Jos liukuhihna on jo olemassa, koodi päivittää liukuhihnan. Jos putkistoa ei ole olemassa, se luo uuden.
Yhteenveto
Tässä viestissä esittelimme joitain uusia ominaisuuksia, jotka ovat nyt saatavilla Pipelinesissä, sekä muita sisäänrakennettuja SageMaker-ominaisuuksia ja XGBoost-algoritmia, joiden avulla voit kehittää, iteroida ja ottaa käyttöön vaihtuvuuden ennustamisen mallin. Ratkaisua voidaan laajentaa lisätietolähteillä
toteuttaaksesi oman ML-työnkulkusi. Lisätietoja Pipelines-työnkulun vaiheista on kohdassa Amazon SageMaker -mallinrakennusputki ja SageMaker-työnkulut. AWS SageMaker -esimerkkejä GitHub-repolla on enemmän esimerkkejä erilaisista Pipelines-käyttötapauksista.
Tietoja Tekijät
Jerry PengLisää on AWS SageMakerin ohjelmistokehitysinsinööri. Hän keskittyy kokonaisvaltaisen laajamittaisen MLOps-järjestelmän rakentamiseen koulutuksesta tuotannon malliseurantaan. Hän on myös intohimoinen tuomaan MLOps-konseptin laajemmalle yleisölle.
Dewen Qi on ohjelmistokehitysinsinööri AWS:ssä. Hän keskittyy tällä hetkellä SageMaker-putkien kehittämiseen ja parantamiseen. Työn ulkopuolella hän nauttii sellon harjoittelusta.
Gayatri Ghanakota on vanhempi koneoppimisinsinööri, jolla on AWS-asiantuntijapalvelut. Hän on intohimoinen AI/ML-ratkaisujen kehittämiseen, käyttöönottoon ja selittämiseen eri aloilla. Ennen tätä roolia hän johti useita aloitteita tietotutkijana ja ML-insinöörinä rahoitus- ja vähittäiskaupan alan parhaiden globaalien yritysten kanssa. Hänellä on tietojenkäsittelytieteen maisterin tutkinto, joka on erikoistunut tietotieteeseen Coloradon yliopistosta Boulderista.
Rupinder Grewal on AWS:n Sr Ai/ML Specialist Solutions -arkkitehti. Tällä hetkellä hän keskittyy mallien ja MLO:iden tarjoamiseen SageMakerissa. Ennen tätä roolia hän on työskennellyt koneoppimisinsinöörinä mallien rakentamisessa ja isännöinnissa. Työn ulkopuolella hän pelaa tennistä ja pyöräilee vuoristopoluilla.
Ray Li on vanhempi datatutkija, jolla on AWS-asiantuntijapalvelut. Hänen erikoisalansa keskittyy AI/ML-ratkaisujen rakentamiseen ja operoimiseen erikokoisille asiakkaille startupeista yritysorganisaatioihin. Työn ulkopuolella Ray nauttii kuntoilusta ja matkustamisesta.
- AI
- ai taide
- ai taiteen generaattori
- ai robotti
- 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
- zephyrnet