Distribuzione di modelli su un endpoint - Amazon SageMaker

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Distribuzione di modelli su un endpoint

In Amazon SageMaker Canvas, puoi distribuire i tuoi modelli su un endpoint per fare previsioni. SageMaker fornisce l'infrastruttura ML per ospitare il modello su un endpoint con le istanze di calcolo che preferisci. Quindi, puoi invocare l'endpoint (inviare una richiesta di previsione) e ottenere una previsione in tempo reale dal tuo modello. Con questa funzionalità, puoi utilizzare il modello in produzione per rispondere alle richieste in arrivo e puoi integrarlo con applicazioni e flussi di lavoro esistenti.

Per iniziare, dovresti avere un modello che desideri implementare. Puoi distribuire versioni di modelli personalizzate che hai creato, modelli Amazon SageMaker JumpStart Foundation e modelli di base ottimizzati JumpStart . Per ulteriori informazioni sulla creazione di un modello in Canvas, consulta Creazione di un modello personalizzato. Per ulteriori informazioni sui modelli di JumpStart base in Canvas, consulta. Utilizzo dell'IA generativa con i modelli di base

Consulta la sezione Permissions management, quindi inizia a creare nuove distribuzioni nella sezione Deploy a model.

Gestione delle autorizzazioni

Per impostazione predefinita, disponi delle autorizzazioni per distribuire modelli sugli endpoint di SageMaker hosting. SageMaker concede queste autorizzazioni per tutti i profili utente Canvas nuovi ed esistenti tramite la AmazonSageMakerCanvasFullAccesspolitica, che è allegata al AWS IAMruolo di esecuzione per il SageMaker dominio che ospita l'applicazione Canvas.

Se l'amministratore di Canvas sta configurando un nuovo dominio o profilo utente, quando configura il dominio e segue le istruzioni sui prerequisiti contenute inPrerequisiti per la configurazione di Amazon Canvas SageMaker , SageMaker attiva le autorizzazioni di distribuzione del modello tramite l'opzione Abilita la distribuzione diretta dei modelli Canvas, che è abilitata per impostazione predefinita.

L’amministratore di Canvas può gestire le autorizzazioni per distribuire il modello anche a livello di profilo utente. Ad esempio, se l'amministratore non desidera concedere le autorizzazioni di distribuzione del modello a tutti i profili utente durante la configurazione di un dominio, può concedere le autorizzazioni a utenti specifici dopo aver creato il dominio.

La procedura seguente mostra come modificare le autorizzazioni di distribuzione del modello per un profilo utente specifico:

  1. Apri la SageMaker console all'indirizzo https://console.aws.amazon.com/sagemaker/.

  2. Nel riquadro di navigazione a sinistra, scegli Configurazioni admin.

  3. In Configurazioni di amministrazione, scegli Domini.

  4. Dall'elenco dei domini, seleziona il dominio del profilo utente.

  5. Nella pagina dei dettagli del dominio, scegli il profilo utente di cui desideri modificare le autorizzazioni.

  6. Nella pagina Dettagli utente scegli Modifica.

  7. Nel riquadro di navigazione sinistro, seleziona Impostazioni Canvas.

  8. Nella sezione di configurazione delle autorizzazioni ML Ops, attiva l'interruttore Abilita la distribuzione diretta dei modelli Canvas per abilitare le autorizzazioni di distribuzione.

  9. Scegli Invia per salvare le modifiche alle impostazioni del dominio.

Il profilo utente dovrebbe ora disporre delle autorizzazioni di distribuzione del modello.

Dopo aver concesso le autorizzazioni al dominio o al profilo utente, assicurati che l'utente si disconnetta dall'applicazione Canvas e acceda nuovamente per applicare le modifiche alle autorizzazioni.

Distribuzione di un modello

Per iniziare a distribuire il modello, crea una nuova distribuzione in Canvas e specifica la versione del modello che desideri distribuire, oltre all'infrastruttura ML, ad esempio il tipo e il numero di istanze di calcolo che desideri utilizzare per ospitare il modello.

Canvas suggerisce un tipo e un numero di istanze predefiniti in base al tipo di modello, oppure puoi saperne di più sui vari tipi di SageMaker istanza nella pagina SageMaker dei prezzi di Amazon. L'addebito si basa sul prezzo dell' SageMaker istanza mentre l'endpoint è attivo.

