Extremos regionales

A fin de usar la predicción en línea, puedes interactuar con la API de entrenamiento y predicción de AI Platform mediante el extremo global (ml.googleapis.com) o uno de los extremos regionales (REGION-ml.googleapis.com). Usar un extremo regional en la predicción en línea proporciona protección adicional para el modelo frente a interrupciones en otras regiones, ya que aísla los recursos del modelo y de la versión de otras regiones.

En la actualidad, AI Platform Prediction es compatible con los siguientes extremos regionales:

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

En esta guía, se comparan los beneficios y las limitaciones del uso de los extremos regionales en comparación con el extremo global. También, se explica cómo usar un extremo regional para la predicción en línea.

Comprende los extremos regionales

Los extremos regionales tienen varias diferencias clave con respecto al extremo global:

  • Los extremos regionales solo admiten tipos de máquinas (N1) de Compute Engine. No puedes usar tipos de máquinas (MLS1) heredadas en los extremos regionales. Esto significa que se aplican todos los beneficios y las limitaciones del uso de los tipos de máquinas (N1) de Compute Engine. Por ejemplo, puedes usar GPU en los extremos regionales, pero, por el momento, no puedes habilitar el registro de transmisión (consola).

    Para usar un tipo de máquina (N1) de Compute Engine, debes usar un extremo regional.

  • Los extremos regionales solo admiten la predicción en línea y Explicaciones de IA. Los modelos implementados en los extremos regionales no son compatibles con la predicción por lotes.

    AI Platform Prediction comparte la API de AI Platform Training and Prediction con AI Platform Training y AI Platform Vizier. Ten en cuenta que, en la actualidad, los extremos regionales no admiten AI Platform Training. Solo el extremo us-central1 admite AI Platform Vizier.

    Consulta la referencia de la API para obtener más detalles sobre qué métodos de la API están disponibles en qué extremos.

Los nombres de los recursos de AI Platform Prediction son únicos para el proyecto de Google Cloud en cualquier extremo, pero pueden duplicarse en varios extremos. Por ejemplo, puedes crear un modelo llamado “hello-world” en el extremo europe-west4 y otro en el extremo us-central1.

Cuando enumeras modelos en un extremo regional, solo ves modelos creados en él. De manera similar, cuando enumeras modelos en el extremo global, solo ves los modelos creados en ese extremo.

Extremos regionales frente a regiones de extremos globales

Cuando creas un recurso de modelo en el extremo global, puedes especificar una región para el modelo. Cuando creas versiones en este modelo y entregas predicciones, los nodos de predicción se ejecutan en la región especificada.

Cuando usas un extremo regional, AI Platform Prediction ejecuta los nodos de predicción en la región del extremo. Sin embargo, en este caso, AI Platform Prediction proporciona aislamiento adicional mediante la ejecución de toda la infraestructura de AI Platform Prediction en esa región.

Por ejemplo, si usas la región us-east1 en el extremo global, los nodos de predicción se ejecutan en us-east1. Sin embargo, la infraestructura de AI Platform Prediction que administra los recursos (las solicitudes de enrutamiento, el control de la creación, la actualización y la eliminación de modelos y versiones, etc.) no se ejecuta necesariamente en us-east1. Por otro lado, si usas el extremo regional europe-west4, tus nodos de predicción y toda la infraestructura de AI Platform Prediction se ejecutan en europe-west4.

Usa extremos regionales

Para usar un extremo regional, primero debes crear un modelo en él. Luego debes realizar todas las acciones relacionadas con ese modelo (como crear una versión y enviar solicitudes de predicción) en el mismo extremo.

Si usas Google Cloud Console, asegúrate de seleccionar la casilla de verificación Usar extremos regionales cuando crees tu modelo. Realiza todas las demás acciones de Cloud Console como lo harías en el extremo global.

Si usas la herramienta de línea de comandos de gcloud, la marca --region a la región de tu extremo en cada comando que interactúe con tu modelo y sus recursos secundarios. Estos son algunos de ellos:

Si interactúas directamente con la API de entrenamiento y predicción de AI Platform (por ejemplo, mediante la biblioteca cliente de las API de Google para Python), realiza todas las solicitudes a la API como lo harías en el extremo global, pero usa el extremo regional en su lugar. Consulta la referencia de la API para obtener más detalles sobre qué métodos de la API están disponibles en los extremos regionales.

En los siguientes ejemplos, se muestra cómo usar un extremo regional para crear un modelo, crear una versión y enviar una solicitud de predicción en línea. Para usar los ejemplos, reemplaza REGION siempre que aparezca por una de las regiones en las cuales están disponibles los extremos regionales:

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

Crea un modelo

