Distribuzioni di modelli
Scopri come utilizzare le distribuzioni dei modelli di Data Science.
Le distribuzioni dei modelli sono una risorsa gestita nel servizio OCI Data Science da utilizzare per distribuire modelli di machine learning come endpoint HTTP in OCI. L'implementazione di modelli di machine learning come applicazioni Web (endpoint API HTTP) che forniscono previsioni in tempo reale è il modo più comune in cui i modelli vengono prodotti. Gli endpoint HTTP sono flessibili e possono soddisfare le richieste di previsioni dei modelli.

In fase di addestramento
La formazione di un modello è il primo passo per la distribuzione di un modello. Le sessioni di notebook e i job vengono utilizzati per addestrare i modelli open source e Oracle AutoML.
Salvataggio e archiviazione
Successivamente, il modello addestrato viene memorizzato nel catalogo modelli. Per salvare un modello nel catalogo modelli, sono disponibili le opzioni riportate di seguito.
- L'SDK ADS fornisce un'interfaccia per specificare un modello open source, prepararne l'artifact modello e salvarlo nel catalogo modelli.
-
Puoi utilizzare la console OCI, gli SDK e le interfacce CLI per salvare l'artifact del modello nel catalogo modelli.
-
Utilizzare framework diversi come scikit-learn, TensorFlow o Keras.
La distribuzione del modello richiede di specificare un ambiente Honda di inferenza nel file artifact del modello runtime.yaml
. Questo ambiente Conda inferenza contiene tutte le dipendenze del modello ed è installato nel contenitore del server modello. È possibile specificare uno degli ambienti Conda di Data Science o un ambiente pubblicato creato.
Distribuzione di un modello
Dopo essere stato salvato nel catalogo modelli, un modello diventa disponibile per la distribuzione come risorsa di distribuzione modello. Il servizio supporta i modelli in esecuzione in un ambiente runtime Python e le relative dipendenze possono essere inserite in un package in un ambiente conda.
Puoi distribuire e richiamare un modello utilizzando la console OCI, gli SDK OCI, l'interfaccia CLI OCI e l'SDK ADS nelle sessioni notebook.
Le distribuzioni dei modelli si basano su questi componenti chiave per distribuire un modello come endpoint HTTP:

