Configura l'allocazione dei costi a livello aziendale per ambienti e carichi di lavoro ML utilizzando il tagging delle risorse in Amazon SageMaker PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

Configura l'allocazione dei costi a livello aziendale per ambienti e carichi di lavoro ML utilizzando la codifica delle risorse in Amazon SageMaker

Poiché le aziende e i leader IT cercano di accelerare l'adozione del machine learning (ML), cresce la necessità di comprendere la spesa e l'allocazione dei costi per l'ambiente ML per soddisfare i requisiti aziendali. Senza un'adeguata gestione e governance dei costi, la tua spesa ML potrebbe portare a sorprese nella tua fattura mensile AWS. Amazon Sage Maker è una piattaforma ML completamente gestita nel cloud che fornisce ai nostri clienti aziendali strumenti e risorse per stabilire misure di allocazione dei costi e migliorare la visibilità dei costi e dell'utilizzo dettagliati da parte di team, unità aziendali, prodotti e altro ancora.

In questo post condividiamo suggerimenti e best practice per quanto riguarda l'allocazione dei costi per l'ambiente e i carichi di lavoro di SageMaker. In quasi tutti i servizi AWS, incluso SageMaker, l'applicazione di tag alle risorse è un modo standard per tenere traccia dei costi. Questi tag possono aiutarti a monitorare, segnalare e monitorare la tua spesa ML attraverso soluzioni pronte all'uso come Esplora costi AWS ed Budget AWS, nonché soluzioni personalizzate basate sui dati di Report sui costi e sull'utilizzo di AWS (CUR).

Tagging di allocazione dei costi

L'allocazione dei costi su AWS è un processo in tre fasi:

  1. allegare tag di allocazione dei costi alle tue risorse.
  2. Attiva i tuoi tag nel Tag di allocazione dei costi sezione della Console di fatturazione AWS.
  3. Utilizzare i tag per monitorare e filtrare i rapporti sull'allocazione dei costi.

Dopo aver creato e collegato i tag alle risorse, questi vengono visualizzati nella console di fatturazione di AWS Tag di allocazione dei costi sezione in Tag di allocazione dei costi definiti dall'utente. Possono essere necessarie fino a 24 ore prima che i tag vengano visualizzati dopo la loro creazione. Devi quindi attivare questi tag affinché AWS inizi a tracciarli per le tue risorse. In genere, dopo l'attivazione di un tag, sono necessarie circa 24–48 ore prima che i tag vengano visualizzati in Cost Explorer. Il modo più semplice per verificare se i tuoi tag funzionano è cercare il tuo nuovo tag nel filtro dei tag in Cost Explorer. Se è presente, sei pronto per utilizzare i tag per i rapporti sull'allocazione dei costi. Puoi quindi scegliere di raggruppare i risultati per chiavi di tag o filtrare per valori di tag, come mostrato nella schermata seguente.

Configura l'allocazione dei costi a livello aziendale per ambienti e carichi di lavoro ML utilizzando il tagging delle risorse in Amazon SageMaker PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

Una cosa da notare: se si utilizza Organizzazioni AWS e hanno account AWS collegati, i tag possono essere attivati ​​solo nell'account del pagatore principale. Facoltativamente, puoi anche attivare i CUR per gli account AWS che abilitano i report di allocazione dei costi come file CSV con l'utilizzo e i costi raggruppati in base ai tag attivi. Ciò ti offre un monitoraggio più dettagliato dei tuoi costi e semplifica la configurazione delle tue soluzioni di reporting personalizzate.

Etichettatura in SageMaker

Ad alto livello, la codifica delle risorse SageMaker può essere raggruppata in due bucket:

  • Etichettare anche l'ambiente del notebook SageMaker Amazon Sage Maker Studio domini e utenti di dominio o istanze notebook SageMaker
  • Tagging dei lavori gestiti da SageMaker (etichettatura, elaborazione, formazione, ottimizzazione degli iperparametri, trasformazione batch e altro) e delle risorse (come modelli, team di lavoro, configurazioni di endpoint ed endpoint)

Ne tratteremo più in dettaglio in questo post e forniamo alcune soluzioni su come applicare il controllo della governance per garantire una buona igiene dei tag.

Tagging di domini e utenti di SageMaker Studio

