Amazon SageMaker este un serviciu de învățare automată (ML) complet gestionat. Cu SageMaker, oamenii de știință de date și dezvoltatorii pot construi și antrena rapid și ușor modele ML, apoi le pot implementa direct într-un mediu găzduit pregătit pentru producție. Sagemaker oferă o instanță de notebook de autor Jupyter integrată pentru acces ușor la sursele de date pentru explorare și analiză, astfel încât să nu fie nevoie să gestionați serverele. De asemenea, oferă algoritmi ML obișnuiți, care sunt optimizați pentru a rula eficient împotriva datelor extrem de mari într-un mediu distribuit.
SageMaker necesită ca datele de antrenament pentru un model ML să fie prezente fie în Amazon Simple Storage Service (Amazon S3), Amazon Elastic File System (Amazon EFS) sau Amazon FSx pentru Luster (pentru mai multe informații, consultați Acces la datele de instruire). Pentru a antrena un model folosind date stocate în afara celor trei servicii de stocare acceptate, datele trebuie mai întâi să fie ingerate într-unul dintre aceste servicii (de obicei Amazon S3). Acest lucru necesită construirea unei conducte de date (folosind instrumente precum Amazon SageMaker Data Wrangler) pentru a muta datele în Amazon S3. Cu toate acestea, această abordare poate crea o provocare de gestionare a datelor în ceea ce privește gestionarea ciclului de viață al acestui mediu de stocare a datelor, elaborarea controalelor de acces, auditarea datelor și așa mai departe, toate în scopul punerii în scenă a datelor de formare pe durata jobului de formare. În astfel de situații, poate fi de dorit ca datele să fie accesibile pentru SageMaker în mediile de stocare efemere atașate la instanțele de antrenament efemere fără stocarea intermediară a datelor în Amazon S3.
Această postare arată o modalitate de a face acest lucru folosind Fulg de nea ca sursă de date și prin descărcarea datelor direct din Snowflake într-o instanță de job SageMaker Training.
Prezentare generală a soluțiilor
Noi folosim Setul de date privind locuințele din California ca set de date de instruire pentru acest post și antrenați un model ML pentru a prezice valoarea medie a casei pentru fiecare district. Adăugăm aceste date la Snowflake ca tabel nou. Creăm un container de antrenament personalizat care descarcă datele direct din tabelul Snowflake în instanța de antrenament, mai degrabă decât să descarcăm mai întâi datele într-o găleată S3. După ce datele sunt descărcate în instanța de antrenament, scriptul de antrenament personalizat efectuează sarcini de pregătire a datelor și apoi antrenează modelul ML folosind Estimator XGBoost. Tot codul pentru această postare este disponibil în GitHub repo.
Următoarea figură reprezintă arhitectura de nivel înalt a soluției propuse pentru a utiliza Snowflake ca sursă de date pentru a antrena modele ML cu SageMaker.
Pașii fluxului de lucru sunt următorii:
- Configurați un blocnotes SageMaker și un Gestionarea identității și accesului AWS (IAM) cu permisiunile corespunzătoare pentru a permite accesul SageMaker Registrul Amazon de containere elastice (Amazon ECR), Secrets Manager și alte servicii din contul dvs. AWS.
- Stocați acreditările contului dvs. Snowflake în AWS Secrets Manager.
- Ingerați datele dintr-un tabel din contul dvs. Snowflake.
- Creați o imagine de container personalizată pentru formarea modelului ML și trimiteți-o către Amazon ECR.
- Lansați un job SageMaker Training pentru antrenamentul modelului ML. Instanța de antrenament preia acreditările Snowflake din Secrets Manager și apoi folosește aceste acreditări pentru a descărca setul de date direct din Snowflake. Acesta este pasul care elimină necesitatea ca datele să fie mai întâi descărcate într-o găleată S3.
- Modelul ML antrenat este stocat într-o găleată S3.
Cerințe preliminare
Pentru a implementa soluția oferită în această postare, ar trebui să aveți un Cont AWS, A cont fulg de nea și familiaritatea cu SageMaker.
Configurați un SageMaker Notebook și un rol IAM
Folosim AWS CloudFormation pentru a crea un notebook SageMaker numit aws-aiml-blogpost-sagemaker-snowflake-example
și un rol IAM numit SageMakerSnowFlakeExample
. Alege Lansați Stack pentru regiunea în care doriți să implementați resurse.
Stocați acreditările Snowflake în Secrets Manager
Stocați-vă acreditările Snowflake ca secret în Secrets Manager. Pentru instrucțiuni despre cum să creați un secret, consultați Create an AWS Secrets Manager secret
.
- Denumiți secretul
snowflake_credentials
. Acest lucru este necesar deoarece codul însnowflake-load-dataset.ipynb
se așteaptă ca secretul să se numească așa. - Creați secretul ca o pereche cheie-valoare cu două chei:
- nume de utilizator – Numele dvs. de utilizator Snowflake.
- parola – Parola asociată cu numele dvs. de utilizator Snowflake.
Ingerați datele dintr-un tabel din contul dvs. Snowflake
Pentru a ingera datele, parcurgeți următorii pași:
- Pe consola SageMaker, alegeți notebook-uri în panoul de navigare.
- Selectați blocnotesul aws-aiml-blogpost-sagemaker-snowflake-example și alegeți Deschideți JupyterLab.
- Alege
snowflake-load-dataset.ipynb
pentru a-l deschide în JupyterLab. Acest caiet va ingera Setul de date privind locuințele din California la o masă cu fulgi de nea. - În blocnotes, editați conținutul următoarei celule pentru a înlocui valorile substituentului cu cea care se potrivește contului dvs. de fulg de zăpadă:
- În meniul Run, alegeți Rulați toate celulele pentru a rula codul din acest caiet. Acest lucru va descărca setul de date local în notebook și apoi îl va ingera în tabelul Snowflake.
Următorul fragment de cod din blocnotes ingerează setul de date în Snowflake. Vezi snowflake-load-dataset.ipynb
blocnotes pentru codul complet.
- Închideți blocnotesul după ce toate celulele rulează fără nicio eroare. Datele dvs. sunt acum disponibile în Snowflake. Următoarea captură de ecran arată
california_housing
tabel creat în Snowflake.
Pornește sagemaker-snowflake-example.ipynb
caiet
Acest notebook creează un container de antrenament personalizat cu o conexiune Snowflake, extrage datele din Snowflake în stocarea efemeră a instanței de antrenament fără a le pune în scenă în Amazon S3 și efectuează antrenament model XGBoost Distributed Data Parallel (DDP) pe date. Instruirea DDP nu este necesară pentru formarea modelului pe un set de date atât de mic; este inclus aici pentru a ilustra încă o altă caracteristică SageMaker lansată recent.
Creați un container personalizat pentru antrenament
Acum creăm un container personalizat pentru jobul de formare a modelului ML. Rețineți că accesul root este necesar pentru a crea un container Docker. Acest notebook SageMaker a fost implementat cu accesul root activat. Dacă politicile organizației dvs. de întreprindere nu permit accesul rădăcină la resursele cloud, vă recomandăm să utilizați următoarele fișiere Docker și scripturi shell pentru a construi un container Docker în altă parte (de exemplu, laptopul dvs.) și apoi împingeți-l către Amazon ECR. Folosim containerul pe baza imaginii containerului SageMaker XGBoost 246618743249.dkr.ecr.us-west-2.amazonaws.com/sagemaker-xgboost:1.5-1
cu următoarele completări:
- Conector Snowflake pentru Python pentru a descărca datele din tabelul Snowflake în instanța de antrenament.
- Un script Python pentru a se conecta la Secrets Manager pentru a prelua acreditările Snowflake.
Utilizarea conectorului Snowflake și a scriptului Python asigură că utilizatorii care folosesc această imagine container pentru antrenamentul modelului ML nu trebuie să scrie acest cod ca parte a scriptului de antrenament și pot folosi această funcționalitate care le este deja disponibilă.
Următorul este Dockerfile pentru containerul de antrenament:
Imaginea containerului este construită și trimisă către Amazon ECR. Această imagine este utilizată pentru antrenarea modelului ML.
Antrenați modelul ML folosind un job SageMaker Training
După ce creăm cu succes imaginea containerului și o trimitem către Amazon ECR, putem începe să o folosim pentru antrenamentul modelului.
- Creăm un set de script-uri Python pentru a descărca datele din Snowflake folosind Conector Snowflake pentru Python, pregătiți datele și apoi utilizați
XGBoost Regressor
pentru a antrena modelul ML. Este pasul de descărcare a datelor direct în instanța de antrenament care evită utilizarea Amazon S3 ca stocare intermediară pentru datele de antrenament. - Facilităm instruirea în paralel cu date distribuite prin faptul că codul de antrenament descarcă un subset aleatoriu de date, astfel încât fiecare instanță de antrenament să descarce o cantitate egală de date de la Snowflake. De exemplu, dacă există două noduri de antrenament, atunci fiecare nod descarcă un eșantion aleatoriu de 50% din rândurile din tabelul Snowflake. Consultați următorul cod:
- Apoi oferim script-ul de instruire SDK-ului SageMaker
Estimator
împreună cu directorul sursă, astfel încât toate scripturile pe care le creăm să poată fi furnizate containerului de instruire atunci când jobul de instruire este rulat folosindEstimator.fit
metodă:Pentru mai multe informații, consultați Pregătiți un script de instruire Scikit-Learn.
- După finalizarea instruirii modelului, modelul instruit este disponibil ca a
model.tar.gz
fișier în compartimentul implicit SageMaker pentru regiune:
Acum puteți implementa modelul instruit pentru a obține inferențe asupra datelor noi! Pentru instrucțiuni, consultați Creați punctul final și implementați modelul.
A curăța
Pentru a evita costurile viitoare, ștergeți resursele. Puteți face acest lucru ștergând șablonul CloudFormation utilizat pentru a crea rolul IAM și blocnotesul SageMaker.
Va trebui să ștergeți manual resursele Snowflake din consola Snowflake.
Concluzie
În această postare, am arătat cum să descărcați datele stocate într-un tabel Snowflake într-o instanță de lucru SageMaker Training și cum să antrenați un model XGBoost folosind un container de antrenament personalizat. Această abordare ne permite să integrăm în mod direct Snowflake ca sursă de date cu un notebook SageMaker, fără a avea datele puse în scenă în Amazon S3.
Vă încurajăm să aflați mai multe explorând Amazon SageMaker Python SDK și construirea unei soluții folosind exemplul de implementare furnizat în această postare și un set de date relevant pentru afacerea dvs. Dacă aveți întrebări sau sugestii, lăsați un comentariu.
Despre autori
Amit Arora este un arhitect specializat în AI și ML la Amazon Web Services, care ajută clienții întreprinderilor să folosească servicii de învățare automată bazate pe cloud pentru a-și scala rapid inovațiile. El este, de asemenea, lector adjunct în programul MS de știință a datelor și analiză la Universitatea Georgetown din Washington DC
Divya Muralidharan este arhitect de soluții la Amazon Web Services. Este pasionată de a ajuta clienții întreprinderilor să rezolve problemele de afaceri cu tehnologie. Ea are un master în informatică de la Rochester Institute of Technology. În afara biroului, își petrece timpul gătind, cântând și cultivând plante.
Serghei Ermolin este arhitect principal de soluții AIML la AWS. Anterior, el a fost arhitect de soluții software pentru învățare profundă, analiză și tehnologii de date mari la Intel. Un veteran din Silicon Valley cu o pasiune pentru învățarea automată și inteligența artificială, Sergey a fost interesat de rețelele neuronale încă din zilele pre-GPU, când le-a folosit pentru a prezice comportamentul de îmbătrânire a cristalelor de cuarț și a ceasurilor atomice de cesiu la Hewlett-Packard. Sergey deține un MSEE și un certificat CS de la Stanford și o diplomă de licență în fizică și inginerie mecanică de la California State University, Sacramento. În afara serviciului, lui Sergey îi place vinul, schiul, ciclismul, navigația și scufundările. Sergey este, de asemenea, pilot voluntar pentru Zborul îngerului.
- Distribuție de conținut bazat pe SEO și PR. Amplifică-te astăzi.
- Platoblockchain. Web3 Metaverse Intelligence. Cunoștințe amplificate. Accesați Aici.
- Sursa: https://aws.amazon.com/blogs/machine-learning/use-snowflake-as-a-data-source-to-train-ml-models-with-amazon-sagemaker/
- :este
- $UP
- 1
- 10
- 7
- 8
- a
- Despre Noi
- acces
- accesibil
- Cont
- adăugări
- După
- împotriva
- Îmbătrânire
- AI
- AIML
- algoritmi
- TOATE
- permite
- deja
- Amazon
- Amazon FSx
- Amazon SageMaker
- Amazon Web Services
- sumă
- analiză
- Google Analytics
- și
- O alta
- abordare
- adecvat
- arhitectură
- SUNT
- artificial
- inteligență artificială
- AS
- asociate
- At
- audit
- autor
- disponibil
- AWS
- Formarea AWS Cloud
- de bază
- bazat
- BE
- deoarece
- Mare
- Datele mari
- construi
- Clădire
- construit
- afaceri
- by
- California
- denumit
- CAN
- Celule
- certificat
- contesta
- taxe
- Alege
- Curățenie
- Ceasuri
- Cloud
- cod
- Coloană
- Coloane
- comentariu
- Comun
- Completă
- calculator
- Informatică
- Conectați
- conexiune
- Consoleze
- Recipient
- conține
- conținut
- controale
- crea
- a creat
- creează
- Crearea
- scrisori de acreditare
- personalizat
- clienţii care
- de date
- management de date
- Pregătirea datelor
- știința datelor
- stocare a datelor
- datetime
- Zi
- DDP
- Decidând
- adânc
- învățare profundă
- Mod implicit
- Grad
- implementa
- dislocate
- Dezvoltatorii
- direct
- distribuite
- cartier
- Docher
- Dont
- Descarca
- download-uri
- fiecare
- cu ușurință
- eficient
- oricare
- elimină
- în altă parte
- activat
- încuraja
- Punct final
- Inginerie
- asigură
- Afacere
- Mediu inconjurator
- eroare
- exemplu
- a executa
- există
- se așteaptă
- explorare
- Explorarea
- extracte
- extrem
- facilita
- echitabil
- Familiaritate
- Caracteristică
- Figura
- Fișier
- final
- First
- potrivi
- următor
- urmează
- Pentru
- din
- Complet
- complet
- funcționalitate
- viitor
- obține
- obtinerea
- GitHub
- merge
- În creştere
- Avea
- având în
- ajutor
- aici
- la nivel înalt
- deține
- găzduit
- Gazdele
- casă
- carcasă
- Cum
- Cum Pentru a
- Totuși
- HTML
- HTTPS
- Identitate
- imagine
- punerea în aplicare a
- implementarea
- import
- in
- include
- inclus
- index
- informații
- inovații
- instala
- instanță
- Institut
- instrucțiuni
- integra
- integrate
- Intel
- Inteligență
- interesat
- IT
- Loc de munca
- chei
- laptop
- mare
- Nume
- AFLAȚI
- învăţare
- Părăsi
- ciclu de viață
- ln
- la nivel local
- maşină
- masina de învățare
- administra
- gestionate
- administrare
- manager
- de conducere
- manual
- potrivire
- mecanic
- Mass-media
- mediu
- Meniu
- metodă
- ML
- model
- Modele
- mai mult
- muta
- MS
- nume
- Navigare
- Nevoie
- nevoilor
- rețele
- rețele neuronale
- Nou
- următor
- nod
- noduri
- caiet
- număr
- obiect
- of
- Birou
- on
- ONE
- deschide
- optimizate
- comandă
- organizație
- Altele
- exterior
- pachet
- panda
- pâine
- Paralel
- parte
- pasiune
- pasionat
- Parolă
- efectuează
- permisiuni
- Fizică
- pilot
- conducte
- înlocuitor
- Plante
- Plato
- Informații despre date Platon
- PlatoData
- Politicile
- populat
- Post
- prezice
- Pregăti
- prezenta
- în prealabil
- Principal
- probleme
- Program
- propus
- furniza
- prevăzut
- furnizează
- scop
- Împinge
- împins
- Piton
- Întrebări
- repede
- aleator
- repede
- mai degraba
- Citeste
- recent
- înregistrări
- reduce
- regiune
- eliberat
- înlocui
- reprezintă
- necesar
- Necesită
- Resurse
- reveni
- Rol
- rădăcină
- RÂND
- Alerga
- Sacramento
- sagemaker
- navigaţie
- Economisiți
- Scară
- Ştiinţă
- oamenii de stiinta
- scikit-learn
- script-uri
- sdk
- Secret
- Servere
- serviciu
- Servicii
- set
- Modela
- Coajă
- să
- Emisiuni
- semnificativ
- Siliciu
- Silicon Valley
- simplu
- întrucât
- situații
- mic
- So
- Software
- soluţie
- soluţii
- REZOLVAREA
- Sursă
- Surse
- Spaţiu
- specialist
- înscenare
- Începe
- Stat
- Declarație
- Pas
- paşi
- depozitare
- stocate
- subrețele
- Reușit
- astfel de
- a sustine
- Suportat
- sistem
- tabel
- sarcini
- Tehnologii
- Tehnologia
- șablon
- termeni
- acea
- Sursa
- lor
- Lor
- Acestea
- trei
- Prin
- timp
- la
- Unelte
- Total
- Tren
- dresat
- Pregătire
- trenuri
- tipic
- universitate
- Actualizează
- us
- utilizare
- Utilizator
- utilizatorii
- Vale
- valoare
- Valori
- veteran
- voluntar
- Washington
- Cale..
- web
- servicii web
- care
- OMS
- voi
- cu
- în
- fără
- Apartamente
- scrie
- XGBoost
- Tu
- Ta
- zephyrnet