Genera texto con un modelo abierto de Gemma y la función AI.GENERATE_TEXT

En este instructivo, se muestra cómo crear un modelo remoto basado en el modelo de Gemma, y, luego, cómo usar ese modelo con la AI.GENERATE_TEXT función para extraer palabras clave y realizar análisis de opiniones en reseñas de películas de la bigquery-public-data.imdb.reviews tabla pública.

Permisos necesarios

Para ejecutar este instructivo, necesitas los siguientes roles de Identity and Access Management (IAM):

  • Crear y usar conjuntos de datos, conexiones y modelos de BigQuery: Administrador de BigQuery (roles/bigquery.admin).
  • Otorgar permisos a la cuenta de servicio de la conexión: Administrador de IAM del proyecto (roles/resourcemanager.projectIamAdmin).
  • Implementar y anular la implementación de modelos en Vertex AI: Administrador de Vertex AI (roles/aiplatform.admin).

Estos roles predefinidos contienen los permisos necesarios para realizar las tareas de este documento. Para ver los permisos exactos que son necesarios, expande la sección Permisos necesarios:

Permisos necesarios

  • Crear un conjunto de datos: bigquery.datasets.create
  • Crear, delegar y usar una conexión: bigquery.connections.*
  • Establecer la conexión predeterminada: bigquery.config.*
  • Configurar permisos de la cuenta de servicio: resourcemanager.projects.getIamPolicy y resourcemanager.projects.setIamPolicy
  • Implementar y anular la implementación de un modelo de Vertex AI:
    • aiplatform.endpoints.deploy
    • aiplatform.endpoints.undeploy
  • Crear un modelo y ejecutar 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 o con otros roles predefinidos.

Costos

En este documento, usarás los siguientes componentes facturables de Cloud de Confiance by S3NS:

  • 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 obtener más información sobre los precios de BigQuery, consulta Precios de BigQuery en la documentación de BigQuery.

Los modelos abiertos que implementas en Vertex AI se cobran por hora de máquina. Esto significa que la facturación comienza en cuanto se configura por completo el extremo y continúa hasta que anulas la implementación. Para obtener más información sobre los precios de Vertex AI, consulta la página Precios de Vertex AI.

Antes de comenzar

  1. En la Cloud de Confiance consola, en la página del selector de proyectos, selecciona o crea un Cloud de Confiance proyecto.

    Roles necesarios para seleccionar o crear un proyecto

    • Seleccionar un proyecto: Para seleccionar un proyecto, no se requiere un rol de IAM específico. Puedes seleccionar cualquier proyecto en el que se te haya otorgado un rol.
    • Crear un proyecto: Para crear un proyecto, necesitas el rol de Creador de proyectos (roles/resourcemanager.projectCreator), que contiene el resourcemanager.projects.create permiso. Obtén más información para otorgar roles.

    Ir al selector de proyectos

  2. Verifica que la facturación esté habilitada para tu Cloud de Confiance proyecto.

  3. Habilita las APIs de BigQuery, BigQuery Connection y Vertex AI.

    Roles necesarios para habilitar las APIs

    Para habilitar las APIs, necesitas el rol de IAM de administrador de Service Usage (roles/serviceusage.serviceUsageAdmin), que contiene el permiso serviceusage.services.enable. Obtén más información para otorgar roles.

    Habilitar las API

Crea un conjunto de datos

Crea un conjunto de datos de BigQuery para almacenar tu modelo de AA.

Console

  1. En la Cloud de Confiance consola de, 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. Haz 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, ingresa bqml_tutorial.

    • En Tipo de ubicación, selecciona Multirregión y, luego, selecciona EE.UU..

    • Deja la configuración predeterminada restante como está y haz clic en Crear conjunto de datos.

bq

Para crear un conjunto de datos nuevo, usa el bq mk --dataset comando.

  1. Crea un conjunto de datos llamado bqml_tutorial con la ubicación de datos establecida en US.

    bq mk --dataset \
      --location=US \
      --description "BigQuery ML tutorial dataset." \
      bqml_tutorial
  2. Confirma que se haya creado el conjunto de datos:

    bq ls

API

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

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

Crea el modelo remoto

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

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

    Ir a BigQuery

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

CREATE OR REPLACE MODEL `bqml_tutorial.gemma_model`
  REMOTE WITH CONNECTION DEFAULT
  OPTIONS (
    MODEL_GARDEN_MODEL_NAME = 'publishers/google/models/gemma3@gemma-3-270m-it',
    MACHINE_TYPE = 'g2-standard-12'
  );

La consulta tarda hasta 20 minutos en completarse, después de lo cual el modelo gemma_model aparece en el conjunto de datos bqml_tutorial en el panel Explorador. Debido a que la consulta usa una declaración CREATE MODEL para crear un modelo, no hay resultados de consultas.

Realiza la extracción de palabras clave

