Pipelines Amazon SageMaker permite oamenilor de știință de date și inginerilor de învățare automată (ML) să automatizeze fluxurile de lucru de formare, ceea ce vă ajută să creați un proces repetabil pentru a orchestra pașii de dezvoltare a modelului pentru experimentare rapidă și reinstruire a modelului. Puteți automatiza întregul flux de lucru pentru construirea modelului, inclusiv pregătirea datelor, ingineria caracteristicilor, antrenamentul modelului, reglarea modelului și validarea modelului și îl puteți cataloga în registrul de modele. Puteți configura conductele să ruleze automat la intervale regulate sau când anumite evenimente sunt declanșate sau le puteți rula manual după cum este necesar.
În această postare, evidențiem câteva dintre îmbunătățirile aduse Amazon SageMaker SDK și introduceți noi funcții ale Amazon SageMaker Pipelines care facilitează construirea și instruirea modelelor ML pentru practicanții ML.
Pipelines continuă să-și inoveze experiența de dezvoltator și, cu aceste versiuni recente, acum puteți utiliza serviciul într-un mod mai personalizat:
- 2.99.0, 2.101.1, 2.102.0, 2.104.0 – Documentație actualizată pe
PipelineVariable
utilizarea pentru estimator, procesor, tuner, transformator și clase de bază de model, modele Amazon și modele cadru. Vor exista modificări suplimentare cu versiunile mai noi ale SDK-ului pentru a accepta toate subclasele de estimatori și procesoare. - 2.90.0 - Disponibilitatea ModelStep pentru sarcini integrate de creare și înregistrare a resurselor modelului.
- 2.88.2 - Disponibilitatea PipelineSession pentru interacțiunea gestionată cu entitățile și resursele SageMaker.
- 2.88.2 – Compatibilitate cu subclase pentru pașii de lucru ale fluxului de lucru astfel încât să puteți construi abstracții de job și să configurați și să rulați joburi de procesare, antrenare, transformare și reglare așa cum ați face fără o conductă.
- 2.76.0 - Disponibilitatea FailStep pentru a opri condiționat o conductă cu o stare de defecțiune.
În această postare, vă prezentăm un flux de lucru folosind un exemplu de set de date cu accent pe construirea și implementarea modelului pentru a demonstra cum să implementați noile caracteristici ale Pipelines. Până la sfârșit, ar trebui să aveți suficiente informații pentru a utiliza cu succes aceste funcții mai noi și pentru a vă simplifica sarcinile de lucru ML.
Prezentare generală a caracteristicilor
Pipelines oferă următoarele caracteristici noi:
- Adnotare variabilă pipeline – Anumiți parametri ai metodei acceptă mai multe tipuri de intrare, inclusiv
PipelineVariables
, iar documentația suplimentară a fost adăugată pentru a clarifica undePipelineVariables
sunt acceptate atât în cea mai recentă versiune stabilă a documentației SageMaker SDK, cât și în semnătura inițială a funcțiilor. De exemplu, în următorul estimator TensorFlow, semnătura init arată acum astamodel_dir
șiimage_uri
a sustinePipelineVariables
, în timp ce ceilalți parametri nu. Pentru mai multe informații, consultați Estimator TensorFlow.- Inainte de:
- După:
- Sesiune pipeline - PipelineSession este un nou concept introdus pentru a aduce unitate în SDK-ul SageMaker și introduce inițializarea leneșă a resurselor pipelinei (apelurile de rulare sunt capturate, dar nu rulează până când pipeline este creat și rulat). The
PipelineSession
contextul moșteneșteSageMakerSession
și implementează metode convenabile pentru a interacționa cu alte entități și resurse SageMaker, cum ar fi joburi de instruire, puncte finale și seturi de date de intrare stocate în Serviciul Amazon de stocare simplă (Amazon S3). - Compatibilitate subclasă cu pașii de lucru a fluxului de lucru – Acum puteți construi abstracții de job și puteți configura și rula joburi de procesare, antrenare, transformare și reglare așa cum ați face fără o conductă.
- De exemplu, crearea unui pas de procesare cu
SKLearnProcessor
anterior solicitau următoarele: - După cum vedem în codul precedent,
ProcessingStep
trebuie să facă practic aceeași logică de preprocesare ca.run
, doar fără a iniția apelul API pentru a porni jobul. Dar, cu compatibilitatea cu subclasele activată acum cu pașii de lucru a fluxului de lucru, declarăm căstep_args
argument care preia logica de preprocesare cu .run, astfel încât să puteți construi o abstractizare a jobului și să o configurați așa cum ați folosi-o fără Pipelines. Trecem și înpipeline_session
, Care este oPipelineSession
obiect, în loc desagemaker_session
pentru a vă asigura că apelurile de rulare sunt capturate, dar nu sunt apelate până când conducta este creată și rulată. Vezi următorul cod:
- De exemplu, crearea unui pas de procesare cu
- Etapa modelului (o abordare simplificată cu pași de creare și înregistrare a modelului) –Pipelines oferă două tipuri de pași pentru a se integra cu modelele SageMaker:
CreateModelStep
șiRegisterModel
. Acum le puteți realiza pe ambele folosind numaiModelStep
tip. Rețineți că aPipelineSession
este necesar pentru a realiza acest lucru. Acest lucru aduce similitudini între pașii canalului și SDK-ul.- Inainte de:
-
- După:
- Pas de eșec (oprirea condiționată a rulării conductei) -
FailStep
permite oprirea unei conducte cu o stare de eșec dacă o condiție este îndeplinită, cum ar fi dacă scorul modelului este sub un anumit prag.
Prezentare generală a soluțiilor
În această soluție, punctul dvs. de intrare este Amazon SageMaker Studio mediu de dezvoltare integrat (IDE) pentru experimentare rapidă. Studio oferă un mediu de gestionare a experienței pipelines end-to-end. Cu Studio, puteți ocoli Consola de administrare AWS pentru gestionarea întregului flux de lucru. Pentru mai multe informații despre gestionarea conductelor din Studio, consultați Vizualizați, urmăriți și executați conductele SageMaker în SageMaker Studio.
Următoarea diagramă ilustrează arhitectura de nivel înalt a fluxului de lucru ML cu diferiții pași pentru antrenament și generare de inferențe folosind noile caracteristici.
Conducta include următorii pași:
- Preprocesați datele pentru a construi caracteristicile necesare și împărțiți datele în seturi de date de tren, validare și testare.
- Creați un job de formare cu cadrul SageMaker XGBoost.
- Evaluați modelul antrenat folosind setul de date de testare.
- Verificați dacă scorul AUC este peste un prag predefinit.
- Dacă scorul AUC este mai mic decât pragul, opriți rularea conductei și marcați-l ca eșuat.
- Dacă scorul AUC este mai mare decât pragul, creați un model SageMaker și înregistrați-l în registrul de modele SageMaker.
- Aplicați transformarea lot pe setul de date dat folosind modelul creat în pasul anterior.
Cerințe preliminare
Pentru a urma această postare, aveți nevoie de un cont AWS cu a Domeniul studio.
Pipelines este integrat direct cu entitățile și resursele SageMaker, astfel încât nu trebuie să interacționați cu alte servicii AWS. De asemenea, nu trebuie să gestionați resurse, deoarece este un serviciu complet gestionat, ceea ce înseamnă că creează și gestionează resurse pentru dvs. Pentru mai multe informații despre diferitele componente SageMaker, care sunt atât API-uri Python autonome, cât și componente integrate ale Studio, consultați Pagina de produs SageMaker.
Înainte de a începe, instalați versiunea SDK SageMaker >= 2.104.0 și xlrd >=1.0.0 în blocnotesul Studio folosind următorul fragment de cod:
Fluxul de lucru ML
Pentru această postare, utilizați următoarele componente:
- Pregătirea datelor
- Procesare SageMaker – SageMaker Processing este un serviciu complet gestionat care vă permite să executați transformări personalizate de date și inginerie de caracteristici pentru sarcinile de lucru ML.
- Construirea modelului
- Model de instruire și evaluare
- Antrenament cu un singur clic – Funcția de instruire distribuită SageMaker. SageMaker oferă biblioteci de instruire distribuite pentru paralelismul datelor și paralelismul modelelor. Bibliotecile sunt optimizate pentru mediul de instruire SageMaker, vă ajută să vă adaptați joburile de instruire distribuite la SageMaker și să îmbunătățească viteza și debitul de antrenament.
- Experimentele SageMaker – Experiments este o capacitate a SageMaker care vă permite să organizați, urmăriți, comparați și evaluați iterațiile ML.
- Transformarea lotului SageMaker – Transformarea lotului sau scoring offline este un serviciu gestionat în SageMaker care vă permite să preziceți pe un set de date mai mare utilizând modelele dvs. ML.
- Orchestrarea fluxului de lucru
O conductă SageMaker este o serie de pași interconectați definiți printr-o definiție a conductei JSON. Acesta codifică o conductă folosind un grafic aciclic direcționat (DAG). DAG oferă informații despre cerințele și relațiile dintre fiecare pas al conductei, iar structura sa este determinată de dependențele de date dintre pași. Aceste dependențe sunt create atunci când proprietățile ieșirii unui pas sunt transmise ca intrare către alt pas.
Următoarea diagramă ilustrează diferiții pași din pipeline SageMaker (pentru un caz de utilizare a predicției de pierdere) în care conexiunile dintre pași sunt deduse de SageMaker pe baza intrărilor și ieșirilor definite de definițiile pașilor.
Următoarele secțiuni parcurg crearea fiecărui pas al conductei și rularea întregii conducte odată creată.
Structura proiectului
Să începem cu structura proiectului:
- /sm-pipelines-end-to-end-example – Numele proiectului
- /date – Seturile de date
- /conducte – Fișierele de cod pentru componentele conductei
- /customerchurn
- preprocesare.py
- evalua.py
- /customerchurn
- sagemaker-pipelines-project.ipynb – Un notebook care parcurge fluxul de lucru de modelare folosind noile caracteristici ale Pipelines
Descărcați setul de date
Pentru a urma această postare, trebuie să descărcați și să salvați set de date eșantion sub folderul de date din directorul principal al proiectului, care salvează fișierul în Sistem de fișiere elastice Amazon (Amazon EFS) în mediul Studio.
Construiți componentele conductei
Acum sunteți gata să construiți componentele conductei.
Importați instrucțiuni și declarați parametri și constante
Creați un blocnotes Studio numit sagemaker-pipelines-project.ipynb
în directorul principal al proiectului. Introduceți următorul bloc de cod într-o celulă și rulați celula pentru a configura obiectele client SageMaker și S3, creați PipelineSession
și configurați locația compartimentului S3 utilizând compartimentul implicit care vine cu o sesiune SageMaker:
Pipelines acceptă parametrizarea, ceea ce vă permite să specificați parametrii de intrare în timpul execuției fără a modifica codul conductei. Puteți utiliza modulele disponibile sub sagemaker.workflow.parameters
modul, cum ar fi ParameterInteger
, ParameterFloat
, și ParameterString
, pentru a specifica parametrii conductei de diferite tipuri de date. Rulați următorul cod pentru a configura mai mulți parametri de intrare:
Generați un set de date lot
Generați setul de date lot, pe care îl utilizați mai târziu în pasul de transformare batch:
Încărcați date într-un compartiment S3
Încărcați seturile de date pe Amazon S3:
Definiți un script de procesare și un pas de procesare
În acest pas, pregătiți un script Python pentru a face inginerie de caracteristici, o codificare fierbinte și organizați secțiunile de instruire, validare și testare care vor fi utilizate pentru construirea modelului. Rulați următorul cod pentru a vă construi scriptul de procesare:
Apoi, rulați următorul bloc de cod pentru a instanția procesorul și pasul Pipelines pentru a rula scriptul de procesare. Deoarece scriptul de procesare este scris în Pandas, utilizați a SKLearnProcessor. Conductele ProcessingStep
funcția ia următoarele argumente: procesorul, locațiile S3 de intrare pentru seturile de date brute și locațiile S3 de ieșire pentru a salva seturile de date procesate.
Definiți un pas de antrenament
Configurați antrenamentul modelului folosind un estimator SageMaker XGBoost și Pipelines TrainingStep
funcţie:
Definiți scenariul de evaluare și etapa de evaluare a modelului
Rulați următorul bloc de cod pentru a evalua modelul odată antrenat. Acest script încapsulează logica pentru a verifica dacă scorul AUC îndeplinește pragul specificat.
Apoi, rulați următorul bloc de cod pentru a instanția procesorul și pasul Pipelines pentru a rula scriptul de evaluare. Deoarece scriptul de evaluare folosește pachetul XGBoost, utilizați a ScriptProcessor
împreună cu imaginea XGBoost. Conductele ProcessingStep
funcția ia următoarele argumente: procesorul, locațiile S3 de intrare pentru seturile de date brute și locațiile S3 de ieșire pentru a salva seturile de date procesate.
Definiți un pas de creare a modelului
Rulați următorul bloc de cod pentru a crea un model SageMaker utilizând pasul model Pipelines. Acest pas utilizează rezultatul pasului de instruire pentru a împacheta modelul pentru implementare. Rețineți că valoarea pentru argumentul tip instanță este transmisă utilizând parametrul Pipelines pe care l-ați definit mai devreme în postare.
Definiți o etapă de transformare în lot
Rulați următorul bloc de cod pentru a rula transformarea lotului folosind modelul antrenat cu intrarea lot creată în primul pas:
Definiți un pas de model de registru
Următorul cod înregistrează modelul în registrul modelului SageMaker utilizând pasul model Pipelines:
Definiți un pas de eșec pentru a opri conducta
Următorul cod definește pasul de eșuare a conductelor pentru a opri rularea conductei cu un mesaj de eroare dacă scorul AUC nu atinge pragul definit:
Definiți un pas de condiție pentru a verifica scorul AUC
Următorul cod definește un pas de condiție pentru a verifica scorul AUC și a crea condiționat un model și a rula o transformare în lot și a înregistra un model în registrul modelului sau pentru a opri rularea conductei într-o stare eșuată:
Construiți și rulați conducta
După definirea tuturor pașilor componentelor, le puteți asambla într-un obiect Pipelines. Nu trebuie să specificați ordinea conductei, deoarece Pipelines deduce automat secvența comenzii pe baza dependențelor dintre pași.
Rulați următorul cod într-o celulă din blocnotes. Dacă conducta există deja, codul actualizează conducta. Dacă conducta nu există, se creează una nouă.
Concluzie
În această postare, am introdus câteva dintre noile funcții disponibile acum cu Pipelines, împreună cu alte funcții încorporate SageMaker și algoritmul XGBoost pentru a dezvolta, repeta și implementa un model pentru predicția abandonului. Soluția poate fi extinsă cu surse de date suplimentare
pentru a implementa propriul flux de lucru ML. Pentru mai multe detalii despre pașii disponibili în fluxul de lucru Pipelines, consultați Amazon SageMaker Model Building Pipeline și Fluxuri de lucru SageMaker. Exemple AWS SageMaker GitHub repo are mai multe exemple despre diverse cazuri de utilizare folosind Pipelines.
Despre Autori
Jerry Peng este inginer de dezvoltare software cu AWS SageMaker. El se concentrează pe construirea unui sistem MLOps la scară largă, de la formare până la monitorizarea modelului în producție. De asemenea, este pasionat de a aduce conceptul MLOps unui public mai larg.
Dewen Qi este inginer de dezvoltare software în AWS. În prezent, se concentrează pe dezvoltarea și îmbunătățirea SageMaker Pipelines. În afara serviciului, îi place să practice violoncelul.
Gayatri Ghanakota este inginer Sr. Machine Learning cu AWS Professional Services. Este pasionată de dezvoltarea, implementarea și explicarea soluțiilor AI/ML în diferite domenii. Înainte de acest rol, ea a condus mai multe inițiative ca cercetător de date și inginer ML cu firme globale de top din spațiul financiar și de retail. Ea deține o diplomă de master în Informatică specializată în Știința datelor de la Universitatea din Colorado, Boulder.
Rupinder Grewal este un arhitect specializat în soluții Sr Ai/ML cu AWS. În prezent, se concentrează pe servirea modelelor și a MLOps-ului pe SageMaker. Înainte de acest rol, a lucrat ca inginer de învățare automată, construind și găzduind modele. În afara serviciului, îi place să joace tenis și să meargă cu bicicleta pe traseele montane.
Ray Li este un Data Scientist Sr. cu AWS Professional Services. Specialitatea sa se concentrează pe construirea și operaționalizarea soluțiilor AI/ML pentru clienți de diferite dimensiuni, de la startup-uri la organizații enterprise. În afara serviciului, lui Ray îi place fitness-ul și călătoriile.
- AI
- ai art
- ai art generator
- ai robot
- Amazon SageMaker
- inteligență artificială
- certificare de inteligență artificială
- inteligența artificială în domeniul bancar
- robot cu inteligență artificială
- roboți cu inteligență artificială
- software de inteligență artificială
- Învățare automată AWS
- blockchain
- conferință blockchain ai
- coingenius
- inteligența artificială conversațională
- criptoconferință ai
- dall-e
- învățare profundă
- google ai
- masina de învățare
- Plato
- platoul ai
- Informații despre date Platon
- Jocul lui Platon
- PlatoData
- platogaming
- scara ai
- sintaxă
- zephyrnet