Amazon SageMaker Pipelines giver datavidenskabsfolk og maskinlæringsingeniører (ML) mulighed for at automatisere træningsarbejdsgange, hvilket hjælper dig med at skabe en gentagelig proces til at orkestrere modeludviklingstrin til hurtig eksperimentering og modelgenoplæring. Du kan automatisere hele workflowet for modelopbygning, herunder dataforberedelse, funktionsudvikling, modeltræning, modeljustering og modelvalidering, og katalogisere det i modelregistret. Du kan konfigurere pipelines til at køre automatisk med regelmæssige intervaller, eller når bestemte hændelser udløses, eller du kan køre dem manuelt efter behov.
I dette indlæg fremhæver vi nogle af forbedringerne til Amazon SageMaker SDK og introducere nye funktioner i Amazon SageMaker Pipelines, der gør det nemmere for ML-udøvere at bygge og træne ML-modeller.
Pipelines fortsætter med at innovere sin udvikleroplevelse, og med disse seneste udgivelser kan du nu bruge tjenesten på en mere tilpasset måde:
- 2.99.0, 2.101.1, 2.102.0, 2.104.0 – Opdateret dokumentation vedr
PipelineVariable
brug for estimator, processor, tuner, transformer og modelbasisklasser, Amazon-modeller og rammemodeller. Der vil komme yderligere ændringer med nyere versioner af SDK for at understøtte alle underklasser af estimatorer og processorer. - 2.90.0 – Tilgængelighed af ModelStep til integrerede modelressourceoprettelse og registreringsopgaver.
- 2.88.2 – Tilgængelighed af PipelineSession til styret interaktion med SageMaker-enheder og ressourcer.
- 2.88.2 – Underklasse kompatibilitet til workflow pipeline job trin så du kan bygge jobabstraktioner og konfigurere og køre behandlings-, trænings-, transformations- og tuningjob, som du ville gøre uden en pipeline.
- 2.76.0 – Tilgængelighed af FailStep at betinget stoppe en rørledning med en fejlstatus.
I dette indlæg fører vi dig gennem en arbejdsgang ved hjælp af et eksempeldatasæt med fokus på modelopbygning og implementering for at demonstrere, hvordan man implementerer Pipelines nye funktioner. Til sidst skulle du have nok information til at bruge disse nyere funktioner og forenkle dine ML-arbejdsbelastninger.
Funktioner oversigt
Pipelines tilbyder følgende nye funktioner:
- Pipeline variabel annotation – Visse metodeparametre accepterer flere inputtyper, herunder
PipelineVariables
, og yderligere dokumentation er tilføjet for at afklare hvorPipelineVariables
understøttes i både den seneste stabile version af SageMaker SDK-dokumentation og funktionernes init-signatur. For eksempel i den følgende TensorFlow-estimator viser init-signaturen det numodel_dir
,image_uri
supportPipelineVariables
, hvorimod de andre parametre ikke gør det. For mere information, se TensorFlow Estimator.- Før:
- Efter:
- Pipeline session - PipelineSession er et nyt koncept introduceret for at bringe enhed på tværs af SageMaker SDK og introducerer doven initialisering af pipelineressourcerne (kørselsopkaldene fanges, men køres ikke, før pipelinen er oprettet og kørt). Det
PipelineSession
kontekst arverSageMakerSession
og implementerer praktiske metoder, så du kan interagere med andre SageMaker-enheder og ressourcer, såsom træningsjob, slutpunkter og inputdatasæt gemt i Amazon Simple Storage Service (Amazon S3). - Underklasse-kompatibilitet med workflow-pipeline-jobtrin – Du kan nu bygge jobabstraktioner og konfigurere og køre behandlings-, trænings-, transformations- og tuningjob, som du ville gøre uden en pipeline.
- For eksempel oprettelse af et behandlingstrin med
SKLearnProcessor
tidligere krævet følgende: - Som vi ser i den foregående kode,
ProcessingStep
skal stort set lave den samme forbehandlingslogik som.run
, bare uden at starte API-kaldet for at starte jobbet. Men med underklasse-kompatibilitet nu aktiveret med workflow-pipeline-jobtrin, erklærer vistep_args
argument, der tager forbehandlingslogikken med .run, så du kan bygge en jobabstraktion og konfigurere den, som du ville bruge den uden Pipelines. Vi passerer også ipipeline_session
, Som er enPipelineSession
objekt i stedet forsagemaker_session
for at sikre, at kørekaldene fanges, men ikke kaldes, før pipelinen er oprettet og kørt. Se følgende kode:
- For eksempel oprettelse af et behandlingstrin med
- Modeltrin (en strømlinet tilgang med modeloprettelse og registreringstrin) –Rørledninger tilbyder to trintyper til at integrere med SageMaker-modeller:
CreateModelStep
,RegisterModel
. Du kan nu opnå begge dele ved kun at brugeModelStep
type. Bemærk at aPipelineSession
er påkrævet for at opnå dette. Dette giver lighed mellem pipeline-trinene og SDK'et.- Før:
-
- Efter:
- Fejltrin (betinget stop af rørledningen) -
FailStep
tillader en pipeline at blive stoppet med en fejlstatus, hvis en betingelse er opfyldt, såsom hvis modelscore er under en vis tærskel.
Løsningsoversigt
I denne løsning er dit indgangspunkt Amazon SageMaker Studio integreret udviklingsmiljø (IDE) til hurtige eksperimenter. Studio tilbyder et miljø til at styre end-to-end Pipelines-oplevelsen. Med Studio kan du omgå AWS Management Console til hele din workflow-styring. For mere information om håndtering af pipelines fra Studio, se Se, spor og udfør SageMaker Pipelines i SageMaker Studio.
Følgende diagram illustrerer højniveauarkitekturen i ML-arbejdsgangen med de forskellige trin til at træne og generere slutninger ved hjælp af de nye funktioner.
Rørledningen omfatter følgende trin:
- Forbehandle data for at opbygge nødvendige funktioner og opdele data i tog-, validerings- og testdatasæt.
- Opret et træningsjob med SageMaker XGBoost-rammeværket.
- Evaluer den trænede model ved hjælp af testdatasættet.
- Tjek, om AUC-scoren er over en foruddefineret tærskel.
- Hvis AUC-scoren er mindre end tærsklen, skal du stoppe pipelinekørslen og markere den som mislykket.
- Hvis AUC-scoren er større end tærsklen, skal du oprette en SageMaker-model og registrere den i SageMaker-modelregistret.
- Anvend batchtransformation på det givne datasæt ved hjælp af modellen oprettet i det foregående trin.
Forudsætninger
For at følge med i dette indlæg skal du have en AWS-konto med en Studio domæne.
Pipelines er integreret direkte med SageMaker-enheder og ressourcer, så du ikke behøver at interagere med andre AWS-tjenester. Du behøver heller ikke at administrere nogen ressourcer, fordi det er en fuldt administreret tjeneste, hvilket betyder, at den opretter og administrerer ressourcer for dig. For mere information om de forskellige SageMaker-komponenter, der begge er selvstændige Python API'er sammen med integrerede komponenter i Studio, se SageMaker produktside.
Inden du går i gang, skal du installere SageMaker SDK version >= 2.104.0 og xlrd >=1.0.0 i Studio-notesbogen ved hjælp af følgende kodestykke:
ML arbejdsgang
Til dette indlæg bruger du følgende komponenter:
- Forberedelse af data
- SageMaker-behandling – SageMaker Processing er en fuldt administreret tjeneste, der giver dig mulighed for at køre tilpassede datatransformationer og funktionsudvikling til ML-arbejdsbelastninger.
- Modelbygning
- Modeltræning og evaluering
- Et-klik træning – SageMaker-distribuerede træningsfunktion. SageMaker leverer distribuerede træningsbiblioteker for dataparallelisme og modelparallelisme. Bibliotekerne er optimeret til SageMaker træningsmiljøet, hjælper med at tilpasse dine distribuerede træningsjob til SageMaker og forbedre træningshastighed og gennemstrømning.
- SageMaker-eksperimenter – Eksperimenter er en funktion i SageMaker, der lader dig organisere, spore, sammenligne og evaluere dine ML-iterationer.
- SageMaker batch transformation – Batchtransformation eller offline-scoring er en administreret tjeneste i SageMaker, der lader dig forudsige et større datasæt ved hjælp af dine ML-modeller.
- Workflow orkestrering
En SageMaker-pipeline er en række indbyrdes forbundne trin defineret af en JSON-pipelinedefinition. Den koder for en pipeline ved hjælp af en rettet acyklisk graf (DAG). DAG'en giver information om kravene til og relationerne mellem hvert trin i pipelinen, og dens struktur bestemmes af dataafhængighederne mellem trinene. Disse afhængigheder oprettes, når egenskaberne for et trins output overføres som input til et andet trin.
Følgende diagram illustrerer de forskellige trin i SageMaker-pipelinen (til et tilfælde af churn-forudsigelse), hvor forbindelserne mellem trinnene udledes af SageMaker baseret på input og output defineret af trindefinitionerne.
De næste afsnit gennemgår oprettelse af hvert trin i pipelinen og kørsel af hele pipelinen, når den er oprettet.
Projektets struktur
Lad os starte med projektstrukturen:
- /sm-pipelines-end-to-end-eksempel – Projektnavnet
- /data – Datasættene
- /rørledninger – Kodefilerne til pipeline-komponenter
- /kundekreds
- preprocess.py
- evaluate.py
- /kundekreds
- sagemaker-pipelines-project.ipynb – En notesbog, der går gennem modelleringsarbejdsgangen ved hjælp af Pipelines nye funktioner
Download datasættet
For at følge med i dette indlæg skal du downloade og gemme eksempeldatasæt under datamappen i projektets hjemmemappe, som gemmer filen i Amazon Elastic File System (Amazon EFS) i Studio-miljøet.
Byg rørledningskomponenterne
Nu er du klar til at bygge rørledningskomponenterne.
Importer udsagn og erklær parametre og konstanter
Opret en Studio-notesbog kaldet sagemaker-pipelines-project.ipynb
i projektets hjemmemappe. Indtast følgende kodeblok i en celle, og kør cellen for at opsætte SageMaker- og S3-klientobjekter, opret PipelineSession
, og konfigurer S3-bøtteplaceringen ved hjælp af standardbøtten, der følger med en SageMaker-session:
Pipelines understøtter parametrisering, som giver dig mulighed for at specificere inputparametre under kørsel uden at ændre din pipelinekode. Du kan bruge de tilgængelige moduler under sagemaker.workflow.parameters
modul, som f.eks ParameterInteger
, ParameterFloat
og ParameterString
, for at specificere pipeline-parametre for forskellige datatyper. Kør følgende kode for at konfigurere flere inputparametre:
Generer et batch-datasæt
Generer batchdatasættet, som du bruger senere i batchtransformationstrinnet:
Upload data til en S3-bøtte
Upload datasættene til Amazon S3:
Definer et behandlingsscript og et behandlingstrin
I dette trin forbereder du et Python-script til at udføre feature engineering, én hot-encoding og kuratere de trænings-, validerings- og testopdelinger, der skal bruges til modelbygning. Kør følgende kode for at bygge dit behandlingsscript:
Kør derefter følgende kodeblok for at instansiere processoren og Pipelines-trinnet for at køre behandlingsscriptet. Fordi behandlingsscriptet er skrevet i Pandas, bruger du en SKLearnProcessor. Rørledningerne ProcessingStep
funktion tager følgende argumenter: processoren, input-S3-placeringerne for rå datasæt og output-S3-placeringerne for at gemme behandlede datasæt.
Definer et træningstrin
Konfigurer modeltræning ved hjælp af en SageMaker XGBoost-estimator og Pipelines TrainingStep
fungere:
Definer evalueringsscriptet og modelevalueringstrinnet
Kør følgende kodeblok for at evaluere modellen, når den er trænet. Dette script indkapsler logikken for at kontrollere, om AUC-scoren når den angivne tærskel.
Kør derefter følgende kodeblok for at instansiere processoren og Pipelines-trinnet for at køre evalueringsscriptet. Fordi evalueringsscriptet bruger XGBoost-pakken, bruger du en ScriptProcessor
sammen med XGBoost-billedet. Rørledningerne ProcessingStep
funktion tager følgende argumenter: processoren, input-S3-placeringerne for rå datasæt og output-S3-placeringerne for at gemme behandlede datasæt.
Definer et oprette modeltrin
Kør følgende kodeblok for at oprette en SageMaker-model ved hjælp af Pipelines-modeltrinnet. Dette trin udnytter outputtet fra træningstrinnet til at pakke modellen til implementering. Bemærk, at værdien for instanstypeargumentet videregives ved hjælp af den Pipelines-parameter, du definerede tidligere i indlægget.
Definer et batchtransformationstrin
Kør følgende kodeblok for at køre batchtransformation ved hjælp af den trænede model med batchinput oprettet i det første trin:
Definer et registermodeltrin
Følgende kode registrerer modellen i SageMaker-modelregistret ved hjælp af Pipelines-modeltrinnet:
Definer et fejltrin for at stoppe pipelinen
Følgende kode definerer Pipelines fail-trinnet for at stoppe pipeline-kørslen med en fejlmeddelelse, hvis AUC-scoren ikke når den definerede tærskel:
Definer et betingelsestrin for at kontrollere AUC-score
Følgende kode definerer et betingelsestrin til at kontrollere AUC-scoren og betinget oprette en model og køre en batchtransformation og registrere en model i modelregistret eller stoppe pipelinekørslen i en mislykket tilstand:
Byg og kør rørledningen
Efter at have defineret alle komponenttrinene, kan du samle dem til et Pipelines-objekt. Du behøver ikke angive rækkefølgen af pipeline, fordi Pipelines automatisk udleder rækkefølgen baseret på afhængighederne mellem trinnene.
Kør følgende kode i en celle i din notesbog. Hvis pipelinen allerede eksisterer, opdaterer koden pipelinen. Hvis pipelinen ikke eksisterer, opretter den en ny.
Konklusion
I dette indlæg introducerede vi nogle af de nye funktioner, der nu er tilgængelige med Pipelines, sammen med andre indbyggede SageMaker-funktioner og XGBoost-algoritmen til at udvikle, iterere og implementere en model til churn-forudsigelse. Løsningen kan udvides med yderligere datakilder
at implementere dit eget ML-workflow. For flere detaljer om de tilgængelige trin i Pipelines workflow, se Amazon SageMaker Model Building Pipeline , SageMaker arbejdsgange. Det Eksempler på AWS SageMaker GitHub repo har flere eksempler omkring forskellige use cases ved hjælp af Pipelines.
Om forfatterne
Jerry Peng er softwareudviklingsingeniør hos AWS SageMaker. Han fokuserer på at bygge ende-til-ende store MLOps-systemer fra træning til modelovervågning i produktionen. Han brænder også for at bringe konceptet MLOps til et bredere publikum.
Dewen Qi er softwareudviklingsingeniør i AWS. Hun fokuserer i øjeblikket på at udvikle og forbedre SageMaker Pipelines. Uden for arbejdet nyder hun at øve sig på cello.
Gayatri Ghanakota er en Sr. Machine Learning Engineer med AWS Professional Services. Hun brænder for at udvikle, implementere og forklare AI/ML-løsninger på tværs af forskellige domæner. Forud for denne rolle ledede hun flere initiativer som dataforsker og ML-ingeniør hos top globale firmaer inden for finans- og detailområdet. Hun har en mastergrad i datalogi med speciale i datavidenskab fra University of Colorado, Boulder.
Rupinder Grewal er en Sr Ai/ML Specialist Solutions Architect hos AWS. Han fokuserer i øjeblikket på servering af modeller og MLOps på SageMaker. Før denne rolle har han arbejdet som Machine Learning Engineer ved at bygge og hoste modeller. Uden for arbejdet nyder han at spille tennis og cykle på bjergstier.
Ray Li er Sr. Data Scientist med AWS Professional Services. Hans speciale fokuserer på at bygge og operationalisere AI/ML-løsninger til kunder af varierende størrelse, lige fra startups til virksomhedsorganisationer. Uden for arbejdet nyder Ray fitness og rejser.
- AI
- ai kunst
- ai kunst generator
- en robot
- Amazon SageMaker
- kunstig intelligens
- certificering af kunstig intelligens
- kunstig intelligens i banksektoren
- kunstig intelligens robot
- kunstig intelligens robotter
- software til kunstig intelligens
- AWS maskinindlæring
- blockchain
- blockchain konference ai
- coingenius
- samtale kunstig intelligens
- kryptokonference ai
- dalls
- dyb læring
- du har google
- machine learning
- plato
- platon ai
- Platon Data Intelligence
- Platon spil
- PlatoData
- platogaming
- skala ai
- syntaks
- zephyrnet