Realiza la extracción de palabras clave en reseñas de películas de IMDB con el modelo remoto y la función AI.GENERATE_TEXT:

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

    Ir a BigQuery

  2. En el Editor de consultas, ingresa la siguiente declaración para realizar la extracción de palabras clave en 10 reseñas de películas:

    SELECT
      *
    FROM
      AI.GENERATE_TEXT(
        MODEL `bqml_tutorial.gemma_model`,
        (
          SELECT
            'Extract the key words from the movie review below: ' || review
              AS prompt,
            *
          FROM
            `bigquery-public-data.imdb.reviews`
          LIMIT 10
        ),
        STRUCT(
          0.2 AS temperature,
          100 AS max_output_tokens));

    El resultado es similar al siguiente, con las columnas no generadas omitidas para mayor claridad:

    +----------------------------------------------+-------------------------+-----------------------------+-----+
    | result                                       | status                  | prompt                      | ... |
    +----------------------------------------------+-------------------------+-----------------------------+-----+
    | Here are some key words from the             |                         | Extract the key words from  |     |
    | movie review: * **Romance:**                 |                         | the movie review below:     |     |
    | "romantic tryst," "elope" * **Comedy:**      |                         | Linda Arvidson (as Jennie)  |     |
    | "Contrived Comedy" * **Burglary:**           |                         | and Harry Solter (as Frank) |     |
    | "burglar," "rob," "booty" * **Chase:**       |                         | are enjoying a romantic     |     |
    | "chases," "escape" * **Director:** "D.W.     |                         | tryst, when in walks her... |     |
    | Griffith" * **Actors:** "Linda Arvidson,"... |                         |                             |     |
    +----------------------------------------------+-------------------------+-----------------------------+-----+
    | Here are some key words from the             |                         | Extract the key words from  |     |
    | movie review: * **Elderbush Gilch:** The     |                         | the movie review below:     |     |
    | name of the movie being reviewed. *          |                         | This is the second addition |     |
    | **Disappointment:** The reviewer's           |                         | to Frank Baum's personally  |     |
    | overall feeling about the film. *            |                         | produced trilogy of Oz      |     |
    | **Dim-witted:** Describes the story          |                         | films. It's essentially ... |     |
    | line negatively. * **Moronic, sadistic,...   |                         |                             |     |
    +----------------------------------------------+-------------------------+-----------------------------+-----+
    

    Los resultados incluyen las siguientes columnas:

    • result: es el texto generado.
    • status: el estado de la respuesta de la API para la fila correspondiente. Si la operación se realizó correctamente, este valor estará vacío.
    • prompt: el mensaje que se usa para el análisis de opiniones.
    • Todas las columnas de la tabla bigquery-public-data.imdb.reviews.

Realiza análisis de opiniones

Realiza análisis de opiniones en reseñas de películas de IMDB con el modelo remoto y la función AI.GENERATE_TEXT:

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

    Ir a BigQuery

  2. En el Editor de consultas, ejecuta la siguiente declaración para realizar un análisis de opiniones en 10 reseñas de películas:

    SELECT
      *
    FROM
      AI.GENERATE_TEXT(
        MODEL `bqml_tutorial.gemma_model`,
        (
          SELECT
            'Analyze the sentiment of the following movie review and classify it as either POSITIVE or NEGATIVE. \nMovie Review: '
              || review AS prompt,
            *
          FROM
            `bigquery-public-data.imdb.reviews`
          LIMIT 10
        ),
        STRUCT(
          0.2 AS temperature,
          128 AS max_output_tokens));

    El resultado es similar al siguiente, con las columnas no generadas omitidas para mayor claridad:

    +-----------------------------+-------------------------+-----------------------------+-----+
    | result                      | status                  | prompt                      | ... |
    +-----------------------------+-------------------------+-----------------------------+-----+
    | **NEGATIVE**                |                         | Analyze the sentiment of    |     |
    |                             |                         | movie review and classify   |     |
    |                             |                         | it as either POSITIVE or    |     |
    |                             |                         | NEGATIVE. Movie Review:     |     |
    |                             |                         | Although Charlie Chaplin    |     |
    |                             |                         | made some great short       |     |
    |                             |                         | comedies in the late...     |     |
    +-----------------------------+-------------------------+-----------------------------+-----+
    | **NEGATIVE**                |                         | Analyze the sentiment of    |     |
    |                             |                         | movie review and classify   |     |
    |                             |                         | it as either POSITIVE or    |     |
    |                             |                         | NEGATIVE. Movie Review:     |     |
    |                             |                         | Opulent sets and sumptuous  |     |
    |                             |                         | costumes well photographed  |     |
    |                             |                         | by Theodor Sparkuhl, and... |     |
    +-----------------------------+-------------------------+-----------------------------+-----+
    

    Los resultados incluyen las mismas columnas documentadas para Realizar la extracción de palabras clave.

Anular implementación de modelo

Si decides no borrar el proyecto como se recomienda, debes anular la implementación del modelo de Gemma en Vertex AI para evitar que se siga facturando. BigQuery anula automáticamente la implementación del modelo después de un período de inactividad especificado (6.5 horas de forma predeterminada). Como alternativa, puedes anular la implementación del modelo de inmediato con la ALTER MODEL declaración, como se muestra en el siguiente ejemplo:

ALTER MODEL `bqml_tutorial.gemma_model`
SET OPTIONS (deploy_model = false);

Para obtener más información, consulta Anulación de implementación automática o inmediata de modelos abiertos.

Limpia

  1. En la Cloud de Confiance consola, ve a la página Administrar recursos.

    Ir a Administrar recursos

  2. En la lista de proyectos, elige el proyecto que tú quieres borrar y haz clic en Borrar.
  3. En el diálogo, escribe el ID del proyecto y, luego, haz clic en Cerrar para borrar el proyecto.