Luo Amazon SageMaker -projekteja kuvarakentamisen CI/CD -putkilinjoilla

Lähdesolmu: 1876821

Amazon SageMaker -projektit olemme AWS-palveluluettelo valmistetut tuotteet, joiden avulla voit helposti luoda päästä päähän -koneoppimisratkaisuja (ML). SageMaker-projektit antavat organisaatioille mahdollisuuden käyttää malleja, jotka käynnistävät ML-ratkaisut käyttäjillesi nopeuttaakseen ML-kehityksen alkamisaikaa.

Voit nyt käyttää SageMaker-projekteja hallitaksesi mukautettuja riippuvuuksia kuvanrakennuksen jatkuvan integroinnin ja jatkuvan toimitusprosessin (CI/CD) avulla, joka on saatavilla ensimmäisen osapuolen mallina Amazon SageMaker Studio. Tämä uusi ominaisuus antaa kehittäjille joustavuuden tehdä päivityksiä kuviin, joita käytät koulutuksessa, käsittelyssä ja päätelmien tekemisessä muuttamalla projektisi lähdehallintavarastojen säilötiedostoja, mikä käynnistää automaattisesti kuvanrakennusprosessin. Malli käyttää AWS CodeCommit koodivarastona. Voit käyttää juuri luotuja kuvia a SageMaker-putki käsittelyä, koulutusta ja päätelmiä varten.

Uudet mallivaihtoehdot ovat nyt saatavilla SageMaker Python SDK:n kautta tai Studio IDE:ssä, kuten seuraavassa kuvakaappauksessa näkyy.

Uusi malli käyttää AWS-koodiputki rakentaa ja siirtää kuvia Amazon ECR ja käynnistä sitten SageMaker-putki, joka kouluttaa mallin ja rekisteröi sen SageMaker-mallirekisteri. Kun se on mallirekisterissä, mallin tila voidaan päivittää hyväksytyksi, mikä käynnistää mallin käyttöönottoprosessin CodePipelinen kautta.

Ratkaisun yleiskatsaus

Seuraava arkkitehtuurikaavio ei sisällä CodeCommit-varastoja mallin rakennus- ja käyttöönottokoodille. Painopiste on uuden mallin kuvanrakennusominaisuuksissa.

Käytämme uutta MLOps-projektimallia kuvanrakennuksen CI/CD:lle seuraavien resurssien tarjoamiseen ja määrittämiseen, joita käsitellään tarkemmin myöhemmin tässä viestissä:

  • SageMaker-koodivarastot – Projektimalli luo viiden CodeCommit-tietovaraston sarjan. Kolme näistä arkistoista sisältää koodin kuvien rakentamiseen, joita käytetään käsittelyyn, opetukseen ja päättelyyn. Ne sisältävät siemenkoodin, jonka voit muokata kuvaasi muuttamalla. Mallin koulutuskoodille on arkisto SageMaker-putkilinjalla ja mallin käyttöönottokoodin arkisto käyttämällä AWS-pilven muodostuminen ja CodePipeline. Käyttöliittymän kautta voit valita, mitkä kuvat haluat rakentaa osana CI/CD-liukuhihnaa, ja vain kyseiset arkistot luodaan.
  • Amazon ECR -varastot – Amazon ECR-arkistot luodaan koulutusta, käsittelyä ja päättelykuvia varten.
  • Mallin rakentaminen ja käyttöönotto triggerit - Amazon EventBridge säännöt luodaan käynnistämään mallin koontiversion CodePipeline-putki Amazon ECR -tilan muutoksissa. Tämä automatisoi SageMaker-putkilinjan laukaisuprosessin, kun uusia versioita konteista rakennetaan ja lähetetään Amazon ECR:ään. Mallin käyttöönotto CodePipeline-putkilinja on määritetty käynnistymään EventBridgen avulla, kun mallin tila mallirekisterissä muuttuu hyväksytyksi.
  • MLOps S3 ämpäri - An Amazonin yksinkertainen tallennuspalvelu (Amazon S3) -ämpäriä MLOps-putkilinjalle käytetään projektin ja putkilinjan syötteisiin ja artefakteihin.

SageMaker-projektit suorittavat automaattisesti kaiken tarvittavan asennuksen ja konfiguroinnin päästä-päähän CI/CD-putkilinjan määrittämiseen näitä resursseja käyttämällä.

Nyt kun olemme käsitelleet, miten uusi ominaisuus toimii, käydään läpi kertaluonteiset asennustehtävät, joita seuraa uusien mallien käyttö.

Luo uusi SageMaker-projekti

Luo SageMaker-projektisi suorittamalla seuraavat vaiheet:

  1. Valitse Studio-konsolista SageMaker-resurssit.
  2. Valitse avattavasta valikosta Projektit.
  3. Valita Luo hanke.
  4. varten SageMaker-projektimallit, valitse MLOps-malli kuvanrakennusta, mallinrakennusta ja mallin käyttöönottoa varten.
  5. Valita Valitse projektimalli.
  6. Sinun on annettava useita parametreja kuvanrakennusprosessin määrittämiseksi:
    1. Sisällytä kuvankäsittelyn rakennusputki – Tämä luo kuvankäsittelyn CI/CD-infrastruktuurin kuvankäsittelyä varten. Tämä sisältää CodePipeline-putkilinjan, CodeBuild-työn, Amazon ECR -tietovaraston ja SageMaker-kuvan.
    2. Sisällytä päätelmien kuvanrakennusputki – Tämä luo kuvanrakennus-CI/CD-infrastruktuurin päättelykuvalle. Tämä sisältää CodePipeline-putkilinjan, CodeBuild-työn, Amazon ECR -tietovaraston ja SageMaker-kuvan.
    3. Sisällytä koulutuskuvanrakennusputki – Tämä luo kuvanrakennus-CI/CD-infrastruktuurin koulutuskuvalle. Tämä sisältää CodePipeline-putkilinjan, CodeBuild-työn, Amazon ECR -tietovaraston ja SageMaker-kuvan.
    4. Ympäristön tyyppi – CodeBuildin käyttämän ympäristön tyyppi kuvan rakentamisessa.
    5. Lasketyyppi – CodeBuildin käyttämän rakennusympäristön laskentatyypin arvo.
    6. Säilön tunnisteen nimi – Säilön kuvan tunniste. Tämä on Docker-tunniste, ei AWS-tunniste.
  7. Valita Luo hanke.