Cloud Console

  1. En Cloud Console, ve a la página Crear modelo y selecciona tu proyecto de Google Cloud:

    Ir a la página Crear modelo

  2. Ingresa el nombre del modelo, selecciona la casilla de verificación Usar extremos regionales y, en la lista desplegable Región, elige la región que quieres utilizar.

  3. Haz clic en el botón Crear.

gcloud

Ejecuta el siguiente comando:

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

En el comando, reemplaza los siguientes marcadores de posición:

  • MODEL_NAME: Es el nombre que elijas para tu modelo.
  • REGION: Es la región del extremo que deseas usar.

Python

En este ejemplo, se usa la biblioteca cliente de las API de Google para Python. Antes de poder usarlo, debes instalar la biblioteca cliente de las API de Google para Python y configurar la autenticación en el entorno de desarrollo.

Ejecuta el siguiente código de 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)

En el código, reemplaza los siguientes marcadores de posición:

  • REGION: Es la región del extremo que deseas usar.
  • MODEL_NAME: Es el nombre que elijas para tu modelo.
  • PROJECT_ID: Es el ID del proyecto de Google Cloud.

Obtén más información sobre la creación de un modelo.

Crea una versión del modelo

En este ejemplo se supone que ya subiste artefactos de modelos compatibles a Cloud Storage.

Cloud Console

Con el modelo que creaste en la sección anterior, sigue las indicaciones para crear una versión del modelo en Cloud Console.

gcloud

En este ejemplo, se supone que ya subiste artefactos de modelos compatibles a Cloud Storage. Ejecuta el siguiente 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.2

En el comando, reemplaza los siguientes marcadores de posición:

  • REGION: Es la región del extremo que usaste en la sección anterior.
  • VERSION_NAME: Es el nombre que elijas para tu versión.
  • MODEL_NAME: Es el nombre del modelo que creaste en la sección anterior.
  • FRAMEWORK: Es el framework que se usa para crear los artefactos de tu modelo.
  • MACHINE_TYPE: Es un tipo de máquina de Compute Engine (N1).
  • MODEL_DIRECTORY: Es un URI de Cloud Storage para el directorio del modelo (comienza con “gs://”).

Python

Ejecuta el siguiente código de 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.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)

En el código, reemplaza los siguientes marcadores de posición:

  • REGION: Es la región del extremo que usaste en la sección anterior.
  • VERSION_NAME: Es el nombre que elijas para tu versión.
  • MODEL_DIRECTORY: Es un URI de Cloud Storage para el directorio del modelo (comienza con “gs://”).
  • MACHINE_TYPE: Es un tipo de máquina de Compute Engine (N1).
  • FRAMEWORK: Es el framework que se usa para crear los artefactos de tu modelo.
  • PROJECT_ID: Es el ID del proyecto de Google Cloud.
  • MODEL_NAME: Es el nombre del modelo que creaste en la sección anterior.

Obtén más información sobre la creación de una versión del modelo.

Envía una solicitud de predicción en línea

Cloud Console

  1. En Cloud Console ve a la página Modelos:

    Ir a la página Modelos

  2. En la lista desplegable Región, selecciona la región del extremo que usa tu modelo. Haz clic en el nombre del modelo que creaste para navegar a la página Detalles del modelo.

  3. Haz clic en el nombre de la versión que creaste en la sección anterior para navegar a la página Detalles de la versión.

  4. Haz clic en la pestaña Probar y usar. Ingresa una o más instancias de datos de entrada y haz clic en el botón Probar para enviar una solicitud de predicción en línea.

gcloud

En este ejemplo, se supone que guardaste la entrada de predicción en un archivo JSON delimitado por saltos de línea en el entorno local. Ejecuta el siguiente comando:

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

En el comando, reemplaza los siguientes marcadores de posición:

  • REGION: Es la región del extremo que usaste en las secciones anteriores.
  • MODEL_NAME: Es el nombre del modelo que creaste en una sección anterior.
  • VERSION_NAME: Es el nombre de la versión del modelo que creaste en la sección anterior.
  • INPUT_PATH: La ruta de acceso del sistema de archivos local a un archivo JSON con entrada de predicción.

Python

Ejecuta el siguiente código de 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)

En el código, reemplaza los siguientes marcadores de posición:

  • REGION: Es la región del extremo que usaste en las secciones anteriores.
  • INSTANCES: Es una lista de instancias de entrada de predicción.
  • MODEL_NAME: Es el nombre del modelo que creaste en una sección anterior.
  • VERSION_NAME: Es el nombre de la versión que creaste en la sección anterior.

Obtén más información sobre la obtención de predicciones en línea.

Próximos pasos