Endpoint regionali

Per utilizzare la previsione online, puoi interagire con l'API AI Platform Training and Prediction attraverso il suo endpoint globale (ml.googleapis.com) o attraverso uno dei suoi endpoint a livello di regione (REGION-ml.googleapis.com). L'utilizzo di un endpoint a livello di regione per la previsione online offre un'ulteriore protezione del modello contro le interruzioni in altre regioni, poiché isola le risorse del modello e della versione da altre regioni.

AI Platform Prediction attualmente supporta i seguenti endpoint a livello di regione:

  • us-central1
  • us-east1
  • us-east4
  • us-west1
  • northamerica-northeast1
  • europe-west1
  • europe-west2
  • europe-west3
  • europe-west4
  • asia-east1
  • asia-northeast1
  • asia-southeast1
  • australia-southeast1

Questa guida mette a confronto i vantaggi e le limitazioni dell'utilizzo degli endpoint a livello di regione rispetto all'endpoint globale. La guida illustra anche come utilizzare un endpoint a livello di regione per le previsioni online.

Informazioni sugli endpoint a livello di regione

Gli endpoint a livello di regione presentano diverse differenze fondamentali rispetto all'endpoint globale:

  • Gli endpoint a livello di regione supportano solo i tipi di macchina di Compute Engine (N1). Non puoi utilizzare tipi di macchine legacy (MLS1) su endpoint a livello di regione. Ciò significa che si applicano tutti i vantaggi e le limitazioni dell'utilizzo dei tipi di macchine di Compute Engine (N1). Ad esempio, puoi utilizzare le GPU su endpoint a livello di regione, ma al momento non puoi abilitare il logging dei flussi (console).

    Per utilizzare un tipo di macchina di Compute Engine (N1), devi utilizzare un endpoint a livello di regione.

  • Gli endpoint a livello di regione supportano solo le previsioni online e AI Explanations. I modelli di cui è stato eseguito il deployment negli endpoint a livello di regione non supportano la previsione batch.

    AI Platform Prediction condivide l'API AI Platform Training and Prediction con AI Platform Training e AI Platform Vizier. Tieni presente che attualmente gli endpoint a livello di regione non supportano AI Platform Training. Solo l'endpoint us-central1 supporta AI Platform Vizier.

    Per ulteriori dettagli sui metodi API disponibili su quali endpoint, consulta il riferimento API.

I nomi delle risorse di AI Platform Prediction sono univoci per il tuo progetto Google Cloud su qualsiasi endpoint, ma possono essere duplicati su vari endpoint. Ad esempio, puoi creare un modello denominato "hello-world" sull'endpoint europe-west4 e un altro modello denominato "hello-world" sull'endpoint us-central1.

Quando elenchi i modelli su un endpoint a livello di regione, vedi solo i modelli creati su quell'endpoint. Analogamente, quando elenchi i modelli sull'endpoint globale, vedi solo quelli creati sull'endpoint globale.

Confronto tra regioni degli endpoint globali e degli endpoint a livello di regione

Quando crei una risorsa del modello sull'endpoint globale, puoi specificare una regione per il modello. Quando crei versioni all'interno di questo modello e pubblichi previsioni, i nodi di previsione vengono eseguiti nella regione specificata.

Quando utilizzi un endpoint a livello di regione, AI Platform Prediction esegue i nodi di previsione nella regione dell'endpoint. Tuttavia, in questo caso AI Platform Prediction fornisce un ulteriore isolamento eseguendo l'intera infrastruttura di AI Platform Prediction in quella regione.

Ad esempio, se utilizzi la regione us-east1 sull'endpoint globale, i nodi di previsione vengono eseguiti in us-east1. Tuttavia, l'infrastruttura di AI Platform Prediction che gestisce le tue risorse (richieste di routing, gestione di creazione di modelli e versioni, aggiornamenti, eliminazione e così via) non viene necessariamente eseguita in us-east1. Se invece utilizzi l'endpoint a livello di regione europe-west4, i nodi di previsione e tutta l'infrastruttura di AI Platform Prediction vengono eseguiti in europe-west4.

Utilizzo degli endpoint a livello di regione

Per utilizzare un endpoint a livello di regione, devi prima creare un modello sull'endpoint a livello di regione. Poi esegui tutte le azioni relative al modello (come la creazione di una versione del modello e l'invio di richieste di previsione) sullo stesso endpoint.

