Points de terminaison régionaux

Pour utiliser la prédiction en ligne, vous pouvez interagir avec l'API AI Platform Training and Prediction via son point de terminaison mondial (ml.googleapis.com) ou l'un de ses points de terminaison régionaux (REGION-ml.googleapis.com). L'utilisation d'un point de terminaison régional pour la prédiction en ligne protège davantage votre modèle contre les pannes survenant dans d'autres régions, car elle isole vos ressources de modèle et de version des autres régions.

AI Platform Prediction est actuellement compatible avec les points de terminaison régionaux suivants :

  • us-central1
  • europe-west4
  • asia-east1

Ce guide compare les avantages et les limites de l'utilisation de points de terminaison régionaux par rapport à un point de terminaison mondial. Le guide explique également comment utiliser un point de terminaison régional pour la prédiction en ligne.

Comprendre les points de terminaison régionaux

Les points de terminaison régionaux présentent plusieurs différences clés par rapport au point de terminaison mondial :

  • Les points de terminaison régionaux ne sont compatibles qu'avec les types de machines Compute Engine (N1). Vous ne pouvez pas utiliser d'anciens types de machines (MLS1) sur les points de terminaison régionaux. Cela signifie que tous les avantages et limites de l'utilisation des types de machines Compute Engine (N1) s'appliquent. Par exemple, vous pouvez utiliser des GPU sur des points de terminaison régionaux, mais vous ne pouvez pas activer la journalisation de flux (console) pour le moment.

    Pour utiliser un type de machine Compute Engine (N1), vous devez utiliser un point de terminaison régional.

  • Les points de terminaison régionaux ne sont compatibles qu'avec la prédiction en ligne et AI Explanations. Les modèles déployés vers des points de terminaison régionaux ne sont pas compatibles avec la prédiction par lot.

    AI Platform Prediction partage l'API AI Platform Training and Prediction avec AI Platform Training et AI Platform Vizier. Notez que les points de terminaison régionaux ne sont actuellement pas compatibles avec AI Platform Training. Seul le point de terminaison us-central1 est compatible avec AI Platform Vizier.

    Consultez la documentation de référence de l'API pour obtenir le détail des méthodes API disponibles pour chaque point de terminaison.

Les noms des ressources d'AI Platform Prediction qui sont liées à votre projet Google Cloud sont uniques pour un point de terminaison donné, mais sont duplicables pour différents points de terminaison. Par exemple, vous pouvez créer un modèle appelé "hello-world" sur le point de terminaison europe-west4 et un autre modèle du même nom sur le point de terminaison us-central1.

Lorsque vous répertoriez des modèles d'un point de terminaison régional, vous ne voyez que les modèles créés sur ce point de terminaison. De même, lorsque vous répertoriez des modèles du point de terminaison mondial, vous ne voyez que les modèles créés sur ce point de terminaison.

Différences entre les points de terminaison régionaux et les régions de points de terminaison mondiaux

Lorsque vous créez une ressource de modèle sur le point de terminaison mondial, vous pouvez spécifier une région pour votre modèle. Lorsque vous créez des versions dans ce modèle et que vous diffusez des prédictions, les nœuds de prédiction s'exécutent dans la région spécifiée.

Lorsque vous utilisez un point de terminaison régional, AI Platform Prediction exécute vos nœuds de prédiction dans la région du point de terminaison. Toutefois, dans ce cas, AI Platform Prediction offre davantage de protection en exécutant toute l'infrastructure AI Platform Prediction dans cette région.

Par exemple, si vous utilisez la région us-east1 du point de terminaison mondial, vos nœuds de prédiction s'exécutent dans us-east1, mais l'infrastructure AI Platform Prediction qui gère vos ressources (routage des requêtes, gestion de la création, des mises à jour et de la suppression des modèles et des versions, etc.) ne s'exécute pas nécessairement dans us-east1. À l'inverse, si vous utilisez le point de terminaison régional europe-west4, vos nœuds de prédiction et toute l'infrastructure AI Platform Prediction s'exécutent dans europe-west4.

Utiliser les points de terminaison régionaux

Pour utiliser un point de terminaison régional, vous devez d'abord créer un modèle sur celui-ci. Ensuite, effectuez toutes les actions liées à ce modèle (comme la création d'une version de modèle et l'envoi de requêtes de prédiction) sur le même point de terminaison.

Si vous utilisez Google Cloud Console, veillez à cocher la case Utiliser le point de terminaison régional lorsque vous créez votre modèle. Effectuez toutes les autres actions de Cloud Console comme vous le feriez sur le point de terminaison mondial.

Si vous utilisez l'outil de ligne de commande gcloud, ajoutez une option --region à la région de votre point de terminaison à chaque commande qui interagit avec votre modèle et ses ressources enfants. Éléments inclus :

Si vous interagissez directement avec l'API AI Platform Training and Prediction (à l'aide de la bibliothèque cliente des API Google pour Python, par exemple), formulez vos requêtes API comme vous le feriez pour le point de terminaison mondial, mais utilisez plutôt le point de terminaison régional. Consultez la documentation de référence de l'API pour obtenir le détail des méthodes API disponibles pour les points de terminaison régionaux.

