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à.
Implementa modelli per l'inferenza in tempo reale
Importante
Le politiche IAM personalizzate che consentono ad Amazon SageMaker Studio o Amazon SageMaker Studio Classic di creare SageMaker risorse Amazon devono inoltre concedere le autorizzazioni per aggiungere tag a tali risorse. L'autorizzazione per aggiungere tag alle risorse è necessaria perché Studio e Studio Classic taggano automaticamente tutte le risorse che creano. Se una policy IAM consente a Studio e Studio Classic di creare risorse ma non consente l'aggiunta di tag, si possono verificare errori AccessDenied "" durante il tentativo di creare risorse. Per ulteriori informazioni, consulta Fornisci le autorizzazioni per SageMaker etichettare le risorse AI.
AWS politiche gestite per Amazon SageMaker AIche danno i permessi per creare SageMaker risorse includono già le autorizzazioni per aggiungere tag durante la creazione di tali risorse.
Esistono diverse opzioni per implementare un modello utilizzando i servizi di hosting SageMaker AI. È possibile distribuire un modello in modo interattivo con Studio. SageMaker In alternativa, puoi distribuire un modello a livello di codice utilizzando un AWS SDK, come Python SDK o SDK for SageMaker Python (Boto3). È inoltre possibile eseguire la distribuzione utilizzando. AWS CLI
Prima di iniziare
Prima di implementare un modello di SageMaker intelligenza artificiale, individua e prendi nota di quanto segue:
-
Regione AWS Dove si trova il tuo bucket Amazon S3
-
Il percorso URI di Amazon S3 in cui sono archiviati gli artefatti del modello
-
Il ruolo di IAM per l'IA SageMaker
-
Il percorso del registro URI Docker Amazon ECR per l'immagine personalizzata che contiene il codice di inferenza o il framework e la versione di un'immagine Docker integrata supportata e da AWS
Per un elenco delle opzioni Servizi AWS disponibili in ciascuna di esse Regione AWS, consulta Region Maps
Importante
Il bucket Amazon S3 in cui sono archiviati gli artefatti del modello deve trovarsi nello Regione AWS stesso modello che stai creando.
Utilizzo condiviso delle risorse con più modelli
Puoi distribuire uno o più modelli su un endpoint con Amazon SageMaker AI. Quando più modelli condividono un endpoint, utilizzano congiuntamente le risorse ivi ospitate, come le istanze di calcolo ML e gli acceleratori. CPUs Il modo più flessibile per distribuire più modelli su un endpoint consiste nel definire ogni modello come componente di inferenza.
Componenti di inferenza
Un componente di inferenza è un oggetto di hosting SageMaker AI che puoi utilizzare per distribuire un modello su un endpoint. Nelle impostazioni del componente di inferenza, specifichi il modello, l'endpoint e il modo in cui il modello utilizza le risorse ospitate dall'endpoint. Per specificare il modello, puoi specificare un oggetto del modello SageMaker AI oppure puoi specificare direttamente gli artefatti e l'immagine del modello.
Nelle impostazioni, è possibile ottimizzare l'utilizzo delle risorse personalizzando il modo in cui i core della CPU, gli acceleratori e la memoria richiesti vengono allocati al modello. È possibile distribuire più componenti di inferenza su un endpoint, in cui ogni componente di inferenza contiene un modello e le esigenze di utilizzo delle risorse per quel modello.
Dopo aver distribuito un componente di inferenza, puoi richiamare direttamente il modello associato quando utilizzi l'azione nell'API. InvokeEndpoint SageMaker
I componenti di inferenza offrono i seguenti vantaggi:
- Flessibilità
-
Il componente di inferenza separa i dettagli dell'hosting del modello dall'endpoint stesso. Ciò offre maggiore flessibilità e controllo sul modo in cui i modelli vengono ospitati e serviti con un endpoint. È possibile ospitare più modelli sulla stessa infrastruttura e aggiungere o rimuovere modelli da un endpoint in base alle esigenze. È possibile aggiornare ogni modello in modo indipendente.
- Scalabilità
-
È possibile specificare quante copie di ciascun modello ospitare e impostare un numero minimo di copie per garantire che il modello venga caricato nella quantità necessaria per soddisfare le richieste. È possibile ridimensionare qualsiasi copia del componente di inferenza fino a zero, lasciando spazio a un'altra copia da scalare verso l'alto.
SageMaker L'intelligenza artificiale impacchetta i tuoi modelli come componenti di inferenza quando li distribuisci utilizzando:
-
SageMaker Studio Classic.
-
L'SDK SageMaker Python per distribuire un oggetto Model (dove si imposta il tipo di endpoint su).
EndpointType.INFERENCE_COMPONENT_BASED
-
Gli
InferenceComponent
oggetti AWS SDK for Python (Boto3) per definire che si distribuiscono su un endpoint.
Distribuisci modelli con Studio SageMaker
Completa i seguenti passaggi per creare e distribuire il modello in modo interattivo tramite Studio. SageMaker Per ulteriori informazioni su Studio, consulta la documentazione di Studio. Per ulteriori informazioni dettagliate sui vari scenari di implementazione, consulta il blog Package e distribuisci modelli ML classici e in modo semplice LLMs con Amazon SageMaker AI
Prepara i tuoi artefatti e le tue autorizzazioni
Completa questa sezione prima di creare un modello in Studio. SageMaker
Hai due opzioni per portare i tuoi artefatti e creare un modello in Studio:
-
Potete portare un
tar.gz
archivio preconfezionato, che dovrebbe includere gli artefatti del modello, qualsiasi codice di inferenza personalizzato e tutte le dipendenze elencate in un file.requirements.txt
-
SageMaker L'intelligenza artificiale può impacchettare i tuoi artefatti per te. Devi solo inserire gli artefatti del modello grezzo e le eventuali dipendenze in un
requirements.txt
file e l' SageMaker intelligenza artificiale può fornirti il codice di inferenza predefinito (oppure puoi sovrascrivere il codice predefinito con il tuo codice di inferenza personalizzato). SageMaker L'IA supporta questa opzione per i seguenti framework:,. PyTorch XGBoost
Oltre a fornire il modello, il ruolo AWS Identity and Access Management (IAM) e un contenitore Docker (o il framework e la versione desiderati per i quali SageMaker AI dispone di un contenitore predefinito), devi anche concedere le autorizzazioni per creare e distribuire modelli tramite AI Studio. SageMaker
Dovresti avere la AmazonSageMakerFullAccesspolicy associata al tuo ruolo IAM in modo da poter accedere all' SageMaker intelligenza artificiale e ad altri servizi pertinenti. Per vedere i prezzi dei tipi di istanze in Studio, devi anche allegare la AWS PriceListServiceFullAccesspolicy (o, se non vuoi allegare l'intera policy, più specificamente, l'pricing:GetProducts
azione).
Se scegli di caricare gli artefatti del modello durante la creazione di un modello (o di caricare un file di payload di esempio per i consigli di inferenza), devi creare un bucket Amazon S3. Il nome del bucket deve essere preceduto dalla parola. SageMaker AI
Sono accettabili anche le maiuscole alternative dell' SageMaker IA: o. Sagemaker
sagemaker
Ti consigliamo di utilizzare la convenzione di denominazione dei bucket. sagemaker-{
Questo bucket viene utilizzato per archiviare gli artefatti che carichi.Region
}-{accountID
}
Dopo aver creato il bucket, allega la seguente politica CORS (cross-origin resource sharing) al bucket:
[ { "AllowedHeaders": ["*"], "ExposeHeaders": ["Etag"], "AllowedMethods": ["PUT", "POST"], "AllowedOrigins": ['https://*.sagemaker.aws'], } ]
Puoi allegare una policy CORS a un bucket Amazon S3 utilizzando uno dei seguenti metodi:
-
Tramite la pagina Modifica condivisione di risorse tra origini diverse (CORS)
nella console Amazon S3 -
Utilizzo dell'API Amazon S3 PutBucketCors
-
Utilizzando il put-bucket-cors AWS CLI comando:
aws s3api put-bucket-cors --bucket="..." --cors-configuration="..."
Crea un modello implementabile
In questa fase, crei una versione implementabile del modello in SageMaker AI fornendo gli artefatti insieme a specifiche aggiuntive, come il contenitore e il framework desiderati, qualsiasi codice di inferenza personalizzato e le impostazioni di rete.
Crea un modello distribuibile in Studio effettuando le seguenti operazioni: SageMaker
-
Apri l'applicazione SageMaker Studio.
-
Nel riquadro di navigazione a sinistra scegliere Models (Modelli).
-
Scegli la scheda Modelli distribuibili.
-
Nella pagina Modelli distribuibili, scegli Crea.
-
Nella pagina Crea modello implementabile, nel campo Nome modello, inserisci un nome per il modello.
Ci sono molte altre sezioni da compilare nella pagina Crea modello implementabile.
La sezione relativa alla definizione del contenitore ha l'aspetto della schermata seguente:

