Generar inserciones de texto con un modelo abierto y la función ML.GENERATE_EMBEDDING

En este tutorial se muestra cómo crear un modelo remoto basado en el modelo de inserción de texto de código abierto Qwen3-Embedding-0.6B y, a continuación, cómo usar ese modelo con la función ML.GENERATE_EMBEDDING para insertar reseñas de películas de la tabla pública bigquery-public-data.imdb.reviews.

Permisos obligatorios

Para completar este tutorial, necesitas los siguientes roles de Gestión de Identidades y Accesos (IAM):

  • Crear y usar conjuntos de datos, conexiones y modelos de BigQuery: Administrador de BigQuery (roles/bigquery.admin).
  • Concede permisos a la cuenta de servicio de la conexión: administrador de gestión de identidades y accesos del proyecto (roles/resourcemanager.projectIamAdmin).
  • Desplegar y retirar modelos en Vertex AI: administrador de Vertex AI (roles/aiplatform.admin).

Estos roles predefinidos contienen los permisos necesarios para realizar las tareas descritas en este documento. Para ver los permisos exactos que se necesitan, despliega la sección Permisos necesarios:

Permisos obligatorios

  • Crea un conjunto de datos: bigquery.datasets.create
  • Crear, delegar y usar una conexión: bigquery.connections.*
  • Definir la conexión predeterminada: bigquery.config.*
  • Define los permisos de la cuenta de servicio: resourcemanager.projects.getIamPolicy y resourcemanager.projects.setIamPolicy
  • Desplegar y retirar un modelo de Vertex AI:
    • aiplatform.endpoints.deploy
    • aiplatform.endpoints.undeploy
  • Crea un modelo y ejecuta la inferencia:
    • bigquery.jobs.create
    • bigquery.models.create
    • bigquery.models.getData
    • bigquery.models.updateData
    • bigquery.models.updateMetadata

También puedes obtener estos permisos con roles personalizados u otros roles predefinidos.

Costes

En este documento, se utilizan los siguientes componentes facturables de Google Cloud:

  • BigQuery ML: You incur costs for the data that you process in BigQuery.
  • Vertex AI: You incur costs for calls to the Vertex AI model that's represented by the remote model.

Para generar una estimación de costes basada en el uso previsto, utiliza la calculadora de precios.

Los usuarios nuevos Google Cloud pueden disfrutar de una prueba gratuita.

Para obtener más información sobre los precios de BigQuery, consulta la página Precios de BigQuery en la documentación de BigQuery.

Los modelos abiertos que despliegues en Vertex AI se cobran por hora de máquina. Esto significa que la facturación empieza en cuanto el endpoint esté configurado por completo y continúa hasta que lo desactives. Para obtener más información sobre los precios de Vertex AI, consulta la página de precios de Vertex AI.

Antes de empezar

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

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

  3. Enable the BigQuery, BigQuery Connection, and Vertex AI 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

Desplegar un modelo Qwen3-Embedding-0.6B en Vertex AI

Despliega el Qwen/Qwen3-Embedding-0.6B modelo de Hugging Face en Vertex AI siguiendo las instrucciones de Desplegar modelos de Hugging Face. Durante la implementación, debe seleccionar Público (endpoint compartido) como valor del campo Acceso al endpoint en el flujo de trabajo de implementación.

Crear conjunto de datos

Crea un conjunto de datos de BigQuery para almacenar tu modelo de aprendizaje automático.

Consola

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

    Ir a la página de BigQuery

  2. En el panel Explorador, haz clic en el nombre de tu proyecto.

  3. Haga clic en Ver acciones > Crear conjunto de datos.

  4. En la página Crear conjunto de datos, haz lo siguiente:

    • En ID del conjunto de datos, introduce bqml_tutorial.

    • En Tipo de ubicación, selecciona Multirregión y, a continuación, EE. UU. (varias regiones de Estados Unidos).

    • Deje el resto de los ajustes predeterminados como están y haga clic en Crear conjunto de datos.

bq