Se utilizzi la console Google Cloud, assicurati di selezionare la casella di controllo Utilizza endpoint a livello di regione quando crei il modello. Esegui tutte le altre azioni della console Google Cloud come faresti sull'endpoint globale.

Se utilizzi Google Cloud CLI, invia il flag --region alla regione del tuo endpoint su ogni comando che interagisce con il modello e le relative risorse figlio. È incluso quanto segue:

In alternativa, puoi impostare la proprietà ai_platform/region su una regione specifica per assicurarti che gcloud CLI utilizzi sempre l'endpoint regionale corrispondente per i comandi AI Platform Prediction, anche quando non specifichi il flag --region. (Questa configurazione non si applica ai comandi nel gruppo di comandi gcloud ai-platform operations.)

Se interagisci direttamente con l'API AI Platform Training and Prediction (ad esempio, utilizzando la libreria client delle API di Google per Python), effettua tutte le richieste API come faresti per l'endpoint globale, ma utilizza invece l'endpoint a livello di regione. Consulta il riferimento API per ulteriori dettagli su quali metodi API sono disponibili sugli endpoint a livello di regione.

I seguenti esempi mostrano come utilizzare un endpoint a livello di regione per creare un modello, creare una versione e inviare una richiesta di previsione online. Per utilizzare gli esempi, sostituisci REGION ogni volta che appare con una delle regioni in cui sono disponibili gli endpoint a livello di regione:

  • us-central1
  • us-east1
  • us-east4
  • us-west1
  • northamerica-northeast1
  • europe-west1
  • europe-west2
  • europe-west3
  • europe-west4
  • asia-east1
  • asia-northeast1
  • asia-southeast1
  • australia-southeast1

Creazione di un modello

Console Google Cloud

  1. Nella console Google Cloud, vai alla pagina Crea modello e seleziona il tuo progetto Google Cloud:

    Vai alla pagina Crea modello

  2. Assegna un nome al modello, seleziona la casella di controllo Utilizza endpoint a livello di regione e seleziona la regione dell'endpoint che vuoi utilizzare dall'elenco a discesa Regione.

  3. Fai clic su pulsante Crea.

gcloud

Esegui questo comando:

gcloud ai-platform models create MODEL_NAME \
  --region=REGION

Nel comando, sostituisci i seguenti segnaposto:

  • MODEL_NAME: un nome scelto da te per il modello.
  • REGION: la regione dell'endpoint che vuoi utilizzare.

Python

Questo esempio utilizza la libreria client dell'API di Google per Python. Prima di poterla utilizzare, devi installare la libreria client delle API di Google per Python e configurare l'autenticazione nel tuo ambiente di sviluppo.

Esegui questo codice Python:

from google.api_core.client_options import ClientOptions
from googleapiclient import discovery

endpoint = 'https://REGION-ml.googleapis.com'
client_options = ClientOptions(api_endpoint=endpoint)
ml = discovery.build('ml', 'v1', client_options=client_options)

request_body = { 'name': 'MODEL_NAME' }
request = ml.projects().models().create(parent='projects/PROJECT_ID',
    body=request_body)

response = request.execute()
print(response)

Nel codice, sostituisci i seguenti segnaposto:

  • REGION: la regione dell'endpoint che vuoi utilizzare.
  • MODEL_NAME: un nome scelto da te per il modello.
  • PROJECT_ID: l'ID del tuo progetto Google Cloud.

Scopri di più sulla creazione di un modello.

Creazione di una versione del modello

Questo esempio presuppone che tu abbia già caricato artefatti del modello compatibili in Cloud Storage.

Console Google Cloud

Utilizzando il modello creato nella sezione precedente, segui la guida alla creazione di una versione del modello nella console Google Cloud.

gcloud

Questo esempio presuppone che tu abbia già caricato artefatti del modello compatibili in Cloud Storage. Esegui questo comando:

gcloud ai-platform versions create VERSION_NAME \
  --region=REGION \
  --model=MODEL_NAME \
  --framework=FRAMEWORK \
  --machine-type=MACHINE_TYPE \
  --origin=MODEL_DIRECTORY \
  --python-version=3.7 \
  --runtime-version=2.11

