Amazon Sage Maker is een volledig beheerde machine learning-service (ML). Met SageMaker kunnen datawetenschappers en ontwikkelaars snel en eenvoudig ML-modellen bouwen en trainen, en deze vervolgens direct implementeren in een productieklare gehoste omgeving. Sagemaker biedt een geรฏntegreerde Jupyter authoring notebook-instantie voor eenvoudige toegang tot uw gegevensbronnen voor verkenning en analyse, zodat u geen servers hoeft te beheren. Het biedt ook algemene ML-algoritmen die zijn geoptimaliseerd om efficiรซnt te werken tegen extreem grote gegevens in een gedistribueerde omgeving.
SageMaker vereist dat de trainingsgegevens voor een ML-model aanwezig zijn in Amazon Simple Storage Service (Amazon S3), Amazon Elastic File System (Amazon EFS) of Amazon FSx for Luster (voor meer informatie, zie Access Training Data). Om een โโmodel te trainen met gegevens die zijn opgeslagen buiten de drie ondersteunde opslagservices, moeten de gegevens eerst worden opgenomen in een van deze services (meestal Amazon S3). Dit vereist het bouwen van een datapijplijn (met behulp van tools zoals Amazon SageMaker-gegevens Wrangler) om gegevens naar Amazon S3 te verplaatsen. Deze benadering kan echter een uitdaging vormen voor gegevensbeheer in termen van het beheer van de levenscyclus van dit gegevensopslagmedium, het maken van toegangscontroles, gegevenscontrole, enzovoort, allemaal met als doel trainingsgegevens te organiseren voor de duur van de trainingstaak. In dergelijke situaties kan het wenselijk zijn om de gegevens toegankelijk te hebben voor SageMaker in de kortstondige opslagmedia die zijn gekoppeld aan de kortstondige trainingsinstanties zonder de tussentijdse opslag van gegevens in Amazon S3.
Dit bericht toont een manier om dit te doen met behulp van Sneeuwvlok als de gegevensbron en door de gegevens rechtstreeks van Snowflake naar een SageMaker Training-taakinstantie te downloaden.
Overzicht oplossingen
We maken gebruik van de Gegevensset huisvesting Californiรซ als een trainingsdataset voor deze post en train een ML-model om de gemiddelde huiswaarde voor elk district te voorspellen. We voegen deze gegevens toe aan Snowflake als een nieuwe tabel. We maken een aangepaste trainingscontainer die gegevens rechtstreeks van de Snowflake-tabel naar de trainingsinstantie downloadt in plaats van de gegevens eerst naar een S3-bucket te downloaden. Nadat de gegevens zijn gedownload naar het trainingsexemplaar, voert het aangepaste trainingsscript gegevensvoorbereidingstaken uit en traint vervolgens het ML-model met behulp van de XGBoost-schatter. Alle code voor dit bericht is beschikbaar in de GitHub repo.
De volgende afbeelding geeft de architectuur op hoog niveau weer van de voorgestelde oplossing om Snowflake te gebruiken als gegevensbron om ML-modellen te trainen met SageMaker.
De workflowstappen zijn als volgt:
- Stel een SageMaker-notebook en een AWS Identiteits- en toegangsbeheer (IAM) rol met de juiste machtigingen om SageMaker toegang te geven Amazon Elastic Container-register (Amazon ECR), Secrets Manager en andere services binnen uw AWS-account.
- Sla uw Snowflake-accountgegevens op in AWS Secrets Manager.
- Neem de gegevens op in een tabel in uw Snowflake-account.
- Maak een aangepaste containerafbeelding voor ML-modeltraining en push deze naar Amazon ECR.
- Start een SageMaker-trainingstaak voor het trainen van het ML-model. De trainingsinstantie haalt Snowflake-referenties op van Secrets Manager en gebruikt deze referenties vervolgens om de dataset rechtstreeks van Snowflake te downloaden. Dit is de stap die ervoor zorgt dat gegevens niet eerst naar een S3-bucket moeten worden gedownload.
- Het getrainde ML-model wordt opgeslagen in een S3-bucket.
Voorwaarden
Om de oplossing in dit bericht te implementeren, moet u een AWS-account, een Snowflake-account en bekendheid met SageMaker.
Stel een SageMaker Notebook- en IAM-rol in
We gebruiken AWS CloudFormation om een โโSageMaker-notebook te maken met de naam aws-aiml-blogpost-sagemaker-snowflake-example
en een IAM-rol genoemd SageMakerSnowFlakeExample
. Kiezen Start Stack voor de regio waarnaar u middelen wilt inzetten.
Bewaar Snowflake-referenties in Secrets Manager
Sla uw Snowflake-referenties op als een geheim in Secrets Manager. Raadpleeg voor instructies over het maken van een geheim Create an AWS Secrets Manager secret
.
- Noem het geheim
snowflake_credentials
. Dit is nodig omdat de code insnowflake-load-dataset.ipynb
verwacht dat het geheim zo wordt genoemd. - Maak het geheim aan als een sleutel-waardepaar met twee sleutels:
- gebruikersnaam โ Uw Snowflake-gebruikersnaam.
- wachtwoord โ Het wachtwoord dat is gekoppeld aan uw Snowflake-gebruikersnaam.
Neem de gegevens op in een tabel in uw Snowflake-account
Voer de volgende stappen uit om de gegevens op te nemen:
- Kies op de SageMaker-console Notitieboekjes in het navigatievenster.
- Selecteer de notebook aws-aiml-blogpost-sagemaker-sneeuwvlok-voorbeeld en kies JupyterLab openen.
- Kies
snowflake-load-dataset.ipynb
om het te openen in JupyterLab. Deze notebook neemt de Gegevensset huisvesting Californiรซ naar een Snowflake-tafel. - Bewerk in het notitieblok de inhoud van de volgende cel om de plaatsaanduidingswaarden te vervangen door de waarde die overeenkomt met uw sneeuwvlokaccount:
- Kies in het menu Uitvoeren Voer alle cellen uit om de code in dit notitieblok uit te voeren. Hiermee wordt de gegevensset lokaal naar het notitieblok gedownload en vervolgens in de Snowflake-tabel opgenomen.
Het volgende codefragment in het notitieblok neemt de gegevensset op in Snowflake. Zie de snowflake-load-dataset.ipynb
notebook voor de volledige code.
- Sluit de notebook nadat alle cellen foutloos zijn uitgevoerd. Uw gegevens zijn nu beschikbaar in Snowflake. De volgende schermafbeelding toont de
california_housing
tabel gemaakt in Snowflake.
Voer de ... uit sagemaker-snowflake-example.ipynb
notitieboekje
Deze notebook maakt een aangepaste trainingscontainer met een Snowflake-verbinding, haalt gegevens uit Snowflake naar de kortstondige opslag van de trainingsinstantie zonder deze in Amazon S3 te plaatsen, en voert Distributed Data Parallel (DDP) XGBoost-modeltraining uit op de gegevens. DDP-training is niet vereist voor modeltraining op zo'n kleine dataset; het is hier opgenomen ter illustratie van nog een andere onlangs uitgebrachte SageMaker-functie.
Maak een aangepaste container voor training
We maken nu een aangepaste container voor de trainingstaak ML-model. Merk op dat root-toegang vereist is voor het maken van een Docker-container. Deze SageMaker-notebook is geรฏmplementeerd met root-toegang ingeschakeld. Als het beleid van uw bedrijfsorganisatie roottoegang tot cloudresources niet toestaat, wilt u misschien het volgende Docker-bestand en shellscripts gebruiken om ergens anders (bijvoorbeeld uw laptop) een Docker-container te bouwen en deze vervolgens naar Amazon ECR te pushen. We gebruiken de container op basis van de SageMaker XGBoost-containerimage 246618743249.dkr.ecr.us-west-2.amazonaws.com/sagemaker-xgboost:1.5-1
met de volgende toevoegingen:
- De Snowflake-connector voor Python om de gegevens van de Snowflake-tabel naar de trainingsinstantie te downloaden.
- Een Python-script om verbinding te maken met Secrets Manager om Snowflake-referenties op te halen.
Het gebruik van de Snowflake-connector en het Python-script zorgt ervoor dat gebruikers die deze containerimage gebruiken voor ML-modeltraining deze code niet hoeven te schrijven als onderdeel van hun trainingsscript en deze functionaliteit kunnen gebruiken die al voor hen beschikbaar is.
Het volgende is de Dockerfile voor de trainingscontainer:
De containerimage wordt gebouwd en gepusht naar Amazon ECR. Deze afbeelding wordt gebruikt voor het trainen van het ML-model.
Train het ML-model met behulp van een SageMaker-trainingstaak
Nadat we met succes de containerimage hebben gemaakt en deze naar Amazon ECR hebben gepusht, kunnen we deze gaan gebruiken voor modeltraining.
- We maken een set Python-scripts om de gegevens van Snowflake te downloaden met behulp van de Snowflake-connector voor Python, bereid de gegevens voor en gebruik vervolgens de
XGBoost Regressor
om het ML-model te trainen. Het is de stap van het rechtstreeks downloaden van de gegevens naar de trainingsinstantie die voorkomt dat Amazon S3 moet worden gebruikt als tussenopslag voor trainingsgegevens. - We faciliteren Distributed Data Parallel-training door de trainingscode een willekeurige subset van de gegevens te laten downloaden, zodat elke trainingsinstantie een gelijke hoeveelheid gegevens van Snowflake downloadt. Als er bijvoorbeeld twee trainingsknooppunten zijn, downloadt elk knooppunt een willekeurige steekproef van 50% van de rijen in de Snowflake-tabel. Zie de volgende code:
- Vervolgens leveren we het trainingsscript aan de SageMaker SDK
Estimator
samen met de bronmap zodat alle scripts die we maken, kunnen worden geleverd aan de trainingscontainer wanneer de trainingstaak wordt uitgevoerd met behulp van deEstimator.fit
methode:Raadpleeg voor meer informatie Bereid een Scikit-Learn-trainingsscript voor.
- Nadat de modeltraining is voltooid, is het getrainde model beschikbaar als een
model.tar.gz
bestand in de standaard SageMaker-bucket voor de regio:
U kunt nu het getrainde model inzetten om conclusies te trekken uit nieuwe gegevens! Raadpleeg voor instructies Maak uw eindpunt en implementeer uw model.
Opruimen
Verwijder de resources om toekomstige kosten te voorkomen. U kunt dit doen door de CloudFormation-sjabloon te verwijderen die is gebruikt om de IAM-rol en het SageMaker-notebook te maken.
U moet de Snowflake-bronnen handmatig verwijderen uit de Snowflake-console.
Conclusie
In dit bericht hebben we laten zien hoe u gegevens die zijn opgeslagen in een Snowflake-tabel downloadt naar een SageMaker Training-taakinstantie en hoe u een XGBoost-model traint met behulp van een aangepaste trainingscontainer. Deze aanpak stelt ons in staat om Snowflake rechtstreeks als gegevensbron te integreren met een SageMaker-notebook zonder dat de gegevens in Amazon S3 worden geรซnsceneerd.
We moedigen je aan om meer te leren door de Amazon SageMaker Python-SDK en het bouwen van een oplossing met behulp van de voorbeeldimplementatie in dit bericht en een dataset die relevant is voor uw bedrijf. Als je vragen of suggesties hebt, laat dan een reactie achter.
Over de auteurs
Amit Arora is een gespecialiseerde AI- en ML-architect bij Amazon Web Services, die zakelijke klanten helpt cloudgebaseerde machine learning-services te gebruiken om hun innovaties snel op te schalen. Hij is ook adjunct-docent in het MS data science and analytics-programma aan de Georgetown University in Washington DC
Divya Muralidharan is een oplossingsarchitect bij Amazon Web Services. Ze heeft een passie voor het helpen van zakelijke klanten bij het oplossen van zakelijke problemen met technologie. Ze heeft een Masters in Computer Science van het Rochester Institute of Technology. Buiten kantoor besteedt ze tijd aan koken, zingen en planten kweken.
Sergej Ermolin is Principal AIML Solutions Architect bij AWS. Voorheen was hij een software-oplossingsarchitect voor deep learning, analyse en big data-technologieรซn bij Intel. Sergey, een veteraan uit Silicon Valley met een passie voor machine learning en kunstmatige intelligentie, is geรฏnteresseerd in neurale netwerken sinds pre-GPU-dagen, toen hij ze gebruikte om het verouderingsgedrag van kwartskristallen en cesium-atoomklokken bij Hewlett-Packard te voorspellen. Sergey heeft een MSEE- en een CS-certificaat van Stanford en een BS-graad in natuurkunde en werktuigbouwkunde van de California State University, Sacramento. Buiten zijn werk houdt Sergey van wijnmaken, skiรซn, fietsen, zeilen en duiken. Sergey is ook een vrijwillige piloot voor engel vlucht.
- Door SEO aangedreven content en PR-distributie. Word vandaag nog versterkt.
- Platoblockchain. Web3 Metaverse Intelligentie. Kennis versterkt. Toegang hier.
- Bron: https://aws.amazon.com/blogs/machine-learning/use-snowflake-as-a-data-source-to-train-ml-models-with-amazon-sagemaker/
- :is
- $UP
- 1
- 10
- 7
- 8
- a
- Over
- toegang
- beschikbaar
- Account
- toevoegingen
- Na
- tegen
- Veroudering
- AI
- AIML
- algoritmen
- Alles
- toestaat
- al
- Amazone
- Amazon FSx
- Amazon Sage Maker
- Amazon Web Services
- bedragen
- analyse
- analytics
- en
- Nog een
- nadering
- passend
- architectuur
- ZIJN
- kunstmatig
- kunstmatige intelligentie
- AS
- geassocieerd
- At
- auditing
- schrijven
- Beschikbaar
- AWS
- AWS CloudFormatie
- baseren
- gebaseerde
- BE
- omdat
- Groot
- Big data
- bouw
- Gebouw
- bebouwd
- bedrijfsdeskundigen
- by
- Californiรซ
- Dit betekent dat we onszelf en onze geliefden praktisch vergiftigen.
- CAN
- Cellen
- certificaat
- uitdagen
- lasten
- Kies
- Schoonmaak
- Klokken
- Cloud
- code
- Kolom
- columns
- commentaar
- Gemeen
- compleet
- computer
- Computer Science
- Verbinden
- versterken
- troosten
- Containers
- bevat
- inhoud
- controles
- en je merk te creรซren
- aangemaakt
- creรซert
- Wij creรซren
- Geloofsbrieven
- gewoonte
- Klanten
- gegevens
- gegevensbeheer
- Data voorbereiding
- data science
- gegevensopslag
- datetime
- dagen
- DDP
- Beslissen
- deep
- diepgaand leren
- Standaard
- Mate
- implementeren
- ingezet
- ontwikkelaars
- direct
- verdeeld
- wijk
- havenarbeider
- Dont
- Download
- downloads
- elk
- gemakkelijk
- efficiรซnt
- beide
- elimineert
- elders
- ingeschakeld
- aanmoedigen
- Endpoint
- Engineering
- waarborgt
- Enterprise
- Milieu
- fout
- voorbeeld
- uitvoeren
- bestaat
- verwacht
- exploratie
- Verkennen
- extracten
- uiterst
- vergemakkelijken
- eerlijk
- vertrouwdheid
- Kenmerk
- Figuur
- Dien in
- finale
- Voornaam*
- geschikt
- volgend
- volgt
- Voor
- oppompen van
- vol
- geheel
- functionaliteit
- toekomst
- krijgen
- het krijgen van
- GitHub
- gaan
- Groeiend
- Hebben
- met
- het helpen van
- hier
- high-level
- houdt
- gehost
- hosts
- Huis
- behuizing
- Hoe
- How To
- Echter
- HTML
- HTTPS
- Identiteit
- beeld
- uitvoeren
- uitvoering
- importeren
- in
- omvatten
- inclusief
- index
- informatie
- innovaties
- installeren
- instantie
- Instituut
- instructies
- integreren
- geรฏntegreerde
- Intel
- Intelligentie
- geรฏnteresseerd
- IT
- Jobomschrijving:
- toetsen
- laptop
- Groot
- Achternaam*
- LEARN
- leren
- Verlof
- levenscyclus van uw product
- ln
- plaatselijk
- machine
- machine learning
- beheer
- beheerd
- management
- manager
- beheren
- handmatig
- matching
- mechanisch
- Media
- Medium
- Menu
- methode
- ML
- model
- modellen
- meer
- beweging
- MS
- naam
- Navigatie
- Noodzaak
- behoeften
- netwerken
- neurale netwerken
- New
- volgende
- knooppunt
- knooppunten
- notitieboekje
- aantal
- object
- of
- Kantoor
- on
- EEN
- open
- geoptimaliseerde
- bestellen
- organisatie
- Overige
- buiten
- pakket
- panda's
- brood
- Parallel
- deel
- passie
- hartstochtelijk
- Wachtwoord
- presteert
- permissies
- Fysica
- piloot
- pijpleiding
- placeholder
- Plants
- Plato
- Plato gegevensintelligentie
- PlatoData
- beleidsmaatregelen door te lezen.
- bevolkte
- Post
- voorspellen
- Voorbereiden
- presenteren
- die eerder
- Principal
- problemen
- Programma
- voorgestelde
- zorgen voor
- mits
- biedt
- doel
- Duwen
- geduwd
- Python
- Contact
- snel
- willekeurige
- snel
- liever
- Lees
- onlangs
- archief
- vermindert
- regio
- uitgebracht
- relevante
- vervangen
- vertegenwoordigt
- nodig
- vereist
- Resources
- terugkeer
- Rol
- wortel
- RIJ
- lopen
- Sacramento
- sagemaker
- zeilen
- Bespaar
- Scale
- Wetenschap
- wetenschappers
- scikit-leren
- scripts
- sdk
- Geheim
- Servers
- service
- Diensten
- reeks
- Vorm
- Shell
- moet
- Shows
- aanzienlijke
- Silicium
- Silicon Valley
- Eenvoudig
- sinds
- situaties
- Klein
- So
- Software
- oplossing
- Oplossingen
- OPLOSSEN
- bron
- bronnen
- Tussenruimte
- specialist
- regie
- begin
- Land
- Statement
- Stap voor
- Stappen
- mediaopslag
- opgeslagen
- subnetten
- Met goed gevolg
- dergelijk
- ondersteuning
- ondersteunde
- system
- tafel
- taken
- Technologies
- Technologie
- sjabloon
- termen
- dat
- De
- De Bron
- hun
- Ze
- Deze
- drie
- Door
- niet de tijd of
- naar
- tools
- Totaal
- Trainen
- getraind
- Trainingen
- treinen
- typisch
- universiteit-
- bijwerken
- us
- .
- Gebruiker
- gebruikers
- Vallei
- waarde
- Values
- veteraan
- vrijwilliger
- Washington
- Manier..
- web
- webservices
- welke
- WIE
- wil
- Met
- binnen
- zonder
- Mijn werk
- schrijven
- XGBoost
- You
- Your
- zephyrnet