Para crear un conjunto de datos, usa el comando bq mk con la marca --location. Para ver una lista completa de los parámetros posibles, consulta la referencia del comando bq mk --dataset.

  1. Crea un conjunto de datos llamado bqml_tutorial con la ubicación de los datos definida como US y la descripción BigQuery ML tutorial dataset:

    bq --location=US mk -d \
     --description "BigQuery ML tutorial dataset." \
     bqml_tutorial

    En lugar de usar la marca --dataset, el comando usa el acceso directo -d. Si omite -d y --dataset, el comando creará un conjunto de datos de forma predeterminada.

  2. Confirma que se ha creado el conjunto de datos:

    bq ls

API

Llama al método datasets.insert con un recurso de conjunto de datos definido.

{
  "datasetReference": {
     "datasetId": "bqml_tutorial"
  }
}

BigQuery DataFrames

Antes de probar este ejemplo, sigue las instrucciones de configuración de BigQuery DataFrames que se indican en la guía de inicio rápido de BigQuery con BigQuery DataFrames. Para obtener más información, consulta la documentación de referencia de los DataFrames de BigQuery.

Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Configurar ADC en un entorno de desarrollo local.

import google.cloud.bigquery

bqclient = google.cloud.bigquery.Client()
bqclient.create_dataset("bqml_tutorial", exists_ok=True)

Crear el modelo remoto

Crea un modelo remoto que represente un modelo de Vertex AI alojado:

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

    Ir a BigQuery

  2. En el editor de consultas, ejecuta la siguiente instrucción:

CREATE OR REPLACE MODEL `bqml_tutorial.qwen3_embedding_model`
REMOTE WITH CONNECTION DEFAULT
OPTIONS (ENDPOINT = 'https://ENDPOINT_REGION-aiplatform.googleapis.com/v1/projects/ENDPOINT_PROJECT_ID/locations/ENDPOINT_REGION/endpoints/ENDPOINT_ID');

Haz los cambios siguientes:

  • ENDPOINT_REGION: la región en la que se ha desplegado el modelo abierto.
  • ENDPOINT_PROJECT_ID: el proyecto en el que se ha desplegado el modelo abierto.
  • ENDPOINT_ID: el ID del endpoint HTTPS que usa el modelo abierto. Para obtener el ID del endpoint, busca el modelo abierto en la página Predicción online y copia el valor del campo ID.

En el siguiente ejemplo se muestra el formato de un endpoint HTTP válido:

https://us-central1-aiplatform.googleapis.com/v1/projects/myproject/locations/us-central1/endpoints/1234.

La consulta tarda varios segundos en completarse. Después, el qwen3_embedding_model modelo aparece en el conjunto de datos bqml_tutorial del panel Explorador. Como la consulta usa una instrucción CREATE MODEL para crear un modelo, no hay resultados de la consulta.

Realizar embeddings de texto

Realiza la incrustación de texto en las reseñas de películas de IMDb mediante el modelo remoto y la función ML.GENERATE_EMBEDDING:

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

    Ir a BigQuery

  2. En el editor de consultas, introduce la siguiente instrucción para realizar la inserción de texto en cinco reseñas de películas:

    SELECT
      *
    FROM
      ML.GENERATE_EMBEDDING(
        MODEL `bqml_tutorial.qwen3_embedding_model`,
        (
          SELECT
            review AS content,
            *
          FROM
            `bigquery-public-data.imdb.reviews`
          LIMIT 5
        )
      );

    Los resultados incluyen las siguientes columnas:

    • ml_generate_embedding_result: una matriz de números de coma flotante de doble precisión que representa las inserciones generadas.
    • ml_generate_embedding_status: el estado de la respuesta de la API de la fila correspondiente. Si la operación se ha realizado correctamente, este valor estará vacío.
    • content: el texto de entrada del que se extraerán los embeddings.
    • Todas las columnas de la tabla bigquery-public-data.imdb.reviews.

Anular despliegue de modelo

Si decides no eliminar tu proyecto como se recomienda, asegúrate de quitar el modelo de inserciones Qwen3 de Vertex AI para evitar que se te siga facturando por él.

Limpieza

  1. In the Google Cloud console, go to the Manage resources page.

    Go to Manage resources

  2. In the project list, select the project that you want to delete, and then click Delete.
  3. In the dialog, type the project ID, and then click Shut down to delete the project.

Siguientes pasos