Studio è un ambiente di sviluppo integrato (IDE) per ML basato sul Web che consente di creare, addestrare, eseguire il debug, distribuire e monitorare i modelli ML. Puoi avviare rapidamente i notebook di Studio e aumentare o diminuire in modo dinamico le risorse di calcolo sottostanti senza interrompere il lavoro.

Per contrassegnare automaticamente queste risorse dinamiche, è necessario assegnare i tag al dominio SageMaker e agli utenti del dominio a cui è stato fornito l'accesso a tali risorse. È possibile specificare questi tag nel parametro tags di crea-dominio or crea-profilo-utente durante la creazione del profilo o del dominio, oppure puoi aggiungerli in un secondo momento utilizzando il Aggiungi i tag API. Studio copia e assegna automaticamente questi tag ai taccuini di Studio creati nel dominio o dagli utenti specifici. Puoi anche aggiungere tag ai domini SageMaker modificando le impostazioni del dominio nel Pannello di controllo di Studio.

Di seguito è riportato un esempio di assegnazione di tag al profilo durante la creazione.

aws sagemaker create-user-profile --domain-id  --user-profile-name data-scientist-full --tags Key=studiouserid,Value= --user-settings ExecutionRole=arn:aws:iam:::role/SageMakerStudioExecutionRole_datascientist-full

Per taggare domini e utenti esistenti, utilizza il add-tags API. I tag vengono quindi applicati a tutti i nuovi taccuini. Per applicare questi tag ai tuoi notebook esistenti, devi riavviare l'app Studio (Kernel Gateway e Jupyter Server) che appartiene a quel profilo utente. Ciò non causerà alcuna perdita di dati del notebook. Fare riferimento a questo Spegni e aggiorna le app SageMaker Studio e Studio per scoprire come eliminare e riavviare le app di Studio.

Configura l'allocazione dei costi a livello aziendale per ambienti e carichi di lavoro ML utilizzando il tagging delle risorse in Amazon SageMaker PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

Tagging delle istanze del notebook SageMaker

Nel caso di un'istanza notebook SageMaker, la codifica viene applicata all'istanza stessa. I tag vengono assegnati a tutte le risorse in esecuzione nella stessa istanza. È possibile specificare i tag a livello di codice utilizzando il parametro tags in creare-istanza-notebook API o aggiungerli tramite la console SageMaker durante la creazione dell'istanza. Puoi anche aggiungere o aggiornare i tag in qualsiasi momento utilizzando il Aggiungi i tag API o tramite la console SageMaker.

Tieni presente che ciò esclude i lavori gestiti da SageMaker e le risorse come i lavori di formazione ed elaborazione perché si trovano nell'ambiente di servizio anziché nell'istanza. Nella sezione successiva, esamineremo più dettagliatamente come applicare la codifica a queste risorse.

Tagging di lavori e risorse gestiti da SageMaker

Per i lavori e le risorse gestiti da SageMaker, è necessario applicare la codifica a tags attributo come parte di ogni richiesta API. Un SKLearnProcessor esempio è illustrato nel codice seguente. Puoi trovare altri esempi di come assegnare tag ad altri lavori e risorse gestiti da SageMaker sul Repository GitHub.

from sagemaker import get_execution_role
from sagemaker.sklearn.processing import SKLearnProcessor