Per la sezione Definizione del contenitore, procedi come segue:
-
Per Tipo di contenitore, seleziona Contenitore precostruito se desideri utilizzare un contenitore gestito dall' SageMaker IA o seleziona Bring your own container se hai il tuo contenitore.
-
Se hai selezionato Contenitore precostruito, seleziona il framework Container, la versione del Framework e il tipo di hardware che desideri utilizzare.
-
Se hai selezionato Bring your own container, inserisci un percorso Amazon ECR per l'immagine da percorso ECR a contenitore.
Quindi, compila la sezione Artifacts, che assomiglia alla seguente schermata:

Per la sezione Artefatti, procedi come segue:
-
Se utilizzi uno dei framework supportati dall' SageMaker intelligenza artificiale per il packaging degli artefatti del modello (PyTorch o XGBoost), allora per Artifacts, puoi scegliere l'opzione Carica artefatti. Con questa opzione, puoi semplicemente specificare gli artefatti del modello non elaborato, qualsiasi codice di inferenza personalizzato in tuo possesso e il tuo file requirements.txt, e AI gestirà l'imballaggio dell'archivio per te. SageMaker Esegui questa operazione:
-
Per gli artefatti, seleziona Carica artefatti per continuare a fornire i tuoi file. Altrimenti, se disponi già di un
tar.gz
archivio che contiene i file del modello, il codice di inferenza e ilrequirements.txt
file, seleziona Inserisci l'URI S3 negli artefatti preconfezionati. -
Se hai scelto di caricare i tuoi artefatti, per il bucket S3, inserisci il percorso Amazon S3 verso un bucket in cui desideri che l' SageMaker intelligenza artificiale memorizzi i tuoi artefatti dopo averli imballati per te. Quindi, completa i seguenti passaggi.
-
Per Carica gli artefatti del modello, carica i file del modello.
-
Per Codice di inferenza, seleziona Usa codice di inferenza predefinito se desideri utilizzare il codice di inferenza predefinito fornito dall' SageMaker intelligenza artificiale per fornire l'inferenza. Altrimenti, seleziona Carica codice di inferenza personalizzato per utilizzare il tuo codice di inferenza.
-
Per Upload requirements.txt, carica un file di testo che elenchi tutte le dipendenze che desideri installare in fase di esecuzione.
-
-
Se non utilizzi un framework supportato dall' SageMaker intelligenza artificiale per il packaging degli artefatti del modello, Studio ti mostra l'opzione Artefatti preconfezionati e devi fornire tutti gli artefatti già impacchettati come archivio.
tar.gz
Esegui questa operazione:-
Per gli artefatti preconfezionati, seleziona Input S3 URI per gli artefatti del modello preconfezionati se l'archivio è già stato caricato su Amazon S3.
tar.gz
Seleziona Carica artefatti del modello preconfezionati se desideri caricare direttamente il tuo archivio su AI. SageMaker -
Se hai selezionato Input S3 URI per gli artefatti del modello preconfezionati, inserisci il percorso Amazon S3 all'archivio per l'URI S3. Altrimenti, seleziona e carica l'archivio dal tuo computer locale.
-
La sezione successiva è Sicurezza, che assomiglia alla seguente schermata:

