Analizzare le immagini con un modello Gemini

Questo tutorial mostra come creare un modello remoto BigQuery ML basato sul gemini-2.5-flash modello, e poi utilizzare questo modello con le AI.GENERATE_TEXT funzione funzioni per analizzare un insieme di immagini di locandine di film.

Questo tutorial spiega le seguenti attività:

  • Creare una tabella di oggetti BigQuery sui dati delle immagini in un bucket Cloud Storage.
  • Creare un modello remoto BigQuery ML che abbia come target il modello gemini-2.5-flash di Vertex AI.
  • Utilizzare il modello remoto con la funzione AI.GENERATE_TEXT per identificare i film associati a un insieme di locandine di film.

I dati delle locandine dei film sono disponibili nel bucket Cloud Storage pubblico gs://cloud-samples-data/vertex-ai/dataset-management/datasets/classic-movie-posters.

Ruoli obbligatori

Per eseguire questo tutorial, devi disporre dei seguenti ruoli Identity and Access Management (IAM):

  • Crea e utilizza set di dati, connessioni e modelli BigQuery: amministratore BigQuery (roles/bigquery.admin).
  • Concedi le autorizzazioni al account di servizio della connessione: amministratore IAM del progetto (roles/resourcemanager.projectIamAdmin).

Questi ruoli predefiniti contengono le autorizzazioni necessarie per eseguire le attività descritte in questo documento. Per vedere quali sono esattamente le autorizzazioni richieste, espandi la sezione Autorizzazioni obbligatorie:

Autorizzazioni obbligatorie

  • Crea un set di dati: bigquery.datasets.create
  • Crea, delega e utilizza una connessione: bigquery.connections.*
  • Imposta la connessione predefinita: bigquery.config.*
  • Imposta le autorizzazioni del account di servizio: resourcemanager.projects.getIamPolicy e resourcemanager.projects.setIamPolicy
  • Crea una tabella di oggetti: bigquery.tables.create e bigquery.tables.update
  • Crea un modello ed esegui l'inferenza:
    • bigquery.jobs.create
    • bigquery.models.create
    • bigquery.models.getData
    • bigquery.models.updateData
    • bigquery.models.updateMetadata

Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.

Costi

In questo documento vengono utilizzati i seguenti componenti fatturabili di 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 is represented by the BigQuery remote model.

Per generare una stima dei costi in base all'utilizzo previsto, utilizza il calcolatore prezzi.

I nuovi Google Cloud utenti potrebbero avere diritto a una prova senza costi.

Per ulteriori informazioni sui prezzi di BigQuery, consulta la pagina Prezzi di BigQuery nella documentazione di BigQuery.

Per ulteriori informazioni sui prezzi dell'AI generativa di Vertex AI, consulta la pagina Prezzi di Vertex AI.

Prima di iniziare

  1. Nella Google Cloud console, nella pagina di selezione del progetto, seleziona o crea un Google Cloud progetto.

    Ruoli richiesti per selezionare o creare un progetto

    • Seleziona un progetto: la selezione di un progetto non richiede un ruolo IAM specifico: puoi selezionare qualsiasi progetto su cui ti è stato concesso un ruolo.
    • Crea un progetto: per creare un progetto, devi disporre del ruolo Autore progetto (roles/resourcemanager.projectCreator), che contiene l' resourcemanager.projects.create autorizzazione. Scopri come concedere i ruoli.

    Vai al selettore di progetti

  2. Verifica che la fatturazione sia abilitata per il tuo Google Cloud progetto.

  3. Abilita le API BigQuery, BigQuery Connection e Vertex AI.

    Ruoli richiesti per abilitare le API

    Per abilitare le API, devi disporre del ruolo IAM Service Usage Admin (roles/serviceusage.serviceUsageAdmin), che contiene l'autorizzazione serviceusage.services.enable. Scopri come concedere i ruoli.

    Abilita le API

Crea un set di dati

Crea un set di dati BigQuery per archiviare il modello ML.

Console

  1. Nella Google Cloud console, vai alla pagina BigQuery.

    Vai alla pagina BigQuery

  2. Nel riquadro Explorer, fai clic sul nome del progetto.

  3. Fai clic su Visualizza azioni > Crea set di dati

  4. Nella pagina Crea set di dati, segui questi passaggi:

    • In ID set di dati, inserisci bqml_tutorial.

    • In Tipo di località, seleziona Multi-regione e poi seleziona Stati Uniti.

    • Lascia invariate le restanti impostazioni predefinite e fai clic su Crea set di dati.

bq

Per creare un nuovo set di dati, utilizza il bq mk --dataset comando.

  1. Crea un set di dati denominato bqml_tutorial con la località dei dati impostata su US.

    bq mk --dataset \
      --location=US \
      --description "BigQuery ML tutorial dataset." \
      bqml_tutorial
  2. Verifica che il set di dati sia stato creato:

    bq ls

API

Chiama il datasets.insert metodo con una risorsa del set di dati definita.

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

Crea la tabella di oggetti

Crea una tabella di oggetti sulle immagini delle locandine dei film nel bucket Cloud Storage pubblico . La tabella di oggetti consente di analizzare le immagini senza spostarle da Cloud Storage.

  1. Nella Google Cloud console, vai alla pagina BigQuery.

    Vai a BigQuery

  2. Nell'editor di query, esegui la query seguente per creare la tabella di oggetti:

    CREATE OR REPLACE EXTERNAL TABLE `bqml_tutorial.movie_posters`
      WITH CONNECTION DEFAULT
      OPTIONS (
        object_metadata = 'SIMPLE',
        uris =
          ['gs://cloud-samples-data/vertex-ai/dataset-management/datasets/classic-movie-posters/*']);

