Analizza la spesa di Amazon SageMaker e determina le opportunità di ottimizzazione dei costi in base all'utilizzo, Parte 3: Elaborazione e processi di Data Wrangler | Servizi Web Amazon

Analizza la spesa di Amazon SageMaker e determina le opportunità di ottimizzazione dei costi in base all'utilizzo, Parte 3: Elaborazione e processi di Data Wrangler | Servizi Web Amazon

Nel 2021 abbiamo lanciato Servizi proattivi di AWS Support come parte del Supporto aziendale AWS piano. Sin dalla sua introduzione, abbiamo aiutato centinaia di clienti a ottimizzare i loro carichi di lavoro, impostare limiti e migliorare la visibilità dei costi e dell'utilizzo dei loro carichi di lavoro di machine learning (ML).

In questa serie di post, condividiamo le lezioni apprese sull'ottimizzazione dei costi in Amazon Sage Maker. In questo post, ci concentriamo sulla preelaborazione dei dati utilizzando Elaborazione di Amazon SageMaker ed Gestore di dati di Amazon SageMaker posti di lavoro.

La pre-elaborazione dei dati riveste un ruolo fondamentale in un approccio AI incentrato sui dati. Tuttavia, la preparazione dei dati grezzi per l'addestramento e la valutazione del machine learning è spesso un'attività noiosa e impegnativa in termini di risorse di calcolo, tempo e impegno umano. La preparazione dei dati in genere deve essere integrata da fonti diverse e gestire valori mancanti o rumorosi, valori anomali e così via.

Inoltre, oltre alle attività comuni di estrazione, trasformazione e caricamento (ETL), i team ML richiedono occasionalmente funzionalità più avanzate come la creazione di modelli rapidi per valutare i dati e produrre punteggi di importanza delle funzionalità o la valutazione del modello post-addestramento come parte di una pipeline MLOps.

SageMaker offre due funzionalità specificamente progettate per risolvere questi problemi: SageMaker Processing e Data Wrangler. SageMaker Processing consente di eseguire facilmente la pre-elaborazione, la post-elaborazione e la valutazione del modello su un'infrastruttura completamente gestita. Data Wrangler riduce il tempo necessario per aggregare e preparare i dati semplificando il processo di integrazione delle origini dati e progettazione delle funzionalità utilizzando un'unica interfaccia visiva e un ambiente di elaborazione dati completamente distribuito.

Entrambe le funzionalità di SageMaker offrono una grande flessibilità con diverse opzioni per I/O, archiviazione e calcolo. Tuttavia, l'impostazione errata di tali opzioni può comportare costi inutili, soprattutto quando si tratta di set di dati di grandi dimensioni.

In questo post, analizziamo i fattori di prezzo e forniamo indicazioni sull'ottimizzazione dei costi per i lavori SageMaker Processing e Data Wrangler.

Elaborazione di SageMaker

SageMaker Processing è una soluzione gestita per eseguire l'elaborazione dei dati e i carichi di lavoro di valutazione dei modelli. Puoi usarlo nelle fasi di elaborazione dei dati come la progettazione delle funzionalità, la convalida dei dati, la valutazione del modello e l'interpretazione del modello nei flussi di lavoro ML. Con SageMaker Processing, puoi portare i tuoi script di elaborazione personalizzati e scegliere di creare un container personalizzato o utilizzare un container gestito SageMaker con framework comuni come scikit-learn, Lime, Spark e altri.

SageMaker Processing ti addebita il tipo di istanza che scegli, in base alla durata di utilizzo e allo spazio di archiviazione fornito collegato a tale istanza. Nella parte 1, abbiamo mostrato come iniziare a utilizzare Esplora costi AWS per identificare le opportunità di ottimizzazione dei costi in SageMaker.

È possibile filtrare i costi di elaborazione applicando un filtro sul tipo di utilizzo. I nomi di questi tipi di utilizzo sono i seguenti:

  • REGION-Processing:instanceType (per esempio, USE1-Processing:ml.m5.large)
  • REGION-Processing:VolumeUsage.gp2 (per esempio, USE1-Processing:VolumeUsage.gp2)

