Distribuire modelli con Inferenza serverless Amazon SageMaker - Amazon SageMaker AI

Distribuire modelli con Inferenza serverless Amazon SageMaker

Inferenza Serverless SageMaker Amazon è un'opzione di inferenza appositamente progettata che consente di distribuire e scalare modelli ML senza configurare o gestire alcuna infrastruttura sottostante. Inferenza Serverless On-demand è ideale per carichi di lavoro che presentano periodi di inattività tra picchi di traffico e possono tollerare avvii a freddo. Gli endpoint serverless avviano automaticamente le risorse di calcolo e le ridimensionano in base al traffico, eliminando la necessità di scegliere i tipi di istanza o gestire le policy di scalabilità. In questo modo si elimina l'onere indifferenziato della selezione e della gestione dei server. Inferenza Serverless si integra con AWS Lambda per offrire elevata disponibilità, tolleranza agli errori integrata e scalabilità automatica. Con un modello pay-per-use, Inferenza Serverless è un'opzione conveniente in caso di modelli di traffico poco frequente o imprevedibile. Nei periodi in cui non ci sono richieste, Inferenza Serverless ridimensiona l'endpoint fino a 0, aiutandoti a ridurre al minimo i costi. Per ulteriori informazioni sui prezzi di Inferenza Serverless on-demand, consulta la pagina dei Prezzi di Amazon SageMaker.

Facoltativamente, puoi anche utilizzare Simultaneità con provisioning con Inferenza Serverless. Inferenza Serverless con simultaneità con provisioning è un'opzione conveniente in caso di picchi di traffico prevedibili. Simultaneità con provisioning consente di implementare modelli su endpoint serverless con prestazioni prevedibili ed elevata scalabilità, mantenendo gli endpoint sempre al caldo. SageMaker AI garantisce che, per il numero di Simultaneità con provisioning allocato, le risorse di calcolo siano inizializzate e pronte a rispondere entro pochi millisecondi. Per Inferenza Serverless con Simultaneità con provisioning, paghi in base alla capacità di calcolo utilizzata per elaborare le richieste di inferenza, fatturate in millisecondi, e alla quantità di dati elaborati. Paghi anche per l'utilizzo di Simultaneità con provisioning, in base alla memoria configurata, alla durata fornita e alla quantità di concorrenza abilitata. Per ulteriori informazioni sui prezzi di Inferenza Serverless con Simultaneità con provisioning, consulta la pagina dei Prezzi di Amazon SageMaker.

Puoi integrare Inferenza Serverless con le tue pipeline MLOps per semplificare il flusso di lavoro ML e puoi utilizzare un endpoint serverless per ospitare un modello registrato con Model Registry.

Inferenza Serverless è generalmente disponibile in 21 Regioni AWS: Stati Uniti orientali (Virginia settentrionale), Stati Uniti orientali (Ohio), Stati Uniti occidentali (California settentrionale), Stati Uniti occidentali (Oregon), Africa (Città del Capo), Asia Pacifico (Hong Kong), Asia Pacifico (Mumbai), Asia Pacific (Tokyo), Asia Pacifico (Seoul), Asia Pacifico (Osaka), Asia Pacifico (Singapore), Asia Pacifico (Sydney), Canada (Centrale), Europa (Francoforte), Europa (Irlanda), Europa (Londra), Europa (Parigi), Europa (Stoccolma), Europa (Milano), Medio Oriente (Bahrein), Sud America (San Paolo). Per ulteriori informazioni sulla disponibilità regionale di Amazon SageMaker AI, consulta l’elenco dei servizi per Regione AWS.

Come funziona

Il diagramma seguente mostra il flusso di lavoro di Inferenza Serverless on-demand e i vantaggi dell'utilizzo di un endpoint serverless.

Diagramma che mostra il flusso di lavoro di Inferenza serverless.

Quando crei un endpoint serverless on demand, SageMaker AI fornisce e gestisce le risorse di calcolo per te. Quindi, puoi effettuare richieste di inferenza all'endpoint e ricevere previsioni del modello in risposta. SageMaker AI aumenta e riduce le risorse di calcolo in base alle esigenze per gestire il traffico delle richieste e paghi solo per ciò che utilizzi.

Per Simultaneità con provisioning, Inferenza Serverless si integra anche con Ridimensionamento automatico dell’applicazione, in modo da poter gestire Simultaneità con provisioning in base a un parametro destinazione o a una pianificazione. Per ulteriori informazioni, consulta Dimensionamento automatico del provisioning simultaneo per un endpoint serverless.

