Pipeline di Amazon SageMaker è un servizio AWS completamente gestito per la creazione e l'orchestrazione di flussi di lavoro di machine learning (ML). SageMaker Pipelines offre agli sviluppatori di applicazioni ML la possibilità di orchestrare diverse fasi del flusso di lavoro ML, tra cui caricamento dei dati, trasformazione dei dati, formazione, ottimizzazione e distribuzione. Puoi utilizzare SageMaker Pipelines per orchestrare lavori ML in SageMaker e suoi integrazione con l'ecosistema AWS più ampio ti consente anche di utilizzare risorse come AWS Lambda Amazon EMR posti di lavoro e altro ancora. Ciò ti consente di creare una pipeline personalizzata e riproducibile per requisiti specifici nei tuoi flussi di lavoro ML.
In questo post forniamo alcune best practice per massimizzare il valore di SageMaker Pipelines e rendere l'esperienza di sviluppo fluida. Discuteremo anche alcuni scenari e modelli di progettazione comuni durante la creazione di SageMaker Pipelines e forniremo esempi per affrontarli.
Migliori pratiche per le pipeline SageMaker
In questa sezione, discutiamo alcune best practice che possono essere seguite durante la progettazione dei flussi di lavoro utilizzando SageMaker Pipelines. La loro adozione può migliorare il processo di sviluppo e semplificare la gestione operativa di SageMaker Pipelines.
Utilizzare la sessione pipeline per il caricamento lento della pipeline
Sessione della pipeline abilita l'inizializzazione lenta delle risorse della pipeline (i lavori non vengono avviati fino al runtime della pipeline). IL PipelineSession
contesto eredita il Sessione SageMaker e implementa metodi convenienti per interagire con altre entità e risorse SageMaker, come lavori di formazione, endpoint, set di dati di input in Servizio di archiviazione semplice Amazon (Amazon S3) e così via. Quando definisci le pipeline SageMaker, dovresti utilizzare PipelineSession
durante la normale sessione SageMaker:
Esegui pipeline in modalità locale per iterazioni rapide e convenienti durante lo sviluppo
Puoi eseguire un file pipeline in modalità locale usando il LocalPipelineSession
contesto. In questa modalità, la pipeline e i lavori vengono eseguiti localmente utilizzando le risorse sul computer locale, anziché le risorse gestite da SageMaker. La modalità locale fornisce un modo conveniente per eseguire l'iterazione del codice della pipeline con un sottoinsieme di dati più piccolo. Dopo che la pipeline è stata testata localmente, può essere ridimensionata per l'esecuzione utilizzando il file Pipeline Session contesto.
Gestisci una pipeline SageMaker tramite il controllo delle versioni
Il controllo delle versioni degli artefatti e delle definizioni della pipeline è un requisito comune nel ciclo di vita dello sviluppo. È possibile creare più versioni della pipeline denominando gli oggetti pipeline con un prefisso o suffisso univoco, il più comune dei quali è un timestamp, come mostrato nel codice seguente:
Organizza e monitora le esecuzioni della pipeline SageMaker integrandosi con SageMaker Experiments
SageMaker Pipelines può essere facilmente integrato con Esperimenti di SageMaker per organizzare e monitoraggio delle corse della pipeline. Ciò si ottiene specificando PipelineExperimentConfig al momento della creazione di a oggetto pipeline. Con questo oggetto di configurazione puoi specificare un nome per l'esperimento e un nome per la prova. I dettagli dell'esecuzione di una pipeline SageMaker vengono organizzati in base all'esperimento e alla prova specificati. Se non specifichi esplicitamente il nome dell'esperimento, per il nome dell'esperimento viene utilizzato il nome di una pipeline. Allo stesso modo, se non si specifica esplicitamente un nome di prova, viene utilizzato un ID di esecuzione della pipeline per il nome della prova o del gruppo di esecuzione. Vedere il seguente codice:
Esegui in modo sicuro le pipeline SageMaker all'interno di un VPC privato
Per proteggere i carichi di lavoro ML, è consigliabile distribuire i lavori orchestrati da SageMaker Pipelines in una configurazione di rete sicura all'interno di un VPC privato, sottoreti private e gruppi di sicurezza. Per garantire e imporre l'utilizzo di questo ambiente sicuro, è possibile implementare quanto segue Gestione dell'identità e dell'accesso di AWS (IAM) politica per il Ruolo di esecuzione di SageMaker (questo è il ruolo assunto dalla pipeline durante la sua corsa). Puoi anche aggiungere la policy per eseguire i lavori orchestrati da SageMaker Pipelines in modalità di isolamento della rete.
Per un esempio di implementazione della pipeline con questi controlli di sicurezza in atto, fare riferimento a Orchestrazione di lavori, registrazione di modelli e distribuzione continua con Amazon SageMaker in un ambiente sicuro.
Monitora il costo delle esecuzioni della pipeline utilizzando i tag
L'utilizzo delle pipeline SageMaker da solo è gratuito; paghi per le risorse di elaborazione e archiviazione che avvii come parte delle singole fasi della pipeline come elaborazione, formazione e inferenza batch. Per aggregare i costi per esecuzione della pipeline, puoi includere tag in ogni passaggio della pipeline che crea una risorsa. È quindi possibile fare riferimento a questi tag nell'Explorer costi per filtrare e aggregare il costo totale di esecuzione della pipeline, come mostrato nell'esempio seguente:
Dall'esploratore dei costi, ora puoi ottenere il costo filtrato dal tag:
Modelli di progettazione per alcuni scenari comuni
In questa sezione discuteremo i modelli di progettazione per alcuni casi d'uso comuni con SageMaker Pipelines.
Esegui una funzione Python leggera utilizzando un passaggio Lambda
Le funzioni Python sono onnipresenti nei flussi di lavoro ML; vengono utilizzati nella preelaborazione, nella postelaborazione, nella valutazione e altro ancora. Lambda è un servizio di elaborazione serverless che ti consente di eseguire codice senza effettuare il provisioning o gestire i server. Con Lambda puoi eseguire il codice nel tuo linguaggio preferito che include Python. Puoi usarlo per eseguire codice Python personalizzato come parte della tua pipeline. Un passo Lambda ti consente di eseguire funzioni Lambda come parte della pipeline SageMaker. Inizia con il seguente codice:
Crea la funzione Lambda usando il Helper Lambda di SageMaker Python SDK:
Richiama il passaggio Lambda:
Passare i dati tra i passaggi
I dati di input per un passaggio della pipeline sono una posizione dati accessibile o dati generati da uno dei passaggi precedenti della pipeline. È possibile fornire queste informazioni come a ProcessingInput
parametro. Diamo un'occhiata ad alcuni scenari su come utilizzare ProcessingInput.
Scenario 1: passa l'output (tipi di dati primitivi) di una fase Lambda a una fase di elaborazione
I tipi di dati primitivi si riferiscono a tipi di dati scalari come stringa, intero, booleano e float.
Il seguente frammento di codice definisce una funzione Lambda che restituisce un dizionario di variabili con tipi di dati primitivi. Il codice della funzione Lambda restituirà un JSON di coppie chiave-valore quando richiamato dalla fase Lambda all'interno della pipeline SageMaker.
Nella definizione della pipeline, puoi quindi definire i parametri della pipeline SageMaker che appartengono a un tipo di dati specifico e impostare la variabile sull'output della funzione Lambda:
Scenario 2: passa l'output (tipi di dati non primitivi) di una fase Lambda a una fase di elaborazione
I tipi di dati non primitivi si riferiscono a tipi di dati non scalari (ad esempio, NamedTuple
). Potresti avere uno scenario in cui devi restituire un tipo di dati non primitivo da una funzione Lambda. Per fare ciò, devi convertire il tuo tipo di dati non primitivo in una stringa:
Quindi puoi utilizzare questa stringa come input per un passaggio successivo nella pipeline. Per utilizzare la tupla denominata nel codice, utilizzare eval()
per analizzare l'espressione Python nella stringa:
Scenario 3: passare l'output di un passaggio attraverso un file delle proprietà
È inoltre possibile memorizzare l'output di una fase di elaborazione in un file file JSON delle proprietà per il consumo a valle in a ConditionStep
oppure un'altra ProcessingStep
. Puoi usare il Funzione JSONGet interrogare a file delle proprietà. Vedi il seguente codice:
Supponiamo che il contenuto del file delle proprietà sia il seguente:
In questo caso, è possibile interrogarlo per un valore specifico e utilizzarlo nei passaggi successivi utilizzando la funzione JsonGet:
Parametrizzare una variabile nella definizione della pipeline
La parametrizzazione delle variabili in modo che possano essere utilizzate in fase di esecuzione è spesso auspicabile, ad esempio per costruire un URI S3. È possibile parametrizzare una stringa in modo tale che venga valutata in fase di esecuzione utilizzando il file Join
funzione. Il seguente frammento di codice mostra come definire la variabile utilizzando il file Join
funzione e utilizzarla per impostare la posizione di output in una fase di elaborazione:
Esegui codice parallelo su un iterabile
Alcuni flussi di lavoro ML eseguono codice in cicli for paralleli su un insieme statico di elementi (an iterabile). Può trattarsi dello stesso codice che viene eseguito su dati diversi o di una parte di codice diversa che deve essere eseguita per ciascun elemento. Ad esempio, se hai un numero molto elevato di righe in un file e desideri accelerare il tempo di elaborazione, puoi fare affidamento sul modello precedente. Se desideri eseguire trasformazioni diverse su sottogruppi specifici nei dati, potresti dover eseguire una parte di codice diversa per ogni sottogruppo nei dati. I due scenari seguenti illustrano come progettare pipeline SageMaker per questo scopo.
Scenario 1: implementare una logica di elaborazione su diverse porzioni di dati
È possibile eseguire un processo di elaborazione con più istanze (impostando instance_count
ad un valore maggiore di 1). Questo distribuisce i dati di input da Amazon S3 in tutte le istanze di elaborazione. È quindi possibile utilizzare uno script (process.py) per lavorare su una porzione specifica dei dati in base al numero di istanza e all'elemento corrispondente nell'elenco di elementi. La logica di programmazione in process.py può essere scritta in modo tale che venga eseguito un modulo o un pezzo di codice diverso a seconda dell'elenco di elementi che elabora. L'esempio seguente definisce un processore che può essere utilizzato in un ProcessingStep:
Scenario 2: eseguire una sequenza di passaggi
Quando disponi di una sequenza di passaggi che devono essere eseguiti in parallelo, puoi definire ciascuna sequenza come una pipeline SageMaker indipendente. L'esecuzione di queste pipeline SageMaker può quindi essere attivata da una funzione Lambda che fa parte di a LambdaStep
nella pipeline madre. La seguente parte di codice illustra lo scenario in cui vengono attivate due diverse esecuzioni della pipeline SageMaker:
Conclusione
In questo post abbiamo discusso alcune best practice per l'uso e la manutenzione efficienti delle pipeline SageMaker. Abbiamo inoltre fornito alcuni modelli che puoi adottare durante la progettazione di flussi di lavoro con SageMaker Pipelines, sia che tu stia creando nuove pipeline o eseguendo la migrazione di flussi di lavoro ML da altri strumenti di orchestrazione. Per iniziare con SageMaker Pipelines per l'orchestrazione del flusso di lavoro ML, fare riferimento a esempi di codice su GitHub ed Condutture per la costruzione di modelli Amazon SageMaker.
Informazioni sugli autori
Pinak Panigrahi collabora con i clienti per creare soluzioni basate sull'apprendimento automatico per risolvere problemi aziendali strategici su AWS. Quando non è occupato con l'apprendimento automatico, lo si può trovare mentre fa un'escursione, legge un libro o guarda uno sport.
Meenakshisundaram Tandavarayan lavora per AWS come specialista AI/ML. Ha una passione per progettare, creare e promuovere esperienze di analisi e dati incentrate sull'uomo. Meena si concentra sullo sviluppo di sistemi sostenibili che offrano vantaggi misurabili e competitivi per i clienti strategici di AWS. Meena è un connettore, un pensatore di design e si impegna a guidare il business verso nuovi modi di lavorare attraverso l'innovazione, l'incubazione e la democratizzazione.
- Distribuzione di contenuti basati su SEO e PR. Ricevi amplificazione oggi.
- PlatoData.Network Generativo verticale Ai. Potenzia te stesso. Accedi qui.
- PlatoAiStream. Intelligenza Web3. Conoscenza amplificata. Accedi qui.
- PlatoneESG. Automobilistico/VE, Carbonio, Tecnologia pulita, Energia, Ambiente, Solare, Gestione dei rifiuti. Accedi qui.
- Platone Salute. Intelligence sulle biotecnologie e sulle sperimentazioni cliniche. Accedi qui.
- Grafico Prime. Migliora il tuo gioco di trading con ChartPrime. Accedi qui.
- BlockOffset. Modernizzare la proprietà della compensazione ambientale. Accedi qui.
- Fonte: https://aws.amazon.com/blogs/machine-learning/best-practices-and-design-patterns-for-building-machine-learning-workflows-with-amazon-sagemaker-pipelines/
- :ha
- :È
- :non
- :Dove
- $ SU
- 1
- 100
- 11
- 13
- 15%
- 150
- 16
- 17
- 19
- 20
- 22
- 28
- 7
- 8
- 9
- a
- capacità
- accesso
- accessibile
- raggiunto
- Action
- aggiungere
- indirizzamento
- adottare
- Adottando
- vantaggi
- Dopo shavasana, sedersi in silenzio; saluti;
- aggregato
- Tutti
- consente
- anche
- Amazon
- Amazon Sage Maker
- Pipeline di Amazon SageMaker
- Amazon Web Services
- an
- analitica
- ed
- Un altro
- api
- Applicazioni
- opportuno
- SONO
- AS
- assumere
- assunto
- At
- autore
- disponibile
- AWS
- basato
- BE
- essendo
- MIGLIORE
- best practice
- fra
- libro
- costruire
- Costruzione
- affari
- by
- Materiale
- Custodie
- casi
- certo
- cliente
- codice
- collezioni
- Uncommon
- competitivo
- Calcolare
- condizione
- Configurazione
- costruire
- consumo
- testuali
- contesto
- continuo
- controlli
- Comodo
- convertire
- Corrispondente
- Costo
- costo effettivo
- Costi
- creare
- crea
- Creazione
- costume
- Clienti
- personalizzate
- dati
- dataset
- Decifrare
- definire
- definisce
- definizione
- definizione
- definizioni
- consegnare
- democratizzazione
- Dipendente
- schierare
- deployment
- Design
- modelli di progettazione
- progettazione
- dettagli
- sviluppatori
- in via di sviluppo
- Mercato
- diverso
- dimensioni
- discutere
- discusso
- do
- Dont
- guidare
- spinto
- durante
- ogni
- facilmente
- effetto
- efficiente
- o
- elemento
- Abilita
- fine
- imporre
- garantire
- entità
- Ambiente
- valutato
- valutazione
- Evento
- Ogni
- esempio
- Esempi
- esecuzione
- esperienza
- Esperienze
- esperimento
- esploratore
- espressione
- estratto
- pochi
- Compila il
- filtro
- galleggiante
- seguito
- i seguenti
- Nel
- Ex
- essere trovato
- Gratis
- da
- completamente
- function
- funzioni
- generato
- ottenere
- maggiore
- Gruppo
- Gruppo
- Avere
- he
- Escursione
- Come
- Tutorial
- HTML
- http
- HTTPS
- ID
- Identità
- if
- illustra
- realizzare
- implementazione
- attrezzi
- importare
- competenze
- in
- includere
- inclusi
- Compreso
- INCUBAZIONE
- studente indipendente
- individuale
- informazioni
- Innovazione
- ingresso
- esempio
- invece
- integrato
- Integrazione
- si interagisce
- ai miglioramenti
- invocato
- da solo
- IT
- elementi
- iterazioni
- SUO
- stessa
- Lavoro
- Offerte di lavoro
- json
- Le
- Lingua
- grandi
- superiore, se assunto singolarmente.
- apprendimento
- Consente di
- ciclo di vita
- leggero
- piace
- Lista
- Caricamento in corso
- locale
- a livello locale
- località
- logica
- Guarda
- macchina
- machine learning
- manutenzione
- make
- gestito
- gestione
- gestione
- Massimizzare
- Maggio..
- metodi
- forza
- la migrazione
- ML
- Moda
- modello
- Moduli
- mensile
- Scopri di più
- maggior parte
- multiplo
- Nome
- Detto
- di denominazione
- Bisogno
- esigenze
- Rete
- New
- adesso
- numero
- oggetto
- oggetti
- ottenere
- of
- Offerte
- di frequente
- on
- ONE
- operativa
- or
- orchestrato
- orchestrazione
- Organizzato
- organizzazione
- Altro
- produzione
- ancora
- coppie
- Parallel
- parametro
- parametri
- parte
- passare
- passione
- Cartamodello
- modelli
- Paga le
- per
- Eseguire
- pezzo
- conduttura
- posto
- Platone
- Platone Data Intelligence
- PlatoneDati
- politica
- porzione
- Post
- pratica
- pratiche
- preferito
- precedente
- primitivo
- un bagno
- problemi
- processi
- i processi
- lavorazione
- Processore
- Programmazione
- promuoverlo
- proprietà
- proprietà
- fornire
- purché
- fornisce
- scopo
- Python
- Presto
- Lettura
- riferimento
- Iscrizione
- Basic
- fare affidamento
- requisito
- Requisiti
- risorsa
- Risorse
- risposta
- ritorno
- di ritorno
- problemi
- Ruolo
- Correre
- corre
- s
- sagemaker
- Pipeline SageMaker
- stesso
- scenario
- Scenari
- copione
- senza soluzione di continuità
- Sezione
- sicuro
- problemi di
- vedere
- Sequenza
- serverless
- Server
- servizio
- Servizi
- Sessione
- set
- regolazione
- dovrebbero
- mostrato
- Spettacoli
- Allo stesso modo
- Un'espansione
- inferiore
- frammento
- So
- Soluzioni
- RISOLVERE
- alcuni
- specialista
- specifico
- specificato
- velocità
- Spin
- Sports
- inizia a
- iniziato
- dichiarazione
- step
- Passi
- conservazione
- Tornare al suo account
- Strategico
- affari strategici
- snellire
- Corda
- sforza
- La struttura
- sottoreti
- successivo
- tale
- sostenibile
- SISTEMI DI TRATTAMENTO
- TAG
- presa
- testato
- di
- che
- I
- Li
- poi
- Là.
- Strumenti Bowman per analizzare le seguenti finiture:
- di
- pensatore
- questo
- Attraverso
- tempo
- timestamp
- a
- strumenti
- Totale
- pista
- Treni
- Training
- Trasformazione
- trasformazioni
- prova
- innescare
- innescato
- vero
- seconda
- Digitare
- Tipi di
- per
- unico
- fino a quando
- Impiego
- uso
- utilizzato
- usa
- utilizzando
- APPREZZIAMO
- Valori
- variabile
- versione
- versioni
- molto
- volere
- guardare
- Modo..
- modi
- we
- sito web
- servizi web
- sono stati
- quando
- se
- while
- volere
- con
- entro
- senza
- Lavora
- flusso di lavoro
- flussi di lavoro
- lavoro
- lavori
- mondo
- scritto
- Tu
- Trasferimento da aeroporto a Sharm
- zefiro