Platone Data Intelligence.
Ricerca verticale e intelligenza artificiale.

Ottimizzazione dei costi per Amazon SageMaker Canvas con spegnimento automatico delle app inattive | Servizi Web di Amazon

Data:

Tela di Amazon SageMaker è un ricco spazio di lavoro di Machine Learning (ML) e intelligenza artificiale generativa senza codice che ha consentito ai clienti di tutto il mondo di adottare più facilmente tecnologie ML per risolvere sfide vecchie e nuove grazie alla sua interfaccia visiva senza codice. Lo fa coprendo il flusso di lavoro ML end-to-end: sia che tu stia cercando una potente preparazione dei dati e AutoML, distribuzione di endpoint gestiti, funzionalità MLOps semplificate e modelli pronti all'uso basati sui servizi AI di AWS e sull'intelligenza artificiale generativa, SageMaker Canvas può aiutarti a raggiungere i tuoi obiettivi.

Mentre aziende di tutte le dimensioni adottano SageMaker Canvas, i clienti chiedono modi per ottimizzare i costi. Come definito nel Framework ben progettato di AWS, un carico di lavoro ottimizzato in termini di costi utilizza completamente tutte le risorse, soddisfa i requisiti funzionali e ottiene un risultato al prezzo più basso possibile.

Oggi presentiamo un nuovo modo per ottimizzare ulteriormente i costi per le applicazioni SageMaker Canvas. SageMaker Canvas ora raccoglie Amazon Cloud Watch metriche che forniscono informazioni dettagliate sull'utilizzo e sull'inattività delle app. I clienti possono utilizzare queste informazioni per chiudere automaticamente le applicazioni SageMaker Canvas inattive per evitare di incorrere in costi imprevisti.

In questo post ti mostreremo come chiudere automaticamente le app SageMaker Canvas inattive per controllare i costi utilizzando una semplice architettura serverless. I modelli utilizzati in questo post sono disponibili in GitHub.

Comprendere e monitorare i costi

La formazione è sempre il primo passo verso la comprensione e il controllo dei costi per qualsiasi carico di lavoro, sia in locale che nel cloud. Iniziamo esaminando il Prezzi di SageMaker Canvas modello. In poche parole, SageMaker Canvas ha un modello di prezzi a consumo, basato su due dimensioni:

  • Istanza dell'area di lavoro: precedentemente noto come durata della sessione, è il costo associato all'esecuzione dell'app SageMaker Canvas
  • Costi del servizio AWS: costi associati all'addestramento dei modelli, alla distribuzione degli endpoint, alla generazione di inferenze (risorse per avviare SageMaker Canvas).

I clienti hanno sempre il pieno controllo sulle risorse lanciate da SageMaker Canvas e possono tenere traccia dei costi associati all'app SageMaker Canvas utilizzando il servizio AWS Billing and Cost Management. Per ulteriori informazioni, fare riferimento a Gestisci la fatturazione e i costi in SageMaker Canvas.

Per limitare il costo associato alle istanze del workspace, come best practice è necessario disconnettersi e non chiudere la scheda del browser. Per disconnettersi, scegliere il Log out sul pannello sinistro dell'app SageMaker Canvas.

Arresto automatico delle applicazioni SageMaker Canvas

