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-flashdi Vertex AI. - Utilizzare il modello remoto con la funzione
AI.GENERATE_TEXTper 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.getIamPolicyeresourcemanager.projects.setIamPolicy - Crea una tabella di oggetti:
bigquery.tables.createebigquery.tables.update - Crea un modello ed esegui l'inferenza:
bigquery.jobs.createbigquery.models.createbigquery.models.getDatabigquery.models.updateDatabigquery.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.
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
-
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.createautorizzazione. Scopri come concedere i ruoli.
-
Verifica che la fatturazione sia abilitata per il tuo Google Cloud progetto.
-
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'autorizzazioneserviceusage.services.enable. Scopri come concedere i ruoli.
Crea un set di dati
Crea un set di dati BigQuery per archiviare il modello ML.
Console
Nella Google Cloud console, vai alla pagina BigQuery.
Nel riquadro Explorer, fai clic sul nome del progetto.
Fai clic su Visualizza azioni > Crea set di dati
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.
Crea un set di dati denominato
bqml_tutorialcon la località dei dati impostata suUS.bq mk --dataset \ --location=US \ --description "BigQuery ML tutorial dataset." \ bqml_tutorial
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.
Nella Google Cloud console, vai alla pagina BigQuery.
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:
Nella Google Cloud console, vai alla pagina BigQuery.
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-visionviene visualizzato nel set di datibqml_tutorialnel riquadro Explorer. Poiché la query utilizza un'istruzioneCREATE MODELper 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.
Nella Google Cloud console, vai alla pagina BigQuery.
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)));
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.
Nella Google Cloud console, vai alla pagina BigQuery.
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 );
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
- Nella Google Cloud console, vai alla pagina Gestisci risorse.
- Nell'elenco dei progetti, seleziona il progetto che vuoi eliminare e fai clic su Elimina.
- Nella finestra di dialogo, digita l'ID progetto e fai clic su Chiudi per eliminare il progetto.