AI Platform Prediction alloca nodi per gestire online richieste di previsione inviate a un modello dell'audiodescrizione. Quando esegui il deployment di una versione del modello, puoi personalizzare il tipo che AI Platform Prediction utilizza per questi nodi.
I tipi di macchine si differenziano in diversi modi:
- Numero di CPU virtuali (vCPU) per nodo
- Quantità di memoria per nodo
- Supporto per le GPU, che puoi aggiungere ad alcuni tipi di macchina
- Supporto di alcune funzionalità di AI Platform Prediction
- Prezzi
- Copertura dell'accordo sul livello del servizio (SLA)
Selezionando un tipo di macchina con più risorse di calcolo, puoi le previsioni con latenza più bassa o gestire più richieste di previsione contemporaneamente nel tempo.
Tipi di macchina disponibili
I tipi di macchina di Compute Engine (N1) e il tipo di macchina mls1-c1-m2
sono generalmente disponibili per gli annunci online
la previsione. Il tipo di macchina mls1-c4-m2
è disponibile in versione beta.
La tabella seguente mette a confronto i tipi di macchina disponibili:
Nome | Disponibilità | vCPU | Memoria (GB) | Supporta le GPU? | Supporto di framework ML | Dimensione massima del modello |
---|---|---|---|---|---|---|
mls1-c1-m2 (valore predefinito sull'endpoint globale) |
Generalmente disponibile | 1 | 2 | No | TensorFlow, XGBoost, scikit-learn (incluse pipeline con del codice), le routine di previsione personalizzate | 500 MB |
mls1-c4-m2 |
Beta | 4 | 2 | No | TensorFlow, XGBoost, scikit-learn (incluse pipeline con del codice), le routine di previsione personalizzate | 500 MB |
n1-standard-2 (valore predefinito sugli endpoint a livello di regione) |
Generalmente disponibile | 2 | 7,5 | Sì | TensorFlow, XGBoost e scikit-learn | 10 GB |
n1-standard-4 |
Generalmente disponibile | 4 | 15 | Sì | TensorFlow, XGBoost e scikit-learn | 10 GB |
n1-standard-8 |
Generalmente disponibile | 8 | 30 | Sì | TensorFlow, XGBoost e scikit-learn | 10 GB |
n1-standard-16 |
Generalmente disponibile | 16 | 60 | Sì | TensorFlow, XGBoost e scikit-learn | 10 GB |
n1-standard-32 |
Generalmente disponibile | 32 | 120 | Sì | TensorFlow, XGBoost e scikit-learn | 10 GB |
n1-highmem-2 |
Generalmente disponibile | 2 | 13 | Sì | TensorFlow, XGBoost e scikit-learn | 10 GB |
n1-highmem-4 |
Generalmente disponibile | 4 | 26 | Sì | TensorFlow, XGBoost e scikit-learn | 10 GB |
n1-highmem-8 |
Generalmente disponibile | 8 | 52 | Sì | TensorFlow, XGBoost e scikit-learn | 10 GB |
n1-highmem-16 |
Generalmente disponibile | 16 | 104 | Sì | TensorFlow, XGBoost e scikit-learn | 10 GB |
n1-highmem-32 |
Generalmente disponibile | 32 | 208 | Sì | TensorFlow, XGBoost e scikit-learn | 10 GB |
n1-highcpu-2 |
Generalmente disponibile | 2 | 1.8 | Sì | TensorFlow, XGBoost e scikit-learn | 10 GB |
n1-highcpu-4 |
Generalmente disponibile | 4 | 3,6 | Sì | TensorFlow, XGBoost e scikit-learn | 10 GB |
n1-highcpu-8 |
Generalmente disponibile | 8 | 7.2 | Sì | TensorFlow, XGBoost e scikit-learn | 10 GB |
n1-highcpu-16 |
Generalmente disponibile | 16 | 14,4 | Sì | TensorFlow, XGBoost e scikit-learn | 10 GB |
n1-highcpu-32 |
Generalmente disponibile | 32 | 28,8 | Sì | TensorFlow, XGBoost e scikit-learn | 10 GB |
Scopri di più sui prezzi di ogni macchina del testo. Scopri di più sulle informazioni dettagliate specifiche dei tipi di macchine di Compute Engine (N1) Compute Engine documentazione.
Specifica di un tipo di macchina
Puoi specificare la scelta del tipo di macchina quando crei un modello
dell'audiodescrizione. In caso contrario
specifica un tipo di macchina, per impostazione predefinita la versione del modello utilizza l'utilizzo
n1-standard-2
se utilizzi una regione
endpoint e mls1-c1-m2
se
usano l'endpoint globale.
Le seguenti istruzioni evidenziano come specificare un tipo di macchina quando
per creare una versione del modello. Usano il tipo di macchina n1-standard-4
come esempio.
Per informazioni sull'intero processo di creazione di una versione del modello, leggi la guida alle
deployment dei modelli.
Console Google Cloud
Nella sezione Crea versione , apri la nell'elenco a discesa Tipo di macchina e seleziona Standard > n1-standard-4,
gcloud
Dopo aver caricato gli artefatti del modello in Cloud Storage e
una risorsa del modello, puoi creare
che utilizza il tipo di macchina n1-standard-4
:
gcloud ai-platform versions create VERSION_NAME \
--model MODEL_NAME \
--origin gs://model-directory-uri \
--runtime-version 2.11 \
--python-version 3.7 \
--framework ML_FRAMEWORK_NAME \
--region us-central1 \
--machine-type n1-standard-4
Python
Questo esempio utilizza il parametro Libreria client dell'API di Google per Python. Prima di eseguire nell'esempio di codice, devi configurare l'autenticazione.
Dopo aver caricato gli artefatti del modello in Cloud Storage e
creato una risorsa del modello, invia una richiesta
del modello
projects.models.versions.create
:
e specifica il campo machineType
nel corpo della richiesta:
from google.api_core.client_options import ClientOptions
from googleapiclient import discovery
endpoint = 'https://us-central1-ml.googleapis.com'
client_options = ClientOptions(api_endpoint=endpoint)
ml = discovery.build('ml', 'v1', client_options=client_options)
request_dict = {
'name': 'VERSION_NAME',
'deploymentUri': 'gs://model-directory-uri',
'runtimeVersion': '2.11',
'pythonVersion': '3.7',
'framework': 'ML_FRAMEWORK_NAME',
'machineType': 'n1-standard-4'
}
request = ml.projects().models().versions().create(
parent='projects/PROJECT_NAME/models/MODEL_NAME',
body=request_dict
)
response = request.execute()
Utilizzo di GPU per la previsione online
Per alcune configurazioni, puoi facoltativamente aggiungere GPU per accelerare di previsione. Per utilizzare le GPU, devi tenere conto di diversi requisiti:
- Puoi utilizzare GPU solo con tipi di macchine Compute Engine (N1). I tipi di macchine legacy (MLS1) non supportano le GPU.
- Puoi utilizzare le GPU solo quando esegui il deployment di un TensorFlow SavedModel. Non puoi utilizzare GPU per modelli scikit-learn o XGBoost.
- La disponibilità di ogni tipo di GPU varia in base alla regione utilizzata per il modello. Scopri quali tipi di GPU sono disponibili e in cui regioni.
- Puoi usare un solo tipo di GPU per la versione del tuo modello Limitazioni al numero di GPU che puoi aggiungere in base al tipo di macchina che stai utilizzando. Queste limitazioni sono descritte nella tabella seguente.
La tabella seguente mostra le GPU disponibili per la previsione online e il numero di ciascun tipo di GPU che puoi utilizzare con ciascun tipo di macchina Compute Engine:
Numeri validi di GPU per ogni tipo di macchina | |||||
---|---|---|---|---|---|
Tipo di macchina | NVIDIA Tesla K80 | NVIDIA Tesla P4 | NVIDIA Tesla P100 | NVIDIA Tesla T4 | NVIDIA Tesla V100 |
n1-standard-2 |
1, 2, 4, 8 | 1, 2, 4 | 1, 2, 4 | 1, 2, 4 | 1, 2, 4, 8 |
n1-standard-4 |
1, 2, 4, 8 | 1, 2, 4 | 1, 2, 4 | 1, 2, 4 | 1, 2, 4, 8 |
n1-standard-8 |
1, 2, 4, 8 | 1, 2, 4 | 1, 2, 4 | 1, 2, 4 | 1, 2, 4, 8 |
n1-standard-16 |
2, 4, 8 | 1, 2, 4 | 1, 2, 4 | 1, 2, 4 | 2, 4, 8 |
n1-standard-32 |
4 e 8 | 2, 4 | 2, 4 | 2, 4 | 4 e 8 |
n1-highmem-2 |
1, 2, 4, 8 | 1, 2, 4 | 1, 2, 4 | 1, 2, 4 | 1, 2, 4, 8 |
n1-highmem-4 |
1, 2, 4, 8 | 1, 2, 4 | 1, 2, 4 | 1, 2, 4 | 1, 2, 4, 8 |
n1-highmem-8 |
1, 2, 4, 8 | 1, 2, 4 | 1, 2, 4 | 1, 2, 4 | 1, 2, 4, 8 |
n1-highmem-16 |
2, 4, 8 | 1, 2, 4 | 1, 2, 4 | 1, 2, 4 | 2, 4, 8 |
n1-highmem-32 |
4 e 8 | 2, 4 | 2, 4 | 2, 4 | 4 e 8 |
n1-highcpu-2 |
1, 2, 4, 8 | 1, 2, 4 | 1, 2, 4 | 1, 2, 4 | 1, 2, 4, 8 |
n1-highcpu-4 |
1, 2, 4, 8 | 1, 2, 4 | 1, 2, 4 | 1, 2, 4 | 1, 2, 4, 8 |
n1-highcpu-8 |
1, 2, 4, 8 | 1, 2, 4 | 1, 2, 4 | 1, 2, 4 | 1, 2, 4, 8 |
n1-highcpu-16 |
2, 4, 8 | 1, 2, 4 | 1, 2, 4 | 1, 2, 4 | 2, 4, 8 |
n1-highcpu-32 |
4 e 8 | 2, 4 | 2, 4 | 2, 4 | 4 e 8 |
Le GPU sono facoltative e comportano costi aggiuntivi.
Specifica le GPU
Specifica le GPU quando crei una versione del modello. AI Platform Prediction alloca il numero e il tipo di GPU specificati per ciascun nodo di previsione. Puoi scalabilità automatica (anteprima) o scalabilità manuale (GA) i nodi di previsione, ma il numero di GPU ciascuna dei nodi è fissato durante la creazione della versione del modello. A meno che tu non abbia caso d'uso avanzato, consigliamo di configurare una GPU per ogni previsione node; in altre parole, imposta il conteggio degli acceleratori su 1.
Le istruzioni seguenti mostrano come specificare le GPU per la previsione online in base a
creando una versione del modello eseguita su almeno due nodi di previsione in qualsiasi momento.
Ogni nodo utilizza il tipo di macchina n1-standard-4
e una GPU NVIDIA Tesla T4.
Gli esempi presuppongono che tu abbia già caricato un SavedModel di TensorFlow in Cloud Storage e creato un modello risorsa in una regione che supporta per uso generico di CPU.
Console Google Cloud
Segui la guida per creare un modello dell'audiodescrizione. Il giorno Nella pagina Crea versione, specifica le opzioni seguenti:
- Nell'elenco a discesa Scalabilità, seleziona Scalabilità automatica.
- Nel campo Numero minimo di nodi, inserisci
2
. - Nell'elenco a discesa Tipo di macchina, seleziona Standard > n1-standard-4
- Nell'elenco a discesa Tipo di acceleratore, seleziona NVIDIA_TESLA_T4.
- Nell'elenco a discesa Conteggio acceleratori, seleziona 1.
gcloud
Utilizza gcloud CLI per creare una versione del modello. In questo esempio,
della versione viene eseguita su nodi di previsione n1-standard-4 che utilizzano ciascuno
GPU. AI Platform Prediction scala automaticamente il
di nodi di previsione a un numero compreso tra 2 e 4, a seconda dell'utilizzo della GPU
in qualsiasi momento. Nell'esempio viene utilizzato l'endpoint a livello di regione us-central1
:
gcloud beta ai-platform versions create VERSION_NAME \
--model MODEL_NAME \
--origin gs://model-directory-uri \
--runtime-version 2.11 \
--python-version 3.7 \
--framework tensorflow \
--region us-central1 \
--machine-type n1-standard-4 \
--accelerator count=1,type=nvidia-tesla-t4 \
--min-nodes 2 \
--max-nodes 4 \
--metric-targets gpu-duty-cycle=60
Tieni presente che il nome dell'acceleratore è specificato in minuscolo con trattini tra parole.
Python
Questo esempio utilizza il parametro Libreria client dell'API di Google per Python. Prima di eseguire nell'esempio di codice, devi configurare l'autenticazione.
L'esempio utilizza l'endpoint a livello di regione us-central1
.
Invia una richiesta al
projects.models.versions.create
e specificare i valori machineType
, acceleratorConfig
e manualScaling
campi nel corpo della richiesta:
from google.api_core.client_options import ClientOptions
from googleapiclient import discovery
endpoint = 'https://us-central1-ml.googleapis.com'
client_options = ClientOptions(api_endpoint=endpoint)
ml = discovery.build('ml', 'v1', client_options=client_options)
request_dict = {
'name': 'VERSION_NAME',
'deploymentUri': 'gs://model-directory-uri',
'runtimeVersion': '2.11',
'pythonVersion': '3.7',
'framework': 'TENSORFLOW',
'machineType': 'n1-standard-4',
'acceleratorConfig': {
'count': 1,
'type': 'NVIDIA_TESLA_T4'
},
'autoScaling': {
'minNodes': 2,
'maxNodes': 4,
'metrics': [
{
'name': 'GPU_DUTY_CYCLE',
'target': 60
}
]
}
}
request = ml.projects().models().versions().create(
parent='projects/PROJECT_NAME/models/MODEL_NAME',
body=request_dict
)
response = request.execute()
Tieni presente che il nome dell'acceleratore viene specificato in maiuscolo con trattini bassi tra le parole.
Differenze tra i tipi di macchina
Oltre a fornire diverse quantità di risorse di calcolo, i tipi di macchina variano il supporto per determinate funzionalità di AI Platform Prediction. La tabella seguente offre una panoramica delle differenze tra i tipi di macchine di Compute Engine (N1) e i tipi di macchine legacy (MLS1):
Tipi di macchine di Compute Engine (N1) | Tipi di macchine legacy (MLS1) | |
---|---|---|
Regioni | Tutte le regioni di endpoint a livello di regione | Tutte le regioni di endpoint globali |
Tipi di artefatti ML |
|
|
Versioni runtime | 1.11 o versioni successive | Tutte le AI Platform disponibili versioni di runtime |
Supporto per container personalizzato | Sì | No |
Dimensione massima del modello | 10 GB | 500 MB |
Scalabilità automatica | Numero minimo di nodi = 1 | Numero minimo di nodi = 0 |
Scalabilità manuale | Può aggiornare il numero di nodi | Impossibile aggiornare il numero di nodi dopo la creazione della versione del modello |
Supporto GPU | Sì (solo TensorFlow) | No |
Supporto di AI Explanations | Sì (solo TensorFlow) | No |
Supporto dei Controlli di servizio VPC | Sì | No |
Copertura SLA per i tipi di macchine in disponibilità generale | Sì, in alcuni casi | Sì |
Le seguenti sezioni forniscono spiegazioni dettagliate sulle differenze tra i vari tipi di macchina.
Disponibilità a livello di area geografica
I tipi di macchine di Compute Engine (N1) sono disponibili quando esegui il deployment del modello in una endpoint. Quando utilizzi un tipo di macchina Compute Engine (N1), non puoi il deployment del modello nell'endpoint globale.
Quando scali una versione di un modello che utilizza tipi di macchine di Compute Engine (N1) a due o più previsioni nodi, vengono eseguiti in più zone all'interno della stessa regione. Ciò garantisce disponibilità continua in caso di interruzione in una delle zone. Scopri di più in la sezione relativa alla scalabilità di questo documento.
Tieni presente che la disponibilità delle GPU per i tipi di macchine di Compute Engine (N1) varia anche in base a regione.
I tipi di macchine legacy (MLS1) sono disponibili nell'endpoint globale in molti regioni. I tipi di macchine legacy (MLS1) non sono disponibili a livello di regione endpoint.
Supporto per le previsioni batch
Le versioni del modello che utilizzano il tipo di macchina mls1-c1-m2
supportano batch
per la previsione. Versioni del modello che utilizzano un'altra macchina
non supportano la previsione batch.
Supporto di framework ML
Se utilizzi un tipo di macchina Compute Engine (N1), puoi creare la versione del modello con tutte gli artefatti del modello descritti nella sezione Esportazione di modelli di previsione guida, fatta eccezione per due:
- Non puoi utilizzare una pipeline scikit-learn con Google Cloud.
- Non puoi utilizzare una previsione personalizzata di Cloud Shell.
Per i tipi di macchine legacy (MLS1), puoi utilizzare qualsiasi tipo di modello artefatto supportato da AI Platform Prediction, inclusa una pipeline scikit-learn con codice personalizzato o una previsione personalizzata una nuova routine.
Supporto della versione di runtime
Se utilizzi un tipo di macchina Compute Engine (N1), devi utilizzare la versione 1.11 del runtime o più avanti per la versione del tuo modello.
Se utilizzi un tipo di macchina legacy (MLS1), puoi utilizzare qualsiasi Versione runtime di AI Platform.
Supporto per container personalizzato
Per utilizzare un container personalizzato per la pubblicazione online devi utilizzare un tipo di macchina Compute Engine (N1).
Dimensione massima del modello
Gli artefatto del modello che fornisci quando crei una versione del modello, le dimensioni totali del file devono essere inferiori a 500 MB se utilizzi un tipo di macchina legacy (MLS1). Le dimensioni totali del file possono essere fino a 10 GB se utilizzi un tipo di macchina Compute Engine (N1).
Logging delle previsioni
Per i tipi di macchine di Compute Engine (N1), console log è in anteprima. Per i tipi di macchine legacy (MLS1), il logging della console è in disponibilità generale.
Scalabilità dei nodi di previsione
Scalabilità automatica e scalabilità manuale della previsione nodi entrambi hanno vincoli diversi a seconda che venga utilizzata o meno Tipo di macchina Compute Engine (N1) o legacy (MLS1).
Scalabilità automatica
Se utilizzi un tipo di macchina Compute Engine (N1) con automatico
della scalabilità,
la versione del modello deve avere almeno un nodo in esecuzione. In altre parole,
lo standard autoScaling.minNodes
della versione
campo
il valore predefinito è 1 e non può essere inferiore a 1. Se imposti autoScaling.minNodes
su 2
o superiore, i nodi di previsione vengono eseguiti in più zone all'interno della stessa regione.
Ciò garantisce la disponibilità continua in caso di interruzione in una delle zone.
Tieni presente che se allochi più vCPU o RAM rispetto al tuo modello di machine learning la scalabilità automatica potrebbe non funzionare correttamente. Ciò può causare problemi con il modello delle prestazioni. Prova a utilizzare diversi tipi di macchina per far sì che il modello non devi fornire troppe risorse di calcolo.
Se utilizzi un tipo di macchina legacy (MLS1), la versione del modello può scalare fino a zero
nodi quando non riceve traffico: puoi impostare autoScaling.minNodes
su 0,
ed è impostato su 0 per impostazione predefinita. Scalando fino a zero puoi ridurre i costi quando il modello
la versione precedente non riceve richieste di previsione. Tuttavia, può anche portare a
di latenza o errori durante i periodi in cui AI Platform Prediction alloca
nuovo nodo per gestire le richieste dopo un periodo senza nodi. Scopri di più su
scalando fino a zero.
Scalabilità manuale
Se utilizzi un tipo di macchina Compute Engine (N1) con manuale
della scalabilità,
puoi aggiornare il numero di nodi di previsione in esecuzione in qualsiasi momento utilizzando il metodo
projects.models.versions.patch
:
API. Se imposti la proprietà manualScaling.nodes
campo a 2 o
maggiore, i nodi di previsione vengono eseguiti in più zone all'interno della stessa regione.
Ciò garantisce la disponibilità continua in caso di interruzione in una delle zone.
Se utilizzi un tipo di macchina legacy (MLS1) con scalabilità manuale, non puoi eseguire l'aggiornamento il numero di nodi di previsione dopo la creazione della versione del modello. Se vuoi per modificare il numero di nodi, devi eliminare la versione e crearne una nuova.
Supporto dei Controlli di servizio VPC
Se utilizzi Controlli di servizio VPC per proteggere AI Platform Prediction, non potrai creare che utilizzano tipi di macchine legacy (MLS1). Devi utilizzare tipi di macchine di Compute Engine (N1).