Amazon SageMaker er en fuldt administreret maskinlæringstjeneste (ML). Med SageMaker kan dataforskere og udviklere hurtigt og nemt bygge og træne ML-modeller og derefter implementere dem direkte i et produktionsklart hostet miljø. Sagemaker leverer en integreret Jupyter-forfatternotebook-instans for nem adgang til dine datakilder til udforskning og analyse, så du ikke behøver at administrere servere. Det giver også almindelige ML-algoritmer, der er optimeret til at køre effektivt mod ekstremt store data i et distribueret miljø.
SageMaker kræver, at træningsdataene for en ML-model er til stede enten i Amazon Simple Storage Service (Amazon S3), Amazon Elastic File System (Amazon EFS) eller Amazon FSx for Luster (for mere information, se Access Training Data). For at træne en model ved hjælp af data, der er lagret uden for de tre understøttede lagertjenester, skal dataene først indlæses i en af disse tjenester (typisk Amazon S3). Dette kræver opbygning af en datapipeline (ved hjælp af værktøjer som f.eks Amazon SageMaker Data Wrangler) for at flytte data til Amazon S3. Denne tilgang kan dog skabe en datahåndteringsudfordring med hensyn til at styre livscyklussen for dette datalagringsmedie, udforme adgangskontroller, dataauditering og så videre, alt sammen med det formål at iscenesætte træningsdata for varigheden af træningsjobbet. I sådanne situationer kan det være ønskeligt at have dataene tilgængelige for SageMaker i de flygtige lagringsmedier knyttet til de flygtige træningsinstanser uden mellemlagring af data i Amazon S3.
Dette indlæg viser en måde at gøre dette på Snowflake som datakilde og ved at downloade dataene direkte fra Snowflake til en SageMaker Training-jobinstans.
Løsningsoversigt
Vi bruger Californiens boligdatasæt som et træningsdatasæt til denne post og træne en ML-model til at forudsige medianhusværdien for hvert distrikt. Vi tilføjer disse data til Snowflake som en ny tabel. Vi opretter en tilpasset træningsbeholder, der downloader data direkte fra Snowflake-tabellen til træningsinstansen i stedet for først at downloade dataene til en S3-bøtte. Når dataene er downloadet til træningsinstansen, udfører det tilpassede træningsscript dataforberedelsesopgaver og træner derefter ML-modellen ved hjælp af XGBoost Estimator. Al kode til dette indlæg er tilgængelig i GitHub repo.
Følgende figur repræsenterer højniveauarkitekturen i den foreslåede løsning til at bruge Snowflake som datakilde til at træne ML-modeller med SageMaker.
Workflow-trinene er som følger:
- Opsæt en SageMaker notesbog og en AWS identitets- og adgangsstyring (IAM) rolle med passende tilladelser for at give SageMaker adgang Amazon Elastic Container Registry (Amazon ECR), Secrets Manager og andre tjenester på din AWS-konto.
- Gem dine Snowflake-kontooplysninger i AWS Secrets Manager.
- Indtag dataene i en tabel på din Snowflake-konto.
- Opret et brugerdefineret containerbillede til ML-modeltræning, og skub det til Amazon ECR.
- Start et SageMaker Training-job til træning af ML-modellen. Træningsinstansen henter Snowflake-legitimationsoplysninger fra Secrets Manager og bruger derefter disse legitimationsoplysninger til at downloade datasættet direkte fra Snowflake. Dette er det trin, der eliminerer behovet for, at data først skal downloades til en S3-bøtte.
- Den trænede ML model opbevares i en S3 spand.
Forudsætninger
For at implementere løsningen i dette indlæg, bør du have en AWS-konto, en Snefnug-konto og kendskab til SageMaker.
Konfigurer en SageMaker Notebook- og IAM-rolle
Vi bruger AWS CloudFormation til at lave en SageMaker notesbog kaldet aws-aiml-blogpost-sagemaker-snowflake-example
og en IAM-rolle kaldet SageMakerSnowFlakeExample
. Vælg Start Stack for den region, du ønsker at indsætte ressourcer til.
Gem Snowflake-legitimationsoplysninger i Secrets Manager
Gem dine Snowflake-legitimationsoplysninger som en hemmelighed i Secrets Manager. For instruktioner om, hvordan du opretter en hemmelighed, se Create an AWS Secrets Manager secret
.
- Navngiv hemmeligheden
snowflake_credentials
. Dette er påkrævet, fordi koden isnowflake-load-dataset.ipynb
forventer, at hemmeligheden hedder det. - Opret hemmeligheden som et nøgle-værdi-par med to nøgler:
- brugernavn – Dit Snowflake-brugernavn.
- adgangskode – Adgangskoden, der er knyttet til dit Snowflake-brugernavn.
Indtag dataene i en tabel på din Snowflake-konto
For at indlæse dataene skal du udføre følgende trin:
- Vælg på SageMaker-konsollen Notebooks i navigationsruden.
- Vælg notesbogen aws-aiml-blogpost-sagemaker-snowflake-example og vælg Åbn JupyterLab.
- Vælg
snowflake-load-dataset.ipynb
for at åbne den i JupyterLab. Denne notesbog vil indtage Californiens boligdatasæt til et snefnugbord. - I notesbogen skal du redigere indholdet af følgende celle for at erstatte pladsholderværdierne med den, der matcher din snefnug-konto:
- Vælg i menuen Kør Kør alle celler for at køre koden i denne notesbog. Dette vil downloade datasættet lokalt til notesbogen og derefter indlæse det i Snowflake-tabellen.
Følgende kodestykke i notesbogen optager datasættet i Snowflake. Se den snowflake-load-dataset.ipynb
notesbog for den fulde kode.
- Luk notesbogen, når alle celler er kørt uden fejl. Dine data er nu tilgængelige i Snowflake. Følgende skærmbillede viser
california_housing
bord lavet i Snowflake.
Kør sagemaker-snowflake-example.ipynb
notesbog
Denne notesbog opretter en brugerdefineret træningsbeholder med en Snowflake-forbindelse, udtrækker data fra Snowflake til træningsinstansens flygtige lager uden at iscenesætte det i Amazon S3 og udfører Distributed Data Parallel (DDP) XGBoost-modeltræning på dataene. DDP-træning er ikke påkrævet for modeltræning på så lille et datasæt; den er inkluderet her til illustration af endnu en nyligt udgivet SageMaker-funktion.
Opret en tilpasset beholder til træning
Vi opretter nu en tilpasset beholder til ML model træningsjobbet. Bemærk, at root-adgang er påkrævet for at oprette en Docker-container. Denne SageMaker notesbog blev implementeret med root-adgang aktiveret. Hvis din virksomhedsorganisations politikker ikke tillader root-adgang til cloud-ressourcer, vil du måske bruge følgende Docker-fil og shell-scripts til at bygge en Docker-container et andet sted (f.eks. din bærbare computer) og derefter skubbe den til Amazon ECR. Vi bruger containeren baseret på SageMaker XGBoost containerbilledet 246618743249.dkr.ecr.us-west-2.amazonaws.com/sagemaker-xgboost:1.5-1
med følgende tilføjelser:
- Snowflake Connector til Python for at downloade data fra Snowflake-tabellen til træningsinstansen.
- Et Python-script til at oprette forbindelse til Secrets Manager for at hente Snowflake-legitimationsoplysninger.
Brug af Snowflake-stikket og Python-scriptet sikrer, at brugere, der bruger dette containerbillede til ML-modeltræning, ikke behøver at skrive denne kode som en del af deres træningsscript og kan bruge denne funktionalitet, der allerede er tilgængelig for dem.
Følgende er Dockerfilen til træningsbeholderen:
Containerbilledet bygges og skubbes til Amazon ECR. Dette billede bruges til træning af ML-modellen.
Træn ML-modellen ved hjælp af et SageMaker Training-job
Når vi har oprettet containerbilledet og skubbet det til Amazon ECR, kan vi begynde at bruge det til modeltræning.
- Vi opretter et sæt Python-scripts for at downloade dataene fra Snowflake ved hjælp af Snowflake Connector til Python, klargør dataene og brug derefter
XGBoost Regressor
at træne ML-modellen. Det er trinnet med at downloade dataene direkte til træningsinstansen, der undgår at skulle bruge Amazon S3 som mellemlager for træningsdata. - Vi faciliterer distribueret data parallel træning ved at lade træningskoden downloade en tilfældig delmængde af dataene, således at hver træningsinstans downloader en lige stor mængde data fra Snowflake. For eksempel, hvis der er to træningsknuder, downloader hver knude en tilfældig prøve på 50 % af rækkerne i Snowflake-tabellen. Se følgende kode:
- Vi leverer derefter træningsscriptet til SageMaker SDK
Estimator
sammen med kildebiblioteket, så alle de scripts, vi opretter, kan leveres til træningsbeholderen, når træningsjobbet køres ved hjælp afEstimator.fit
metode:For mere information henvises til Forbered et Scikit-Learn træningsscript.
- Efter at modeluddannelsen er afsluttet, er den trænede model tilgængelig som en
model.tar.gz
fil i standard SageMaker-bøtten for regionen:
Du kan nu implementere den trænede model til at få slutninger om nye data! For instruktioner, se Opret dit slutpunkt og implementer din model.
Ryd op
Slet ressourcerne for at undgå fremtidige gebyrer. Du kan gøre dette ved at slette CloudFormation-skabelonen, der blev brugt til at oprette IAM-rollen og SageMaker-notesbogen.
Du bliver nødt til at slette Snowflake-ressourcerne manuelt fra Snowflake-konsollen.
Konklusion
I dette indlæg viste vi, hvordan man downloader data gemt i en Snowflake-tabel til en SageMaker Training-jobinstans og træner en XGBoost-model ved hjælp af en tilpasset træningsbeholder. Denne tilgang giver os mulighed for direkte at integrere Snowflake som en datakilde med en SageMaker notebook uden at have dataene iscenesat i Amazon S3.
Vi opfordrer dig til at lære mere ved at udforske Amazon SageMaker Python SDK og opbygning af en løsning ved hjælp af eksempelimplementeringen i dette indlæg og et datasæt, der er relevant for din virksomhed. Hvis du har spørgsmål eller forslag, så læg en kommentar.
Om forfatterne
Amit Arora er en AI- og ML-specialistarkitekt hos Amazon Web Services, der hjælper virksomhedskunder med at bruge cloud-baserede maskinlæringstjenester til hurtigt at skalere deres innovationer. Han er også adjungeret lektor i MS data science and analytics-programmet ved Georgetown University i Washington DC
Divya Muralidharan er Solutions Architect hos Amazon Web Services. Hun brænder for at hjælpe virksomhedskunder med at løse forretningsproblemer med teknologi. Hun har en Master i Computer Science fra Rochester Institute of Technology. Uden for kontoret bruger hun tid på at lave mad, synge og dyrke planter.
Sergey Ermolin er Principal AIML Solutions Architect hos AWS. Tidligere var han softwareløsningsarkitekt for deep learning, analytics og big data-teknologier hos Intel. En Silicon Valley-veteran med en passion for maskinlæring og kunstig intelligens, Sergey har været interesseret i neurale netværk siden før-GPU dage, hvor han brugte dem til at forudsige aldrende adfærd af kvartskrystaller og cæsium atomure hos Hewlett-Packard. Sergey har et MSEE og et CS-certifikat fra Stanford og en BS-grad i fysik og maskinteknik fra California State University, Sacramento. Uden for arbejdet nyder Sergey at lave vin, stå på ski, cykle, sejle og dykke. Sergey er også frivillig pilot for Engleflyvning.
- SEO Powered Content & PR Distribution. Bliv forstærket i dag.
- Platoblokkæde. Web3 Metaverse Intelligence. Viden forstærket. Adgang her.
- Kilde: https://aws.amazon.com/blogs/machine-learning/use-snowflake-as-a-data-source-to-train-ml-models-with-amazon-sagemaker/
- :er
- $OP
- 1
- 10
- 7
- 8
- a
- Om
- adgang
- tilgængelig
- Konto
- tilføjelser
- Efter
- mod
- Aging
- AI
- AIML
- algoritmer
- Alle
- tillader
- allerede
- Amazon
- Amazon FSx
- Amazon SageMaker
- Amazon Web Services
- beløb
- analyse
- analytics
- ,
- En anden
- tilgang
- passende
- arkitektur
- ER
- kunstig
- kunstig intelligens
- AS
- forbundet
- At
- revision
- forfatter
- til rådighed
- AWS
- AWS CloudFormation
- bund
- baseret
- BE
- fordi
- Big
- Big data
- bygge
- Bygning
- bygget
- virksomhed
- by
- california
- kaldet
- CAN
- Celler
- certifikat
- udfordre
- afgifter
- Vælg
- Rengøring
- Ure
- Cloud
- kode
- Kolonne
- Kolonner
- KOMMENTAR
- Fælles
- fuldføre
- computer
- Datalogi
- Tilslut
- tilslutning
- Konsol
- Container
- indeholder
- indhold
- kontrol
- skabe
- oprettet
- skaber
- Oprettelse af
- Legitimationsoplysninger
- skik
- Kunder
- data
- datastyring
- Dataforberedelse
- datalogi
- data opbevaring
- dato tid
- Dage
- DDP
- Beslutter
- dyb
- dyb læring
- Standard
- Degree
- indsætte
- indsat
- udviklere
- direkte
- distribueret
- distrikt
- Docker
- Dont
- downloade
- downloads
- hver
- nemt
- effektivt
- enten
- eliminerer
- andetsteds
- aktiveret
- tilskynde
- Endpoint
- Engineering
- sikrer
- Enterprise
- Miljø
- fejl
- eksempel
- udføre
- eksisterer
- forventer
- udforskning
- Udforskning
- Uddrag
- ekstremt
- lette
- retfærdig
- Kendskab
- Feature
- Figur
- File (Felt)
- endelige
- Fornavn
- passer
- efter
- følger
- Til
- fra
- fuld
- fuldt ud
- funktionalitet
- fremtiden
- få
- få
- GitHub
- gå
- Dyrkning
- Have
- have
- hjælpe
- link.
- højt niveau
- besidder
- hostede
- værter
- hus
- boliger
- Hvordan
- How To
- Men
- HTML
- HTTPS
- Identity
- billede
- gennemføre
- implementering
- importere
- in
- omfatter
- medtaget
- indeks
- oplysninger
- innovationer
- installere
- instans
- Institut
- anvisninger
- integrere
- integreret
- Intel
- Intelligens
- interesseret
- IT
- Job
- nøgler
- laptop
- stor
- Efternavn
- LÆR
- læring
- Forlade
- livscyklus
- ln
- lokalt
- maskine
- machine learning
- administrere
- lykkedes
- ledelse
- leder
- styring
- manuelt
- matchende
- mekanisk
- Medier
- medium
- Menu
- metode
- ML
- model
- modeller
- mere
- bevæge sig
- MS
- navn
- Navigation
- Behov
- behov
- net
- neurale netværk
- Ny
- næste
- node
- noder
- notesbog
- nummer
- objekt
- of
- Office
- on
- ONE
- åbent
- optimeret
- ordrer
- organisation
- Andet
- uden for
- pakke
- pandaer
- brød
- Parallel
- del
- lidenskab
- lidenskabelige
- Adgangskode
- udfører
- Tilladelser
- Fysik
- pilot
- pipeline
- pladsholder
- Planter
- plato
- Platon Data Intelligence
- PlatoData
- politikker
- befolkede
- Indlæg
- forudsige
- Forbered
- præsentere
- tidligere
- Main
- problemer
- Program
- foreslog
- give
- forudsat
- giver
- formål
- Skub ud
- skubbet
- Python
- Spørgsmål
- hurtigt
- tilfældig
- hurtigt
- hellere
- Læs
- for nylig
- optegnelser
- reducerer
- region
- frigivet
- relevant
- erstatte
- repræsenterer
- påkrævet
- Kræver
- Ressourcer
- afkast
- roller
- rod
- RÆKKE
- Kør
- Sacramento
- sagemaker
- sejlads
- Gem
- Scale
- Videnskab
- forskere
- scikit-lære
- scripts
- SDK
- Secret
- Servere
- tjeneste
- Tjenester
- sæt
- Shape
- Shell
- bør
- Shows
- signifikant
- Silicon
- Silicon Valley
- Simpelt
- siden
- situationer
- lille
- So
- Software
- løsninger
- Løsninger
- SOLVE
- Kilde
- Kilder
- Space
- specialist
- iscenesættelse
- starte
- Tilstand
- Statement
- Trin
- Steps
- opbevaring
- opbevaret
- undernet
- Succesfuld
- sådan
- support
- Understøttet
- systemet
- bord
- opgaver
- Teknologier
- Teknologier
- skabelon
- vilkår
- at
- The Source
- deres
- Them
- Disse
- tre
- Gennem
- tid
- til
- værktøjer
- I alt
- Tog
- uddannet
- Kurser
- tog
- typisk
- universitet
- Opdatering
- us
- brug
- Bruger
- brugere
- Dal
- værdi
- Værdier
- veteran
- frivilligt
- washington
- Vej..
- web
- webservices
- som
- WHO
- vilje
- med
- inden for
- uden
- Arbejde
- skriver
- XGBoost
- Du
- Din
- zephyrnet