Per esaminare il tuo costo di elaborazione SageMaker in Cost Explorer, inizia filtrando con SageMaker per Servizi, E per Tipo di utilizzo, è possibile selezionare le ore di esecuzione di tutte le istanze di elaborazione immettendo l' processing:ml prefisso e selezionando l'elenco nel menu.

Analyze Amazon SageMaker spend and determine cost optimization opportunities based on usage, Part 3: Processing and Data Wrangler jobs | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Evita i costi di elaborazione e sviluppo della pipeline

Prima di dimensionare correttamente e ottimizzare la durata dell'esecuzione di un lavoro SageMaker Processing, controlliamo le metriche di alto livello sulle esecuzioni cronologiche dei lavori. Puoi scegliere tra due metodi per farlo.

Innanzitutto, puoi accedere a Processando pagina sulla console di SageMaker.

Analyze Amazon SageMaker spend and determine cost optimization opportunities based on usage, Part 3: Processing and Data Wrangler jobs | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.

In alternativa, puoi usare il API list_processing_jobs.

Analyze Amazon SageMaker spend and determine cost optimization opportunities based on usage, Part 3: Processing and Data Wrangler jobs | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Lo stato di un processo di elaborazione può essere InProgress, Completed, Failed, Stopping, o Stopped.

Un numero elevato di processi non riusciti è comune durante lo sviluppo di nuove pipeline MLOps. Tuttavia, dovresti sempre testare e fare ogni sforzo per convalidare i lavori prima di avviarli su SageMaker perché ci sono costi per le risorse utilizzate. A tale scopo, puoi utilizzare SageMaker Processing in modalità locale. La modalità locale è una funzionalità dell'SDK di SageMaker che ti consente di creare stimatori, processori e pipeline e distribuirli nel tuo ambiente di sviluppo locale. Questo è un ottimo modo per testare i tuoi script prima di eseguirli in un ambiente gestito da SageMaker. La modalità locale è supportata dai container gestiti da SageMaker e da quelli che fornisci tu stesso. Per ulteriori informazioni su come utilizzare la modalità locale con Pipeline di Amazon SageMaker, fare riferimento a Modalità locale.

Ottimizza i costi relativi all'I/O

I lavori SageMaker Processing offrono l'accesso a tre origini dati come parte del Managed input di elaborazione: Servizio di archiviazione semplice Amazon (Amazon S3), Amazzone Atenae Amazon RedShift. Per ulteriori informazioni, fare riferimento a ElaborazioneS3Input, AthenaDatasetDefinizionee RedshiftDatasetDefinizione, Rispettivamente.

Prima di esaminare l'ottimizzazione, è importante notare che sebbene i lavori di SageMaker Processing supportino queste origini dati, non sono obbligatorie. Nel tuo codice di elaborazione, puoi implementare qualsiasi metodo per scaricare i dati di accesso da qualsiasi origine (a condizione che l'istanza di elaborazione possa accedervi).

Per ottenere informazioni migliori sulle prestazioni di elaborazione e rilevare le opportunità di ottimizzazione, ti consigliamo di seguire best practice per la registrazione nello script di elaborazione. SageMaker pubblica i tuoi log di elaborazione su Amazon Cloud Watch.

Nel seguente job log di esempio, vediamo che l'elaborazione dello script ha richiesto 15 minuti (tra Start custom script ed End custom script).

Analyze Amazon SageMaker spend and determine cost optimization opportunities based on usage, Part 3: Processing and Data Wrangler jobs | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Tuttavia, sulla console SageMaker, vediamo che il lavoro ha richiesto altri 4 minuti (quasi il 25% del tempo di esecuzione totale del lavoro).

