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
us-east1
us-east4
us-west1
northamerica-northeast1
europe-west1
europe-west2
europe-west3
europe-west4
asia-east1
asia-northeast1
asia-southeast1
australia-southeast1
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 la console Google Cloud comme vous le feriez sur le point de terminaison mondial.
Si vous utilisez Google Cloud CLI, définissez l'option --region
sur la région du point de terminaison dans chaque commande qui interagit avec votre modèle et ses ressources enfants. Éléments inclus :
- Toutes les commandes du groupe de commandes
gcloud ai-platform models
- Toutes les commandes du groupe de commandes
gcloud ai-platform versions
- Toutes les commandes du groupe de commandes
gcloud ai-platform operations
lors de l'interaction avec les opérations de longue durée associées à une version du modèle - La commande
gcloud ai-platform predict
- La commande
gcloud beta ai-platform explain
Vous pouvez également définir la propriété ai_platform/region
sur une région spécifique afin de vous assurer que gcloud CLI utilise toujours le point de terminaison régional correspondant pour AI Platform Prediction, même lorsque vous ne spécifiez pas l'option --region
. (Cette configuration ne s'applique pas aux commandes du groupe de commandes gcloud ai-platform operations
.)
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
us-east1
us-east4
us-west1
northamerica-northeast1
europe-west1
europe-west2
europe-west3
europe-west4
asia-east1
asia-northeast1
asia-southeast1
australia-southeast1
Créer un modèle
console Google Cloud
Dans la console Google Cloud, accédez à la page Créer un modèle, puis sélectionnez votre projet Google Cloud:
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.
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.
console Google Cloud
À 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 la console Google Cloud.
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.11
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.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)
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
console Google Cloud
Dans la console Google Cloud, accédez à la page Modèles.
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.
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.
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
Étape suivante
- Consultez les différences de disponibilité régionale pour les points de terminaison régionaux et le point de terminaison mondial. Cela comprend les différences de disponibilité des GPU.
- Obtenez plus d'informations sur les types de machines Compute Engine (N1), qui sont requis pour les points de terminaison régionaux.
- Découvrez davantage d'options de configuration disponibles lorsque vous créez des modèles et des versions.