Nelle sezioni seguenti vengono forniti ulteriori dettagli sull'inferenza serverless e sul relativo funzionamento.

Supporto container

Per il tuo container endpoint, puoi scegliere un container fornito da SageMaker AI o portarne uno tuo. SageMaker AI fornisce container per i suoi algoritmi integrati e immagini Docker predefinite per alcuni dei framework di machine learning più comuni, come Apache MXNet, TensorFlow, PyTorch e Chainer. Per un elenco delle immagini SageMaker disponibili, consulta Available Deep Learning Containers Images. Se stai portando il tuo container, devi modificarlo per farlo funzionare con SageMaker AI. Per informazioni sull'uso del tuo container, consulta Adattare un container di inferenza personalizzato per Amazon SageMaker AI.

La dimensione massima dell'immagine del container che è possibile utilizzare è di 10 GB. Per gli endpoint serverless, consigliamo di creare un solo worker nel container e caricare solo una copia del modello. Tieni presente che ciò è diverso dagli endpoint in tempo reale, in cui alcuni container SageMaker AI possono creare un worker per ogni vCPU per elaborare le richieste di inferenza e caricare il modello in ogni worker.

Se disponi già di un container per un endpoint in tempo reale, puoi utilizzare lo stesso container per l'endpoint serverless, sebbene alcune funzionalità siano escluse. Per ulteriori informazioni sulle funzionalità dei container che non sono supportate in Inferenza Serverless, consulta Esclusione delle funzionalità. Se scegli di utilizzare lo stesso container, SageMaker AI custodisce (mantiene) una copia dell’immagine del container fino a quando non si eliminano tutti gli endpoint che utilizzano l’immagine. SageMaker AI crittografa l’immagine copiata a riposo con una chiave AWS KMS di proprietà di SageMaker AI.

Dimensioni memoria

L'endpoint serverless ha una dimensione RAM minima di 1024 MB (1 GB) e la dimensione RAM massima che puoi scegliere è di 6144 MB (6 GB). Le dimensioni di memoria che puoi scegliere sono 1024 MB, 2048 MB, 3072 MB, 4096 MB, 5120 MB o 6144 MB. Inferenza Serverless assegna automaticamente le risorse di calcolo in modo proporzionale alla memoria selezionata. Se scegli una dimensione di memoria maggiore, il container ha accesso a più vCPU. Scegli la dimensione della memoria dell'endpoint in base alle dimensioni del modello. In genere, la dimensione della memoria deve essere almeno pari a quella del modello. Potrebbe essere necessario eseguire dei benchmark per scegliere la giusta selezione di memoria per il modello in base agli SLA di latenza. Per una guida dettagliata al benchmark, consulta Introducing the Amazon SageMaker Serverless Inference Benchmarking Toolkit. Gli incrementi delle dimensioni della memoria hanno prezzi diversi; consulta la pagina Prezzi di Amazon SageMaker AI per ulteriori informazioni.

Indipendentemente dalla dimensione di memoria scelta, l'endpoint serverless ha a disposizione 5 GB di archiviazione temporanea su disco. Per informazioni sui problemi relativi alle autorizzazioni dei container quando si lavora con l’archiviazione, consulta Risoluzione dei problemi.

Chiamate simultanee

Inferenza Serverless On-demand gestisce policy e quote di scalabilità predefinite per la capacità dell'endpoint. Gli endpoint serverless hanno una quota per il numero di chiamate simultanee che possono essere elaborate contemporaneamente. Se l'endpoint viene richiamato prima che termini l'elaborazione della prima richiesta, gestisce la seconda richiesta contemporaneamente.

La simultaneità totale che puoi condividere tra tutti gli endpoint serverless del tuo account dipende dalla tua Regione:

  • Per le Regioni Stati Uniti orientali (Ohio), Stati Uniti orientali (Virginia settentrionale), Stati Uniti occidentali (Oregon), Asia Pacifico (Singapore), Asia Pacifico (Sydney), Asia Pacifico (Tokyo), Europa (Francoforte), Europa (Irlanda), la simultaneità totale che puoi condividere tra tutti gli endpoint serverless per Regione nel tuo account è 1000.

  • Per le Regioni Stati Uniti occidentali (California settentrionale), Africa (Città del Capo), Asia Pacifico (Hong Kong), Asia Pacifico (Mumbai), Asia Pacifico (Osaka - Locale), Asia Pacifico (Seoul), Canada (Centrale), Europa (Londra), Europa (Milano), Europa (Parigi), Europa (Stoccolma) Medio Oriente (Bahrein) e Sud America (San Paolo), la simultaneità totale per Regione nel tuo account è 500.

