Best practice per Amazon SageMaker Training Managed Warm Pools

Amazon SageMaker Training Managed Warm Pools ti offre la flessibilità di scegliere di riutilizzare e conservare l'infrastruttura sottostante per un periodo di tempo definito dall'utente. Ciò viene fatto mantenendo anche il vantaggio di trasferire il lavoro pesante indifferenziato della gestione delle istanze di calcolo in to Formazione del modello Amazon SageMaker. In questo post, delineiamo i principali vantaggi e punti deboli affrontati da SageMaker Training Managed Warm Pools, oltre a benchmark e best practice.

Panoramica di SageMaker Training Managed Warm Pools

SageMaker Model Training è una funzionalità completamente gestita che avvia le istanze per ogni lavoro, addestra un modello, esegue e quindi arresta le istanze dopo il lavoro. Ti viene addebitata solo la durata del lavoro fino al secondo. Questa funzionalità completamente gestita ti dà la libertà di concentrarti sul tuo algoritmo di machine learning (ML) e non preoccuparti di lavori pesanti indifferenziati come la gestione dell'infrastruttura durante l'addestramento dei tuoi modelli.

Questo meccanismo richiede un tempo di avvio finito per un lavoro di formazione. Sebbene questo tempo di avvio, noto anche come tempo di avvio con avviamento a freddo, è piuttosto basso, alcuni dei nostri casi d'uso dei clienti più impegnativi richiedono tempi di avvio ancora più bassi, ad esempio meno di 20 secondi. Esistono due casi d'uso importanti che hanno questi requisiti:

  • Il primo è la sperimentazione ML attiva da parte di data scientist che utilizzano il Amazon Sage Maker piattaforma di addestramento, in particolare durante l'addestramento di modelli di grandi dimensioni, come GPT3, che richiedono più iterazioni per raggiungere uno stato pronto per la produzione.
  • Il secondo è il lancio programmatico di un numero elevato (nell'ordine di diverse centinaia o migliaia) di lavori consecutivi sullo stesso tipo di istanze con una cadenza pianificata. Ad esempio, ricerca di parametri o formazione incrementale.

Per tali casi d'uso, ogni secondo speso in spese generali, come il tempo di avvio per un lavoro di formazione, ha un effetto cumulativo su tutti questi lavori.

Con SageMaker Training Managed Warm Pools, i data scientist e gli ingegneri ML hanno la possibilità di scegliere di mantenere le istanze di addestramento SageMaker o i cluster a più istanze al caldo per un tempo prespecificato e riconfigurabile (keep_alive_period_in_seconds) dopo il completamento di ogni lavoro di formazione. Pertanto, anche se si incorre in una penalità di avvio a freddo per il primo processo di addestramento eseguito su un'istanza o un cluster, per tutti i processi di addestramento successivi, le istanze sono già attive e in esecuzione. Di conseguenza, questi processi di formazione successivi che iniziano su un'istanza prima del keep_alive_period_in_seconds le scadenze non incorrono nell'overhead del tempo di avvio con avvio a freddo. Ciò può ridurre i tempi di avvio del processo di addestramento a circa meno di 20 secondi (P90).

I data scientist e gli ingegneri ML possono utilizzare SageMaker Training Managed Warm Pools per mantenere al caldo istanze singole o multiple tra le esecuzioni di addestramento per la sperimentazione o eseguire più lavori consecutivamente sullo stesso cluster a istanza singola o multipla. Paghi solo per la durata dei lavori di formazione e la riconfigurabilità keep_alive_period_in_seconds come ovunque tu specifichi per ogni singola istanza.

In sostanza, con SageMaker Training Managed Warm Pools, ottieni una combinazione di utilizzo dell'istanza gestita di SageMaker con la possibilità di acconsentire esplicitamente e fornire capacità e autogestire l'utilizzo per brevi intervalli di tempo. Questi intervalli sono configurabili prima di un lavoro, ma se durante il keep_alive_period_in_seconds intervallo, devi ridurlo o aumentarlo, puoi farlo. Aumenta a keep_alive_period_in_seconds può essere eseguito a intervalli fino a 60 minuti, con un periodo massimo per un'istanza o un cluster di 7 giorni.

Per iniziare con le piscine calde, prima richiedere un aumento del limite della quota di warm pool, quindi specifica il file keep_alive_period_in_seconds parametro quando si inizia un lavoro di formazione.

Parametri di riferimento

Abbiamo eseguito test di benchmarking per misurare la latenza di avvio del lavoro utilizzando un'immagine TensorFlow da 1.34 GB, 2 GB di dati e diverse modalità di input dei dati di addestramento (Amazon FSx, Fast File Mode, File Mode). I test sono stati eseguiti su una varietà di tipi di istanza delle famiglie m4, c4, m5 e c5 nella regione us-east-2. La latenza di avvio è stata misurata come il tempo dalla creazione del lavoro all'inizio del lavoro di formazione effettivo sulle istanze. I primi processi che hanno avviato il cluster e creato il warm pool avevano una latenza di avvio di 2-3 minuti. Questa maggiore latenza è dovuta al tempo necessario per eseguire il provisioning dell'infrastruttura, scaricare l'immagine e scaricare i dati. I lavori conseguenti che utilizzavano il cluster del pool caldo avevano una latenza di avvio di circa 20 secondi per Fast File Mode (FFM) o Amazon FSx e 70 secondi per File Mode (FM). Questo delta è il risultato di FM che richiede il download dell'intero set di dati da Amazon S3 prima dell'inizio del lavoro.

La scelta della modalità di inserimento dei dati di allenamento influisce sul tempo di avvio, anche con Warm Pools. La guida su quale modalità di input selezionare è nella sezione delle best practice più avanti in questo post.

La tabella seguente riepiloga la latenza di avvio del processo P90 per le diverse modalità di immissione dei dati di addestramento.

Modalità di immissione dei dati Latenza di avvio P90 (secondi)
Primo lavoro Warm Pool Jobs (dal secondo lavoro in poi)
FSx 136 19
Modalità file veloce 143 21
Modalità file 176 70

Best practice per l'utilizzo di piscine calde

Nella sezione seguente, condividiamo alcune best practice quando si utilizzano le piscine calde.

Quando dovresti usare le piscine calde?

Le piscine calde sono consigliate nei seguenti scenari:

  • Stai sperimentando e ottimizzando in modo interattivo il tuo script su una serie di brevi lavori.
  • Stai eseguendo la tua ottimizzazione iperparametrica personalizzata su larga scala (ad esempio, Sintonizzazione).
  • Si dispone di un processo batch che esegue un numero elevato (nell'ordine di diverse centinaia o migliaia) di processi consecutivi sullo stesso tipo di istanze con cadenza giornaliera o settimanale. Ad esempio, l'addestramento di un modello ML per città.

I pool caldi non sono consigliati quando è improbabile che qualcuno riutilizzi il pool caldo prima che scada. Ad esempio, un singolo lavoro lungo che viene eseguito tramite una pipeline ML automatizzata.

Riduci al minimo la latenza di avvio del processo di addestramento della piscina riscaldata

I processi di addestramento che riutilizzano un warm pool iniziano più rapidamente del primo processo che ha creato il warm pool. Ciò è dovuto al mantenimento delle istanze ML in esecuzione tra i processi con un'immagine Docker del contenitore di addestramento memorizzata nella cache da cui saltare l'estrazione del contenitore Registro dei contenitori Amazon Elastic (Amazon ECR). Tuttavia, anche quando si riutilizza un warm pool, si verificano alcuni passaggi di inizializzazione per tutti i processi. L'ottimizzazione di questi passaggi può ridurre il tempo di avvio del processo (sia il primo che i successivi). Considera quanto segue:

  • La modalità di inserimento dei dati di allenamento può influire sul tempo di avvio – I canali di input dei dati di formazione gestiti vengono ricreati per ogni lavoro di formazione, contribuendo alla latenza di avvio del lavoro. Pertanto, eseguire esperimenti iniziali su un set di dati più piccolo consentirà tempi di avvio più rapidi (e tempi di addestramento più rapidi). Per le fasi successive della sperimentazione, quando è necessario un set di dati di grandi dimensioni, prendere in considerazione l'uso di un tipo di modalità di input con tempo di inizializzazione minimo o fisso. Ad esempio, la modalità di input FILE copia l'intero set di dati da Servizio di archiviazione semplice Amazon (Amazon S3) all'istanza di addestramento, operazione che richiede molto tempo per set di dati di grandi dimensioni (anche con warm pool). La modalità Fast File è più adatta per una latenza di avvio inferiore perché solo i metadati degli oggetti S3 devono essere letti da Amazon S3 prima che il carico di lavoro possa essere avviato. Il Amazon FSx per Lustre, o File system elastico Amazon (Amazon EFS) modalità di input del file system, ha un tempo di inizializzazione fisso indipendentemente dal numero di file nel file system, il che è vantaggioso quando si lavora con un set di dati di grandi dimensioni.
    Per ulteriori informazioni su come scegliere un canale di ingresso, vedere Scegli la migliore fonte di dati per il tuo lavoro di formazione su Amazon SageMaker.
  • Ridurre l'installazione di runtime dei pacchetti – Qualsiasi installazione software che si verifica durante l'avvio del contenitore, ad esempio pip di Python o apt-get del sistema operativo, aumenterà la latenza del processo di addestramento. Ridurre al minimo questa latenza di avvio richiede un compromesso tra la flessibilità e la semplicità delle installazioni di runtime rispetto all'installazione al momento della compilazione del contenitore. Se utilizzi il tuo contenitore Docker con SageMaker, fai riferimento a Adattare il proprio contenitore Docker per lavorare con SageMaker. Se ti affidi immagini del contenitore SageMaker predefinite, dovrai farlo estendere un contenitore predefinito e gestire in modo esplicito questi contenitori. Considera questo se le tue installazioni di runtime aumentano in modo significativo la latenza di avvio.
  • Evita di aggiornare frequentemente l'immagine Docker – Se utilizzi il tuo contenitore Docker con SageMaker, cerca di evitare di aggiornarlo a ogni esecuzione del lavoro. Se l'immagine Docker cambia tra gli invii di processi, il warm pool verrà riutilizzato, ma il processo di avvio dovrà estrarre nuovamente l'immagine del container da Amazon ECR invece di riutilizzare un'immagine del container memorizzata nella cache. Se l'immagine Docker deve essere aggiornata, limitare gli aggiornamenti all'ultimo livello Docker per sfruttare la memorizzazione nella cache del livello Docker. Idealmente, dovresti rimuovere il contenuto Dockerfile che potrebbe cambiare nel corso delle iterazioni, come iperparametro, definizioni di set di dati e il codice ML stesso. Per eseguire iterazioni sul codice ML senza dover ricostruire le immagini Docker a ogni modifica, puoi adottare il paradigma del contenitore del framework sostenuto nel SageMaker Training Toolkit. Se desideri sviluppare un contenitore framework con il tuo codice, fai riferimento a this Esercitazione su Amazon SageMaker.

Condividi piscine calde tra più utenti

Quando si lavora con un grande team di data scientist, è possibile condividere warm pool che hanno corrispondenti criteri di lavoro, come lo stesso Gestione dell'identità e dell'accesso di AWS ruolo (IAM) o immagine del contenitore.

Diamo un'occhiata a una sequenza temporale di esempio. L'utente-1 avvia un processo di addestramento che viene completato e si traduce nella creazione di un nuovo pool caldo. Quando l'utente-2 avvia un processo di addestramento, il processo riutilizzerà il warm pool esistente, determinando un rapido avvio del processo. Mentre il lavoro dell'utente-2 è in esecuzione con il warm pool in uso, se un altro utente avvia un lavoro di addestramento, verrà creato un secondo warm pool.

Questo comportamento di riutilizzo aiuta a ridurre i costi condividendo i warm pool tra utenti che avviano lavori simili. Se si desidera evitare la condivisione di warm pool tra utenti, i lavori degli utenti non devono avere corrispondenti criteri di lavoro (ad esempio, devono utilizzare un ruolo IAM diverso).

Notifica agli utenti il ​​completamento del lavoro

Quando si usano i warm pool per la sperimentazione, si consiglia di avvisare gli utenti al termine del loro lavoro. Ciò consente agli utenti di riprendere la sperimentazione prima della scadenza del warm pool o Stop la piscina calda se non è più necessaria. Puoi anche attivare automaticamente le notifiche attraverso Amazon EventBridge.

Ulteriori strumenti per la sperimentazione rapida e la risoluzione dei problemi di formazione

Con le piscine riscaldate, puoi iniziare un lavoro in meno di 20 secondi. Alcuni scenari richiedono sperimentazione interattiva e risoluzione dei problemi in tempo reale. L'open source Libreria SSH Helper di SageMaker ti consente di eseguire la shell in un contenitore di formazione SageMaker e condurre lo sviluppo e il debug remoto.

Conclusione

Con SageMaker Training Managed Warm Pools, puoi mantenere calde le istanze hardware di addestramento del modello dopo ogni lavoro per un periodo specificato. Ciò può ridurre la latenza di avvio per un processo di addestramento del modello fino a 8 volte. I warm pool gestiti da SageMaker Training sono disponibili in tutte le regioni AWS pubbliche in cui è disponibile SageMaker Model Training.

Per iniziare, vedi Addestrati utilizzando le piscine calde gestite da SageMaker.


Circa gli autori

Romì DattaDott.ssa Romi Datta  è un Senior Manager di Product Management nel team di Amazon SageMaker responsabile della formazione, dell'elaborazione e del negozio di funzionalità. È in AWS da oltre 4 anni, ricoprendo diversi ruoli di leadership nella gestione dei prodotti in SageMaker, S3 e IoT. Prima di AWS ha lavorato in vari ruoli di gestione del prodotto, ingegneria e leadership operativa presso IBM, Texas Instruments e Nvidia. Ha una laurea magistrale e un dottorato di ricerca. in Ingegneria Elettrica e Informatica presso l'Università del Texas ad Austin e un MBA presso la Booth School of Business dell'Università di Chicago.

Best practice per la formazione di Amazon SageMaker Managed Warm Pools PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.Arun Nagarajan è un Principal Engineer del team di Amazon SageMaker che si occupa delle aree Formazione e MLOps. Ha fatto parte del team di SageMaker dall'anno del lancio, si è divertito a contribuire a diverse aree di SageMaker, tra cui l'inferenza in tempo reale e i prodotti Model Monitor. Gli piace esplorare la vita all'aria aperta nella zona nord-occidentale del Pacifico e scalare le montagne.

Best practice per la formazione di Amazon SageMaker Managed Warm Pools PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.Amy Tu è un Software Development Manager presso AWS SageMaker. Si concentra sul riunire un team di ingegneri del software per creare, mantenere e sviluppare nuove funzionalità della piattaforma di formazione SageMaker che aiuti i clienti ad addestrare i loro modelli ML in modo più efficiente e semplice. Ha una passione per la tecnologia ML e AI, in particolare legata all'immagine e alla visione dai suoi studi universitari. Nel tempo libero ama lavorare sulla musica e l'arte con la sua famiglia.

Best practice per la formazione di Amazon SageMaker Managed Warm Pools PlatoBlockchain Data Intelligence. Ricerca verticale. Ai. Sifei Li è un ingegnere del software in Amazon AI, dove sta lavorando alla creazione di Amazon Machine Learning Platforms e ha fatto parte del team di lancio di Amazon SageMaker. Nel tempo libero le piace suonare e leggere.

Best practice per la formazione di Amazon SageMaker Managed Warm Pools PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.Jenna Zhao è un ingegnere di sviluppo software presso AWS SageMaker. È appassionata della tecnologia ML/AI e si è concentrata sulla creazione della piattaforma di formazione SageMaker che consente ai clienti di addestrare in modo rapido e semplice i modelli di machine learning. Al di fuori del lavoro, le piace viaggiare e passare il tempo con la sua famiglia.

Best practice per la formazione di Amazon SageMaker Managed Warm Pools PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.Para Mehra è Senior Product Manager presso AWS. Si concentra sull'aiutare a costruire la formazione e l'elaborazione di Amazon SageMaker. Nel suo tempo libero, Paras ama passare il tempo con la sua famiglia e andare in bicicletta nella Bay Area. Lo trovi su LinkedIn.

Best practice per la formazione di Amazon SageMaker Managed Warm Pools PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.Gili Nahum è un Senior AI/ML Specialist Solutions Architect che lavora come parte del team EMEA Amazon Machine Learning. Gili è appassionato delle sfide della formazione di modelli di deep learning e di come l'apprendimento automatico sta cambiando il mondo come lo conosciamo. Nel tempo libero, Gili si diverte a giocare a ping pong.

Best practice per la formazione di Amazon SageMaker Managed Warm Pools PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.Olivier Cruchant è un Machine Learning Specialist Solutions Architect presso AWS, con sede in Francia. Olivier aiuta i clienti AWS, dalle piccole startup alle grandi imprese, a sviluppare e distribuire applicazioni di machine learning di livello produttivo. Nel tempo libero, gli piace leggere documenti di ricerca ed esplorare la natura selvaggia con amici e familiari.

Best practice per la formazione di Amazon SageMaker Managed Warm Pools PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.Emilia Webber si è unito ad AWS subito dopo il lancio di SageMaker e da allora ha cercato di parlarne al mondo! Oltre a creare nuove esperienze ML per i clienti, Emily ama meditare e studiare il buddismo tibetano.

Timestamp:

Di più da Apprendimento automatico di AWS