Analyze Amazon SageMaker spend and determine cost optimization opportunities based on usage, Part 3: Processing and Data Wrangler jobs | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Ciò è dovuto al fatto che, oltre al tempo impiegato dal nostro script di elaborazione, anche il download e il caricamento dei dati gestiti da SageMaker ha richiesto tempo (4 minuti). Se questo risulta essere una parte importante del costo, prendi in considerazione modi alternativi per accelerare i tempi di download, come l'utilizzo dell'API Boto3 con multiprocessing per scaricare i file contemporaneamente o l'utilizzo di librerie di terze parti come WebDataset o s5cmd per un download più veloce da Amazon S3 . Per ulteriori informazioni, fare riferimento a Parallelizzare i carichi di lavoro S3 con s5cmd. Tieni presente che tali metodi potrebbero introdurre addebiti in Amazon S3 a causa di il trasferimento dei dati.

Anche l'elaborazione dei lavori supporta Modalità pipe. Con questo metodo, SageMaker trasmette i dati di input dall'origine direttamente al contenitore di elaborazione in pipe denominate senza utilizzare il volume di archiviazione ML, eliminando così il tempo di download dei dati e un volume del disco inferiore. Tuttavia, ciò richiede un modello di programmazione più complicato rispetto alla semplice lettura da file su un disco.

Come accennato in precedenza, SageMaker Processing supporta anche Athena e Amazon Redshift come origini dati. Quando si configura un processo di elaborazione con queste origini, SageMaker copia automaticamente i dati in Amazon S3 e l'istanza di elaborazione recupera i dati dalla posizione di Amazon S3. Tuttavia, al termine del lavoro, non esiste alcun processo di pulizia gestito e i dati copiati rimarranno comunque in Amazon S3 e potrebbero incorrere in costi di archiviazione indesiderati. Pertanto, quando utilizzi le origini dati Athena e Amazon Redshift, assicurati di implementare una procedura di pulizia, ad esempio una funzione Lambda che funziona secondo un programma o in a Passo Lambda come parte di una pipeline SageMaker.

Come il download, anche il caricamento degli artefatti di elaborazione può essere un'opportunità di ottimizzazione. Quando l'output di un processo di elaborazione viene configurato utilizzando il file ProcessingS3Output parametro, è possibile specificare quale S3UploadMode usare. Il S3UploadMode il valore predefinito del parametro è EndOfJob, che consentirà a SageMaker di caricare i risultati dopo il completamento del lavoro. Tuttavia, se il tuo processo di elaborazione produce più file, puoi impostare S3UploadMode a Continuous, consentendo in tal modo il caricamento simultaneo di artefatti man mano che l'elaborazione continua e riducendo il tempo di esecuzione del processo.

Istanze di lavoro di elaborazione di dimensioni adeguate

La scelta del tipo e delle dimensioni dell'istanza corretti è un fattore importante per l'ottimizzazione del costo dei lavori di SageMaker Processing. Puoi dimensionare correttamente un'istanza migrando a una versione diversa all'interno della stessa famiglia di istanze o migrando a un'altra famiglia di istanze. Quando esegui la migrazione all'interno della stessa famiglia di istanze, devi considerare solo CPU/GPU e memoria. Per ulteriori informazioni e indicazioni generali sulla scelta delle giuste risorse di elaborazione, fare riferimento a Garantisci risorse di calcolo efficienti su Amazon SageMaker.

Per perfezionare la selezione dell'istanza, iniziamo analizzando i parametri del processo di elaborazione in CloudWatch. Per ulteriori informazioni, fare riferimento a Monitora Amazon SageMaker con Amazon CloudWatch.

CloudWatch raccoglie i dati grezzi da SageMaker e li elabora in parametri leggibili, quasi in tempo reale. Sebbene queste statistiche vengano conservate per 15 mesi, la console CloudWatch limita la ricerca ai parametri che sono stati aggiornati nelle ultime 2 settimane (questo garantisce che vengano visualizzati solo i lavori correnti). Le metriche dei processi di elaborazione sono disponibili nello spazio dei nomi /aws/sagemaker/ProcessingJobs e le metriche raccolte sono CPUUtilization, MemoryUtilization, GPUUtilization, GPUMemoryUtilizatione DiskUtilization.

Lo screenshot seguente mostra un esempio in CloudWatch del processo di elaborazione che abbiamo visto in precedenza.