Per la sezione Sicurezza, procedi come segue:
-
Per il ruolo IAM, inserisci l'ARN per un ruolo IAM.
-
(Facoltativo) Per Virtual Private Cloud (VPC), puoi selezionare un Amazon VPC per archiviare la configurazione e gli artefatti del modello.
-
(Facoltativo) Attiva l'interruttore di isolamento della rete se desideri limitare l'accesso a Internet del contenitore.
Infine, puoi facoltativamente compilare la sezione Opzioni avanzate, che assomiglia alla seguente schermata:

(Facoltativo) Per la sezione Opzioni avanzate, effettuate le seguenti operazioni:
-
Attiva l'opzione Consigli di istanze personalizzate se desideri eseguire un job Amazon SageMaker Inference Recommender sul tuo modello dopo la sua creazione. Inference Recommender è una funzionalità che fornisce i tipi di istanze consigliati per ottimizzare le prestazioni e i costi dell'inferenza. È possibile visualizzare questi consigli sulle istanze durante la preparazione alla distribuzione del modello.
-
Per Aggiungi variabili di ambiente, inserisci una variabile di ambiente per il contenitore come coppie chiave-valore.
-
Per Tag, inserisci tutti i tag come coppie chiave-valore.
-
Dopo aver completato la configurazione del modello e del contenitore, scegli Crea modello implementabile.
Ora dovresti avere un modello in SageMaker Studio pronto per la distribuzione.
Distribuzione del modello
Infine, distribuisci il modello configurato nel passaggio precedente su un endpoint HTTPS. È possibile distribuire un singolo modello o più modelli sull'endpoint.
Compatibilità tra modelli ed endpoint
Prima di poter distribuire un modello su un endpoint, è necessario che il modello e l'endpoint siano compatibili e abbiano gli stessi valori per le seguenti impostazioni:
-
Il ruolo IAM
-
Amazon VPC, comprese le sottoreti e i gruppi di sicurezza
-
L'isolamento della rete (abilitato o disabilitato)
Studio impedisce di distribuire modelli su endpoint incompatibili nei seguenti modi:
-
Se tenti di implementare un modello su un nuovo endpoint, SageMaker AI configura l'endpoint con impostazioni iniziali compatibili. Se interrompi la compatibilità modificando queste impostazioni, Studio mostra un avviso e impedisce la distribuzione.
-
Se tenti di eseguire la distribuzione su un endpoint esistente e tale endpoint è incompatibile, Studio mostra un avviso e impedisce la distribuzione.
-
Se si tenta di aggiungere più modelli a una distribuzione, Studio impedisce di distribuire modelli incompatibili tra loro.
Quando Studio mostra l'avviso sull'incompatibilità tra modello ed endpoint, puoi scegliere Visualizza dettagli nell'avviso per vedere quali impostazioni sono incompatibili.
Un modo per distribuire un modello consiste nel fare quanto segue in Studio:
-
Apri l'applicazione SageMaker Studio.
-
Nel riquadro di navigazione a sinistra scegliere Models (Modelli).
-
Nella pagina Modelli, seleziona uno o più modelli dall'elenco dei modelli SageMaker AI.
-
Seleziona Deploy (Implementa).
-
Per il nome dell'endpoint, apri il menu a discesa. È possibile selezionare un endpoint esistente oppure creare un nuovo endpoint su cui distribuire il modello.
-
Per Tipo di istanza, seleziona il tipo di istanza che desideri utilizzare per l'endpoint. Se in precedenza hai eseguito un job Inference Recommender per il modello, i tipi di istanza consigliati vengono visualizzati nell'elenco sotto il titolo Consigliati. Altrimenti, vedrai alcune istanze di Prospective che potrebbero essere adatte al tuo modello.
Compatibilità del tipo di istanza per JumpStart
Se stai distribuendo un JumpStart modello, Studio mostra solo i tipi di istanza supportati dal modello.
-
Per il conteggio iniziale delle istanze, inserisci il numero iniziale di istanze che desideri fornire per il tuo endpoint.
-
Per Numero massimo di istanze, specifica il numero massimo di istanze che l'endpoint può fornire quando aumenta per far fronte all'aumento del traffico.
-
Se il modello che stai implementando è uno dei più utilizzati JumpStart LLMs dal Model Hub, l'opzione Configurazioni alternative viene visualizzata dopo i campi Tipo di istanza e Numero di istanze.
Per le più diffuse JumpStart LLMs, AWS dispone di tipi di istanze pre-confrontati per ottimizzare i costi o le prestazioni. Questi dati possono aiutarti a decidere quale tipo di istanza utilizzare per implementare il tuo LLM. Scegliete Configurazioni alternative per aprire una finestra di dialogo che contiene i dati pre-confrontati. Il pannello ha l'aspetto della seguente schermata:
Nella casella Configurazioni alternative, procedi come segue:
-
Selezione di un tipo di istanza. Puoi scegliere Costo all'ora o Prestazioni migliori per visualizzare i tipi di istanze che ottimizzano i costi o le prestazioni per il modello specificato. Puoi anche scegliere Altre istanze supportate per visualizzare un elenco di altri tipi di istanze compatibili con il JumpStart modello. Notate che la selezione di un tipo di istanza qui sovrascrive qualsiasi selezione di istanza precedente specificata nel passaggio 6.
-
(Facoltativo) Attiva l'interruttore Personalizza la configurazione selezionata per specificare il totale massimo di token (il numero massimo di token che desideri consentire, che è la somma dei token di input e dell'output generato dal modello), la lunghezza massima del token di input (il numero massimo di token che desideri consentire per l'immissione di ogni richiesta) e il numero massimo di richieste simultanee (il numero massimo di richieste che il modello può elaborare alla volta).
-
Scegli Seleziona per confermare il tipo di istanza e le impostazioni di configurazione.
-
-
Il campo Modello dovrebbe già essere compilato con il nome del modello o dei modelli che stai distribuendo. Puoi scegliere Aggiungi modello per aggiungere altri modelli alla distribuzione. Per ogni modello che aggiungi, compila i seguenti campi:
-
Per Numero di core CPU, inserisci i core CPU che desideri dedicare all'utilizzo del modello.
-
Per Numero minimo di copie, inserisci il numero minimo di copie del modello che desideri ospitare sull'endpoint in un dato momento.
-
Per Memoria CPU minima (MB), inserisci la quantità minima di memoria (in MB) richiesta dal modello.
-
Per Memoria CPU massima (MB), inserisci la quantità massima di memoria (in MB) che desideri consentire al modello di utilizzare.
-
-
(Facoltativo) Per le opzioni avanzate, effettuate le seguenti operazioni:
-
Per il ruolo IAM, utilizza il ruolo di esecuzione IAM SageMaker AI predefinito o specifica il tuo ruolo con le autorizzazioni necessarie. Tieni presente che questo ruolo IAM deve essere lo stesso che hai specificato durante la creazione del modello implementabile.
-
Per Virtual Private Cloud (VPC), puoi specificare un VPC in cui ospitare il tuo endpoint.
-
Per la chiave KMS di crittografia, seleziona una AWS KMS chiave per crittografare i dati sul volume di archiviazione collegato all'istanza di calcolo ML che ospita l'endpoint.
-
Attiva l'interruttore Abilita l'isolamento della rete per limitare l'accesso a Internet del contenitore.
-
Per la configurazione del timeout, inserisci i valori per i campi Model data download timeout (secondi) e Container startup health check timeout (secondi). Questi valori determinano rispettivamente il tempo massimo consentito dall' SageMaker IA per scaricare il modello nel contenitore e avviare il contenitore.
-
Per i tag, inserisci tutti i tag come coppie chiave-valore.
Nota
SageMaker L'intelligenza artificiale configura il ruolo IAM, il VPC e le impostazioni di isolamento della rete con valori iniziali compatibili con il modello che stai implementando. Se interrompi la compatibilità modificando queste impostazioni, Studio mostra un avviso e impedisce la distribuzione.
-
Dopo aver configurato le opzioni, la pagina dovrebbe apparire come nella schermata seguente.

Dopo aver configurato la distribuzione, scegli Deploy per creare l'endpoint e distribuire il modello.
Implementa modelli con Python SDKs
Utilizzando SageMaker Python SDK, puoi creare il tuo modello in due modi. Il primo consiste nel creare un oggetto modello dalla classe Model
orModelBuilder
. Se utilizzi la Model
classe per creare il tuo Model
oggetto, devi specificare il pacchetto del modello o il codice di inferenza (a seconda del server modello), gli script per gestire la serializzazione e la deserializzazione dei dati tra il client e il server ed eventuali dipendenze da caricare su Amazon S3 per il consumo. Il secondo modo per creare il modello consiste nel fornire artefatti del modello o ModelBuilder
codice di inferenza. ModelBuilder
acquisisce automaticamente le dipendenze, deduce le funzioni di serializzazione e deserializzazione necessarie e impacchetta le dipendenze per creare l'oggetto. Model
Per ulteriori informazioni su ModelBuilder
, consulta Crea un modello in Amazon SageMaker AI con ModelBuilder.
La sezione seguente descrive entrambi i metodi per creare il modello e distribuire l'oggetto del modello.
Configurazione
Gli esempi seguenti preparano il processo di distribuzione del modello. Importano le librerie necessarie e definiscono l'URL S3 che individua gli artefatti del modello.
Esempio URL dell'artefatto del modello
Il codice seguente crea un esempio di URL Amazon S3. L'URL individua gli artefatti del modello per un modello pre-addestrato in un bucket Amazon S3.
# Create a variable w/ the model S3 URL # The name of your S3 bucket: s3_bucket = "amzn-s3-demo-bucket" # The directory within your S3 bucket your model is stored in: bucket_prefix = "
sagemaker/model/path
" # The file name of your model artifact: model_filename = "my-model-artifact.tar.gz
" # Relative S3 path: model_s3_key = f"{bucket_prefix}/"+model_filename # Combine bucket name, model file name, and relate S3 path to create S3 model URL: model_url = f"s3://{s3_bucket}/{model_s3_key}"
L'URL completo di Amazon S3 è memorizzato nella variabilemodel_url
, utilizzata negli esempi seguenti.
Panoramica
Esistono diversi modi per distribuire modelli con Python SDK o SDK for SageMaker Python (Boto3). Le sezioni seguenti riassumono i passaggi da completare per diversi approcci possibili. Questi passaggi sono illustrati dagli esempi che seguono.
Configura
Gli esempi seguenti configurano le risorse necessarie per distribuire un modello su un endpoint.
Implementazione
Gli esempi seguenti implementano un modello su un endpoint.
Implementa modelli con AWS CLI
È possibile distribuire un modello su un endpoint utilizzando. AWS CLI
Panoramica
Quando si distribuisce un modello con AWS CLI, è possibile distribuirlo con o senza utilizzare un componente di inferenza. Le sezioni seguenti riepilogano i comandi eseguiti per entrambi gli approcci. Questi comandi sono illustrati dagli esempi che seguono.
Configura
Gli esempi seguenti configurano le risorse necessarie per distribuire un modello su un endpoint.
Implementazione
Gli esempi seguenti distribuiscono un modello su un endpoint.