Quando si distribuiscono i modelli di JumpStart base, è inoltre possibile specificare la durata del tempo di implementazione. È possibile distribuire il modello su un endpoint a tempo indeterminato (il che significa che l'endpoint è attivo fino a quando non si elimina la distribuzione). Oppure, se hai bisogno dell'endpoint solo per un breve periodo di tempo e desideri ridurre i costi, puoi implementare il modello su un endpoint per un periodo di tempo specificato, dopodiché SageMaker spegnere l'endpoint automaticamente.

Nota

Se distribuisci un modello per un periodo di tempo specificato, resta connesso all'applicazione Canvas per tutta la durata dell'endpoint. Se ti disconnetti o elimini l'applicazione, Canvas non è in grado di spegnere l'endpoint all'ora specificata.

Dopo aver distribuito il modello su un endpoint di inferenza in tempo reale di SageMaker Hosting, puoi iniziare a fare previsioni richiamando l'endpoint.

Esistono diversi modi per distribuire un modello dall'applicazione Canvas. Puoi accedere all'opzione di distribuzione del modello tramite uno dei seguenti metodi:

  • Nella pagina I miei modelli dell'applicazione Canvas, scegli il modello che desideri distribuire. Quindi, dalla pagina Versioni del modello, scegli l'icona Altre opzioni ( Vertical ellipsis icon representing a menu or more options. ) accanto alla versione del modello e seleziona Distribuisci.

  • Nella pagina dei dettagli di una versione del modello, nella scheda Analizza, scegli l'opzione Deploy.

  • Nella pagina dei dettagli di una versione del modello, nella scheda Predict, scegliete l'icona Altre opzioni ( Vertical ellipsis icon representing a menu or more options. ) nella parte superiore della pagina e selezionate Deploy.

  • Nella pagina ML Ops dell'applicazione Canvas, scegli la scheda Distribuzioni, quindi scegli Crea distribuzione.

  • Per i modelli di JumpStart fondazione e i modelli di fondazione ottimizzati, vai alla pagina dei eady-to-use modelli R dell'applicazione Canvas. Scegli Genera, estrai e riepiloga il contenuto. Quindi, trova il modello di JumpStart base o il modello di base ottimizzato che desideri implementare. Scegli il modello e, nella pagina di chat del modello, scegli il pulsante Deploy.

Tutti questi metodi aprono il pannello laterale Distribuisci modello, in cui puoi specificare la configurazione di distribuzione per il tuo modello. Per distribuire il modello da questo pannello, procedi come segue:

  1. (Facoltativo) Se stai creando una distribuzione dalla pagina ML Ops, avrai la possibilità di selezionare modello e versione. Utilizza i menu a discesa per selezionare il modello e la versione del modello che desideri distribuire.

  2. Immetti un nome nel campo Nome distribuzione.

  3. (Solo per i modelli di JumpStart base e i modelli di base ottimizzati) Scegli una durata di implementazione. Seleziona Indefinito per lasciare l'endpoint attivo fino a quando non lo spegni, oppure seleziona Specificare la lunghezza e quindi inserisci il periodo di tempo per il quale desideri che l'endpoint rimanga attivo.

  4. Per Tipo di istanza, SageMaker rileva un tipo e un numero di istanza predefiniti adatti al modello. Tuttavia, puoi modificare il tipo di istanza che desideri utilizzare per ospitare il modello.

    Nota

    Se esaurisci la quota di istanza per il tipo di istanza scelto sul tuo AWS account, puoi richiedere un aumento della quota. Per ulteriori informazioni sulle quote predefinite e su come richiedere un aumento, consulta Amazon SageMaker endpoints e quote nel AWS Guida di riferimento generale.

  5. Per il conteggio delle istanze, puoi impostare il numero di istanze attive utilizzate per il tuo endpoint. SageMaker rileva un numero predefinito adatto al tuo modello, ma puoi modificare questo numero.

  6. Quando sei pronto per distribuire il modello, scegli Distribuisci.

Il modello dovrebbe ora essere distribuito su un endpoint. Per informazioni su come visualizzare i dettagli della distribuzione o eseguire altre azioni, consulta le sezioni seguenti.

Visualizzazione delle distribuzioni

Potresti voler controllare lo stato o i dettagli della distribuzione di un modello in Canvas. Ad esempio, se la distribuzione non è riuscita, potresti volerne controllare i dettagli per la risoluzione dei problemi.

Puoi visualizzare le distribuzioni del modello Canvas dall'applicazione Canvas o dalla console Amazon SageMaker .

Per visualizzare i dettagli della distribuzione da Canvas, scegli una delle procedure seguenti:

Per visualizzare i dettagli della distribuzione dalla pagina ML Ops, procedi come segue:

  1. Apri l'applicazione SageMaker Canvas.

  2. Nel riquadro di navigazione a sinistra, scegli ML Ops.

  3. Seleziona la scheda Distribuzioni.

  4. Scegli il nome della tua distribuzione dall’elenco.

Per visualizzare i dettagli della distribuzione dalla pagina delle versioni di un modello, procedi come segue:

  1. Nell'applicazione SageMaker Canvas, vai alla pagina dei dettagli della versione del tuo modello.

  2. Scegli la scheda Distribuisci.

  3. Trova la tua distribuzione nella sezione Distribuzioni che elenca tutte le configurazioni di distribuzione associate a quella versione del modello.

  4. Scegli l'icona Altre opzioni ( Vertical ellipsis icon representing a menu or more options. ), quindi seleziona Visualizza dettagli per aprire la pagina dei dettagli.

Si aprirà la pagina dei dettagli della distribuzione e potrai visualizzare informazioni come l'ora della previsione più recente, lo stato e la configurazione dell'endpoint e la versione del modello attualmente distribuita sull'endpoint.

Puoi anche visualizzare le istanze e gli endpoint attivi dell'area di lavoro Canvas attualmente attivi dalla SageMaker dashboard della console. SageMaker I tuoi endpoint Canvas sono elencati insieme a tutti gli altri endpoint di SageMaker Hosting che hai creato e puoi filtrarli cercando gli endpoint con il tag Canvas.

La schermata seguente mostra la dashboard. SageMaker Nella sezione Canvas, puoi vedere che un'istanza del workspace è in servizio e quattro endpoint sono attivi.

Schermata della SageMaker dashboard che mostra le istanze e gli endpoint attivi del workspace Canvas.

Aggiornamento di una configurazione della distribuzione

Puoi anche aggiornare la configurazione della distribuzione. Ad esempio, puoi distribuire una versione aggiornata del modello sull'endpoint oppure aggiornare il tipo o il numero di istanze alla base dell'endpoint in base alle tue esigenze di capacità.

Esistono diversi modi per aggiornare la tua distribuzione dall'applicazione Canvas. Puoi utilizzare uno dei seguenti metodi:

  • Nella pagina ML Ops dell'applicazione Canvas, puoi scegliere la scheda Distribuzioni e selezionare la distribuzione che desideri aggiornare. Quindi, seleziona Aggiorna configurazione.

  • Nella pagina dei dettagli di una versione del modello, nella scheda Distribuisci, puoi visualizzare le distribuzioni per quella versione. Accanto a distribuzione, scegli l'icona Altre opzioni ( Vertical ellipsis icon representing a menu or more options. ), quindi scegli Aggiorna configurazione.

I due metodi precedentemente indicati aprono il pannello laterale Aggiorna configurazione, in cui puoi apportare modifiche alla configurazione della distribuzione. Per aggiornare la configurazione, procedi in uno dei seguenti modi:

  1. Nel menu a discesa Seleziona versione, puoi selezionare una diversa versione del modello da distribuire sull'endpoint.

    Nota

    Quando aggiorni una configurazione della distribuzione, puoi scegliere solo una diversa versione del modello da distribuire. Per distribuire un modello diverso, crea una nuova distribuzione.

  2. In Tipo di istanza, puoi selezionare un altro tipo di istanza per ospitare il tuo modello.

  3. In Conteggio istanze, puoi impostare il numero di istanze attive utilizzate per il tuo endpoint.

  4. Seleziona Salva.

La configurazione della distribuzione dovrebbe essere ora aggiornata.

Test della distribuzione

Puoi testare la tua distribuzione invocando l'endpoint o effettuando richieste di previsione singole tramite l'applicazione Canvas. Puoi utilizzare questa funzionalità per confermare che l'endpoint risponda alle richieste prima di invocarlo in modo programmatico in un ambiente di produzione.

Prova l'implementazione di un modello personalizzato

È possibile testare la distribuzione di un modello personalizzato accedendovi tramite la pagina ML Ops ed effettuando una singola chiamata, che restituisce una previsione insieme alla probabilità che la previsione sia corretta.

Nota

La durata dell'esecuzione è una stima del tempo impiegato per invocare un endpoint e ottenere una risposta in Canvas. Per metriche dettagliate sulla latenza, consulta Endpoint Invocation Metrics. SageMaker

Per testare l'endpoint tramite l'applicazione Canvas, procedi come segue:

  1. SageMaker Apri l'applicazione Canvas.

  2. Nel pannello di navigazione a sinistra, scegli ML Ops.

  3. Seleziona la scheda Distribuzioni.

  4. Nell'elenco delle distribuzioni, scegli quella con l'endpoint che desideri invocare.

  5. Nella pagina dei dettagli della distribuzione, scegli la scheda Testa distribuzione.

  6. Nella pagina per testare la distribuzione, puoi modificare i campi Valore per specificare un nuovo punto dati. Per i modelli di previsione delle serie temporali, è necessario specificare l'ID dell'articolo per il quale si desidera effettuare una previsione.

  7. Dopo aver modificato i valori, scegli Aggiorna per ottenere il risultato della previsione.

La previsione viene caricata insieme ai campi Risultati dell'invocazione, che indicano se l’invocazione ha avuto esito positivo o meno e il tempo impiegato per l'elaborazione della richiesta.

Lo screenshot seguente mostra una previsione generata nell'applicazione Canvas nella scheda Testa distribuzione.

L'applicazione Canvas che mostra una previsione di test per un modello distribuito.

Per tutti i tipi di modello ad eccezione della previsione numerica e della previsione delle serie temporali, la previsione restituisce i seguenti campi:

  • etichetta_prevista: l'output previsto

  • probabilità: la probabilità che l'etichetta prevista sia corretta

  • etichette: l'elenco di tutte le etichette possibili

  • possibilità: le possibilità corrispondenti a ciascuna etichetta (l'ordine di questo elenco corrisponde all'ordine delle etichette)

Per i modelli di previsione numerica, la previsione contiene solo il campo punteggio, che è l'output previsto del modello, ad esempio il prezzo previsto di una casa.

Per i modelli di previsione delle serie temporali, la previsione è un grafico che mostra le previsioni per quantile. Puoi scegliere la visualizzazione Schema per vedere i valori numerici previsti per ogni quantile.

Puoi continuare a generare previsioni singole tramite la pagina di test della distribuzione oppure puoi consultare la sezione seguente Invocazione del tuo endpoint per scoprire come invocare l'endpoint in modo programmatico dalle applicazioni.

Prova l'implementazione di un modello base JumpStart

Puoi chattare con un modello di JumpStart base distribuito o un modello di base perfezionato tramite l'applicazione Canvas per testarne la funzionalità prima di richiamarlo tramite codice.

Per chattare con un modello di JumpStart base distribuito o un modello di base ottimizzato, procedi come segue:

  1. Apri l'applicazione Canvas. SageMaker

  2. Nel pannello di navigazione a sinistra, scegli ML Ops.

  3. Seleziona la scheda Distribuzioni.

  4. Dall'elenco delle distribuzioni, trova quella che desideri richiamare e scegli la relativa icona Altre opzioni (). Vertical ellipsis icon representing a menu or more options.

  5. Dal menu contestuale, scegli Test deployment.

  6. Si apre una nuova chat Genera, estrai e riassumi i contenuti con il modello JumpStart base e puoi iniziare a digitare i prompt. Tieni presente che le istruzioni di questa chat vengono inviate come richieste al tuo endpoint di hosting. SageMaker

Invocazione del tuo endpoint

Dopo aver testato la distribuzione, puoi utilizzare l'endpoint in produzione con le tue applicazioni richiamando l'endpoint a livello di codice nello stesso modo in cui puoi richiamare qualsiasi altro endpoint in tempo reale. SageMaker L’invocazione di un endpoint in modo programmatico restituisce un oggetto di risposta che contiene gli stessi campi menzionati nella sezione precedente Test della distribuzione .

Per informazioni più dettagliate su come invocare gli endpoint in modo programmatico, consulta Richiama modelli per l'inferenza in tempo reale.

I seguenti esempi in Python mostrano come invocare l'endpoint in base al tipo di modello.

L'esempio seguente mostra come richiamare un modello di base o un modello di JumpStart base ottimizzato che hai distribuito su un endpoint.

import boto3 import pandas as pd client = boto3.client("runtime.sagemaker") body = pd.DataFrame( [['feature_column1', 'feature_column2'], ['feature_column1', 'feature_column2']] ).to_csv(header=False, index=False).encode("utf-8") response = client.invoke_endpoint( EndpointName="endpoint_name", ContentType="text/csv", Body=body, Accept="application/json" )

L'esempio seguente mostra come invocare modelli di previsione numerici o categoriali.

import boto3 import pandas as pd client = boto3.client("runtime.sagemaker") body = pd.DataFrame(['feature_column1', 'feature_column2'], ['feature_column1', 'feature_column2']).to_csv(header=False, index=False).encode("utf-8") response = client.invoke_endpoint( EndpointName="endpoint_name", ContentType="text/csv", Body=body, Accept="application/json" )

L'esempio seguente mostra come richiamare modelli di previsione delle serie temporali. Per un esempio completo di come testare e richiamare un modello di previsione di serie temporali, consulta Time-Series Forecasting with Amazon Autopilot. SageMaker

import boto3 import pandas as pd csv_path = './real-time-payload.csv' data = pd.read_csv(csv_path) client = boto3.client("runtime.sagemaker") body = data.to_csv(index=False).encode("utf-8") response = client.invoke_endpoint( EndpointName="endpoint_name", ContentType="text/csv", Body=body, Accept="application/json" )

L'esempio seguente mostra come invocare modelli di previsione di immagini.

import boto3 client = boto3.client("runtime.sagemaker") with open("example_image.jpg", "rb") as file: body = file.read() response = client.invoke_endpoint( EndpointName="endpoint_name", ContentType="application/x-image", Body=body, Accept="application/json" )

L'esempio seguente mostra come invocare modelli di previsione di testo.

import boto3 import pandas as pd client = boto3.client("runtime.sagemaker") body = pd.DataFrame([["Example text 1"], ["Example text 2"]]).to_csv(header=False, index=False).encode("utf-8") response = client.invoke_endpoint( EndpointName="endpoint_name", ContentType="text/csv", Body=body, Accept="application/json" )

Eliminazione della distribuzione di un modello

Puoi eliminare la distribuzione del tuo modello dall'applicazione Canvas. Questa azione elimina anche l'endpoint dalla console e chiude tutte le risorse relative all'endpoint. SageMaker

Nota

Facoltativamente, puoi eliminare l'endpoint tramite la console o utilizzando il. SageMaker SageMaker DeleteEndpoint API Per ulteriori informazioni, consulta Elimina endpoint e risorse. Tuttavia, quando elimini l'endpoint tramite la SageMaker console o APIs anziché l'applicazione Canvas, l'elenco delle distribuzioni in Canvas non viene aggiornato automaticamente. È inoltre necessario eliminare la distribuzione dall'applicazione Canvas.

Per eliminare una distribuzione in Canvas, procedi come segue:

  1. Apri l'applicazione SageMaker Canvas.

  2. Nel pannello di navigazione a sinistra, scegli ML Ops.

  3. Seleziona la scheda Distribuzioni.

  4. Dall'elenco delle distribuzioni, scegli quella che desideri eliminare.

  5. Nella parte superiore della pagina dei dettagli della distribuzione, scegli l'icona Altre opzioni ( Vertical ellipsis icon representing a menu or more options. ).

  6. Scegli Elimina distribuzione.

  7. Nella finestra di dialogo Elimina distribuzione, scegli Elimina.

L'endpoint di distribuzione e SageMaker hosting dovrebbe ora essere eliminato sia da Canvas che dalla SageMaker console. Quando la distribuzione viene eliminata con successo, viene visualizzata nell'elenco delle distribuzioni Canvas con lo stato Eliminata.