Puoi impostare la simultaneità massima per un singolo endpoint fino a 200 e il numero totale di endpoint serverless che puoi ospitare in una Regione è 50. La simultaneità massima per un singolo endpoint impedisce a tale endpoint di accettare tutte le chiamate consentite per l'account e tutte le chiamate degli endpoint oltre il limite massimo vengono limitate.

Nota

La simultaneità assegnata a un endpoint serverless deve essere sempre inferiore o uguale alla simultaneità massima assegnata a tale endpoint.

Per informazioni su come impostare la simultaneità massima per l'endpoint, consulta Creare una configurazione endpoint. Per ulteriori informazioni su quote e limiti, consulta Amazon SageMaker AI endpoints and quotas in Riferimenti generali di AWS. Per richiedere un aumento delle restrizioni dei servizi, consulta Supporto AWS. Per istruzioni su come richiedere un aumento dei limiti del servizio, consulta Regioni e quote supportate.

Riduzione al minimo degli avvii a freddo

Se l'endpoint Inferenza Serverless on-demand non riceve traffico per un po' di tempo e poi improvvisamente riceve nuove richieste, l'endpoint può impiegare del tempo prima che l'endpoint attivi le risorse di elaborazione necessarie per elaborare le richieste. Questo procedimento è chiamato avvio a freddo. Poiché gli endpoint serverless forniscono risorse di calcolo su richiesta, l'endpoint potrebbe subire avvii a freddo. Un avvio a freddo può verificarsi anche se le richieste simultanee superano l'utilizzo corrente delle richieste simultanee. L'orario di avvio a freddo dipende dalle dimensioni del modello, dal tempo necessario per scaricare il modello e dal tempo di avvio del container.

Per monitorare la durata dell'orario di avvio a freddo, puoi utilizzare il parametro OverheadLatency Amazon CloudWatch per monitorare il tuo endpoint serverless. Questo parametro tiene traccia del tempo necessario per lanciare nuove risorse di calcolo per il tuo endpoint. Per ulteriori informazioni sull'uso dei parametri di CloudWatch con endpoint serverless, consulta Allarmi e log per il monitoraggio delle metriche da endpoint serverless.

Puoi ridurre al minimo gli avvii a freddo utilizzando Simultaneità con provisioning. SageMaker AI mantiene l’endpoint caldo e pronto a rispondere in millisecondi, per il numero di Simultaneità con provisioning allocato.

Esclusione delle funzionalità

Alcune delle funzionalità attualmente disponibili per l’inferenza in tempo reale SageMaker AI non sono supportate per Inferenza serverless, tra cui GPU, pacchetti modello AWS Marketplace, registri Docker privati, endpoint multi-modello, configurazione VPC, isolamento di rete, acquisizione dati, varianti di produzione multiple, Model Monitor e pipeline di inferenza.

Non puoi convertire un endpoint in tempo reale basato su istanze in un endpoint serverless. Se provi ad aggiornare il tuo endpoint in tempo reale a serverless, ricevi un messaggio ValidationError. Puoi convertire un endpoint serverless in un endpoint serverless in tempo reale, ma una volta effettuato l'aggiornamento, non puoi ripristinarlo alla versione serverless.

Nozioni di base

Puoi creare, aggiornare, descrivere ed eliminare un endpoint serverless utilizzando la console SageMaker AI, gli SDK AWS, Amazon SageMaker Python SDK e l’AWS CLI. Puoi richiamare il tuo endpoint utilizzando gli SDK AWS, Amazon SageMaker Python SDK e la AWS CLI. Per gli endpoint serverless con Simultaneità con provisioning, puoi utilizzare Dimensionamento automatico dell’applicazione per ridimensionare automaticamente Simultaneità con provisioning in base a un parametro o a una pianificazione di destinazione. Per ulteriori informazioni su come configurare e utilizzare un endpoint serverless, leggi la guida Operazioni degli endpoint serverless. Per ulteriori informazioni sul dimensionamento automatico degli endpoint serverless con Simultaneità con provisioning, consulta Dimensionamento automatico del provisioning simultaneo per un endpoint serverless.

Nota

Dimensionamento automatico dell’applicazione per Inferenza Serverless con Simultaneità con provisioning non è attualmente supportato su AWS CloudFormation.

Notebook e blog di esempio

Per esempi di notebook Jupyter che mostrano flussi di lavoro endpoint serverless end-to-end, consulta i Notebook di esempio di Inferenza Serverless.