Per gli amministratori IT che desiderano fornire controlli automatizzati per chiudere le applicazioni SageMaker Canvas e tenere sotto controllo i costi, esistono due approcci:

  1. Arresto delle applicazioni in base a una pianificazione (tutti i giorni alle 19:00 oppure ogni venerdì alle 18:00)
  2. Arresta automaticamente le applicazioni inattive (quando l'applicazione non è stata utilizzata per due ore)

Arresto delle applicazioni in base a una pianificazione

Architettura di arresto pianificato del Canvas

L'arresto programmato delle applicazioni SageMaker Canvas può essere ottenuto con il minimo sforzo utilizzando a cron espressione (con regola Cron di Amazon EventBridge), un componente di calcolo (una funzione AWS Lambda) che chiama l'API Amazon SageMaker DeleteApp. Questo approccio è stato discusso in Fornitura e gestione di ambienti ML con Amazon SageMaker Canvas utilizzando AWS CDK e AWS Service Catalog post e implementato nell'associato Repository GitHub.

Uno dei vantaggi dell'architettura di cui sopra è che è molto semplice duplicarla per ottenere la creazione programmata dell'app SageMaker Canvas. Utilizzando una combinazione di creazione pianificata ed eliminazione pianificata, un amministratore cloud può assicurarsi che l'applicazione SageMaker Canvas sia pronta per essere utilizzata ogni volta che gli utenti iniziano la loro giornata lavorativa (ad esempio alle 9:7 di un giorno lavorativo) e che l'app si spenga automaticamente alla fine della giornata lavorativa (ad esempio alle XNUMX:XNUMX di un giorno lavorativo, sempre chiuso durante i fine settimana). Tutto quello che devi fare è cambiare la riga di codice che chiama il file DeleteApp API in CreateApp, oltre ad aggiornare l'espressione cron per riflettere l'ora di creazione dell'app desiderata.

Sebbene questo approccio sia molto semplice da implementare e testare, uno svantaggio dell'architettura suggerita è che non tiene conto se un'applicazione è attualmente in uso o meno, chiudendola indipendentemente dal suo stato di attività corrente. A seconda delle situazioni, ciò potrebbe causare attriti con gli utenti attivi, che potrebbero vedere improvvisamente terminata la loro sessione.

Puoi recuperare il modello associato a questa architettura dal seguente repository GitHub:

Arresta automaticamente le applicazioni inattive

Arresto del Canvas su architettura inattiva

A partire da oggi, Amazon SageMaker Canvas emette parametri CloudWatch che forniscono informazioni dettagliate sull'utilizzo e sull'inattività delle app. Ciò consente a un amministratore di definire una soluzione che legge la metrica di inattività, la confronta con una soglia e definisce una logica specifica per l'arresto automatico. Una panoramica più dettagliata della metrica di inattività emessa da SageMaker Canvas è mostrata nel paragrafo seguente.

Per ottenere l'arresto automatico delle applicazioni SageMaker Canvas in base ai parametri di inattività, forniamo un modello AWS CloudFormation. Questo modello è costituito da tre componenti principali:

  1. An Allarme Amazon CloudWatch, che esegue una query per verificare il valore MAX di TimeSinceLastActive metrico. Se questo valore è maggiore di una soglia fornita come input al modello CloudFormation, attiva il resto dell'automazione. Questa query può essere eseguita su un singolo profilo utente, su un singolo dominio o su tutti i domini. A seconda del livello di controllo che desideri avere, puoi utilizzare:
    1. , il all-domains-all-users template, che lo verifica su tutti gli utenti e tutti i domini nell'area in cui viene distribuito il modello
    2. , il one-domain-all-users template, che lo verifica su tutti gli utenti in un dominio nell'area in cui viene distribuito il modello
    3. , il one-domain-one-user template, che lo verifica per un profilo utente, in un dominio, nell'area in cui viene distribuito il modello
  2. La modifica dello stato dell'allarme crea un evento sul bus di eventi predefinito in Amazon EventBridge, che ha una regola Amazon EventBridge configurata per attivare una funzione AWS Lambda
  3. La funzione AWS Lambda identifica quale app SageMaker Canvas è rimasta in esecuzione inattiva per un periodo superiore alla soglia specificata e la elimina con il comando API EliminaApp.

Puoi recuperare i modelli AWS CloudFormation associati a questa architettura dal seguente repository GitHub:

Come funziona la metrica di inattività di SageMaker Canvas

SageMaker Canvas emette un file TimeSinceLastActive metrica nel /aws/sagemaker/Canvas/AppActivity spazio dei nomi, che mostra il numero di secondi di inattività dell'app senza attività dell'utente. Possiamo utilizzare questa nuova metrica per attivare l'arresto automatico dell'app SageMaker Canvas quando è rimasta inattiva per un periodo definito. SageMaker Canvas espone il TimeSinceLastActive con il seguente schema:

{ "Namespace": "/aws/sagemaker/Canvas/AppActivity", "Dimensions": [ [ "DomainId", "UserProfileName" ] ], "Metrics": [ { "Name": "TimeSinceLastActive", "Unit": "Seconds", "Value": 12345 } ]
}

I componenti chiave di questa metrica sono i seguenti:

  • Dimensions, in particolare DomainID ed UserProfileName, che consentono a un amministratore di individuare quali applicazioni sono inattive in tutti i domini e utenti
  • Value della metrica, che indica il numero di secondi trascorsi dall'ultima attività nelle applicazioni SageMaker Canvas. SageMaker Canvas considera quanto segue come attività:
    • Qualsiasi azione intrapresa nell'applicazione SageMaker Canvas (clic su un pulsante, trasformazione di un set di dati, generazione di un'inferenza in-app, distribuzione di un modello);
    • Utilizzando un modello pronto all'uso o interagendo con i modelli di AI generativa utilizzando l'interfaccia di chat;
    • Un'inferenza batch pianificata per l'esecuzione in un momento specifico; per ulteriori informazioni, fare riferimento a  Gestire le automazioni.

Questo parametro può essere letto tramite l'API Amazon CloudWatch come get_metric_data. Ad esempio, utilizzando l'SDK AWS per Python (boto3):

import boto3, datetime cw = boto3.client('cloudwatch')
metric_data_results = cw.get_metric_data( MetricDataQueries=[ { "Id": "q1", "Expression": 'SELECT MAX(TimeSinceLastActive) FROM "/aws/sagemaker/Canvas/AppActivity" GROUP BY DomainId, UserProfileName', "Period": 900 } ], StartTime=datetime.datetime(2023, 1, 1), EndTime=datetime.datetime.now(), ScanBy='TimestampAscending'
)