Analyze Amazon SageMaker spend and determine cost optimization opportunities based on usage, Part 3: Processing and Data Wrangler jobs | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.

In questo esempio, vediamo i valori medi di CPU e memoria (che è l'impostazione predefinita in CloudWatch): l'utilizzo medio della CPU è 0.04%, la memoria 1.84% e l'utilizzo del disco 13.7%. Per dimensionare correttamente, considerare sempre l'utilizzo massimo di CPU e memoria (in questo esempio, l'utilizzo massimo della CPU è stato del 98% nei primi 3 minuti). Come regola generale, se l'utilizzo massimo di CPU e memoria è costantemente inferiore al 40%, puoi tranquillamente dimezzare la macchina. Ad esempio, se stavi utilizzando un'istanza ml.c5.4xlarge, potresti passare a un'istanza ml.c5.2xlarge, che potrebbe ridurre i costi del 50%.

Lavori di Data Wrangler

Data Wrangler è una caratteristica di Amazon Sage Maker Studio che fornisce una soluzione ripetibile e scalabile per l'esplorazione e l'elaborazione dei dati. Puoi utilizzare l'interfaccia Data Wrangler per importare, analizzare, trasformare e caratterizzare i tuoi dati in modo interattivo. Questi passaggi vengono acquisiti in una ricetta (un file .flow) che puoi quindi utilizzare in un processo Data Wrangler. Questo ti aiuta a riapplicare le stesse trasformazioni di dati sui tuoi dati e anche a scalare a un processo di elaborazione dati batch distribuito, come parte di una pipeline ML o in modo indipendente.

Per indicazioni sull'ottimizzazione dell'app Data Wrangler in Studio, fare riferimento alla Parte 2 di questa serie.

In questa sezione, ci concentriamo sull'ottimizzazione dei lavori di Data Wrangler.

Data Wrangler utilizza Lavori di elaborazione SageMaker Spark con un contenitore gestito da Data Wrangler. Questo contenitore esegue le indicazioni dal file .flow nel lavoro. Come qualsiasi processo di elaborazione, Data Wrangler ti addebita le istanze che scegli, in base alla durata dell'uso e allo storage fornito collegato a tale istanza.

In Cost Explorer, puoi filtrare i costi dei lavori di Data Wrangler applicando un filtro sul tipo di utilizzo. I nomi di questi tipi di utilizzo sono:

  • REGION-processing_DW:instanceType (per esempio, USE1-processing_DW:ml.m5.large)
  • REGION-processing_DW:VolumeUsage.gp2 (per esempio, USE1-processing_DW:VolumeUsage.gp2)

Per visualizzare il costo di Data Wrangler in Cost Explorer, filtra il servizio per utilizzare SageMaker e per Tipo di utilizzo, scegli il processing_DW prefisso e selezionare l'elenco nel menu. Questo mostrerà sia l'utilizzo dell'istanza (ore) sia i costi relativi al volume di archiviazione (GB). (Se vuoi vedere i costi di Studio Data Wrangler puoi filtrare il tipo di utilizzo in base al Studio_DW prefisso.)

Analyze Amazon SageMaker spend and determine cost optimization opportunities based on usage, Part 3: Processing and Data Wrangler jobs | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Ridimensiona correttamente e pianifica le istanze di lavoro di Data Wrangler

Al momento, Data Wrangler supporta solo istanze m5 con le seguenti dimensioni di istanza: ml.m5.4xlarge, ml.m5.12xlarge e ml.m5.24xlarge. È possibile utilizzare la funzione di lavoro distribuito per ottimizzare il costo del lavoro. Ad esempio, supponi di dover elaborare un set di dati che richiede 350 GiB di RAM. Il 4xlarge (128 GiB) e il 12xlarge (256 GiB) potrebbero non essere in grado di elaborare e ti porteranno a utilizzare l'istanza m5.24xlarge (768 GiB). Tuttavia, puoi utilizzare due istanze m5.12xlarge (2 * 256 GiB = 512 GiB) e ridurre il costo del 40% o tre istanze m5.4xlarge (3 * 128 GiB = 384 GiB) e risparmiare il 50% dell'm5.24xlarge costo dell'istanza. Si noti che si tratta di stime e che l'elaborazione distribuita potrebbe introdurre un sovraccarico che influirà sul tempo di esecuzione complessivo.

Quando modifichi il tipo di istanza, assicurati di aggiornare il file Configurazione Spark di conseguenza. Ad esempio, se si dispone di un processo di istanza ml.m5.4xlarge iniziale configurato con proprietà spark.driver.memory impostato su 2048 e spark.executor.memory impostato su 55742 e successivamente ridimensionato fino a ml.m5.12xlarge, questi valori di configurazione devono essere aumentati, altrimenti costituiranno il collo di bottiglia nel processo di elaborazione. È possibile aggiornare queste variabili nella GUI di Data Wrangler o in un file di configurazione aggiunto al percorso di configurazione (vedere gli esempi seguenti).

Analyze Amazon SageMaker spend and determine cost optimization opportunities based on usage, Part 3: Processing and Data Wrangler jobs | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Analyze Amazon SageMaker spend and determine cost optimization opportunities based on usage, Part 3: Processing and Data Wrangler jobs | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Un'altra caratteristica interessante di Data Wrangler è la capacità di impostare un lavoro programmato. Se elabori i dati periodicamente, puoi creare una pianificazione per eseguire automaticamente il processo di elaborazione. Ad esempio, è possibile creare una pianificazione che esegua automaticamente un processo di elaborazione quando si ottengono nuovi dati (per esempi, vedere Esporta su Amazon S3 or Esporta in Amazon SageMaker Feature Store). Tuttavia, tieni presente che quando crei una pianificazione, Data Wrangler crea un file eventRule in EventBridge. Ciò significa che ti verranno addebitate anche le regole evento che crei (oltre alle istanze utilizzate per eseguire il processo di elaborazione). Per ulteriori informazioni, vedere Prezzi di Amazon EventBridge.

Conclusione

In questo post, abbiamo fornito indicazioni sull'analisi dei costi e sulle best practice durante la pre-elaborazione

dati utilizzando i lavori SageMaker Processing e Data Wrangler. Analogamente alla pre-elaborazione, esistono molte opzioni e impostazioni di configurazione nella creazione, nell'addestramento e nell'esecuzione di modelli ML che possono comportare costi inutili. Pertanto, poiché il machine learning si afferma come uno strumento potente in tutti i settori, i carichi di lavoro ML devono rimanere convenienti.

SageMaker offre un set di funzionalità ampio e approfondito per facilitare ogni fase della pipeline ML.

Questa solidità offre anche continue opportunità di ottimizzazione dei costi senza compromettere le prestazioni o l'agilità.


Informazioni sugli autori

Analyze Amazon SageMaker spend and determine cost optimization opportunities based on usage, Part 3: Processing and Data Wrangler jobs | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.Deepali Rajale è Senior AI/ML Specialist presso AWS. Lavora con i clienti aziendali fornendo indicazioni tecniche con le best practice per la distribuzione e la manutenzione di soluzioni AI/ML nell'ecosistema AWS. Ha lavorato con una vasta gamma di organizzazioni su vari casi d'uso di deep learning che coinvolgono la PNL e la visione artificiale. È appassionata di consentire alle organizzazioni di sfruttare l'IA generativa per migliorare la loro esperienza d'uso. Nel tempo libero le piacciono i film, la musica e la letteratura.

Analyze Amazon SageMaker spend and determine cost optimization opportunities based on usage, Part 3: Processing and Data Wrangler jobs | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.Uri Rosenberg è il responsabile tecnico specializzato in AI e ML per Europa, Medio Oriente e Africa. Con sede in Israele, Uri lavora per consentire ai clienti aziendali su tutto ciò che riguarda il machine learning per progettare, costruire e operare su larga scala. Nel tempo libero ama andare in bicicletta, fare escursioni e guardare i tramonti (almeno una volta al giorno).

Timestamp:

Di più da Apprendimento automatico di AWS