Crear un cuaderno

En este tutorial, usarás el SDK de Vertex AI en un cuaderno de Jupyter para obtener predicciones mediante una instancia de Vertex AI Workbench.

En esta sección se explica cómo crear un cuaderno de Jupyter en una instancia de Vertex AI Workbench. Las instancias de Vertex AI Workbench son entornos de desarrollo basados en cuadernos de Jupyter para todo el flujo de trabajo de ciencia de datos. Las instancias de Vertex AI Workbench vienen preempaquetadas con JupyterLab y tienen una suite preinstalada de paquetes de aprendizaje profundo, incluida la compatibilidad con los frameworks TensorFlow y PyTorch. Para obtener más información, consulta la introducción a las instancias de Vertex AI Workbench.

Después de crear un cuaderno en Vertex AI Workbench, ejecuta partes secuenciales de código Python para hacer la mayor parte del trabajo de generación de predicciones.

Antes de empezar

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the Vertex AI and Notebooks APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  6. Verify that billing is enabled for your Google Cloud project.

  7. Enable the Vertex AI and Notebooks APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  8. Crear una instancia de Vertex AI Workbench

    Para crear una instancia de Vertex AI Workbench, sigue estos pasos:

    1. En la Google Cloud consola, abre tu Google Cloud proyecto si aún no lo has hecho.

    2. En la Google Cloud consola, ve a la página Instancias de Vertex AI Workbench.

      Ir a Instancias

    3. Si aparece la opción para habilitar la API Notebooks, haz clic en Habilitar. El proceso de habilitación puede tardar unos instantes en completarse.

    4. Haz clic en  Crear.

    5. En el cuadro de diálogo Nueva instancia, en Nombre, escribe un nombre para la instancia.

    6. En Región, selecciona us-central1 (Iowa).

    7. En Zona, selecciona us-central1-a.

    8. Haz clic en Crear. Si quiere obtener más información sobre su instancia, después de que aparezca en la lista de instancias, haga clic en su nombre para ver sus propiedades.

    Prepara tu cuaderno

    Tu instancia de Vertex AI Workbench ya está autenticada para usar tu Google Cloud proyecto. Sin embargo, debes instalar e inicializar el SDK de Vertex AI para Python. En esta sección se explica cómo hacerlo.

    Después de crear el cuaderno, lo usarás para introducir y ejecutar los fragmentos de código secuenciales de este tutorial. Cada fragmento de código debe ejecutarse individualmente y en orden.

    Crear y abrir un cuaderno

    En el cuaderno es donde se ejecuta el código de este tutorial. Es un archivo con la extensión .ipynb. Cuando lo creas, no tiene título. Puedes cambiarle el nombre después de abrirlo. Para crear y abrir tu cuaderno, sigue estos pasos:

    1. En la consola, ve a la página Instancias. Google Cloud

      Ir a Instancias

    2. Junto al nombre de la instancia, haz clic en Abrir JupyterLab.

      Tu instancia de Vertex AI Workbench abre el entorno de JupyterLab.

    3. En JupyterLab, selecciona Archivo > Nuevo > Cuaderno.

      Se abrirá el nuevo archivo de cuaderno y aparecerá el cuadro de diálogo Seleccionar kernel.

    4. En el cuadro de diálogo Seleccionar kernel, selecciona el kernel Python 3.

    5. En el panel de navegación de la izquierda de JupyterLab, busca el nuevo cuaderno, llamado Untitled.ipynb. Para cambiarle el nombre, haz clic con el botón derecho en el nombre del cuaderno, selecciona Cambiar nombre y escribe el nuevo nombre.

    Instalar el SDK de Vertex AI para Python

    Después de abrir el cuaderno, debes instalar el SDK de Vertex AI para Python. Usas el SDK de Vertex AI para Python para hacer llamadas a la API de Vertex AI que crean tu conjunto de datos, tu modelo, entrenan y despliegan tu modelo, y hacen predicciones con él. Para obtener más información, consulta Usar el SDK de Vertex AI para Python.

    Cuando instalas el SDK de Vertex AI para Python, también se instalan otros SDKs de los que depende. Google Cloud En este tutorial se usan dos de esos SDKs:

    • Cloud Storage: cuando usas el SDK de Vertex AI para Python para hacer llamadas a la API de Vertex AI, Vertex AI almacena artefactos en un segmento de Cloud Storage. El contenedor se denomina contenedor de almacenamiento provisional. El bucket de almacenamiento provisional se especifica al inicializar el SDK de Vertex AI para Python. Para obtener más información, consulta el cliente de Python para la API de Google Cloud Storage.

    • BigQuery - Vertex AI entrena tu modelo con un conjunto de datos público de BigQuery. Para acceder y descargar el conjunto de datos que se usa en este tutorial, debes instalar el SDK de BigQuery. Para obtener más información, consulta las bibliotecas de cliente de la API de BigQuery.

    Para instalar el SDK de Vertex AI para Python y sus SDKs dependientes, ejecuta el siguiente código.

    # Install the Vertex AI SDK
    ! pip3 install --upgrade --quiet google-cloud-aiplatform
    

    La marca --quiet suprime la salida para que solo se muestren los errores, si los hay. El signo de exclamación (!) indica que se trata de un comando de shell.

    Como es el primer código que vas a ejecutar en tu nuevo cuaderno, introdúcelo en la celda de código en blanco de la parte superior del cuaderno. Después de introducir el código en una celda de código, haz clic en  Ejecutar las celdas seleccionadas y avanzar o usa la combinación de teclas Shift + Enter para ejecutar el código.

    Ejecuta el código para instalar el SDK.

    A lo largo de este tutorial, ejecuta el código en la celda de código vacía que aparece automáticamente debajo del código ejecutado más recientemente. Si quieres añadir manualmente una nueva celda de código, haz clic en el botón  Insertar una celda debajo del archivo del cuaderno.

    Añadir una nueva celda de código.

    Definir el ID del proyecto y la región

    En este paso, debe definir el ID del proyecto y la región. Primero, se asignan a variables para que se puedan consultar fácilmente más adelante en este tutorial. A continuación, usa el comando gcloud config para definirlos en tu sesión Google Cloud . Más adelante, los usarás junto con el URI de tu segmento de Cloud Storage para inicializar el SDK de Vertex AI para Python.

    Definir el ID de tu proyecto

    Para definir el ID de tu proyecto, haz lo siguiente:

    1. Busca el ID de tu proyecto Google Cloud . Para obtener más información, consulta Buscar el ID de un proyecto.

    2. Ejecuta lo siguiente en una celda de código de tu cuaderno. En el código, sustituye PROJECT_ID por el ID del proyecto que acabas de encontrar. El resultado que genera este comando es Updated property [core/project]..

      project_id = "PROJECT_ID"  # @param {type:"string"}
      # Set the project id
      ! gcloud config set project ${project_id}
      

    Configurar tu región

    En este tutorial se usa la región us-central1. Para definir tu región, sigue estos pasos:

    1. Ejecuta el siguiente código para definir la variable region que usa Vertex AI para us-central1. Este comando no genera ningún resultado. Para obtener más información, consulta Elegir una ubicación.

      region = "us-central1"  # @param {type: "string"}
      

    Crea un segmento de Cloud Storage

    En este tutorial se necesita un segmento de Cloud Storage que Vertex AI use para organizar los artefactos. Vertex AI almacena los datos asociados al conjunto de datos que creas y los recursos del modelo en el bucket de almacenamiento provisional. Estos datos se conservan y están disponibles en todas las sesiones. En este tutorial, Vertex AI también almacena tu conjunto de datos en el segmento de almacenamiento provisional. Puede especificar el bucket de almacenamiento provisional al inicializar el SDK de Vertex AI para Python.

    Todos los nombres de los segmentos de Cloud Storage deben ser únicos a nivel global. Si eliges un nombre que ya se ha usado, el comando para crear el segmento fallará. El siguiente código usa una marca de tiempo y el nombre de tu proyecto para crear un nombre de contenedor único. Añade el nombre del segmento a gs:// para crear el URI de tu segmento de Cloud Storage. El comando de shell echo muestra el URI para que puedas verificar que se ha creado correctamente.

    1. Para definir el nombre y el URI de tu segmento, ejecuta el siguiente código. En la última línea se muestra el URI de tu segmento de Cloud Storage.

      bucket_name = "bucket-name-placeholder"  # @param {type:"string"}
      bucket_uri = f"gs://{bucket_name}"
      
      from datetime import datetime
      timestamp = datetime.now().strftime("%Y%m%d%H%M%S")
      
      if bucket_name == "" or bucket_name is None or bucket_name == "bucket-name-placeholder":
          bucket_name = project_id + "aip-" + timestamp
          bucket_uri = "gs://" + bucket_name
      ! echo $bucket_uri
      
    2. Para crear un segmento con la biblioteca de cliente de Cloud Storage y el URI del segmento, ejecuta el siguiente código. Este código no genera ningún resultado.

      from google.cloud import storage
      client = storage.Client(project=project_id)
      
      # Create a bucket
      bucket = client.create_bucket(bucket_name, location=region)
      
    3. Para verificar que el bucket se ha creado correctamente, ejecuta el siguiente comando:

      print("Bucket {} created.".format(bucket.name))
      

    Inicializar el SDK de Vertex AI para Python

    Para inicializar el SDK de Vertex AI para Python, primero importa su biblioteca, aiplatform. A continuación, llama a aiplatform.init y pasa los valores de los siguientes parámetros:

    • project: project especifica qué Google Cloud proyecto se debe usar cuando se usa el SDK de Vertex AI para Python para hacer llamadas a la API de Vertex AI. En este tutorial, especificarás tu Google Cloud proyecto con su nombre. También puedes especificar tu proyecto con su número de proyecto.

    • location: location especifica qué región se debe usar al hacer llamadas a la API. Google Cloud Si no especificas ninguna ubicación, el SDK de Vertex AI para Python usará us-central1.

    • staging_bucket: staging_bucket especifica el bucket de Cloud Storage que se usa para almacenar artefactos cuando usas el SDK de Vertex AI para Python. Para especificar el contenedor, usa un URI que empiece por gs://. En este tutorial, usarás el URI que has creado anteriormente en Crear un segmento de Cloud Storage.

    Para definir tu proyecto, región y bucket de staging de Google Cloud , ejecuta el siguiente comando. Este comando no genera ningún resultado.

    from google.cloud import aiplatform
    
    # Initialize the Vertex AI SDK
    aiplatform.init(project=project_id, location=region, staging_bucket=bucket_uri)
    

    Inicializar BigQuery

    En este tutorial se usa un conjunto de datos público de BigQuery sobre pingüinos para entrenar un modelo. Una vez que Vertex AI entrena el modelo, especificas los parámetros que representan las características de los pingüinos, y el modelo usa esas características para predecir la especie de pingüino que representan. Para obtener más información sobre los conjuntos de datos públicos, consulta Conjuntos de datos públicos de BigQuery.

    Antes de usar el conjunto de datos de BigQuery, debes inicializar BigQuery con el ID de tu proyecto. Para ello, ejecuta el siguiente comando. Este comando no genera ningún resultado.

    from google.cloud import bigquery
    
    # Set up BigQuery client
    bq_client = bigquery.Client(project=project_id)