- Load balancer.
-
Quando si crea una distribuzione modello, è necessario configurare un load balancer. Un load balancer fornisce un modo automatico per distribuire il traffico da un unico punto di accesso a molti server modello in esecuzione in un pool di virtual machine (VM). La larghezza di banda del load balancer deve essere specificata in Mbps ed è un valore statico. È possibile modificare la larghezza di banda del load balancer modificando la distribuzione del modello.
- Pool di istanze VM che ospitano il server dei modelli, l'ambiente Conda e il modello stesso.
-
Una copia del server modello viene eseguita su ogni istanza di computazione nel pool di VM.
In ogni istanza del pool vengono copiate anche una copia dell'ambiente Conda inferenza e l'artifact modello selezionato. Due copie del modello vengono caricate in memoria per ogni OCPU di ogni istanza VM nel pool. Ad esempio, se si seleziona un'istanza VM.Standard2.4 per eseguire il server modello, 4 OCPU x 2 = 8 copie del modello vengono caricate in memoria. Diverse copie del modello consentono di gestire le richieste concorrenti effettuate all'endpoint del modello distribuendo tali richieste tra le repliche del modello nella memoria VM. Assicurarsi di selezionare una forma VM con un footprint di memoria sufficiente per tenere conto di tali repliche del modello in memoria. Per la maggior parte dei modelli di machine learning con dimensioni in MB o GB ridotti, è probabile che la memoria non sia un problema.
Il load balancer distribuisce le richieste effettuate all'endpoint del modello tra le istanze nel pool. Ti consigliamo di utilizzare forme VM più piccole per ospitare il modello con un numero maggiore di istanze invece di selezionare un numero inferiore di VM anche se più grandi.
- Artifact modello nel catalogo modelli.
-
La distribuzione del modello richiede un artifact modello memorizzato nel catalogo modelli e il modello è in uno stato attivo. La distribuzione del modello espone la funzione
predict()
definita nel file score.py dell'artifact modello. - Ambiente Conda con dipendenze runtime del modello.
-
Un ambiente conda incapsula tutte le dipendenze Python di terze parti (ad esempio Numpy, Dask o XGBoost) richieste da un modello. Gli ambienti Conda Python supportano le versioni
3.7
,3.8
,3.9
,3.10
e3.11
di Python. La versione Python specificata conINFERENCE_PYTHON_VERSION
deve corrispondere alla versione utilizzata durante la creazione del pacchetto conda.La distribuzione del modello estrae una copia dell'ambiente Conda inferenza definito nel file runtime.yaml dell'artifact modello per distribuire il modello e le relative dipendenze. Le informazioni pertinenti sull'ambiente di distribuzione del modello si trovano nel parametro
MODEL_DEPLOYMENT
del fileruntime.yaml
. I parametriMODEL_DEPLOYMENT
vengono acquisiti automaticamente quando un modello viene salvato utilizzando ADS in una sessione notebook. Per salvare un modello nel catalogo e distribuirlo utilizzando l'SDK, l'interfaccia CLI o la console OCI, è necessario fornire un fileruntime.yaml
come parte di un artifact del modello che includa tali parametri.Nota
Per tutti gli artifact modello salvati nel catalogo modelli senza un file
runtime.yaml
o quando il parametroMODEL_DEPLOYMENT
risulta mancante nel fileruntime.yaml
, nel server modelli viene installato un ambiente conda predefinito e utilizzato per caricare un modello. L'ambiente Conda predefinito utilizzato è Machine Learning generale con Python versione 3.8.Utilizzare questi ambienti Conda:
- Ambienti Conda Data Science
-
La lista degli ambienti Conda è disponibile in Visualizzazione degli ambienti Conda.
Nell'esempio seguente, il file
runtime.yaml
indica alla distribuzione del modello di estrarre l'ambiente Conda pubblicato dal percorso di storage degli oggetti definito daINFERENCE_ENV_PATH
in ONNX 1.10 per la CPU in Python 3.7.MODEL_ARTIFACT_VERSION: '3.0' MODEL_DEPLOYMENT: INFERENCE_CONDA_ENV: INFERENCE_ENV_SLUG: envslug INFERENCE_ENV_TYPE: data_science INFERENCE_ENV_PATH: oci://service-conda-packs@id19sfcrra6z/service_pack/cpu/ONNX 1.10 for CPU on Python 3.7/1.0/onnx110_p37_cpu_v1 INFERENCE_PYTHON_VERSION: '3.7'
- Ambienti Conda pubblicati
-
È possibile creare e pubblicare ambienti Conda da utilizzare nelle distribuzioni dei modelli.
Nell'esempio seguente, il file
runtime.yaml
indica alla distribuzione del modello di estrarre l'ambiente Conda pubblicato dal percorso di storage degli oggetti definito daINFERENCE_ENV_PATH
. Quindi lo installa su tutte le istanze del pool che ospita il server modello e il modello stesso.MODEL_ARTIFACT_VERSION: '3.0' MODEL_DEPLOYMENT: INFERENCE_CONDA_ENV: INFERENCE_ENV_SLUG: envslug INFERENCE_ENV_TYPE: published INFERENCE_ENV_PATH: oci://<bucket-name>@I/<prefix>/<env> INFERENCE_PYTHON_VERSION: '3.7'
Per tutti gli artifact del modello salvati nel catalogo senza un file
runtime.yaml
, le distribuzioni del modello utilizzano anche l'ambiente Conda predefinito per la distribuzione del modello. Una distribuzione modello può anche estrarre un ambiente Conda di Data Science o un ambiente Conda creato o modificato, quindi pubblicare. - Operazioni senza tempi di inattività
-
Nessuna operazione di inattività per le distribuzioni dei modelli significa che l'endpoint di inferenza del modello (previsione) può servire continuamente le richieste senza interruzioni o instabilità.
Le distribuzioni dei modelli supportano una serie di operazioni che possono essere eseguite senza tempi di inattività. Questa funzione è fondamentale per qualsiasi applicazione che utilizza l'endpoint del modello. È possibile applicare operazioni senza tempi di inattività quando il modello si trova in uno stato attivo che serve le richieste. Utilizzare queste operazioni con tempi di inattività nulli per scambiare il modello per un altro, modificare la forma della VM e la configurazione di log evitando tempi di inattività.
- Registrazione dell'integrazione per acquisire i log emessi dalla distribuzione del modello
-
È possibile integrare le distribuzioni dei modelli con il servizio Log. Utilizzare questa integrazione facoltativa per eseguire i log degli elementi da un modello, quindi ispezionare questi log.
- Container personalizzato con dipendenze runtime del modello
-
Un contenitore personalizzato racchiude tutte le dipendenze di terze parti necessarie richieste da un modello per l'inferenza. Include anche un server inferenza preferito, ad esempio un server inferenza Triton, un servizio TensorFlow, un servizio runtime ONNX e così via.
- Inferenza GPU
-
L'inferenza dell'unità di elaborazione grafica è ampiamente utilizzata per i modelli a uso intensivo di calcolo, ad esempio LLaMa o i trasformatori pre-addestrati generativi.
- Uscita personalizzata
- È possibile selezionare tra networking gestito dai servizi o networking gestito dai clienti, in modo simile all'uscita personalizzata con job e notebook.
- Endpoint privato
-
Per migliorare la sicurezza e il controllo, è possibile accedere alle distribuzioni dei modelli tramite una rete privata (distribuzione di modelli privati). Grazie al supporto per gli endpoint privati, il traffico inferenziale rimane sicuro all'interno della rete privata. Per ulteriori informazioni, vedere le sezioni Creazione di un endpoint privato e Creazione di una distribuzione modello per configurare una distribuzione modello con un endpoint privato.
Dettagli distribuzioni modello
Dopo aver selezionato un progetto, viene visualizzata la pagina dei dettagli del progetto con una lista di sessioni notebook e altre risorse, ad esempio le distribuzioni dei modelli.
Selezionare Distribuzioni modello per andare alla pagina dei dettagli delle distribuzioni modello per il compartimento selezionato, in cui è possibile:
-
Crea distribuzioni modello.
-
Selezionare una distribuzione modello per visualizzarne i dettagli e utilizzarla.
-
Utilizzare il
per visualizzare i dettagli, modificare, spostare una distribuzione modello o eliminare una distribuzione modello. -
OCID: l'OCID di una risorsa. Viene visualizzata una versione abbreviata dell'OCID, ma è possibile utilizzare Mostra e Nascondi per cambiare la visualizzazione dell'OCID. Utilizzare il collegamento Copia per salvare l'intero OCID negli Appunti e incollarlo altrove. Ad esempio, è possibile incollare un file e salvarlo, quindi utilizzarlo negli script del modello.
-
Utilizzare il filtro Ambito elenco per visualizzare le distribuzioni del modello associate al progetto selezionato in un altro compartimento.
-
Filtrare le distribuzioni dei modelli in base allo stato utilizzando la lista Stato. L'impostazione predefinita prevede la visualizzazione di tutti i tipi di stato.
-
Quando le tag vengono applicate alle distribuzioni dei modelli, è possibile filtrare ulteriormente le distribuzioni dei modelli facendo clic su Aggiungi o Cancella accanto a Filtri tag.
-
Selezionare altre risorse di Data Science, ad esempio modelli, distribuzioni di modelli e sessioni notebook.