Nel comando, sostituisci i seguenti segnaposto:

  • REGION: la regione dell'endpoint che hai utilizzato nella sezione precedente.
  • VERSION_NAME: un nome che scegli per la versione.
  • MODEL_NAME: il nome del modello creato nella sezione precedente.
  • FRAMEWORK: il framework utilizzato per creare gli artefatti del modello.
  • MACHINE_TYPE: un tipo di macchina di Compute Engine (N1).
  • MODEL_DIRECTORY: un URI Cloud Storage della directory del modello (che inizia con "gs://").

Python

Esegui questo codice Python:

from google.api_core.client_options import ClientOptions
from googleapiclient import discovery

endpoint = 'https://REGION-ml.googleapis.com'
client_options = ClientOptions(api_endpoint=endpoint)
ml = discovery.build('ml', 'v1', client_options=client_options)

request_body = { 'name': 'VERSION_NAME',
    'deploymentUri': 'MODEL_DIRECTORY',
    'runtimeVersion': '2.11',
    'machineType': 'MACHINE_TYPE',
    'framework': 'FRAMEWORK',
    'pythonVersion': '3.7'}
request = ml.projects().models().versions().create(
    parent='projects/PROJECT_ID/models/MODEL_NAME',
    body=request_body)

response = request.execute()
print(response)

Nel codice, sostituisci i seguenti segnaposto:

  • REGION: la regione dell'endpoint che hai utilizzato nella sezione precedente.
  • VERSION_NAME: un nome che scegli per la versione.
  • MODEL_DIRECTORY: un URI Cloud Storage della directory del modello (che inizia con "gs://").
  • MACHINE_TYPE: un tipo di macchina di Compute Engine (N1).
  • FRAMEWORK: il framework utilizzato per creare gli artefatti del modello.
  • PROJECT_ID: l'ID del tuo progetto Google Cloud.
  • MODEL_NAME: il nome del modello creato nella sezione precedente.

Scopri di più sulla creazione di una versione del modello.

Invio di una richiesta di previsione online

Console Google Cloud

  1. Nella console Google Cloud, vai alla pagina Modelli:

    Vai alla pagina Modelli

  2. Nell'elenco a discesa Regione, seleziona la regione dell'endpoint utilizzato dal modello. Fai clic sul nome del modello che hai creato in una sezione precedente per passare alla relativa pagina Dettagli modello.

  3. Fai clic sul nome della versione creata in una sezione precedente per passare alla relativa pagina Dettagli versione.

  4. Fai clic sulla scheda Testa e utilizza. Inserisci una o più istanze di dati di input e fai clic sul pulsante Test per inviare una richiesta di previsione online.

gcloud

Questo esempio presuppone che tu abbia salvato l'input di previsione in un file JSON delimitato da nuova riga nel tuo ambiente locale. Esegui questo comando:

gcloud ai-platform predict \
  --region=REGION \
  --model=MODEL_NAME \
  --version=VERSION_NAME \
  --json-request=INPUT_PATH

Nel comando, sostituisci i seguenti segnaposto:

  • REGION: la regione dell'endpoint che hai utilizzato nelle sezioni precedenti.
  • MODEL_NAME: il nome del modello creato in una sezione precedente.
  • VERSION_NAME: il nome della versione del modello creata nella sezione precedente.
  • INPUT_PATH: il percorso nel file system locale di un file JSON con input di previsione.

Python

Esegui questo codice Python:

from google.api_core.client_options import ClientOptions
from googleapiclient import discovery

endpoint = 'https://REGION-ml.googleapis.com'
client_options = ClientOptions(api_endpoint=endpoint)
ml = discovery.build('ml', 'v1', client_options=client_options)

request_body = { 'instances': INSTANCES }
request = ml.projects().predict(
    name='projects/PROJECT_ID/models/MODEL_NAME/VERSION_NAME',
    body=request_body)

response = request.execute()
print(response)

Nel codice, sostituisci i seguenti segnaposto:

  • REGION: la regione dell'endpoint che hai utilizzato nelle sezioni precedenti.
  • INSTANCES: un elenco di istanze di input di previsione.
  • MODEL_NAME: il nome del modello creato in una sezione precedente.
  • VERSION_NAME: il nome della versione creata nella sezione precedente.

Scopri di più su come ricevere previsioni online.

Passaggi successivi