processing_tags = [{' Key':"cost-center','Value':'TF2WorkflowProcessing'}]
sklearn_processorl = SKLearnProcessor(framework_version='0.23-1' ,
									 role=get_execution_role(),
									 instance_type='ml.m5.xlarge',
									 instance_count=2,
									 tags=processing_tags)

Tagging delle pipeline SageMaker

Nel caso delle pipeline SageMaker, puoi contrassegnare l'intera pipeline nel suo insieme anziché ogni singolo passaggio. La pipeline SageMaker propaga automaticamente i tag a ogni passaggio della pipeline. Hai ancora la possibilità di aggiungere tag aggiuntivi e separati ai singoli passaggi, se necessario. Nell'interfaccia utente di Studio, i tag della pipeline vengono visualizzati nella sezione dei metadati.

Configura l'allocazione dei costi a livello aziendale per ambienti e carichi di lavoro ML utilizzando il tagging delle risorse in Amazon SageMaker PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

Per applicare i tag a una pipeline, utilizza SageMaker Python SDK:

pipeline_tags = [ {'Key': 'pipeline-type', 'Value': 'TF2WorkflowPipeline'}]
pipeline.upsert(role_arn=role, tags=pipeline_tags)
execution = pipeline.start()

Applica la codifica utilizzando le policy IAM

Sebbene il tagging sia un meccanismo efficace per implementare strategie di governance e gestione del cloud, applicare il giusto comportamento di tagging può essere difficile se lo si lascia agli utenti finali. Come si impedisce la creazione di risorse ML se manca un tag specifico, come si assicura che vengano applicati i tag corretti e come si impedisce agli utenti di eliminare i tag esistenti?

Puoi farlo usando Gestione dell'identità e dell'accesso di AWS (IAM). Il codice seguente è un esempio di una politica che impedisce azioni SageMaker come CreateDomain or CreateNotebookInstance se la richiesta non contiene la chiave dell'ambiente e uno dei valori dell'elenco. Il ForAllValues modificatore con il aws:TagKeys condizione chiave indica che solo la chiave environment è consentito nella richiesta. Ciò impedisce agli utenti di includere altre chiavi, ad esempio l'utilizzo accidentale Environment invece di environment.

"sagemaker:CreateTrainingJob"
      ],
      "{
      "Sid": "SageMakerEnforceEnvtOnCreate",
      "Action": [
        "sagemaker:CreateDomain",
        "sagemaker:CreateEndpoint",
        "sagemaker:CreateNotebookInstance",
        Effect": "Allow",
      "Resource": "*",
  "Condition": {
            "StringEquals": {
                "aws:RequestTag/environment": [
                    "dev","staging","production"
                ]
            },
            "ForAllValues:StringEquals": {"aws:TagKeys": "environment"}
        }
      }

Criteri di tag ed politiche di controllo del servizio (SCP) possono anche essere un buon modo per standardizzare la creazione e l'etichettatura delle risorse ML. Per ulteriori informazioni su come implementare una strategia di tagging che imponga e convalidi il tagging a livello di organizzazione, fare riferimento a Serie di blog sull'allocazione dei costi n. 3: applica e convalida i tag delle risorse AWS.

Report sull'allocazione dei costi

È possibile visualizzare i tag filtrando le visualizzazioni su Cost Explorer, visualizzando a rapporto mensile sull'allocazione dei costi, o esaminando il CUR.

Visualizzazione dei tag in Cost Explorer

Cost Explorer è uno strumento che consente di visualizzare e analizzare i costi e l'utilizzo. Puoi esplorare l'utilizzo e i costi utilizzando il grafico principale: i rapporti sui costi e sull'utilizzo di Cost Explorer. Per un breve video su come utilizzare Cost Explorer, dai un'occhiata Come posso utilizzare Cost Explorer per analizzare la mia spesa e il mio utilizzo?

Con Cost Explorer puoi filtrare il modo in cui visualizzi i tuoi costi AWS in base ai tag. Raggruppa per ci consente di filtrare i risultati in base a chiavi di tag come Environment, Deployment, o Cost Center. Il filtro tag ci aiuta a selezionare il valore che desideriamo indipendentemente dalla chiave. Esempi inclusi Production ed Staging. Tieni presente che devi eseguire le risorse dopo aver aggiunto e attivato i tag; in caso contrario, Cost Explorer non disporrà di dati sull'utilizzo e il valore del tag non verrà visualizzato come filtro o raggruppamento per opzione.

Configura l'allocazione dei costi a livello aziendale per ambienti e carichi di lavoro ML utilizzando il tagging delle risorse in Amazon SageMaker PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

Lo screenshot seguente è un esempio di filtraggio in base a tutti i valori di BusinessUnit etichetta.

Configura l'allocazione dei costi a livello aziendale per ambienti e carichi di lavoro ML utilizzando il tagging delle risorse in Amazon SageMaker PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

Esame dei tag nel CUR

Il rapporto sui costi e sull'utilizzo contiene la serie più completa di dati disponibili sui costi e sull'utilizzo. Il report contiene elementi pubblicitari per ogni combinazione univoca di prodotto AWS, tipo di utilizzo e operazione utilizzata dal tuo account AWS. È possibile personalizzare il CUR per aggregare le informazioni in base all'ora o al giorno. Un rapporto mensile sull'allocazione dei costi è un modo per impostare il rapporto sull'allocazione dei costi. È possibile impostare un rapporto mensile sull'allocazione dei costi che elenca l'utilizzo di AWS per il tuo account per categoria di prodotto e utente dell'account collegato. Il rapporto contiene gli stessi elementi pubblicitari del rapporto di fatturazione dettagliato e colonne aggiuntive per le chiavi dei tag. Puoi configurarlo e scaricare il rapporto seguendo i passaggi in Report mensile sull'allocazione dei costi.

La schermata seguente mostra come vengono visualizzate le chiavi di tag definite dall'utente nella CUR. Le chiavi tag definite dall'utente hanno il prefisso user, come user:Department ed user:CostCenter. Le chiavi dei tag generate da AWS hanno il prefisso aws.

Configura l'allocazione dei costi a livello aziendale per ambienti e carichi di lavoro ML utilizzando il tagging delle risorse in Amazon SageMaker PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

Visualizza il CUR utilizzando Amazon Athena e Amazon QuickSight

Amazzone Atena è un servizio di query interattivo che semplifica l'analisi dei dati in Amazon S3 utilizzando SQL standard. Athena è serverless, quindi non c'è infrastruttura da gestire e paghi solo per le query che esegui. Per integrare Athena con i CUR, fare riferimento a Interrogazione di rapporti sui costi e sull'utilizzo utilizzando Amazon Athena. È quindi possibile creare query personalizzate per eseguire query sui dati CUR utilizzando SQL standard. Lo screenshot seguente è un esempio di una query per filtrare tutte le risorse che hanno il valore TF2WorkflowTraining per il cost-center etichetta.

select * from {$table_name} where resource_tags_user_cost-center= 'TF2WorkflowTraining'

Nell'esempio seguente, stiamo cercando di capire quali risorse mancano i valori sotto il cost-center etichetta.

SELECT
 bill_payer_account_id, line_item_usage_account_id, DATE_FORMAT((line_item_usage_start_date), '%Y-%m-%d') AS day_line_item_usage_start_date, line_item_resource_id, line_item_usage_type, resource_tags_user_cost-center
FROM
{$table_name} 
WHERE
 resource_tags_user_cost-center IS NULL
AND line_item_product_code = 'AmazonSageMaker'

Maggiori informazioni e domande di esempio possono essere trovate in Libreria di query AWS CUR.

Puoi anche inserire i dati CUR in Amazon QuickSight, dove puoi affettarlo e tagliarlo come preferisci per scopi di reportistica o visualizzazione. Per istruzioni sull'acquisizione dei dati CUR in QuickSight, vedere Come assimilare e visualizzare il rapporto sui costi e l'utilizzo (CUR) di AWS in Amazon QuickSight.

Monitoraggio del budget tramite tag

Budget AWS è un modo eccellente per fornire un avviso anticipato in caso di picchi di spesa imprevisti. Puoi creare budget personalizzati che ti avvisano quando i costi e l'utilizzo di ML superano (o si prevede che superino) le soglie definite dall'utente. Con AWS Budgets, puoi monitorare i tuoi costi ML mensili totali o filtrare i tuoi budget per tenere traccia dei costi associati a dimensioni di utilizzo specifiche. Ad esempio, puoi impostare l'ambito del budget per includere i costi delle risorse SageMaker contrassegnati come cost-center: ML-Marketing, come mostrato nella schermata seguente. Per ulteriori dimensioni e istruzioni dettagliate su come impostare Budget AWS, fai riferimento a qui.

Configura l'allocazione dei costi a livello aziendale per ambienti e carichi di lavoro ML utilizzando il tagging delle risorse in Amazon SageMaker PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

Con avvisi di budget, puoi inviare notifiche quando i tuoi limiti di budget sono (o stanno per essere) superati. Questi avvisi possono anche essere inviati a un Servizio di notifica semplice Amazon (Amazon SNS) argomento. Un AWS Lambda viene quindi richiamata la funzione che sottoscrive l'argomento SNS e può essere eseguita qualsiasi azione implementabile a livello di codice.

Budget AWS ti consente anche di configurare azioni di bilancio, che sono passaggi che puoi eseguire quando viene superata una soglia di budget (importi effettivi o previsti). Questo livello di controllo ti consente di ridurre la spesa eccessiva non intenzionale nel tuo account. Puoi configurare risposte specifiche al costo e all'utilizzo nel tuo account che verranno applicate automaticamente o tramite un processo di approvazione del flusso di lavoro quando viene superato un obiettivo di budget. Questa è una soluzione davvero potente per garantire che la spesa per il riciclaggio sia coerente con gli obiettivi dell'azienda. È possibile selezionare il tipo di azione da intraprendere. Ad esempio, quando viene superata una soglia di budget, puoi spostare utenti IAM specifici dalle autorizzazioni di amministratore alla modalità di sola lettura. Per i clienti che utilizzano Organizzazioni, puoi applicare azioni a un'intera unità organizzativa spostandole da amministratore a sola lettura. Per maggiori dettagli su come gestire i costi utilizzando le azioni di budget, fare riferimento a Come gestire il superamento dei costi nel tuo ambiente multi-account AWS – Parte 1.

Puoi anche impostare un rapporto per monitorare le prestazioni dei tuoi budget esistenti su una cadenza giornaliera, settimanale o mensile e fornire quel rapporto a un massimo di 50 indirizzi e-mail. Insieme a Report sui budget AWS, puoi combinare tutti i budget relativi a SageMaker in un unico rapporto. Questa funzione ti consente di tenere traccia del tuo footprint SageMaker da un'unica posizione, come mostrato nella schermata seguente. Puoi scegliere di ricevere questi rapporti con cadenza giornaliera, settimanale o mensile (ho scelto per questo esempio) e scegli il giorno della settimana in cui desideri riceverli.

Questa funzione è utile per mantenere aggiornati i tuoi stakeholder sui costi e l'utilizzo di SageMaker e aiutarli a vedere quando la spesa non è come ci si aspetta.

Configura l'allocazione dei costi a livello aziendale per ambienti e carichi di lavoro ML utilizzando il tagging delle risorse in Amazon SageMaker PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

Dopo aver impostato questa configurazione, dovresti ricevere un'e-mail simile alla seguente.

Configura l'allocazione dei costi a livello aziendale per ambienti e carichi di lavoro ML utilizzando il tagging delle risorse in Amazon SageMaker PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

Conclusione

In questo post, abbiamo mostrato come impostare la codifica dell'allocazione dei costi per SageMaker e abbiamo condiviso suggerimenti sulla codifica delle migliori pratiche per il tuo ambiente e carichi di lavoro SageMaker. Abbiamo quindi discusso diverse opzioni di reporting come Cost Explorer e CUR per aiutarti a migliorare la visibilità della tua spesa ML. Infine, abbiamo mostrato Budget AWS e il report di riepilogo del budget per aiutarti a monitorare la spesa ML della tua organizzazione.

Per ulteriori informazioni sull'applicazione e l'attivazione dei tag di allocazione dei costi, vedere Tag di allocazione dei costi definiti dall'utente.


Circa gli autori

Sean MorganSean Morgan è un architetto di soluzioni AI/ML presso AWS. Ha esperienza nel campo dei semiconduttori e della ricerca accademica e utilizza la sua esperienza per aiutare i clienti a raggiungere i propri obiettivi su AWS. Nel suo tempo libero, Sean è un attivo collaboratore e manutentore dell'open source ed è il capo del gruppo di interesse speciale per i componenti aggiuntivi di TensorFlow.

Configura l'allocazione dei costi a livello aziendale per ambienti e carichi di lavoro ML utilizzando il tagging delle risorse in Amazon SageMaker PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.Brent Rabowsky si concentra sulla scienza dei dati in AWS e sfrutta la sua esperienza per aiutare i clienti AWS con i propri progetti di scienza dei dati.

Configura l'allocazione dei costi a livello aziendale per ambienti e carichi di lavoro ML utilizzando il tagging delle risorse in Amazon SageMaker PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.Nilesh Shetty è Senior Technical Account Manager presso AWS, dove aiuta i clienti del supporto aziendale a semplificare le loro operazioni cloud su AWS. È appassionato di machine learning e ha esperienza di lavoro come consulente, architetto e sviluppatore. Al di fuori del lavoro, gli piace ascoltare musica e guardare lo sport.

Configura l'allocazione dei costi a livello aziendale per ambienti e carichi di lavoro ML utilizzando il tagging delle risorse in Amazon SageMaker PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.Giacomo Wu è un Senior AI/ML Specialist Solution Architect presso AWS. aiutare i clienti a progettare e realizzare soluzioni AI/ML. Il lavoro di James copre un'ampia gamma di casi d'uso di ML, con un interesse primario per la visione artificiale, il deep learning e la scalabilità del ML in tutta l'azienda. Prima di entrare in AWS, James è stato architetto, sviluppatore e leader tecnologico per oltre 10 anni, di cui 6 in ingegneria e 4 anni nei settori del marketing e della pubblicità.

Timestamp:

Di più da Apprendimento automatico di AWS