La query Python estrae il file MAX valore di TimeSinceLastActive dallo spazio dei nomi associato a SageMaker Canvas dopo aver raggruppato questi valori per DomainID ed UserProfileName.

Distribuzione e test della soluzione di spegnimento automatico

Per distribuire lo stack di arresto automatico, procedere come segue:

  1. Scarica il modello AWS CloudFormation che fa riferimento alla soluzione che desideri implementare dal repository GitHub riportato sopra. Scegli se desideri implementare una soluzione per tutti i domini SageMaker, per un singolo dominio SageMaker o per un singolo utente;
  2. Aggiorna i parametri del modello:
    1. Il timeout di inattività – tempo (in secondi) in cui l'app SageMaker Canvas può rimanere inattiva prima che venga spenta; il valore predefinito è 2 ore
    2. Il periodo di allarme – tempo di aggregazione (in secondi) utilizzato da CloudWatch Alarm per calcolare il timeout di inattività; il valore predefinito è 20 minuti
    3. (facoltativo) ID dominio SageMaker ed nome del profilo utente
  3. Distribuisci lo stack CloudFormation per creare le risorse

Una volta distribuita (dovrebbe richiedere meno di due minuti), la funzione AWS Lambda e l'allarme Amazon CloudWatch vengono configurati per arrestare automaticamente l'app Canvas quando inattiva. Per testare lo script di spegnimento automatico, procedere come segue:

  1. Assicurati che l'app SageMaker Canvas sia in esecuzione nel dominio corretto e con il profilo utente corretto (se li hai configurati).
  2. Smetti di utilizzare l'app SageMaker Canvas e attendi il periodo di timeout di inattività (impostazione predefinita, 2 ore)
  3. Verifica che l'app venga arrestata dopo essere rimasta inattiva per il tempo di soglia controllando che l'allarme CloudWatch sia stato attivato e, dopo aver attivato l'automazione, sia tornato allo stato normale.

Nel nostro test, abbiamo impostato il periodo di timeout di inattività su due ore (7200 secondi). Nel grafico seguente tracciato da Amazon CloudWatch Metrics, puoi vedere che l'app SageMaker Canvas ha emesso il TimeSinceLastActive metrico fino al raggiungimento della soglia (1), che ha attivato l'allarme. Una volta attivato l'allarme è stata eseguita la funzione AWS Lambda che ha eliminato l'app e riportato il parametro sotto la soglia (2).

Grafico delle metriche di spegnimento automatico del Canvas

Conclusione

In questo post, abbiamo implementato una soluzione di arresto automatizzato per le app SageMaker Canvas inattive utilizzando AWS Lambda e CloudWatch Alarm e il nuovo parametro di inattività emesso da SageMaker Canvas. Grazie a questa soluzione, i clienti non solo possono ottimizzare i costi per i propri carichi di lavoro ML, ma possono anche evitare addebiti imprevisti per applicazioni che avevano dimenticato di essere in esecuzione nel proprio dominio SageMaker.

Non vediamo l'ora di vedere quali nuovi casi d'uso e carichi di lavoro i clienti potranno risolvere con la tranquillità offerta da questa soluzione. Per ulteriori esempi di come SageMaker Canvas può aiutarti a raggiungere i tuoi obiettivi aziendali, fai riferimento ai seguenti post:

Per scoprire come eseguire carichi di lavoro a livello di produzione con Amazon SageMaker Canvas, fai riferimento ai seguenti post:


Circa gli autori


Davide Gallitelli è un Senior Specialist Solutions Architect per AI/ML. Ha sede a Bruxelles e lavora a stretto contatto con clienti in tutto il mondo che desiderano adottare tecnologie di machine learning Low-Code/No-Code e intelligenza artificiale generativa. È stato uno sviluppatore fin da quando era molto giovane, iniziando a programmare all'età di 7 anni. Ha iniziato a studiare AI/ML all'università e da allora se ne è innamorato.


Huong Nguyen è Sr. Product Manager presso AWS. Sta guidando l'integrazione dell'ecosistema di dati per SageMaker, con 14 anni di esperienza nella creazione di prodotti incentrati sul cliente e basati sui dati per spazi aziendali e consumer.


Gunjan Garg è un ingegnere principale presso il team Amazon SageMaker in AWS, fornendo leadership tecnica per il prodotto. Ha lavorato in diversi ruoli nell'organizzazione AI/ML negli ultimi 5 anni e attualmente è concentrata su Amazon SageMaker Canvas.


Ziyao Huang è un ingegnere di sviluppo software con Amazon SageMaker Data Wrangler. È appassionato di creare ottimi prodotti che rendano il ML facile per i clienti. Fuori dal lavoro, a Ziyao piace leggere e uscire con i suoi amici.

spot_img

L'ultima intelligenza

spot_img

Parla con noi

Ciao! Come posso aiutarla?