Amazon SageMaker er en fullstendig administrert maskinlæringstjeneste (ML). Med SageMaker kan dataforskere og utviklere raskt og enkelt bygge og trene ML-modeller, og deretter distribuere dem direkte i et produksjonsklart vertsmiljø. Sagemaker tilbyr en integrert Jupyter-forfatternotatbokforekomst for enkel tilgang til datakildene dine for utforskning og analyse, slik at du ikke trenger å administrere servere. Det gir også vanlige ML-algoritmer som er optimalisert for å kjøre effektivt mot ekstremt store data i et distribuert miljø.
SageMaker krever at treningsdataene for en ML-modell finnes enten i Amazon Simple Storage Service (Amazon S3), Amazon Elastic File System (Amazon EFS) eller Amazon FSx for Luster (for mer informasjon, se Access Training Data). For å trene en modell ved å bruke data som er lagret utenfor de tre støttede lagringstjenestene, må dataene først tas inn i en av disse tjenestene (typisk Amazon S3). Dette krever å bygge en datapipeline (ved å bruke verktøy som f.eks Amazon SageMaker Data Wrangler) for å flytte data til Amazon S3. Imidlertid kan denne tilnærmingen skape en datahåndteringsutfordring når det gjelder å administrere livssyklusen til dette datalagringsmediet, lage tilgangskontroller, datarevisjon og så videre, alt med det formål å iscenesette opplæringsdata for varigheten av treningsjobben. I slike situasjoner kan det være ønskelig å ha dataene tilgjengelig for SageMaker i de flyktige lagringsmediene knyttet til de flyktige treningsinstansene uten mellomlagring av data i Amazon S3.
Dette innlegget viser en måte å gjøre dette på Snowflake som datakilde og ved å laste ned dataene direkte fra Snowflake til en SageMaker Training-jobbforekomst.
Løsningsoversikt
Vi bruker California boligdatasett som et opplæringsdatasett for dette innlegget og trene en ML-modell for å forutsi median husverdi for hvert distrikt. Vi legger til disse dataene i Snowflake som en ny tabell. Vi lager en tilpasset treningsbeholder som laster ned data direkte fra Snowflake-tabellen til treningsforekomsten i stedet for først å laste ned dataene til en S3-bøtte. Etter at dataene er lastet ned til treningsforekomsten, utfører det tilpassede opplæringsskriptet dataforberedelsesoppgaver og trener deretter ML-modellen ved å bruke XGBoost Estimator. All kode for dette innlegget er tilgjengelig i GitHub repo.
Følgende figur representerer høynivåarkitekturen til den foreslåtte løsningen for å bruke Snowflake som en datakilde for å trene ML-modeller med SageMaker.
Arbeidsflyttrinnene er som følger:
- Sett opp en SageMaker-notisbok og en AWS identitets- og tilgangsadministrasjon (IAM) rolle med passende tillatelser for å gi SageMaker tilgang Amazon Elastic Container Registry (Amazon ECR), Secrets Manager og andre tjenester på AWS-kontoen din.
- Lagre din Snowflake-kontolegitimasjon i AWS Secrets Manager.
- Ta inn dataene i en tabell i Snowflake-kontoen din.
- Lag et tilpasset beholderbilde for opplæring av ML-modeller og skyv det til Amazon ECR.
- Lanser en SageMaker Training-jobb for opplæring av ML-modellen. Treningsforekomsten henter Snowflake-legitimasjon fra Secrets Manager og bruker deretter disse legitimasjonene til å laste ned datasettet direkte fra Snowflake. Dette er trinnet som eliminerer behovet for at data først skal lastes ned til en S3-bøtte.
- Den trente ML-modellen oppbevares i en S3-bøtte.
Forutsetninger
For å implementere løsningen som er gitt i dette innlegget, bør du ha en AWS-kontoen Snowflake-konto og kjennskap til SageMaker.
Sett opp en SageMaker Notebook- og IAM-rolle
Vi bruker AWS CloudFormation for å lage en SageMaker notatbok kalt aws-aiml-blogpost-sagemaker-snowflake-example
og en IAM-rolle kalt SageMakerSnowFlakeExample
. Velg Start Stack for regionen du ønsker å distribuere ressurser til.
Lagre Snowflake-legitimasjon i Secrets Manager
Lagre Snowflake-legitimasjonen din som en hemmelighet i Secrets Manager. For instruksjoner om hvordan du oppretter en hemmelighet, se Create an AWS Secrets Manager secret
.
- Navngi hemmeligheten
snowflake_credentials
. Dette er nødvendig fordi koden isnowflake-load-dataset.ipynb
forventer at hemmeligheten heter det. - Lag hemmeligheten som et nøkkelverdi-par med to nøkler:
- brukernavn – Ditt Snowflake-brukernavn.
- passord – Passordet knyttet til Snowflake-brukernavnet ditt.
Ta inn dataene i en tabell i Snowflake-kontoen din
For å innta dataene, fullfør følgende trinn:
- Velg på SageMaker-konsollen Notatbøker i navigasjonsruten.
- Velg notatboken aws-aiml-blogpost-sagemaker-snowflake-example og velg Åpne JupyterLab.
- Velg
snowflake-load-dataset.ipynb
for å åpne den i JupyterLab. Denne notatboken vil innta California boligdatasett til et Snowflake-bord. - Rediger innholdet i følgende celle i notatboken for å erstatte plassholderverdiene med den som samsvarer med snøfnuggkontoen din:
- På Kjør-menyen velger du Kjør alle celler for å kjøre koden i denne notatboken. Dette vil laste ned datasettet lokalt til notatboken og deretter legge det inn i Snowflake-tabellen.
Følgende kodebit i notatboken inntar datasettet i Snowflake. Se snowflake-load-dataset.ipynb
notatbok for hele koden.
- Lukk notatboken etter at alle cellene har kjørt uten feil. Dine data er nå tilgjengelig i Snowflake. Følgende skjermbilde viser
california_housing
bord laget i Snowflake.
Kjør sagemaker-snowflake-example.ipynb
bærbare
Denne notatboken lager en tilpasset treningsbeholder med en Snowflake-tilkobling, trekker ut data fra Snowflake inn i treningsforekomstens flyktige lagring uten å sette den i Amazon S3, og utfører Distribuert Data Parallel (DDP) XGBoost modelltrening på dataene. DDP-trening er ikke nødvendig for modelltrening på et så lite datasett; den er inkludert her for å illustrere enda en nylig utgitt SageMaker-funksjon.
Lag en tilpasset beholder for opplæring
Vi lager nå en tilpasset beholder for ML-modellopplæringsjobben. Merk at root-tilgang er nødvendig for å lage en Docker-beholder. Denne SageMaker-notisboken ble distribuert med root-tilgang aktivert. Hvis retningslinjer for bedriftsorganisasjonen ikke tillater root-tilgang til skyressurser, kan det være lurt å bruke følgende Docker-fil- og shell-skript for å bygge en Docker-beholder andre steder (for eksempel den bærbare datamaskinen) og deretter skyve den til Amazon ECR. Vi bruker beholderen basert på SageMaker XGBoost-beholderbildet 246618743249.dkr.ecr.us-west-2.amazonaws.com/sagemaker-xgboost:1.5-1
med følgende tillegg:
- De Snowflake Connector for Python for å laste ned dataene fra Snowflake-tabellen til treningsforekomsten.
- Et Python-skript for å koble til Secrets Manager for å hente Snowflake-legitimasjon.
Bruk av Snowflake-koblingen og Python-skriptet sikrer at brukere som bruker dette beholderbildet for opplæring i ML-modeller, ikke trenger å skrive denne koden som en del av opplæringsskriptet og kan bruke denne funksjonaliteten som allerede er tilgjengelig for dem.
Følgende er Dockerfilen for opplæringsbeholderen:
Beholderbildet bygges og skyves til Amazon ECR. Dette bildet brukes til trening av ML-modellen.
Tren ML-modellen ved å bruke en SageMaker Training-jobb
Etter at vi har opprettet beholderbildet og sendt det til Amazon ECR, kan vi begynne å bruke det til modellopplæring.
- Vi lager et sett med Python-skript for å laste ned dataene fra Snowflake ved å bruke Snowflake Connector for Python, klargjør dataene og bruk deretter
XGBoost Regressor
å trene ML-modellen. Det er trinnet med å laste ned dataene direkte til treningsinstansen som unngår å måtte bruke Amazon S3 som mellomlagring for treningsdata. - Vi tilrettelegger for distribuert dataparallell trening ved å la treningskoden laste ned et tilfeldig delsett av dataene slik at hver treningsforekomst laster ned like mye data fra Snowflake. For eksempel, hvis det er to treningsnoder, laster hver node ned et tilfeldig utvalg på 50 % av radene i Snowflake-tabellen. Se følgende kode:
- Vi leverer deretter opplæringsskriptet til SageMaker SDK
Estimator
sammen med kildekatalogen slik at alle skriptene vi lager kan leveres til opplæringsbeholderen når opplæringsjobben kjøres ved hjelp avEstimator.fit
metode:For mer informasjon, se Forbered et Scikit-Learn Training Script.
- Etter at modellopplæringen er fullført, er den trente modellen tilgjengelig som en
model.tar.gz
fil i standard SageMaker-bøtte for regionen:
Du kan nå distribuere den trente modellen for å få slutninger om nye data! For instruksjoner, se Lag endepunktet ditt og distribuer modellen din.
Rydd opp
Slett ressursene for å unngå fremtidige kostnader. Du kan gjøre dette ved å slette CloudFormation-malen som ble brukt til å lage IAM-rollen og SageMaker-notatboken.
Du må slette Snowflake-ressursene manuelt fra Snowflake-konsollen.
konklusjonen
I dette innlegget viste vi hvordan du laster ned data lagret i en Snowflake-tabell til en SageMaker Training-jobbforekomst og trener en XGBoost-modell ved hjelp av en tilpasset treningsbeholder. Denne tilnærmingen lar oss integrere Snowflake direkte som en datakilde med en SageMaker-notisbok uten å ha dataene iscenesatt i Amazon S3.
Vi oppfordrer deg til å lære mer ved å utforske Amazon SageMaker Python SDK og bygge en løsning ved å bruke eksempelimplementeringen gitt i dette innlegget og et datasett som er relevant for virksomheten din. Hvis du har spørsmål eller forslag, legg igjen en kommentar.
Om forfatterne
Amit Arora er en AI- og ML-spesialistarkitekt hos Amazon Web Services, og hjelper bedriftskunder å bruke skybaserte maskinlæringstjenester for å raskt skalere innovasjonene sine. Han er også adjunkt i MS data science and analytics-programmet ved Georgetown University i Washington DC
Divya Muralidharan er løsningsarkitekt hos Amazon Web Services. Hun brenner for å hjelpe bedriftskunder med å løse forretningsproblemer med teknologi. Hun har en mastergrad i informatikk fra Rochester Institute of Technology. Utenfor kontoret bruker hun tid på å lage mat, synge og dyrke planter.
Sergey Ermolin er en rektor AIML Solutions Architect ved AWS. Tidligere var han programvareløsningsarkitekt for dyp læring, analyse og big data-teknologier hos Intel. En Silicon Valley-veteran med lidenskap for maskinlæring og kunstig intelligens, Sergey har vært interessert i nevrale nettverk siden pre-GPU-dagene, da han brukte dem til å forutsi aldringsadferd til kvartskrystaller og cesium atomklokker hos Hewlett-Packard. Sergey har et MSEE og et CS-sertifikat fra Stanford og en BS-grad i fysikk og maskinteknikk fra California State University, Sacramento. Utenom jobben liker Sergey vinproduksjon, skigåing, sykling, seiling og dykking. Sergey er også frivillig pilot for Angel Flight.
- SEO-drevet innhold og PR-distribusjon. Bli forsterket i dag.
- Platoblokkkjede. Web3 Metaverse Intelligence. Kunnskap forsterket. Tilgang her.
- kilde: https://aws.amazon.com/blogs/machine-learning/use-snowflake-as-a-data-source-to-train-ml-models-with-amazon-sagemaker/
- :er
- $OPP
- 1
- 10
- 7
- 8
- a
- Om oss
- adgang
- tilgjengelig
- Logg inn
- tilleggene
- Etter
- mot
- Aldring
- AI
- AIML
- algoritmer
- Alle
- tillater
- allerede
- Amazon
- Amazon FSx
- Amazon SageMaker
- Amazon Web Services
- beløp
- analyse
- analytics
- og
- En annen
- tilnærming
- hensiktsmessig
- arkitektur
- ER
- kunstig
- kunstig intelligens
- AS
- assosiert
- At
- revisjon
- forfatter
- tilgjengelig
- AWS
- AWS skyformasjon
- basen
- basert
- BE
- fordi
- Stor
- Store data
- bygge
- Bygning
- bygget
- virksomhet
- by
- california
- som heter
- CAN
- Celler
- sertifikat
- utfordre
- avgifter
- Velg
- Rengjøring
- Klokker
- Cloud
- kode
- Kolonne
- kolonner
- kommentere
- Felles
- fullføre
- datamaskin
- informatikk
- Koble
- tilkobling
- Konsoll
- Container
- inneholder
- innhold
- kontroller
- skape
- opprettet
- skaper
- Opprette
- Credentials
- skikk
- Kunder
- dato
- Dataledelse
- Dataklargjøring
- datavitenskap
- datalagring
- dato tid
- Dager
- DDP
- Avgjør
- dyp
- dyp læring
- Misligholde
- Grad
- utplassere
- utplassert
- utviklere
- direkte
- distribueres
- distrikt
- Docker
- ikke
- nedlasting
- nedlastinger
- hver enkelt
- lett
- effektivt
- enten
- eliminerer
- andre steder
- aktivert
- oppmuntre
- Endpoint
- Ingeniørarbeid
- sikrer
- Enterprise
- Miljø
- feil
- eksempel
- henrette
- finnes
- forventer
- leting
- Utforske
- ekstrakter
- ekstremt
- legge til rette
- rettferdig
- Familiær
- Trekk
- Figur
- filet
- slutt~~POS=TRUNC
- Først
- passer
- etter
- følger
- Til
- fra
- fullt
- fullt
- funksjonalitet
- framtid
- få
- få
- GitHub
- skal
- Økende
- Ha
- å ha
- hjelpe
- her.
- høyt nivå
- holder
- vert
- Vertskapet
- hus
- bolig
- Hvordan
- Hvordan
- Men
- HTML
- HTTPS
- Identitet
- bilde
- iverksette
- gjennomføring
- importere
- in
- inkludere
- inkludert
- indeks
- informasjon
- innovasjoner
- installere
- f.eks
- Institute
- instruksjoner
- integrere
- integrert
- Intel
- Intelligens
- interessert
- IT
- Jobb
- nøkler
- laptop
- stor
- Siste
- LÆRE
- læring
- Permisjon
- Livssyklus
- ln
- lokalt
- maskin
- maskinlæring
- administrer
- fikk til
- ledelse
- leder
- administrerende
- manuelt
- matchende
- mekanisk
- Media
- medium
- Meny
- metode
- ML
- modell
- modeller
- mer
- flytte
- MS
- navn
- Navigasjon
- Trenger
- behov
- nettverk
- nevrale nettverk
- Ny
- neste
- node
- noder
- bærbare
- Antall
- objekt
- of
- Office
- on
- ONE
- åpen
- optimalisert
- rekkefølge
- organisasjon
- Annen
- utenfor
- pakke
- pandaer
- brød
- Parallel
- del
- lidenskap
- lidenskapelig
- Passord
- utfører
- tillatelser
- Fysikk
- pilot
- rørledning
- placeholder
- Hvordan få de til å trives
- plato
- Platon Data Intelligence
- PlatonData
- Politikk
- befolket
- Post
- forutsi
- Forbered
- presentere
- tidligere
- Principal
- problemer
- program
- foreslått
- gi
- forutsatt
- gir
- formål
- Skyv
- presset
- Python
- spørsmål
- raskt
- tilfeldig
- raskt
- heller
- Lese
- nylig
- poster
- reduserer
- region
- utgitt
- relevant
- erstatte
- representerer
- påkrevd
- Krever
- Ressurser
- retur
- Rolle
- root
- RAD
- Kjør
- Sacramento
- sagemaker
- seiling
- Spar
- Skala
- Vitenskap
- forskere
- scikit lære
- skript
- SDK
- Secret
- Servere
- tjeneste
- Tjenester
- sett
- Form
- Shell
- bør
- Viser
- signifikant
- Silicon
- Silicon Valley
- Enkelt
- siden
- situasjoner
- liten
- So
- Software
- løsning
- Solutions
- LØSE
- kilde
- Kilder
- Rom
- spesialist
- iscenesettelse
- Begynn
- Tilstand
- Uttalelse
- Trinn
- Steps
- lagring
- lagret
- subnett
- vellykket
- slik
- støtte
- Støttes
- system
- bord
- oppgaver
- Technologies
- Teknologi
- mal
- vilkår
- Det
- De
- Kilden
- deres
- Dem
- Disse
- tre
- Gjennom
- tid
- til
- verktøy
- Totalt
- Tog
- trent
- Kurs
- Togene
- typisk
- universitet
- Oppdater
- us
- bruke
- Bruker
- Brukere
- Dal
- verdi
- Verdier
- veteran
- frivillig
- washington
- Vei..
- web
- webtjenester
- hvilken
- HVEM
- vil
- med
- innenfor
- uten
- Arbeid
- skrive
- Xgboost
- Du
- Din
- zephyrnet