Näyttöön tulee viesti, joka osoittaa, että SageMaker valmistaa ja määrittää resursseja.

Kun projekti on valmis, saat onnistuneen viestin.

Projektisi on nyt luettelossa Projektit lista.

  1. Kloonaa jokainen arkisto valitsemalla klooni repo… Studion käyttöliittymässä.

Tällä projektimallilla luodaan viisi CodeCommit-tietovarastoa:

  • sagemaker-image-building-cicd-demo-project-p-1jrh7jnlz3lx-processing-imagebuild
  • sagemaker-image-building-cicd-demo-project-p-1jrh7jnlz3lx-inference-imagebuild
  • sagemaker-image-building-cicd-demo-project-p-1jrh7jnlz3lx-modelbuild
  • sagemaker-image-building-cicd-demo-project-p-1jrh7jnlz3lx-training-imagebuild
  • sagemaker-image-building-cicd-demo-project-p-1jrh7jnlz3lx-modeldeploy

Kun kaikki viisi tietovarastoa on kloonattu, ne ovat saatavilla Studion käyttöliittymässä.

Kuvanrakennusarkisto

Tässä esimerkissä loimme kaikki kolme kuvanrakennustietovarastoa. Tässä osiossa näet arkiston rakenteen ja opit, kuinka se voidaan päivittää vastaamaan mukautettuja vaatimuksiasi.

Kukin kuvanrakennustietovarasto noudattaa samaa rakennetta, kuten seuraavassa kuvakaappauksessa näkyy.

Tässä arkistossa luotu kuva on yksinkertainen XGBoost-kuva, mutta tätä rakennetta noudattaen Dockerfile voidaan päivittää vastaamaan työstettävää käyttötapausta. The codebuild-buildspec.yml tiedostoa käytetään CodeBuildin määrittämiseen niin, että kuva voidaan rakentaa ja siirtää Amazon ECR:ään.

Voit siirtyä CodeBuild-konsoliin nähdäksesi rakennettujen kuvien tilan.

Kuhunkin arkistoon liittyvät CodePipeline-liukuhihnat suoritetaan automaattisesti projektin luonnin yhteydessä. Uudet versiot käynnistyvät, kun muutokset siirretään arkistoon. Voit katsoa kuvia Amazon ECR -konsolista.

Kun uusi koodi työnnetään johonkin kuvanrakennusarkistoon, CodeBuild-projekti käynnistyy ja kuvan uusi versio rakennetaan ja välitetään Amazon ECR:lle. Joukko EventBridge-sääntöjä luodaan automatisoimaan ML-työnkulun jokainen vaihe. Tässä uudessa mallissa EventBridgeen luodaan sääntö, joka käynnistää mallinmuodostuksen, kun uusi säilöversio työnnetään Amazon ECR:ään.

Mallin koontiprosessin kohde alkaa käyttää SageMaker-putkilinjaa.

Päivitä Docker-tiedosto

Tässä osiossa esittelemme, kuinka Docker-tiedoston päivitys yhdessä arkistoissa laukaisee CodeBuild-prosessin, joka luo ja työntää uuden kuvaversion Amazon ECR:ään, ja sitä seuraavan ML-prosessin, joka käynnistetään.

  1. Päivitä Docker-tiedosto.
  2. Työnnä koodi CodeCommitille.
  3. Siirry CodeBuildiin varmistaaksesi, että uutta kuvaversiota rakennetaan.

Seuraavat kuvakaappaukset sisältävät CodeBuild-vaiheen lokit, joka rakennetaan säilöön käyttämällä arkistoon työnnettyä päivitettyä Docker-tiedostoa.

Amazon ECR:ään siirrettävä kuvaversio käynnistää SageMaker-putken mallin koontitietovarastoon.

Mallia voidaan tarkastella ja hyväksyä mallirekisterissä samalla tavalla kuin muiden SageMaker Studion MLOps-mallien työnkulkuja.

Yhteenveto

Tässä viestissä kävimme läpi uuden SageMaker MLOps -projektimallin kuvanrakennuksen CI/CD:lle. Mallissa olevan rakenteen avulla voit muokata Docker-tiedostoja vastaamaan käyttötapaustasi, luoda mukautetun mallin, jossa on enemmän kuvanrakennustietovarastoja, tai luoda mukautettuja sääntöjä automaattista liukuhihnan laukaisua varten. Kokeile sitä ja kerro meille, jos sinulla on kysyttävää kommenttiosiossa!


kirjailijasta

Kirit Thadaka on ML Solutions -arkkitehti, joka työskentelee Amazon SageMaker Service SA -tiimissä. Ennen AWS:ään liittymistä Kirit työskenteli alkuvaiheen AI-startup-yrityksissä, minkä jälkeen hän konsultoi eri rooleissa tekoälytutkimuksessa, MLOpsissa ja teknisessä johtamisessa.

Lähde: https://aws.amazon.com/blogs/machine-learning/create-amazon-sagemaker-projects-with-image-building-ci-cd-pipelines/

Aikaleima:

Lisää aiheesta AWS-koneoppimisblogi