Crea il modello remoto

Crea un modello remoto che rappresenti un modello gemini-2.5-flash di Vertex AI:

  1. Nella Google Cloud console, vai alla pagina BigQuery.

    Vai a BigQuery

  2. Nell'editor di query, esegui la query seguente per creare il modello remoto:

    CREATE OR REPLACE MODEL `bqml_tutorial.gemini-vision`
      REMOTE WITH CONNECTION DEFAULT
      OPTIONS (ENDPOINT = 'gemini-2.5-flash');

    L'esecuzione della query richiede alcuni secondi, dopodiché il modello gemini-vision viene visualizzato nel set di dati bqml_tutorial nel riquadro Explorer. Poiché la query utilizza un'istruzione CREATE MODEL per creare un modello, non vengono visualizzati i risultati della query.

Analizza le locandine dei film

Utilizza il modello remoto per analizzare le locandine dei film e determinare il film rappresentato da ciascuna locandina, quindi scrivi questi dati in una tabella.

  1. Nella Google Cloud console, vai alla pagina BigQuery.

    Vai a BigQuery

  2. Nell'editor di query, esegui la query seguente per analizzare le immagini delle locandine dei film:

    CREATE OR REPLACE TABLE
      `bqml_tutorial.movie_posters_results` AS (
      SELECT
        uri,
       result
      FROM
        AI.GENERATE_TEXT( MODEL `bqml_tutorial.gemini-vision`,
          TABLE `bqml_tutorial.movie_posters`,
          STRUCT( 0.2 AS temperature,
            'For the movie represented by this poster, what is the movie title and year of release? Answer in JSON format with two keys: title, year. title should be string, year should be integer.' AS PROMPT)));
        
  3. Nell'editor di query, esegui l'istruzione seguente per visualizzare i dati della tabella:

    SELECT * FROM `bqml_tutorial.movie_posters_results`;

    L'output è simile al seguente:

    +--------------------------------------------+----------------------------------+
    | uri                                        | result                           |
    +--------------------------------------------+----------------------------------+
    | gs://cloud-samples-data/vertex-ai/dataset- | json                          |
    | management/datasets/classic-movie-         | {                                |
    | posters/little_annie_rooney.jpg            |  "title": "Little Annie Rooney", |
    |                                            |  "year": 1912                    |
    |                                            | }                                |
    |                                            |                              |
    +--------------------------------------------+----------------------------------+
    | gs://cloud-samples-data/vertex-ai/dataset- | json                          |
    | management/datasets/classic-movie-         | {                                |
    | posters/mighty_like_a_mouse.jpg            |  "title": "Mighty Like a Moose", |
    |                                            |  "year": 1926                    |
    |                                            | }                                |
    |                                            |                              |
    +--------------------------------------------+----------------------------------+
    | gs://cloud-samples-data/vertex-ai/dataset- | json                          |
    | management/datasets/classic-movie-         | {                                |
    | posters/brown_of_harvard.jpeg              |  "title": "Brown of Harvard",    |
    |                                            |  "year": 1926                    |
    |                                            | }                                |
    |                                            |                              |
    +--------------------------------------------+----------------------------------+
    

Formatta l'output del modello

Formatta i dati di analisi dei film restituiti dal modello per rendere più leggibili i dati del titolo e dell'anno del film.

  1. Nella Google Cloud console, vai alla pagina BigQuery.

    Vai a BigQuery

  2. Nell'editor di query, esegui la query seguente per formattare i dati:

    CREATE OR REPLACE TABLE
      `bqml_tutorial.movie_posters_results_formatted` AS (
      SELECT
        uri,
        JSON_QUERY(RTRIM(LTRIM(results.result, " ```json"), "```"), "$.title") AS title,
        JSON_QUERY(RTRIM(LTRIM(results.result, " ```json"), "```"), "$.year") AS year
      FROM
        `bqml_tutorial.movie_posters_results` results );
  3. Nell'editor di query, esegui l'istruzione seguente per visualizzare i dati della tabella:

    SELECT * FROM `bqml_tutorial.movie_posters_results_formatted`;

    L'output è simile al seguente:

    +--------------------------------------------+----------------------------+------+
    | uri                                        | title                      | year |
    +--------------------------------------------+----------------------------+------+
    | gs://cloud-samples-data/vertex-ai/dataset- | "Barque sortant du port"   | 1895 |
    | management/datasets/classic-movie-         |                            |      |
    | posters/barque_sortant_du_port.jpeg        |                            |      |
    +--------------------------------------------+----------------------------+------+
    | gs://cloud-samples-data/vertex-ai/dataset- | "The Great Train Robbery"  | 1903 |
    | management/datasets/classic-movie-         |                            |      |
    | posters/the_great_train_robbery.jpg        |                            |      |
    +--------------------------------------------+----------------------------+------+
    | gs://cloud-samples-data/vertex-ai/dataset- | "Little Annie Rooney"      | 1912 |
    | management/datasets/classic-movie-         |                            |      |
    | posters/little_annie_rooney.jpg            |                            |      |
    +--------------------------------------------+----------------------------+------+
    

Libera spazio

  1. Nella Google Cloud console, vai alla pagina Gestisci risorse.

    Vai a Gestisci risorse

  2. Nell'elenco dei progetti, seleziona il progetto che vuoi eliminare e fai clic su Elimina.
  3. Nella finestra di dialogo, digita l'ID progetto e fai clic su Chiudi per eliminare il progetto.