Les exemples suivants illustrent comment utiliser un point de terminaison régional pour créer un modèle et une version, puis envoyer une requête de prédiction en ligne. Pour utiliser les exemples, remplacez l'espace réservé REGION partout où il apparaît par l'une des régions où des points de terminaison régionaux sont disponibles :

  • us-central1
  • europe-west4
  • asia-east1

Créer un modèle

Cloud Console

  1. Dans Cloud Console, accédez à la page Créer un modèle, puis sélectionnez votre projet Google Cloud :

    Accédez à la page Créer un modèle.

  2. Nommez votre modèle, cochez la case Utiliser le point de terminaison régional et sélectionnez la région du point de terminaison que vous souhaitez utiliser dans la liste déroulante Région.

  3. Cliquez sur le bouton Créer.

gcloud

Exécutez la commande suivante :

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

Dans la commande, remplacez les espaces réservés suivants :

  • MODEL_NAME : nom que vous choisissez pour votre modèle.
  • REGION : région du point de terminaison que vous souhaitez utiliser.

Python

Cet exemple utilise la bibliothèque cliente des API Google pour Python. Avant de pouvoir l'utiliser, vous devez installer la bibliothèque cliente des API Google pour Python et configurer l'authentification dans votre environnement de développement.

Exécutez le code Python suivant :

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)

Dans le code, remplacez les espaces réservés suivants :

  • REGION : région du point de terminaison que vous souhaitez utiliser.
  • MODEL_NAME : nom que vous choisissez pour votre modèle.
  • PROJECT_ID : ID de votre projet Google Cloud.

En savoir plus sur la création d'un modèle

Créer une version de modèle

Cet exemple suppose que vous avez déjà importé des artefacts de modèle compatibles dans Cloud Storage.

Cloud Console

À l'aide du modèle que vous avez créé dans la section précédente, suivez le guide pour créer une version de modèle dans Cloud Console.

gcloud

Cet exemple suppose que vous avez déjà importé des artefacts de modèle compatibles dans Cloud Storage. Exécutez la commande suivante :

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.2

Dans la commande, remplacez les espaces réservés suivants :

  • REGION : région du point de terminaison que vous avez utilisé dans la section précédente.
  • VERSION_NAME : nom que vous choisissez pour votre version.
  • MODEL_NAME : nom du modèle que vous avez créé dans la section précédente.
  • FRAMEWORK : framework utilisé pour créer les artefacts de votre modèle.
  • MACHINE_TYPE : type de machine Compute Engine (N1).
  • MODEL_DIRECTORY : URI Cloud Storage vers votre répertoire de modèle (commençant par "gs://").

Python

Exécutez le code Python suivant :

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.2',
    'machineType': 'MACHINE_TYPE',
    'framework': 'FRAMEWORK',
    'pythonVersion': '3.7'}
request = ml.projects().models().version().create(
    parent='projects/PROJECT_ID/models/MODEL_NAME',
    body=request_body)

response = request.execute()
print(response)

Dans le code, remplacez les espaces réservés suivants :

  • REGION : région du point de terminaison que vous avez utilisé dans la section précédente.
  • VERSION_NAME : nom que vous choisissez pour votre version.
  • MODEL_DIRECTORY : URI Cloud Storage vers votre répertoire de modèle (commençant par "gs://").
  • MACHINE_TYPE : type de machine Compute Engine (N1).
  • FRAMEWORK : framework utilisé pour créer les artefacts de votre modèle.
  • PROJECT_ID : ID de votre projet Google Cloud.
  • MODEL_NAME : nom du modèle que vous avez créé dans la section précédente.

En savoir plus sur la création d'une version de modèle

Envoyer une demande de prédiction en ligne

Cloud Console

  1. Dans Cloud Console, accédez à la page Modèles :

    Accéder à la page des modèles

  2. Dans la liste déroulante Région, sélectionnez la région du point de terminaison que votre modèle utilise. Cliquez sur le nom du modèle que vous avez créé dans une section précédente pour accéder à la page Informations sur le modèle.

  3. Cliquez sur le nom de la version que vous avez créée dans une section précédente pour accéder à sa page Informations sur la version.

  4. Cliquez sur l'onglet Test et utilisation. Saisissez une ou plusieurs instances de données d'entrée, puis cliquez sur le bouton Test pour envoyer une requête de prédiction en ligne.

gcloud

Cet exemple suppose que vous avez enregistré l'entrée de prédiction dans un fichier JSON délimité par un retour à la ligne dans votre environnement local. Exécutez la commande suivante :

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

Dans la commande, remplacez les espaces réservés suivants :

  • REGION : région du point de terminaison que vous avez utilisé dans les sections précédentes.
  • MODEL_NAME : nom du modèle que vous avez créé dans une section précédente.
  • VERSION_NAME : nom de la version de modèle que vous avez créée dans la section précédente.
  • INPUT_PATH : chemin dans votre système de fichiers local menant à votre fichier JSON avec une entrée de prédiction.

Python

Exécutez le code Python suivant :

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)

Dans le code, remplacez les espaces réservés suivants :

  • REGION : région du point de terminaison que vous avez utilisé dans les sections précédentes.
  • INSTANCES : liste des instances d'entrée de prédiction.
  • MODEL_NAME : nom du modèle que vous avez créé dans une section précédente.
  • VERSION_NAME : nom de la version que vous avez créée dans la section précédente.

En savoir plus sur l'obtention de prédictions en ligne

Étapes suivantes