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 propri carichi di lavoro, a impostare limiti e a migliorare la visibilità dei costi e dell'utilizzo dei 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 Parte 1, abbiamo mostrato come iniziare a utilizzare Esplora costi AWS per identificare opportunità di ottimizzazione dei costi in SageMaker. In questo post ci concentreremo sugli ambienti di inferenza SageMaker: inferenza in tempo reale, trasformazione batch, inferenza asincrona e inferenza serverless.
SageMaker offre molteplici opzioni di inferenza tra cui scegliere in base ai requisiti del carico di lavoro:
- Inferenza in tempo reale per requisiti online, a bassa latenza o con velocità effettiva elevata
- Trasformazione batch per l'elaborazione offline e pianificata e quando non è necessario un endpoint persistente
- Inferenza asincrona per quando si hanno carichi utili di grandi dimensioni con tempi di elaborazione lunghi e si desidera mettere in coda le richieste
- Inferenza senza server per quando si hanno schemi di traffico intermittenti o imprevedibili e si possono tollerare le partenze a freddo
Nelle sezioni seguenti, discuteremo ciascuna opzione di inferenza in modo più dettagliato.
SageMaker inferenza in tempo reale
Quando crei un endpoint, SageMaker allega un file Negozio di blocchi elastici di Amazon (Amazon EBS) volume di archiviazione nel file Cloud di calcolo elastico di Amazon (Amazon EC2) che ospita l'endpoint. Questo vale per tutti i tipi di istanza che non sono dotati di storage SSD. Poiché i tipi di istanze d* sono dotati di uno storage SSD NVMe, SageMaker non collega un volume di storage EBS a queste istanze di calcolo ML. Fare riferimento a Volumi di archiviazione dell'istanza host per la dimensione dei volumi di storage che SageMaker collega per ciascun tipo di istanza per un singolo endpoint e per un endpoint multi-modello.
Il costo degli endpoint in tempo reale SageMaker si basa sull'ora di istanza consumata per ciascuna istanza mentre l'endpoint è in esecuzione, sul costo di GB al mese di storage fornito (volume EBS), nonché sui GB di dati elaborati in entrata e in uscita dell'istanza dell'endpoint, come delineato in Prezzi di Amazon SageMaker. In Cost Explorer puoi visualizzare i costi degli endpoint in tempo reale applicando un filtro sul tipo di utilizzo. I nomi di questi tipi di utilizzo sono strutturati come segue:
REGION-Host:instanceType
(per esempio,USE1-Host:ml.c5.9xlarge
)REGION-Host:VolumeUsage.gp2
(per esempio,USE1-Host:VolumeUsage.gp2
)REGION-Hst:Data-Bytes-Out
(per esempio,USE2-Hst:Data-Bytes-In
)REGION-Hst:Data-Bytes-Out
(per esempio,USW2-Hst:Data-Bytes-Out)
Come mostrato nello screenshot seguente, filtraggio in base al tipo di utilizzo Host:
mostrerà un elenco dei tipi di utilizzo dell'hosting in tempo reale in un account.
È possibile selezionare tipi di utilizzo specifici oppure selezionare Seleziona tutto e scegli APPLICA per visualizzare la ripartizione dei costi dell'utilizzo dell'hosting in tempo reale di SageMaker. Per visualizzare la suddivisione dei costi e dell'utilizzo in base alle ore di istanza, è necessario deselezionare tutti i REGION-Host:VolumeUsage.gp2
tipi di utilizzo prima di applicare il filtro del tipo di utilizzo. Puoi anche applicare filtri aggiuntivi come numero di account, tipo di istanza EC2, tag di allocazione dei costi, regione e Scopri di più. Lo screenshot seguente mostra i grafici dei costi e dell'utilizzo per i tipi di utilizzo dell'hosting selezionati.
Inoltre, puoi esplorare il costo associato a una o più istanze di hosting utilizzando il file Tipo di istanza filtro. Lo screenshot seguente mostra la suddivisione dei costi e dell'utilizzo per l'istanza di hosting ml.p2.xlarge.
Allo stesso modo, il costo per i dati in GB elaborati in ingresso ed in uscita può essere visualizzato selezionando i tipi di utilizzo associati come filtro applicato, come mostrato nello screenshot seguente.
Dopo aver ottenuto i risultati desiderati con filtri e raggruppamenti, puoi scaricare i risultati scegliendo Scarica come CSV o salvare il rapporto scegliendo Salva nella libreria dei rapporti. Per indicazioni generali sull'utilizzo di Cost Explorer, fare riferimento a Il nuovo look e i casi d'uso comuni di AWS Cost Explorer.
Facoltativamente, puoi abilitare Report sui costi e sull'utilizzo di AWS (AWS CUR) per ottenere informazioni dettagliate sui dati sui costi e sull'utilizzo per i tuoi account. AWS CUR contiene i dettagli orari del consumo AWS. È memorizzato in Servizio di archiviazione semplice Amazon (Amazon S3) nell'account del pagatore, che consolida i dati per tutti gli account collegati. Puoi eseguire query per analizzare le tendenze di utilizzo e intraprendere le azioni appropriate per ottimizzare i costi. Amazzone Atena è un servizio di query serverless che puoi utilizzare per analizzare i dati da AWS CUR in Amazon S3 utilizzando SQL standard. Ulteriori informazioni e query di esempio possono essere trovate in Libreria di query AWS CUR.
Puoi anche inserire i dati AWS CUR in Amazon QuickSight, dove puoi tagliarlo e tagliarlo a cubetti nel modo che preferisci per scopi di reporting o visualizzazione. Per istruzioni, vedere Come assimilare e visualizzare il rapporto sui costi e l'utilizzo (CUR) di AWS in Amazon QuickSight.
Puoi ottenere informazioni a livello di risorsa come ARN dell'endpoint, tipi di istanze dell'endpoint, tariffa oraria delle istanze, ore di utilizzo giornaliero e altro ancora da AWS CUR. Puoi anche includere tag di allocazione dei costi nella query per un ulteriore livello di granularità. La seguente query di esempio restituisce l'utilizzo delle risorse di hosting in tempo reale negli ultimi 3 mesi per l'account del pagatore specificato:
Lo screenshot seguente mostra i risultati ottenuti dall'esecuzione della query utilizzando Athena. Per ulteriori informazioni, fare riferimento a Interrogazione di rapporti sui costi e sull'utilizzo utilizzando Amazon Athena.
Il risultato della query mostra quell'endpoint mme-xgboost-housing
con l'istanza ml.x4.xlarge segnala 24 ore di runtime per più giorni consecutivi. La tariffa dell'istanza è di 0.24 USD/ora e il costo giornaliero per l'esecuzione per 24 ore è di 5.76 USD.
I risultati di AWS CUR possono aiutarti a identificare modelli di endpoint in esecuzione per giorni consecutivi in ciascuno degli account collegati, nonché endpoint con il costo mensile più elevato. Ciò può anche aiutarti a decidere se gli endpoint negli account non di produzione possono essere eliminati per risparmiare sui costi.
Ottimizza i costi per gli endpoint in tempo reale
Dal punto di vista della gestione dei costi, è importante identificare le istanze sottoutilizzate (o sovradimensionate) e allineare le dimensioni e il numero delle istanze, se necessario, ai requisiti del carico di lavoro. Vengono scritti parametri di sistema comuni come l'utilizzo di CPU/GPU e l'utilizzo della memoria Amazon Cloud Watch per tutte le istanze di hosting. Per gli endpoint in tempo reale, SageMaker rende disponibili numerosi parametri aggiuntivi in CloudWatch. Alcuni dei parametri comunemente monitorati includono il conteggio delle chiamate e gli errori di chiamata 4xx/5xx. Per un elenco completo delle metriche, fare riferimento a Monitora Amazon SageMaker con Amazon CloudWatch.
La metrica CPUUtilization
fornisce la somma dell'utilizzo di ogni singolo core della CPU. L'utilizzo della CPU di ciascun intervallo core è compreso tra 0 e 100. Ad esempio, se sono presenti quattro CPU, il file CPUUtilization
l'intervallo è compreso tra 0 e 400%. La metrica MemoryUtilization
è la percentuale di memoria utilizzata dai contenitori su un'istanza. Questo intervallo di valori è compreso tra 0 e 100%. Lo screenshot seguente mostra un esempio di parametri CloudWatch CPUUtilization
ed MemoryUtilization
per un'istanza endpoint ml.m4.10xlarge fornita con 40 vCPU e 160 GiB di memoria.
Questi grafici dei parametri mostrano un utilizzo massimo della CPU pari a circa il 3,000%, ovvero l'equivalente di 30 vCPU. Ciò significa che questo endpoint non utilizza più di 30 vCPU sulla capacità totale di 40 vCPU. Allo stesso modo, l'utilizzo della memoria è inferiore al 6%. Utilizzando queste informazioni, puoi eventualmente sperimentare un'istanza più piccola che possa soddisfare questa esigenza di risorse. Inoltre, il CPUUtilization
mostra un modello classico di domanda periodica alta e bassa della CPU, che rende questo endpoint un buon candidato per la scalabilità automatica. Puoi iniziare con un'istanza più piccola e aumentarla prima man mano che la domanda di calcolo cambia. Per informazioni, vedere Ridimensiona automaticamente i modelli Amazon SageMaker.
SageMaker è ottimo per testare nuovi modelli perché puoi facilmente distribuirli in un ambiente di test A/B utilizzando varianti di produzionee paghi solo quello che utilizzi. Ogni variante di produzione viene eseguita sulla propria istanza di calcolo e ti viene addebitato il costo per ora di istanza consumata per ogni istanza mentre la variante è in esecuzione.
SageMaker supporta anche varianti d'ombra, che hanno gli stessi componenti di una variante di produzione e vengono eseguiti nella propria istanza di calcolo. Con le varianti shadow, SageMaker distribuisce automaticamente il modello in un ambiente di test, instrada una copia delle richieste di inferenza ricevute dal modello di produzione al modello di test in tempo reale e raccoglie parametri prestazionali come latenza e throughput. Ciò ti consente di convalidare qualsiasi nuovo componente candidato dello stack di servizio del tuo modello prima di promuoverlo in produzione.
Una volta terminati i test e non utilizzi più l'endpoint o le varianti in modo estensivo, dovresti eliminarlo per risparmiare sui costi. Poiché il modello è archiviato in Amazon S3, puoi ricrearlo secondo necessità. È possibile rilevare automaticamente questi endpoint e intraprendere azioni correttive (come la loro eliminazione) utilizzando Eventi Amazon CloudWatch ed AWS Lambda funzioni. Ad esempio, puoi utilizzare il file Invocations
metrica per ottenere il numero totale di richieste inviate a un endpoint del modello e quindi rilevare se gli endpoint sono rimasti inattivi nell'ultimo numero di ore (senza invocazioni per un determinato periodo, ad esempio 24 ore).
Se disponi di diverse istanze di endpoint sottoutilizzate, considera opzioni di hosting come endpoint multi-modello (MME), endpoint multi-contenitore (MCE) e pipeline di inferenza seriale per consolidare l'utilizzo su un numero inferiore di istanze endpoint.
Per la distribuzione di modelli di inferenza in tempo reale e asincroni, puoi ottimizzare costi e prestazioni distribuendo modelli su SageMaker utilizzando Gravitone AWS. AWS Graviton è una famiglia di processori progettati da AWS che offrono il miglior rapporto qualità-prezzo e sono più efficienti dal punto di vista energetico rispetto alle loro controparti x86. Per indicazioni sulla distribuzione di un modello ML su istanze basate su AWS Graviton e dettagli sul vantaggio in termini di prestazioni in termini di prezzo, fare riferimento a Esegui carichi di lavoro di inferenza di machine learning su istanze basate su AWS Graviton con Amazon SageMaker. SageMaker supporta anche AWS Inferenza acceleratori attraverso il ml.inf2 famiglia di istanze per la distribuzione di modelli ML per l'inferenza in tempo reale e asincrona. Puoi utilizzare queste istanze su SageMaker per ottenere prestazioni elevate a basso costo per i modelli di intelligenza artificiale generativa (AI), inclusi modelli linguistici di grandi dimensioni (LLM) e trasformatori di visione.
Inoltre, puoi usare Raccomandatore di inferenza Amazon SageMaker per eseguire test di carico e valutare i vantaggi in termini di rapporto prezzo/prestazioni derivanti dalla distribuzione del modello su queste istanze. Per ulteriori indicazioni sul rilevamento automatico degli endpoint SageMaker inattivi, nonché sul corretto dimensionamento e scalabilità automatica delle istanze per gli endpoint SageMaker, fare riferimento a Garantisci risorse di calcolo efficienti su Amazon SageMaker.
Trasformazione batch SageMaker
Inferenza batch o inferenza offline, è il processo di generazione di previsioni su un lotto di osservazioni. Le previsioni offline sono adatte per set di dati più grandi e nei casi in cui puoi permetterti di attendere diversi minuti o ore per una risposta.
Il costo per la trasformazione batch SageMaker si basa sull'ora di istanza consumata per ciascuna istanza durante l'esecuzione del processo di trasformazione batch, come indicato in Prezzi di Amazon SageMaker. In Cost Explorer puoi esplorare i costi di trasformazione batch applicando un filtro sul tipo di utilizzo. Il nome di questo tipo di utilizzo è strutturato come REGION-Tsform:instanceType
(per esempio, USE1-Tsform:ml.c5.9xlarge
).
Come mostrato nello screenshot seguente, filtraggio per tipo di utilizzo Tsform:
mostrerà un elenco dei tipi di utilizzo della trasformazione batch SageMaker in un account.
È possibile selezionare tipi di utilizzo specifici oppure selezionare Seleziona tutto e scegli APPLICA per visualizzare la ripartizione dei costi di utilizzo dell'istanza di trasformazione batch per i tipi selezionati. Come accennato in precedenza, puoi anche applicare filtri aggiuntivi. Lo screenshot seguente mostra i grafici dei costi e dell'utilizzo per i tipi di utilizzo della trasformazione batch selezionati.
Ottimizza i costi per la trasformazione batch
La trasformazione batch di SageMaker ti addebita solo le istanze utilizzate durante l'esecuzione dei processi. Se i tuoi dati sono già in Amazon S3, non sono previsti costi per la lettura dei dati di input da Amazon S3 e la scrittura dei dati di output su Amazon S3. Viene tentato il caricamento di tutti gli oggetti di output su Amazon S3. Se tutti hanno esito positivo, il processo di trasformazione batch viene contrassegnato come completato. Se uno o più oggetti falliscono, il processo di trasformazione batch viene contrassegnato come non riuscito.
I costi per i processi di trasformazione batch si applicano nei seguenti scenari:
- Il lavoro ha successo
- Fallimento dovuto a
ClientError
e il contenitore del modello è SageMaker o un framework gestito da SageMaker - Fallimento dovuto a
AlgorithmError
orClientError
e il contenitore del modello è il tuo contenitore personalizzato (BYOC)
Di seguito sono riportate alcune delle migliori pratiche per ottimizzare un processo di trasformazione batch SageMaker. Questi consigli possono ridurre il tempo di esecuzione totale del processo di trasformazione batch, riducendo così i costi:
- Impostato BatchStrategia a
MultiRecord
edSplitType
aLine
se hai bisogno del lavoro di trasformazione batch per creare mini batch dal file di input. Se non è possibile suddividere automaticamente il set di dati in mini batch, è possibile suddividerlo in mini batch inserendo ciascun batch in un file di input separato, inserito nel bucket S3 dell'origine dati. - Assicurarsi che la dimensione del batch rientri nella memoria. SageMaker di solito lo gestisce automaticamente; tuttavia, quando si dividono i batch manualmente, questo deve essere regolato in base alla memoria.
- La trasformazione batch suddivide gli oggetti S3 nell'input in base alla chiave e mappa tali oggetti su istanze. Quando sono presenti più file, è possibile che venga elaborata un'istanza
input1.csv
e un'altra istanza potrebbe essere elaboratainput2.csv
. Se disponi di un file di input ma inizializzi più istanze di calcolo, solo un'istanza elabora il file di input e il resto delle istanze sono inattive. Assicurati che il numero di file sia uguale o maggiore del numero di istanze. - Se disponi di un numero elevato di file di piccole dimensioni, potrebbe essere utile combinare più file in un numero limitato di file più grandi per ridurre il tempo di interazione con Amazon S3.
- Se stai usando il Crea lavoro di trasformazione API, puoi ridurre il tempo necessario per completare i processi di trasformazione batch utilizzando valori ottimali per parametri come Carico utile massimo in MB, MaxConcurrentTransforms, o BatchStrategia:
MaxConcurrentTransforms
indica il numero massimo di richieste parallele che possono essere inviate a ciascuna istanza in un processo di trasformazione. Il valore ideale perMaxConcurrentTransforms
è uguale al numero di core vCPU in un'istanza.MaxPayloadInMB
è la dimensione massima consentita del payload, in MB. Il valore inMaxPayloadInMB
deve essere maggiore o uguale alla dimensione di un singolo record. Per stimare la dimensione di un record in MB, dividi la dimensione del tuo set di dati per il numero di record. Per garantire che i record rientrino nella dimensione massima del payload, ti consigliamo di utilizzare un valore leggermente più grande. Il valore predefinito è 6 MB.MaxPayloadInMB
non deve essere superiore a 100 MB. Se specifichi l'opzione facoltativaMaxConcurrentTransforms
parametro, quindi il valore di (MaxConcurrentTransforms
*MaxPayloadInMB
) non deve inoltre superare i 100 MB.- Nei casi in cui il payload potrebbe essere arbitrariamente grande e viene trasmesso utilizzando la codifica HTTP in blocchi, impostare il valore MaxPayloadInMB su 0. Questa funzionalità funziona solo con algoritmi supportati. Attualmente, gli algoritmi integrati di SageMaker non supportano la codifica in blocchi HTTP.
- Le attività di inferenza batch sono generalmente buoni candidati per il ridimensionamento orizzontale. Ogni lavoratore all'interno di un cluster può operare su un diverso sottoinsieme di dati senza la necessità di scambiare informazioni con altri lavoratori. AWS offre molteplici opzioni di archiviazione ed elaborazione che consentono la scalabilità orizzontale. Se una singola istanza non è sufficiente a soddisfare i tuoi requisiti di prestazioni, prendi in considerazione l'utilizzo di più istanze in parallelo per distribuire il carico di lavoro. Per considerazioni chiave sull'architettura dei processi di trasformazione batch, fare riferimento a Inferenza batch su larga scala con Amazon SageMaker.
- Monitora continuamente i parametri prestazionali dei tuoi processi di trasformazione batch SageMaker utilizzando CloudWatch. Cerca i colli di bottiglia, ad esempio un utilizzo elevato della CPU o della GPU, l'utilizzo della memoria o il throughput della rete, per determinare se è necessario modificare le dimensioni o le configurazioni delle istanze.
- SageMaker utilizza Amazon S3 API di caricamento multiparte per caricare i risultati di un processo di trasformazione batch su Amazon S3. Se si verifica un errore, i risultati caricati vengono rimossi da Amazon S3. In alcuni casi, ad esempio quando si verifica un'interruzione della rete, un caricamento in più parti incompleto potrebbe rimanere in Amazon S3. Per evitare di incorrere in costi di giacenza, ti consigliamo di aggiungere il Politica del bucket S3 alle regole del ciclo di vita del bucket S3. Questa policy elimina i caricamenti in più parti incompleti che potrebbero essere archiviati nel bucket S3. Per ulteriori informazioni, vedere Gestire il ciclo di vita dello storage.
Inferenza asincrona di SageMaker
L'inferenza asincrona è un'ottima scelta per carichi di lavoro sensibili ai costi con carichi utili di grandi dimensioni e traffico burst. L'elaborazione delle richieste può richiedere fino a 1 ora e le dimensioni del payload arrivano fino a 1 GB, quindi è più adatto per carichi di lavoro con requisiti di latenza ridotti.
Il richiamo degli endpoint asincroni è diverso dagli endpoint in tempo reale. Invece di passare un payload della richiesta in modo sincrono con la richiesta, carichi il payload su Amazon S3 e passi un URI S3 come parte della richiesta. Internamente, SageMaker mantiene una coda con queste richieste e le elabora. Durante la creazione dell'endpoint, è possibile facoltativamente specificare un file Servizio di notifica semplice Amazon (Amazon SNS) per ricevere notifiche di operazioni riuscite o di errori. Quando ricevi la notifica che la tua richiesta di inferenza è stata elaborata correttamente, puoi accedere al risultato nella posizione di output Amazon S3.
Il costo per l'inferenza asincrona si basa sull'ora di istanza consumata per ciascuna istanza mentre l'endpoint è in esecuzione, sul costo di GB al mese di storage assegnato, nonché sui GB di dati elaborati in entrata e in uscita dall'istanza dell'endpoint, come indicato in Prezzi di Amazon SageMaker. In Cost Explorer è possibile filtrare i costi di inferenza asincrona applicando un filtro sul tipo di utilizzo. Il nome di questo tipo di utilizzo è strutturato come REGION-AsyncInf:instanceType
(per esempio, USE1-AsyncInf:ml.c5.9xlarge
). Tieni presente che i tipi di utilizzo del volume GB e dei dati GB elaborati sono gli stessi degli endpoint in tempo reale, come menzionato in precedenza in questo post.
Come mostrato nello screenshot seguente, filtraggio in base al tipo di utilizzo AsyncInf:
in Cost Explorer visualizza una ripartizione dei costi in base ai tipi di utilizzo degli endpoint asincroni.
Per visualizzare la suddivisione dei costi e dell'utilizzo in base alle ore di istanza, è necessario deselezionare tutti i REGION-Host:VolumeUsage.gp2
tipi di utilizzo prima di applicare il filtro del tipo di utilizzo. Puoi anche applicare filtri aggiuntivi. Informazioni a livello di risorsa come l'ARN dell'endpoint, i tipi di istanza dell'endpoint, la tariffa oraria delle istanze e le ore di utilizzo giornaliero possono essere ottenute da AWS CUR. Di seguito è riportato un esempio di query AWS CUR per ottenere l'utilizzo delle risorse di hosting asincrone negli ultimi 3 mesi:
Lo screenshot seguente mostra i risultati ottenuti dall'esecuzione della query AWS CUR utilizzando Athena.
Il risultato della query mostra quell'endpoint sagemaker-abc-model-5
con l'istanza ml.m5.xlarge segnala 24 ore di runtime per più giorni consecutivi. La tariffa dell'istanza è di 0.23 USD/ora e il costo giornaliero per l'esecuzione per 24 ore è di 5.52 USD.
Come accennato in precedenza, i risultati di AWS CUR possono aiutarti a identificare modelli di endpoint in esecuzione per giorni consecutivi, nonché endpoint con il costo mensile più elevato. Ciò può anche aiutarti a decidere se gli endpoint negli account non di produzione possono essere eliminati per risparmiare sui costi.
Ottimizza i costi per l'inferenza asincrona
Proprio come per gli endpoint in tempo reale, il costo per gli endpoint asincroni si basa sull'utilizzo del tipo di istanza. Pertanto, è importante identificare le istanze sottoutilizzate e ridimensionarle in base ai requisiti del carico di lavoro. Per monitorare gli endpoint asincroni, SageMaker crea diverse metriche ad esempio ApproximateBacklogSize
, HasBacklogWithoutCapacity
e altro ancora disponibile in CloudWatch. Questi parametri possono mostrare le richieste in coda per un'istanza e possono essere utilizzati per il dimensionamento automatico di un endpoint. L'inferenza asincrona di SageMaker include anche parametri a livello di host. Per informazioni sulle metriche a livello di host, vedere SageMaker Jobs e metriche degli endpoint. Questi parametri possono mostrare l'utilizzo delle risorse che può aiutarti a dimensionare correttamente l'istanza.
SageMaker supporta ridimensionamento automatico per endpoint asincroni. A differenza degli endpoint ospitati in tempo reale, gli endpoint di inferenza asincrona supportano la riduzione delle istanze a zero impostando la capacità minima su zero. Per gli endpoint asincroni, SageMaker consiglia vivamente di creare una configurazione di policy per il dimensionamento del tracciamento degli obiettivi per un modello distribuito (variante). È necessario definire la policy di dimensionamento adattata al file ApproximateBacklogPerInstance
metrica personalizzata e impostare il MinCapacity
valore a zero.
L'inferenza asincrona ti consente di risparmiare sui costi scalando automaticamente il conteggio delle istanze a zero quando non ci sono richieste da elaborare, quindi paghi solo quando l'endpoint sta elaborando le richieste. Le richieste ricevute quando sono presenti zero istanze vengono accodate per l'elaborazione dopo l'incremento dell'endpoint. Pertanto, per i casi d'uso che possono tollerare una penalità di avvio a freddo di alcuni minuti, è possibile facoltativamente ridurre il conteggio delle istanze dell'endpoint a zero quando non sono presenti richieste in sospeso e aumentarlo all'arrivo di nuove richieste. L'ora di avvio a freddo dipende dal tempo necessario per avviare un nuovo endpoint da zero. Inoltre, se il modello stesso è grande, i tempi potrebbero essere più lunghi. Se si prevede che il tuo lavoro richieda più tempo del tempo di elaborazione di 1 ora, potresti prendere in considerazione la trasformazione batch di SageMaker.
Inoltre, puoi anche considerare il tempo di coda della tua richiesta combinato con il tempo di elaborazione per scegliere il tipo di istanza. Ad esempio, se il tuo caso d'uso può tollerare ore di attesa, puoi scegliere un'istanza più piccola per risparmiare sui costi.
Per ulteriori indicazioni sul corretto dimensionamento delle istanze e sulla scalabilità automatica per gli endpoint SageMaker, fare riferimento a Garantisci risorse di calcolo efficienti su Amazon SageMaker.
Inferenza senza server
L'inferenza serverless consente di distribuire modelli ML per l'inferenza senza dover configurare o gestire l'infrastruttura sottostante. In base al volume di richieste di inferenza ricevute dal tuo modello, l'inferenza serverless di SageMaker fornisce, ridimensiona e disattiva automaticamente la capacità di elaborazione. Di conseguenza, paghi solo il tempo di calcolo necessario per eseguire il codice di inferenza e la quantità di dati elaborati, non il tempo di inattività. Per gli endpoint serverless, il provisioning delle istanze non è necessario. È necessario fornire il file dimensione della memoria e massima concorrenza. Poiché gli endpoint serverless forniscono risorse di calcolo su richiesta, l'endpoint potrebbe riscontrare alcuni secondi aggiuntivi di latenza (avvio a freddo) per la prima chiamata dopo un periodo di inattività. Si paga per la capacità di elaborazione utilizzata per elaborare le richieste di inferenza, fatturata in millisecondi, GB al mese di spazio di archiviazione fornito e la quantità di dati elaborati. Il costo del calcolo dipende dalla configurazione di memoria scelta.
In Cost Explorer puoi filtrare i costi degli endpoint serverless applicando un filtro sul tipo di utilizzo. Il nome di questo tipo di utilizzo è strutturato come REGION-ServerlessInf:Mem-MemorySize
(per esempio, USE2-ServerlessInf:Mem-4GB
). Tieni presente che i tipi di utilizzo del volume GB e dei dati GB elaborati sono gli stessi degli endpoint in tempo reale.
Puoi visualizzare la ripartizione dei costi applicando filtri aggiuntivi come numero di account, tipo di istanza, regione e altro. Lo screenshot seguente mostra la suddivisione dei costi applicando filtri per il tipo di utilizzo dell'inferenza serverless.
Ottimizza i costi per l'inferenza serverless
Quando configuri il tuo endpoint serverless, puoi specificare la dimensione della memoria e il numero massimo di invocazioni simultanee. L'inferenza serverless di SageMaker assegna automaticamente le risorse di elaborazione proporzionali alla memoria selezionata. Se scegli una dimensione di memoria maggiore, il tuo contenitore avrà accesso a più vCPU. Con l'inferenza serverless, paghi solo per la capacità di elaborazione utilizzata per elaborare le richieste di inferenza, fatturata al millisecondo, e per la quantità di dati elaborati. Il costo del calcolo dipende dalla configurazione di memoria scelta. Le dimensioni della memoria che puoi scegliere sono 1024 MB, 2048 MB, 3072 MB, 4096 MB, 5120 MB e 6144 MB. Il prezzo aumenta con l'incremento della dimensione della memoria, come spiegato in Prezzi di Amazon SageMaker, quindi è importante selezionare la dimensione di memoria corretta. Come regola generale, la dimensione della memoria dovrebbe essere almeno pari alla dimensione del modello. Tuttavia, è consigliabile fare riferimento all'utilizzo della memoria quando si decide la dimensione della memoria dell'endpoint, oltre alla dimensione del modello stesso.
Best practice generali per ottimizzare i costi di inferenza di SageMaker
L'ottimizzazione dei costi di hosting non è un evento una tantum. Si tratta di un processo continuo di monitoraggio dell'infrastruttura distribuita, dei modelli di utilizzo e delle prestazioni, oltre a tenere d'occhio le nuove soluzioni innovative rilasciate da AWS che potrebbero incidere sui costi. Considera le seguenti best practice:
- Scegli un tipo di istanza appropriato – SageMaker supporta più tipi di istanza, ciascuno con diverse combinazioni di CPU, GPU, memoria e capacità di archiviazione. In base ai requisiti di risorse del tuo modello, scegli un tipo di istanza che fornisca le risorse necessarie senza provisioning eccessivo. Per informazioni sui tipi di istanze SageMaker disponibili, le relative specifiche e indicazioni sulla selezione dell'istanza giusta, fare riferimento a Garantisci risorse di calcolo efficienti su Amazon SageMaker.
- Testare utilizzando la modalità locale – Per rilevare errori ed eseguire il debug più velocemente, si consiglia di testare il codice e il contenitore (in caso di BYOC) in modalità locale prima di eseguire il carico di lavoro di inferenza sull'istanza SageMaker remota. La modalità locale è un ottimo modo per testare i tuoi script prima di eseguirli in un ambiente di hosting gestito da SageMaker.
- Ottimizza i modelli per essere più performanti – I modelli non ottimizzati possono portare a tempi di esecuzione più lunghi e utilizzare più risorse. Puoi scegliere di utilizzare più istanze o più grandi per migliorare le prestazioni; tuttavia, ciò comporta costi più elevati. Ottimizzando i modelli affinché siano più performanti, potresti riuscire a ridurre i costi utilizzando meno istanze o istanze più piccole mantenendo le stesse o migliori caratteristiche prestazionali. Puoi usare Amazon Sage Maker Neo con l'inferenza di SageMaker per ottimizzare automaticamente i modelli. Per ulteriori dettagli ed esempi, vedere Ottimizza le prestazioni del modello utilizzando Neo.
- Utilizza tag e strumenti di gestione dei costi – Per mantenere la visibilità sui carichi di lavoro di inferenza, è consigliabile utilizzare tag e strumenti di gestione dei costi AWS come Budget AWS, le Console di fatturazione AWSe la funzionalità di previsione di Cost Explorer. Puoi anche esplorare i piani di risparmio SageMaker come modello di prezzo flessibile. Per ulteriori informazioni su queste opzioni, fare riferimento a Parte 1 di questa serie.
Conclusione
In questo post abbiamo fornito indicazioni sull'analisi dei costi e sulle migliori pratiche quando si utilizzano le opzioni di inferenza di SageMaker. Poiché il machine learning si afferma come uno strumento potente in tutti i settori, la formazione e l’esecuzione di modelli ML devono rimanere convenienti. SageMaker offre un set di funzionalità ampio e approfondito per facilitare ogni passaggio della pipeline ML e offre opportunità di ottimizzazione dei costi senza influire sulle prestazioni o sull'agilità. Contatta il tuo team AWS per indicazioni sui costi dei tuoi carichi di lavoro SageMaker.
Informazioni sugli autori
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.
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 tutto ciò che riguarda il machine learning per progettare, costruire e operare su larga scala. Nel tempo libero gli piace andare in bicicletta, fare escursioni e arrampicarsi su roccia.
- Distribuzione di contenuti basati su SEO e PR. Ricevi amplificazione oggi.
- PlatoAiStream. Intelligenza dei dati Web3. Conoscenza amplificata. Accedi qui.
- Coniare il futuro con Adryenn Ashley. Accedi qui.
- Acquista e vendi azioni in società PRE-IPO con PREIPO®. Accedi qui.
- Fonte: https://aws.amazon.com/blogs/machine-learning/part-5-analyze-amazon-sagemaker-spend-and-determine-cost-optimization-opportunities-based-on-usage-part-5-hosting/
- :ha
- :È
- :non
- :Dove
- $ SU
- 000
- 1
- 100
- 2021
- 24
- 30
- 40
- 500
- 7
- 8
- a
- capace
- WRI
- acceleratori
- accesso
- Il mio account
- conti
- Raggiungere
- raggiunto
- operanti in
- Action
- azioni
- aggiungere
- aggiunta
- aggiuntivo
- Africa
- Dopo shavasana, sedersi in silenzio; saluti;
- AI
- AI / ML
- Algoritmi
- Tutti
- assegnazione
- consente
- già
- anche
- Amazon
- Amazon EC2
- Amazon Sage Maker
- Amazon Web Services
- quantità
- an
- .
- analizzare
- ed
- Un altro
- in qualsiasi
- più
- api
- applicato
- APPLICA
- AMMISSIONE
- opportuno
- circa
- SONO
- artificiale
- intelligenza artificiale
- Intelligenza artificiale (AI)
- AS
- associato
- At
- allegare
- tentato
- auto
- automaticamente
- disponibile
- evitare
- AWS
- precedente
- basato
- BE
- perché
- stato
- prima
- sotto
- benefico
- beneficio
- vantaggi
- MIGLIORE
- best practice
- Meglio
- Big
- maggiore
- fatturazione
- Bloccare
- Guasto
- portare
- costruire
- incassato
- ma
- by
- Materiale
- candidato
- i candidati
- capacità
- Ultra-Grande
- Custodie
- casi
- certo
- Modifiche
- caratteristiche
- carica
- carico
- oneri
- scegliere
- Scegli
- la scelta
- classico
- arrampicata
- Cluster
- codice
- freddo
- combinazioni
- combinare
- combinato
- Venire
- viene
- Uncommon
- comunemente
- completamento di una
- componente
- componenti
- Calcolare
- computer
- Visione computerizzata
- concorrente
- Configurazione
- consecutivo
- Prendere in considerazione
- Considerazioni
- consolidare
- consolida
- consumato
- consumo
- Contenitore
- Tecnologie Container
- contiene
- continuo
- Nucleo
- correggere
- Costo
- Gestione dei costi
- costo effettivo
- Costi
- potuto
- creare
- creazione
- Attualmente
- costume
- Clienti
- alle lezioni
- dati
- dataset
- Giorni
- decide
- Decidere
- deep
- apprendimento profondo
- Predefinito
- Richiesta
- dipende
- schierare
- schierato
- distribuzione
- deployment
- Distribuisce
- Design
- progettato
- desiderato
- dettaglio
- dettagli
- Determinare
- diverso
- discutere
- Dsiplay
- display
- distribuire
- do
- non
- fatto
- Dont
- doppio
- giù
- scaricare
- dovuto
- durante
- ogni
- In precedenza
- facilmente
- est
- ecosistema
- efficiente
- o
- e potenza
- che abilita
- enable
- Abilita
- endpoint
- energia
- accrescere
- garantire
- Impresa
- Ambiente
- ambienti
- pari
- Equivalente
- errore
- errori
- stabilisce
- stima
- Europa
- valutare
- Evento
- esempio
- superare
- exchange
- previsto
- esperienza
- esperimento
- ha spiegato
- esplora
- esploratore
- descrive
- extra
- occhio
- facilitando
- FAIL
- fallito
- famiglia
- più veloce
- caratteristica
- pochi
- meno
- Compila il
- File
- filtro
- filtraggio
- filtri
- Nome
- in forma
- flessibile
- Focus
- i seguenti
- segue
- Nel
- essere trovato
- quattro
- da
- pieno
- funzioni
- Inoltre
- Guadagno
- Generale
- la generazione di
- generativo
- AI generativa
- ottenere
- dato
- buono
- GPU
- grafici
- grande
- maggiore
- Gruppo
- guida
- Maniglie
- Avere
- avendo
- he
- Aiuto
- aiutato
- suo
- Alta
- superiore
- massimo
- il suo
- Orizzontale
- ospitato
- di hosting
- costi di hosting
- padroni di casa
- ora
- ORE
- Come
- Tutorial
- Tuttavia
- HTML
- http
- HTTPS
- centinaia
- i
- ideale
- identificare
- Idle
- if
- Impact
- impatto
- importante
- competenze
- in
- includere
- inclusi
- Compreso
- Aumenta
- indica
- individuale
- industrie
- informazioni
- Infrastruttura
- creativi e originali
- ingresso
- intuizioni
- esempio
- istruzioni
- Intelligence
- interazione
- internamente
- ai miglioramenti
- Introduzione
- coinvolgendo
- Israele
- IT
- SUO
- stessa
- Lavoro
- Offerte di lavoro
- jpg
- Acuto
- conservazione
- Le
- Lingua
- grandi
- superiore, se assunto singolarmente.
- Cognome
- Latenza
- lanciare
- lanciato
- portare
- Leads
- imparato
- apprendimento
- meno
- Lezioni
- Lezioni apprese
- Livello
- Leva
- ciclo di vita
- piace
- linea
- connesso
- Lista
- letteratura
- caricare
- locale
- località
- Lunghi
- più a lungo
- Guarda
- Basso
- inferiore
- Abbattimento dei Costi
- macchina
- machine learning
- mantenere
- Mantenere
- mantiene
- make
- FA
- gestire
- gestito
- gestione
- Strumenti di gestione
- direttore
- manualmente
- Maps
- segnato
- partita
- massimo
- Maggio..
- si intende
- Soddisfare
- Memorie
- menzionato
- metrico
- Metrica
- In mezzo
- Medio Oriente
- forza
- ordine
- Minuti
- ML
- Moda
- modello
- modelli
- Monitorare
- monitorati
- monitoraggio
- Mese
- mensile
- mese
- Scopri di più
- Film
- Endpoint multimodello
- multiplo
- Musica
- devono obbligatoriamente:
- Nome
- nomi
- necessaria
- Bisogno
- di applicazione
- esigenze
- Rete
- INTERRUZIONE DELLA RETE
- New
- nlp
- no
- notifica
- notifiche
- numero
- oggetti
- ottenere
- ottenuto
- of
- MENO
- Offerte
- offline
- on
- ONE
- online
- esclusivamente
- operare
- Opportunità
- ottimale
- ottimizzazione
- OTTIMIZZA
- ottimizzazione
- Opzione
- Opzioni
- or
- minimo
- organizzazioni
- Altro
- su
- interruzione
- delineato
- produzione
- eccezionale
- ancora
- proprio
- Parallel
- parametro
- parametri
- parte
- passare
- Di passaggio
- appassionato
- passato
- Cartamodello
- modelli
- Paga le
- percentuale
- performance
- periodo
- periodico
- prospettiva
- scegliere
- conduttura
- piano
- piani
- Platone
- Platone Data Intelligence
- PlatoneDati
- politica
- forse
- Post
- Post
- potente
- pratica
- pratiche
- Previsioni
- prezzo
- prezzi
- modello di prezzo
- Proactive
- processi
- Elaborato
- i processi
- lavorazione
- processori
- Produzione
- promuovere
- fornire
- purché
- fornisce
- fornitura
- fornitura
- fini
- Mettendo
- query
- gamma
- tasso
- piuttosto
- raggiungere
- Lettura
- di rose
- tempo reale
- ricevere
- ricevuto
- riceve
- raccomandare
- raccomandazioni
- raccomandato
- raccomanda
- record
- record
- ridurre
- regione
- Uscite
- rimanere
- a distanza
- rimosso
- rapporto
- Reportistica
- Report
- richiesta
- richieste
- necessario
- Requisiti
- risorsa
- Risorse
- risposta
- REST
- colpevole
- Risultati
- problemi
- destra
- Roccia
- Rotolo
- percorsi
- Regola
- norme
- Correre
- running
- sagemaker
- Inferenza di SageMaker
- stesso
- Risparmi
- Risparmio
- Scala
- bilancia
- scala
- Scenari
- in programma
- graffiare
- script
- secondo
- sezioni
- vedere
- selezionato
- Selezione
- anziano
- inviato
- separato
- Serie
- serverless
- servizio
- Servizi
- servizio
- set
- regolazione
- alcuni
- Shadow
- Condividi
- lei
- dovrebbero
- mostrare attraverso le sue creazioni
- ha mostrato
- mostrato
- Spettacoli
- Allo stesso modo
- Un'espansione
- da
- singolo
- Taglia
- Dimensioni
- Taglia
- piccole
- inferiore
- So
- Soluzioni
- alcuni
- Fonte
- specialista
- specifico
- Specifiche tecniche
- spendere
- dividere
- pila
- Standard
- inizia a
- iniziato
- step
- conservazione
- memorizzati
- fortemente
- strutturato
- il successo
- di successo
- Con successo
- tale
- sufficiente
- adatto
- supporto
- supporto proattivo
- supportato
- supporti
- sistema
- TAG
- Fai
- prende
- task
- team
- Consulenza
- test
- Testing
- test
- di
- che
- Il
- loro
- Li
- poi
- Là.
- in tal modo
- perciò
- Strumenti Bowman per analizzare le seguenti finiture:
- cose
- questo
- quelli
- Attraverso
- portata
- tempo
- volte
- a
- strumenti
- argomento
- Totale
- traffico
- Training
- Trasformare
- trasformatori
- tendenze
- vero
- si
- Digitare
- Tipi di
- sottostante
- a differenza di
- imprevedibile
- caricato
- Impiego
- uso
- caso d'uso
- utilizzato
- usa
- utilizzando
- generalmente
- Utilizzando
- CONVALIDARE
- APPREZZIAMO
- Valori
- Variante
- vario
- Visualizza
- visibilità
- visione
- visualizzazione
- volume
- volumi
- aspettare
- volere
- Modo..
- we
- sito web
- servizi web
- WELL
- Che
- quando
- se
- quale
- while
- largo
- Vasta gamma
- volere
- con
- entro
- senza
- lavorato
- lavoratore
- lavoratori
- lavori
- scrittura
- scritto
- Tu
- Trasferimento da aeroporto a Sharm
- zefiro
- zero