Genera testo utilizzando la funzione AI.GENERATE_TEXT
Questo documento mostra come creare un modello remoto BigQuery ML che rappresenta un modello Vertex AI e poi utilizzare quel modello remoto con la funzione AI.GENERATE_TEXT per generare testo.
Sono supportati i seguenti tipi di modelli remoti:
- Modelli remoti su uno qualsiasi dei modelli Gemini disponibili a livello generale o in anteprima.
- Modelli remoti sui modelli Anthropic Claude.
- Modelli remoti rispetto ai modelli Llama
- Modelli remoti sui modelli Mistral AI
- Modelli remoti su modelli aperti supportati.
A seconda del modello Vertex AI che scegli, puoi generare testo in base all'input di dati non strutturati da tabelle di oggetti o all'input di testo da tabelle standard.
Ruoli obbligatori
Per creare un modello remoto e generare testo, devi disporre dei seguenti ruoli IAM (Identity and Access Management):
- Crea e utilizza set di dati, tabelle e modelli BigQuery:
Editor dati BigQuery (
roles/bigquery.dataEditor) nel tuo progetto. Crea, delega e utilizza le connessioni BigQuery: Amministratore connessioni BigQuery (
roles/bigquery.connectionsAdmin) nel tuo progetto.Se non hai configurato una connessione predefinita, puoi crearne e impostarne una durante l'esecuzione dell'istruzione
CREATE MODEL. Per farlo, devi disporre del ruolo Amministratore BigQuery (roles/bigquery.admin) nel tuo progetto. Per saperne di più, vedi Configurare la connessione predefinita.Concedi le autorizzazioni al account di servizio della connessione: Amministratore IAM progetto (
roles/resourcemanager.projectIamAdmin) nel progetto che contiene l'endpoint Vertex AI. Questo è il progetto attuale per i modelli remoti che crei specificando il nome del modello come endpoint. Questo è il progetto identificato nell'URL per i modelli remoti che crei specificando un URL come endpoint.Se utilizzi il modello remoto per analizzare dati non strutturati da una tabella di oggetti e il bucket Cloud Storage che utilizzi nella tabella di oggetti si trova in un progetto diverso dall'endpoint Vertex AI, devi disporre anche di Storage Admin (
roles/storage.admin) nel bucket Cloud Storage utilizzato dalla tabella di oggetti.Crea job BigQuery: Utente job BigQuery (
roles/bigquery.jobUser) nel tuo progetto.
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 le autorizzazioni del account di servizio:
resourcemanager.projects.getIamPolicyeresourcemanager.projects.setIamPolicy - 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.
Prima di iniziare
-
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 role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
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 theserviceusage.services.enablepermission. Learn how to grant roles.
Crea un set di dati
Crea un set di dati BigQuery che contenga le tue risorse:
Console
Nella console Google Cloud , vai alla pagina BigQuery.
Nel riquadro a sinistra, fai clic su Explorer:

Se non vedi il riquadro a sinistra, fai clic su Espandi riquadro a sinistra per aprirlo.
Nel riquadro Explorer, fai clic sul nome del progetto.
Fai clic su Visualizza azioni > Crea set di dati.
Nella pagina Crea set di dati:
In ID set di dati, digita un nome per il set di dati.
Per Tipo di località, seleziona Regione o Più regioni.
- Se hai selezionato Regione, seleziona una località dall'elenco Regione.
- Se hai selezionato Più regioni, seleziona Stati Uniti o Europa dall'elenco Più regioni.
Fai clic su Crea set di dati.
bq
Per creare un nuovo set di dati, utilizza il comando
bq mkcon il flag--location:bq --location=LOCATION mk -d DATASET_ID
Sostituisci quanto segue:
LOCATION: la posizione del set di dati.DATASET_IDè l'ID del set di dati che stai creando.
Verifica che il set di dati sia stato creato:
bq ls
Crea una connessione
Crea una connessione di risorsa Cloud da utilizzare per il modello remoto e recupera il account di servizio della connessione. Crea la connessione nella stessa posizione del set di dati creato nel passaggio precedente.
Puoi saltare questo passaggio se hai configurato una connessione predefinita o se disponi del ruolo Amministratore BigQuery.
Seleziona una delle seguenti opzioni:
Console
Vai alla pagina BigQuery.
Nel riquadro a sinistra, fai clic su Explorer:

Se non vedi il riquadro a sinistra, fai clic su Espandi riquadro a sinistra per aprirlo.
Nel riquadro Explorer, espandi il nome del progetto e fai clic su Connessioni.
Nella pagina Connessioni, fai clic su Crea connessione.
Per Tipo di connessione, scegli Modelli remoti di Vertex AI, funzioni remote, BigLake e Spanner (risorsa Cloud).
Nel campo ID connessione, inserisci un nome per la connessione.
Per Tipo di località, seleziona una località per la connessione. La connessione deve essere colocalizzata con le altre risorse, ad esempio i set di dati.
Fai clic su Crea connessione.
Fai clic su Vai alla connessione.
Nel riquadro Informazioni sulla connessione, copia l'ID dell'account di servizio da utilizzare in un passaggio successivo.
bq
In un ambiente a riga di comando, crea una connessione:
bq mk --connection --location=REGION --project_id=PROJECT_ID \ --connection_type=CLOUD_RESOURCE CONNECTION_ID
Il parametro
--project_idsostituisce il progetto predefinito.Sostituisci quanto segue:
REGION: la tua regione di connessionePROJECT_ID: il tuo Google Cloud ID progettoCONNECTION_ID: un ID per la tua connessione
Quando crei una risorsa di connessione, BigQuery crea un account di serviziot di sistema univoco e lo associa alla connessione.
Risoluzione dei problemi: se viene visualizzato il seguente errore di connessione, aggiorna Google Cloud SDK:
Flags parsing error: flag --connection_type=CLOUD_RESOURCE: value should be one of...
Recupera e copia l'ID account di servizio da utilizzare in un passaggio successivo:
bq show --connection PROJECT_ID.REGION.CONNECTION_ID
L'output è simile al seguente:
name properties 1234.REGION.CONNECTION_ID {"serviceAccountId": "connection-1234-9u56h9@gcp-sa-bigquery-condel.iam.gserviceaccount.com"}
Terraform
Utilizza la risorsa
google_bigquery_connection.
Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configurare l'autenticazione per le librerie client.
L'esempio seguente crea una connessione di risorsa Cloud denominata
my_cloud_resource_connection nella regione US:
Per applicare la configurazione di Terraform in un progetto Google Cloud , completa i passaggi descritti nelle sezioni seguenti.
Prepara Cloud Shell
- Avvia Cloud Shell.
-
Imposta il progetto Google Cloud predefinito in cui vuoi applicare le configurazioni Terraform.
Devi eseguire questo comando una sola volta per progetto e puoi eseguirlo in qualsiasi directory.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
Le variabili di ambiente vengono sostituite se imposti valori espliciti nel file di configurazione Terraform.
Preparare la directory
Ogni file di configurazione Terraform deve avere la propria directory (chiamata anche modulo radice).
-
In Cloud Shell, crea una directory e un nuovo file al suo interno. Il nome file deve avere l'estensione
.tf, ad esempiomain.tf. In questo tutorial, il file viene denominatomain.tf.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
Se stai seguendo un tutorial, puoi copiare il codice campione in ogni sezione o passaggio.
Copia il codice campione nel file
main.tfappena creato.(Facoltativo) Copia il codice da GitHub. Questa operazione è consigliata quando lo snippet Terraform fa parte di una soluzione end-to-end.
- Rivedi e modifica i parametri di esempio da applicare al tuo ambiente.
- Salva le modifiche.
-
Inizializza Terraform. Devi effettuare questa operazione una sola volta per directory.
terraform init
(Facoltativo) Per utilizzare l'ultima versione del provider Google, includi l'opzione
-upgrade:terraform init -upgrade
Applica le modifiche
-
Rivedi la configurazione e verifica che le risorse che Terraform creerà o
aggiornerà corrispondano alle tue aspettative:
terraform plan
Apporta le correzioni necessarie alla configurazione.
-
Applica la configurazione Terraform eseguendo questo comando e inserendo
yesal prompt:terraform apply
Attendi che Terraform visualizzi il messaggio "Apply complete!".
- Apri il tuo Google Cloud progetto per visualizzare i risultati. Nella console Google Cloud , vai alle risorse nell'interfaccia utente per assicurarti che Terraform le abbia create o aggiornate.
Concedi un ruolo al account di servizio della connessione al modello remoto
Devi concedere il ruolo Utente Vertex AI al account di servizio della connessione utilizzata dal modello remoto.
Se prevedi di specificare l'endpoint del modello remoto come URL,
ad esempio endpoint = 'https://us-central1-aiplatform.googleapis.com/v1/projects/myproject/locations/us-central1/publishers/google/models/gemini-2.0-flash',
concedi questo ruolo nello stesso progetto specificato nell'URL.
Se prevedi di specificare l'endpoint del modello remoto utilizzando il nome del modello, ad esempio endpoint = 'gemini-2.0-flash', concedi questo ruolo nello stesso progetto in cui prevedi di creare il modello remoto.
La concessione del ruolo in un progetto diverso genera l'errore
bqcx-1234567890-wxyz@gcp-sa-bigquery-condel.iam.gserviceaccount.com does not have the permission to access resource.
Per concedere il ruolo Utente Vertex AI:
Console
Vai alla pagina IAM e amministrazione.
Fai clic su Aggiungi.
Si apre la finestra di dialogo Aggiungi entità.
Nel campo Nuove entità, inserisci l'ID account di servizio che hai copiato in precedenza.
Nel campo Seleziona un ruolo, seleziona Vertex AI, quindi seleziona Utente Vertex AI.
Fai clic su Salva.
gcloud
Utilizza il comando gcloud projects add-iam-policy-binding.
gcloud projects add-iam-policy-binding 'PROJECT_NUMBER' --member='serviceAccount:MEMBER' --role='roles/aiplatform.user' --condition=None
Sostituisci quanto segue:
PROJECT_NUMBER: il numero di progettoMEMBER: l'ID account di servizio che hai copiato in precedenza
Concedi un ruolo al account di servizio della connessione alla tabella degli oggetti
Se utilizzi il modello remoto per generare testo dai dati della tabella degli oggetti, concedi all'account di servizio della connessione alla tabella degli oggetti il ruolo Utente Vertex AI nello stesso progetto in cui prevedi di creare il modello remoto. In caso contrario, ignora questo passaggio.
Per trovare il account di servizio per la connessione alla tabella degli oggetti:
Vai alla pagina BigQuery.
Nel riquadro a sinistra, fai clic su Explorer:

Se non vedi il riquadro a sinistra, fai clic su Espandi riquadro a sinistra per aprirlo.
Nel riquadro Explorer, fai clic su Set di dati e poi seleziona un set di dati che contiene la tabella degli oggetti.
Fai clic su Panoramica > Tabelle e poi seleziona la tabella degli oggetti.
Nel riquadro dell'editor, fai clic sulla scheda Dettagli.
Prendi nota del nome della connessione nel campo ID connessione.
Nel riquadro Explorer, fai clic su Connections (Connessioni).
Seleziona la connessione che corrisponde a quella del campo ID connessione della tabella degli oggetti.
Copia il valore nel campo ID account di servizio.
Per concedere il ruolo, segui questi passaggi:
Console
Vai alla pagina IAM e amministrazione.
Fai clic su Aggiungi.
Si apre la finestra di dialogo Aggiungi entità.
Nel campo Nuove entità, inserisci l'ID account di servizio che hai copiato in precedenza.
Nel campo Seleziona un ruolo, seleziona Vertex AI, quindi seleziona Utente Vertex AI.
Fai clic su Salva.
gcloud
Utilizza il comando gcloud projects add-iam-policy-binding.
gcloud projects add-iam-policy-binding 'PROJECT_NUMBER' --member='serviceAccount:MEMBER' --role='roles/aiplatform.user' --condition=None
Sostituisci quanto segue:
PROJECT_NUMBER: il numero di progettoMEMBER: l'ID account di servizio che hai copiato in precedenza
Attivare un modello partner
Questo passaggio è necessario solo se vuoi utilizzare i modelli Anthropic Claude, Llama o Mistral AI.
Nella console Google Cloud , vai alla pagina Model Garden di Vertex AI.
Cerca o sfoglia il modello partner che vuoi utilizzare.
Fai clic sulla scheda del modello.
Nella pagina del modello, fai clic su Attiva.
Compila le informazioni di attivazione richieste, quindi fai clic su Avanti.
Nella sezione Termini e condizioni, seleziona la casella di controllo.
Fai clic su Accetto per accettare i termini e le condizioni e attivare il modello.
Scegliere un metodo di deployment del modello aperto
Se crei un modello remoto su un modello aperto supportato, puoi eseguire automaticamente il deployment del modello aperto contemporaneamente alla creazione del modello remoto specificando l'ID modello di Vertex AI Model Garden o Hugging Face nell'istruzione CREATE MODEL.
In alternativa, puoi prima eseguire il deployment del modello open source e poi utilizzarlo
con il modello remoto specificando l'endpoint del modello
nell'istruzione CREATE MODEL. Per saperne di più, vedi
Eseguire il deployment di modelli aperti.
Crea un modello remoto BigQuery ML
Creare un modello remoto:
Nuovi modelli aperti
Nella console Google Cloud , vai alla pagina BigQuery.
Utilizzando l'editor SQL, crea un modello remoto:
CREATE OR REPLACE MODEL `PROJECT_ID.DATASET_ID.MODEL_NAME` REMOTE WITH CONNECTION {DEFAULT | `PROJECT_ID.REGION.CONNECTION_ID`} OPTIONS ( {HUGGING_FACE_MODEL_ID = 'HUGGING_FACE_MODEL_ID' | MODEL_GARDEN_MODEL_NAME = 'MODEL_GARDEN_MODEL_NAME'} [, HUGGING_FACE_TOKEN = 'HUGGING_FACE_TOKEN' ] [, MACHINE_TYPE = 'MACHINE_TYPE' ] [, MIN_REPLICA_COUNT = MIN_REPLICA_COUNT ] [, MAX_REPLICA_COUNT = MAX_REPLICA_COUNT ] [, RESERVATION_AFFINITY_TYPE = {'NO_RESERVATION' | 'ANY_RESERVATION' | 'SPECIFIC_RESERVATION'} ] [, RESERVATION_AFFINITY_KEY = 'compute.googleapis.com/reservation-name' ] [, RESERVATION_AFFINITY_VALUES = RESERVATION_AFFINITY_VALUES ] [, ENDPOINT_IDLE_TTL = ENDPOINT_IDLE_TTL ] );
Sostituisci quanto segue:
PROJECT_ID: il tuo ID progetto.DATASET_ID: l'ID del set di dati che deve contenere il modello. Questo set di dati deve trovarsi nella stessa posizione della connessione che stai utilizzando.MODEL_NAME: il nome del modello.REGION: la regione utilizzata dalla connessione.CONNECTION_ID: l'ID della tua connessione BigQuery.Puoi ottenere questo valore visualizzando i dettagli della connessione nella console Google Cloud e copiando il valore nell'ultima sezione dell'ID connessione completo visualizzato in ID connessione. Ad esempio,
projects/myproject/locations/connection_location/connections/myconnection.HUGGING_FACE_MODEL_ID: un valoreSTRINGche specifica l'ID modello per un modello Hugging Face supportato, nel formatoprovider_name/model_name. Ad esempio,deepseek-ai/DeepSeek-R1. Puoi ottenere l'ID modello facendo clic sul nome del modello in Hugging Face Model Hub e poi copiando l'ID modello dalla parte superiore della scheda del modello.MODEL_GARDEN_MODEL_NAME: un valoreSTRINGche specifica l'ID modello e la versione del modello di un modello Model Garden di Vertex AI supportato, nel formatopublishers/publisher/models/model_name@model_version. Ad esempio,publishers/openai/models/gpt-oss@gpt-oss-120b. Puoi ottenere l'ID modello facendo clic sulla scheda del modello in Vertex AI Model Garden e poi copiando l'ID dal campo ID modello. Puoi ottenere la versione predefinita del modello copiandola dal campo Versione nella scheda del modello. Per visualizzare altre versioni del modello che puoi utilizzare, fai clic su Esegui il deployment del modello e poi sul campo ID risorsa.HUGGING_FACE_TOKEN: un valoreSTRINGche specifica il token di accesso utente di Hugging Face da utilizzare. Puoi specificare un valore per questa opzione solo se specifichi anche un valore per l'opzioneHUGGING_FACE_MODEL_ID.Il token deve avere almeno il ruolo
read, ma sono accettabili anche token con un ambito più ampio. Questa opzione è obbligatoria quando il modello identificato dal valoreHUGGING_FACE_MODEL_IDè un modello con accesso limitato o privato di Hugging Face.Alcuni modelli controllati richiedono l'accettazione esplicita dei termini di servizio prima di concedere l'accesso. Per accettare questi termini, segui questi passaggi:
- Vai alla pagina del modello sul sito web di Hugging Face.
- Individua e leggi i termini di servizio del modello. Un link al contratto di servizio si trova in genere nella scheda del modello.
- Accetta i termini come richiesto nella pagina.
MACHINE_TYPE: un valoreSTRINGche specifica il tipo di macchina da utilizzare durante il deployment del modello su Vertex AI. Per informazioni sui tipi di macchina supportati, vedi Tipi di macchina. Se non specifichi un valore per l'opzioneMACHINE_TYPE, viene utilizzato il tipo di macchina predefinito di Vertex AI Model Garden per il modello.MIN_REPLICA_COUNT: un valoreINT64che specifica il numero minimo di repliche della macchina utilizzate durante il deployment del modello su un endpoint Vertex AI. Il servizio aumenta o diminuisce il numero di repliche in base al carico di inferenza sull'endpoint. Il numero di repliche utilizzate non è mai inferiore al valoreMIN_REPLICA_COUNTe mai superiore al valoreMAX_REPLICA_COUNT. Il valore diMIN_REPLICA_COUNTdeve essere compreso nell'intervallo[1, 4096]. Il valore predefinito è1.MAX_REPLICA_COUNT: un valoreINT64che specifica il numero massimo di repliche di macchine utilizzate durante il deployment del modello su un endpoint Vertex AI. Il servizio aumenta o diminuisce il numero di repliche in base al carico di inferenza sull'endpoint. Il numero di repliche utilizzate non è mai inferiore al valoreMIN_REPLICA_COUNTe mai superiore al valoreMAX_REPLICA_COUNT. Il valore diMAX_REPLICA_COUNTdeve essere compreso nell'intervallo[1, 4096]. Il valore predefinito è il valoreMIN_REPLICA_COUNT.RESERVATION_AFFINITY_TYPE: determina se il modello di cui è stato eseguito il deployment utilizza le prenotazioni di Compute Engine per garantire la disponibilità delle macchine virtuali (VM) durante la pubblicazione delle previsioni e specifica se il modello utilizza le VM di tutte le prenotazioni disponibili o solo di una prenotazione specifica. Per ulteriori informazioni, consulta Affinità di prenotazione di Compute Engine.Puoi utilizzare solo le prenotazioni Compute Engine condivise con Vertex AI. Per saperne di più, vedi Consentire l'utilizzo di una prenotazione.
I valori supportati sono i seguenti:
NO_RESERVATION: non viene consumata alcuna prenotazione quando il modello viene sottoposto a deployment in un endpoint Vertex AI. La specifica diNO_RESERVATIONha lo stesso effetto della mancata specifica di un'affinità di prenotazione.ANY_RESERVATION: il deployment del modello Vertex AI utilizza macchine virtuali (VM) dalle prenotazioni Compute Engine che si trovano nel progetto corrente o che sono condivise con il progetto e che sono configurate per l'utilizzo automatico. Vengono utilizzate solo le VM che soddisfano i seguenti requisiti:- Utilizzano il tipo di macchina specificato dal valore
MACHINE_TYPE. - Se il set di dati BigQuery in cui stai creando il modello remoto si trova in una singola regione, la prenotazione deve trovarsi nella stessa regione. Se il set di dati
si trova nella multiregione
US, la prenotazione deve trovarsi nella regioneus-central1. Se il set di dati si trova nella multiregioneEU, la prenotazione deve trovarsi nella regioneeurope-west4.
Se non è presente capacità sufficiente nelle prenotazioni disponibili o se non vengono trovate prenotazioni adatte, il sistema esegue il provisioning delle VM Compute Engine on demand per soddisfare i requisiti delle risorse.
- Utilizzano il tipo di macchina specificato dal valore
SPECIFIC_RESERVATION: il deployment del modello Vertex AI utilizza le VM solo dalla prenotazione specificata nel valoreRESERVATION_AFFINITY_VALUES. Questa prenotazione deve essere configurata per il consumo con target specifico. Il deployment non riesce se la prenotazione specificata non ha capacità sufficiente.
RESERVATION_AFFINITY_KEY: la stringacompute.googleapis.com/reservation-name. Devi specificare questa opzione quando il valore diRESERVATION_AFFINITY_TYPEèSPECIFIC_RESERVATION.RESERVATION_AFFINITY_VALUES: un valoreARRAY<STRING>che specifica il nome completo della risorsa della prenotazione Compute Engine, nel seguente formato:
projects/myproject/zones/reservation_zone/reservations/reservation_nameAd esempio,
RESERVATION_AFFINITY_values = ['projects/myProject/zones/us-central1-a/reservations/myReservationName'].Puoi ottenere il nome e la zona della prenotazione dalla pagina Prenotazioni della console Google Cloud . Per saperne di più, consulta Visualizzare le prenotazioni.
Devi specificare questa opzione quando il valore di
RESERVATION_AFFINITY_TYPEèSPECIFIC_RESERVATION.ENDPOINT_IDLE_TTL: un valoreINTERVALche specifica la durata dell'inattività dopo la quale il modello aperto viene automaticamente annullato il deployment dall'endpoint Vertex AI.Per attivare l'annullamento automatico del deployment, specifica un valore letterale di intervallo compreso tra 390 minuti (6,5 ore) e 7 giorni. Ad esempio, specifica
INTERVAL 8 HOURper annullare il deployment del modello dopo 8 ore di inattività. Il valore predefinito è 390 minuti (6 ore e mezza).L'inattività del modello è definita come il periodo di tempo trascorso dall'esecuzione di una delle seguenti operazioni sul modello:
- Esecuzione dell'istruzione
CREATE MODEL. - Eseguendo l'istruzione
ALTER MODELcon l'argomentoDEPLOY_MODELimpostato suTRUE. - Invio di una richiesta di inferenza all'endpoint del modello. Ad esempio, eseguendo la funzione
AI.GENERATE_EMBEDDINGoAI.GENERATE_TEXT.
Ognuna di queste operazioni azzera il timer di inattività. Il ripristino viene attivato all'inizio del job BigQuery che esegue l'operazione.
Dopo l'annullamento del deployment del modello, le richieste di inferenza inviate al modello restituiscono un errore. L'oggetto modello BigQuery rimane invariato, inclusi i metadati del modello. Per utilizzare di nuovo il modello per l'inferenza, devi eseguire nuovamente il deployment eseguendo l'istruzione
ALTER MODELsul modello e impostando l'opzioneDEPLOY_MODELsuTRUE.- Esecuzione dell'istruzione
Modelli aperti di cui è stato eseguito il deployment
Nella console Google Cloud , vai alla pagina BigQuery.
Utilizzando l'editor SQL, crea un modello remoto:
CREATE OR REPLACE MODEL `PROJECT_ID.DATASET_ID.MODEL_NAME` REMOTE WITH CONNECTION {DEFAULT | `PROJECT_ID.REGION.CONNECTION_ID`} OPTIONS ( ENDPOINT = 'https://ENDPOINT_REGION-aiplatform.googleapis.com/v1/projects/ENDPOINT_PROJECT_ID/locations/ENDPOINT_REGION/endpoints/ENDPOINT_ID' );
Sostituisci quanto segue:
PROJECT_ID: il tuo ID progetto.DATASET_ID: l'ID del set di dati che deve contenere il modello. Questo set di dati deve trovarsi nella stessa posizione della connessione che stai utilizzando.MODEL_NAME: il nome del modello.REGION: la regione utilizzata dalla connessione.CONNECTION_ID: l'ID della tua connessione BigQuery.Puoi ottenere questo valore visualizzando i dettagli della connessione nella console Google Cloud e copiando il valore nell'ultima sezione dell'ID connessione completo visualizzato in ID connessione. Ad esempio,
projects/myproject/locations/connection_location/connections/myconnection.ENDPOINT_REGION: la regione in cui viene eseguito il deployment del modello aperto.ENDPOINT_PROJECT_ID: il progetto in cui viene implementato il modello aperto.ENDPOINT_ID: l'ID dell'endpoint HTTPS utilizzato dal modello aperto. Puoi ottenere l'ID endpoint individuando il modello aperto nella pagina Previsione online e copiando il valore nel campo ID.
Tutti gli altri modelli
Nella console Google Cloud , vai alla pagina BigQuery.
Utilizzando l'editor SQL, crea un modello remoto:
CREATE OR REPLACE MODEL `PROJECT_ID.DATASET_ID.MODEL_NAME` REMOTE WITH CONNECTION {DEFAULT | `PROJECT_ID.REGION.CONNECTION_ID`} OPTIONS (ENDPOINT = 'ENDPOINT');
Sostituisci quanto segue:
PROJECT_ID: il tuo ID progetto.DATASET_ID: l'ID del set di dati che deve contenere il modello. Questo set di dati deve trovarsi nella stessa posizione della connessione che stai utilizzando.MODEL_NAME: il nome del modello.REGION: la regione utilizzata dalla connessione.CONNECTION_ID: l'ID della tua connessione BigQuery.Puoi ottenere questo valore visualizzando i dettagli della connessione nella console Google Cloud e copiando il valore nell'ultima sezione dell'ID connessione completo visualizzato in ID connessione. Ad esempio,
projects/myproject/locations/connection_location/connections/myconnection.ENDPOINT: l'endpoint del modello Vertex AI da utilizzare.Per i modelli preaddestrati Vertex AI, i modelli Claude e i modelli Mistral AI, specifica il nome del modello. Per alcuni di questi modelli, puoi specificare una versione particolare del modello come parte del nome. Per i modelli Gemini supportati, puoi specificare l'endpoint globale per migliorare la disponibilità.
Per i modelli Llama, specifica un endpoint API OpenAI nel formato
openapi/<publisher_name>/<model_name>. Ad esempio:openapi/meta/llama-3.1-405b-instruct-maas.Per informazioni sui nomi e sulle versioni dei modelli supportati, consulta
ENDPOINT.Il modello Vertex AI che specifichi deve essere disponibile nella località in cui stai creando il modello remoto. Per ulteriori informazioni, consulta Località.
Generare testo dai dati di una tabella standard
Genera testo utilizzando la
funzione AI.GENERATE_TEXT
con i dati del prompt di una tabella standard:
Gemini
SELECT * FROM AI.GENERATE_TEXT( MODEL `PROJECT_ID.DATASET_ID.MODEL_NAME`, {TABLE PROJECT_ID.DATASET_ID.TABLE_NAME | (PROMPT_QUERY)}, STRUCT( { { [MAX_OUTPUT_TOKENS AS max_output_tokens] [, TOP_P AS top_p] [, TEMPERATURE AS temperature] [, STOP_SEQUENCES AS stop_sequences] [, GROUND_WITH_GOOGLE_SEARCH AS ground_with_google_search] [, SAFETY_SETTINGS AS safety_settings] } | [, MODEL_PARAMS AS model_params] } [, REQUEST_TYPE AS request_type]) );
Sostituisci quanto segue:
PROJECT_ID: il tuo ID progetto.DATASET_ID: l'ID del set di dati che contiene il modello.MODEL_NAME: il nome del modello.TABLE_NAME: il nome della tabella che contiene il prompt. Questa tabella deve avere una colonna denominatapromptoppure puoi utilizzare un alias per utilizzare una colonna con un nome diverso.PROMPT_QUERY: una query che fornisce i dati del prompt. Questa query deve produrre una colonna denominataprompt.TOKENS: un valoreINT64che imposta il numero massimo di token che possono essere generati nella risposta. Questo valore deve essere compreso nell'intervallo[1,8192]. Specifica un valore più basso per risposte più brevi e un valore più alto per risposte più lunghe. Il valore predefinito è128.TEMPERATURE: un valoreFLOAT64nell'intervallo[0.0,1.0]che controlla il grado di casualità nella selezione dei token. Il valore predefinito è0.I valori più bassi per
temperaturesono ideali per i prompt che richiedono una risposta più deterministica e meno aperta o creativa, mentre i valori più alti pertemperaturepossono portare a risultati più diversificati o creativi. Un valore di0pertemperatureè deterministico, il che significa che viene sempre selezionata la risposta con la probabilità più alta.TOP_P: un valoreFLOAT64nell'intervallo[0.0,1.0]aiuta a determinare la probabilità dei token selezionati. Specifica un valore più basso per risposte meno casuali e un valore più alto per risposte più casuali. Il valore predefinito è0.95.STOP_SEQUENCES: un valoreARRAY<STRING>che rimuove le stringhe specificate se sono incluse nelle risposte del modello. Le stringhe vengono confrontate esattamente, comprese le maiuscole. Il valore predefinito è un array vuoto.GROUND_WITH_GOOGLE_SEARCH: un valoreBOOLche determina se il modello Vertex AI utilizza [Grounding con la Ricerca Google](/vertex-ai/generative-ai/docs/grounding/overview#ground-public) durante la generazione delle risposte. La fondatezza consente al modello di utilizzare informazioni aggiuntive da internet durante la generazione di una risposta, in modo da rendere le risposte del modello più specifiche e basate su fatti. Quando questo campo è impostato suTrue, nei risultati viene inclusa una colonnagrounding_resultaggiuntiva, che fornisce le fonti utilizzate dal modello per raccogliere informazioni aggiuntive. Il valore predefinito èFALSE.SAFETY_SETTINGS: un valoreARRAY<STRUCT<STRING AS category, STRING AS threshold>>che configura le soglie di sicurezza dei contenuti per filtrare le risposte. Il primo elemento della struct specifica una categoria di contenuti dannosi, mentre il secondo elemento specifica una soglia di blocco corrispondente. Il modello filtra i contenuti che violano queste impostazioni. Puoi specificare ogni categoria una sola volta. Ad esempio, non puoi specificare siaSTRUCT('HARM_CATEGORY_DANGEROUS_CONTENT' AS category, 'BLOCK_MEDIUM_AND_ABOVE' AS threshold)cheSTRUCT('HARM_CATEGORY_DANGEROUS_CONTENT' AS category, 'BLOCK_ONLY_HIGH' AS threshold). Se non è presente un'impostazione di sicurezza per una determinata categoria, viene utilizzata l'impostazione di sicurezzaBLOCK_MEDIUM_AND_ABOVE. Le categorie supportate sono le seguenti:HARM_CATEGORY_HATE_SPEECHHARM_CATEGORY_DANGEROUS_CONTENTHARM_CATEGORY_HARASSMENTHARM_CATEGORY_SEXUALLY_EXPLICIT
BLOCK_NONE(Accesso limitato)BLOCK_LOW_AND_ABOVEBLOCK_MEDIUM_AND_ABOVE(valore predefinito)BLOCK_ONLY_HIGHHARM_BLOCK_THRESHOLD_UNSPECIFIED
REQUEST_TYPE: un valoreSTRINGche specifica il tipo di richiesta di inferenza da inviare al modello Gemini. Il tipo di richiesta determina la quota utilizzata dalla richiesta. I valori validi sono:DEDICATED: la funzioneAI.GENERATE_TEXTutilizza solo la quota di throughput riservato. La funzioneAI.GENERATE_TEXTrestituisce l'erroreProvisioned throughput is not purchased or is not activese la quota di throughput con provisioning non è disponibile.SHARED: la funzioneAI.GENERATE_TEXTutilizza solo la quota condivisa dinamica (DSQ), anche se hai acquistato una quota di throughput di cui è stato eseguito il provisioning.UNSPECIFIED: La funzioneAI.GENERATE_TEXTutilizza la quota nel seguente modo:- Se non hai acquistato la quota di throughput di cui è stato eseguito il provisioning,
la funzione
AI.GENERATE_TEXTutilizza la quota DSQ. - Se hai acquistato una quota di throughput di cui è stato eseguito il provisioning,
la funzione
AI.GENERATE_TEXTutilizza prima la quota di throughput di cui è stato eseguito il provisioning. Se le richieste superano la quota di throughput di cui è stato eseguito il provisioning, il traffico in eccesso utilizza la quota DSQ.
- Se non hai acquistato la quota di throughput di cui è stato eseguito il provisioning,
la funzione
Il valore predefinito è
UNSPECIFIED.Per ulteriori informazioni, consulta la sezione Utilizzare il throughput riservato di Vertex AI.
MODEL_PARAMS: un valore letterale stringa formattato in JSON che fornisce parametri al modello. Il valore deve essere conforme al formato del corpo della richiestagenerateContent. Puoi fornire un valore per qualsiasi campo nel corpo della richiesta, ad eccezione del campocontents[]. Se imposti questo campo, non puoi specificare anche i parametri del modello nell'argomento struct di primo livello per la funzioneAI.GENERATE_TEXT. Devi specificare ogni parametro del modello nel campoMODEL_PARAMSoppure omettere questo campo e specificare ogni parametro separatamente.
Esempio 1
L'esempio seguente mostra una richiesta con queste caratteristiche:
- Richiede un riepilogo del testo nella colonna
bodydella tabellaarticles.
SELECT * FROM AI.GENERATE_TEXT( MODEL `mydataset.text_model`, ( SELECT CONCAT('Summarize this text', body) AS prompt FROM mydataset.articles ));
Esempio 2
L'esempio seguente mostra una richiesta con queste caratteristiche:
- Utilizza una query per creare i dati del prompt concatenando stringhe che forniscono prefissi del prompt con le colonne della tabella.
- Restituisce una risposta breve.
SELECT * FROM AI.GENERATE_TEXT( MODEL `mydataset.text_model`, ( SELECT CONCAT(question, 'Text:', description, 'Category') AS prompt FROM mydataset.input_table ), STRUCT( 100 AS max_output_tokens));
Esempio 3
L'esempio seguente mostra una richiesta con queste caratteristiche:
- Utilizza la colonna
promptdella tabellapromptsper il prompt.
SELECT * FROM AI.GENERATE_TEXT( MODEL `mydataset.text_model`, TABLE mydataset.prompts);
Esempio 4
L'esempio seguente mostra una richiesta con queste caratteristiche:
- Utilizza la colonna
promptdella tabellapromptsper il prompt. - Restituisce una risposta breve.
- Recupera e restituisce i dati web pubblici per il grounding della risposta.
- Filtra le risposte non sicure utilizzando due impostazioni di sicurezza.
SELECT * FROM AI.GENERATE_TEXT( MODEL `mydataset.text_model`, TABLE mydataset.prompts, STRUCT( 100 AS max_output_tokens, 0.5 AS top_p, TRUE AS ground_with_google_search, [STRUCT('HARM_CATEGORY_HATE_SPEECH' AS category, 'BLOCK_LOW_AND_ABOVE' AS threshold), STRUCT('HARM_CATEGORY_DANGEROUS_CONTENT' AS category, 'BLOCK_MEDIUM_AND_ABOVE' AS threshold)] AS safety_settings));
Esempio 5
L'esempio seguente mostra una richiesta con queste caratteristiche:
- Utilizza la colonna
promptdella tabellapromptsper il prompt. - Restituisce una risposta più lunga.
SELECT * FROM AI.GENERATE_TEXT( MODEL `mydataset.flash_2_model`, TABLE mydataset.prompts, STRUCT( 0.4 AS temperature, 8192 AS max_output_tokens));
Esempio 6
L'esempio seguente mostra una richiesta con queste caratteristiche:
- Richiede un riepilogo del testo nella colonna
bodydella tabellaarticles. - Recupera e restituisce i dati web pubblici per il grounding della risposta.
- Filtra le risposte non sicure utilizzando due impostazioni di sicurezza.
SELECT * FROM AI.GENERATE_TEXT( MODEL `mydataset.text_model`, ( SELECT CONCAT('Summarize this text', body) AS prompt FROM mydataset.articles ), STRUCT( .1 AS TEMPERATURE, TRUE AS ground_with_google_search, [STRUCT('HARM_CATEGORY_HATE_SPEECH' AS category, 'BLOCK_LOW_AND_ABOVE' AS threshold), STRUCT('HARM_CATEGORY_DANGEROUS_CONTENT' AS category, 'BLOCK_MEDIUM_AND_ABOVE' AS threshold)] AS safety_settings));
Claude
SELECT * FROM AI.GENERATE_TEXT( MODEL `PROJECT_ID.DATASET_ID.MODEL_NAME`, {TABLE PROJECT_ID.DATASET_ID.TABLE_NAME | (PROMPT_QUERY)}, STRUCT( { { [MAX_OUTPUT_TOKENS AS max_output_tokens] [, TOP_K AS top_k] [, TOP_P AS top_p] } | [, MODEL_PARAMS AS model_params] }) );
Sostituisci quanto segue:
PROJECT_ID: il tuo ID progetto.DATASET_ID: l'ID del set di dati che contiene il modello.MODEL_NAME: il nome del modello.TABLE_NAME: il nome della tabella che contiene il prompt. Questa tabella deve avere una colonna denominatapromptoppure puoi utilizzare un alias per utilizzare una colonna con un nome diverso.PROMPT_QUERY: una query che fornisce i dati del prompt. Questa query deve produrre una colonna denominataprompt.TOKENS: un valoreINT64che imposta il numero massimo di token che possono essere generati nella risposta. Questo valore deve essere compreso nell'intervallo[1,4096]. Specifica un valore più basso per risposte più brevi e un valore più alto per risposte più lunghe. Il valore predefinito è128.TOP_K: un valoreINT64nell'intervallo[1,40]che determina il pool iniziale di token che il modello prende in considerazione per la selezione. Specifica un valore più basso per risposte meno casuali e un valore più alto per risposte più casuali. Se non specifichi un valore, il modello determina un valore appropriato.TOP_P: un valoreFLOAT64nell'intervallo[0.0,1.0]contribuisce a determinare la probabilità dei token selezionati. Specifica un valore più basso per risposte meno casuali e un valore più alto per risposte più casuali. Se non specifichi un valore, il modello determina un valore appropriato.MODEL_PARAMS: un valore letterale stringa formattato in JSON che fornisce parametri al modello. Il valore deve essere conforme al formato del corpo della richiestagenerateContent. Puoi fornire un valore per qualsiasi campo nel corpo della richiesta, ad eccezione del campocontents[]. Se imposti questo campo, non puoi specificare anche i parametri del modello nell'argomento struct di primo livello per la funzioneAI.GENERATE_TEXT. Devi specificare ogni parametro del modello nel campoMODEL_PARAMSoppure omettere questo campo e specificare ogni parametro separatamente.
Esempio 1
L'esempio seguente mostra una richiesta con queste caratteristiche:
- Richiede un riepilogo del testo nella colonna
bodydella tabellaarticles.
SELECT * FROM AI.GENERATE_TEXT( MODEL `mydataset.text_model`, ( SELECT CONCAT('Summarize this text', body) AS prompt FROM mydataset.articles ));
Esempio 2
L'esempio seguente mostra una richiesta con queste caratteristiche:
- Utilizza una query per creare i dati del prompt concatenando stringhe che forniscono prefissi del prompt con le colonne della tabella.
- Restituisce una risposta breve.
SELECT * FROM AI.GENERATE_TEXT( MODEL `mydataset.text_model`, ( SELECT CONCAT(question, 'Text:', description, 'Category') AS prompt FROM mydataset.input_table ), STRUCT( 100 AS max_output_tokens));
Esempio 3
L'esempio seguente mostra una richiesta con queste caratteristiche:
- Utilizza la colonna
promptdella tabellapromptsper il prompt.
SELECT * FROM AI.GENERATE_TEXT( MODEL `mydataset.text_model`, TABLE mydataset.prompts);
Llama
SELECT * FROM AI.GENERATE_TEXT( MODEL `PROJECT_ID.DATASET_ID.MODEL_NAME`, {TABLE PROJECT_ID.DATASET_ID.TABLE_NAME | (PROMPT_QUERY)}, STRUCT( { { [MAX_OUTPUT_TOKENS AS max_output_tokens] [, TOP_P AS top_p] [, TEMPERATURE AS temperature] [, STOP_SEQUENCES AS stop_sequences] | } [, MODEL_PARAMS AS model_params] }) );
Sostituisci quanto segue:
PROJECT_ID: il tuo ID progetto.DATASET_ID: l'ID del set di dati che contiene il modello.MODEL_NAME: il nome del modello.TABLE_NAME: il nome della tabella che contiene il prompt. Questa tabella deve avere una colonna denominatapromptoppure puoi utilizzare un alias per utilizzare una colonna con un nome diverso.PROMPT_QUERY: una query che fornisce i dati del prompt. Questa query deve produrre una colonna denominataprompt.TOKENS: un valoreINT64che imposta il numero massimo di token che possono essere generati nella risposta. Questo valore deve essere compreso nell'intervallo[1,4096]. Specifica un valore più basso per risposte più brevi e un valore più alto per risposte più lunghe. Il valore predefinito è128.TEMPERATURE: un valoreFLOAT64nell'intervallo[0.0,1.0]che controlla il grado di casualità nella selezione dei token. Il valore predefinito è0.I valori più bassi per
temperaturesono ideali per i prompt che richiedono una risposta più deterministica e meno aperta o creativa, mentre i valori più alti pertemperaturepossono portare a risultati più diversificati o creativi. Un valore di0pertemperatureè deterministico, il che significa che viene sempre selezionata la risposta con la probabilità più alta.TOP_P: un valoreFLOAT64nell'intervallo[0.0,1.0]aiuta a determinare la probabilità dei token selezionati. Specifica un valore più basso per risposte meno casuali e un valore più alto per risposte più casuali. Il valore predefinito è0.95.STOP_SEQUENCES: un valoreARRAY<STRING>che rimuove le stringhe specificate se sono incluse nelle risposte del modello. Le stringhe vengono confrontate esattamente, comprese le maiuscole. Il valore predefinito è un array vuoto.MODEL_PARAMS: un valore letterale stringa formattato in JSON che fornisce parametri al modello. Il valore deve essere conforme al formato del corpo della richiestagenerateContent. Puoi fornire un valore per qualsiasi campo nel corpo della richiesta, ad eccezione del campocontents[]. Se imposti questo campo, non puoi specificare anche i parametri del modello nell'argomento struct di primo livello per la funzioneAI.GENERATE_TEXT. Devi specificare ogni parametro del modello nel campoMODEL_PARAMSoppure omettere questo campo e specificare ogni parametro separatamente.
Esempio 1
L'esempio seguente mostra una richiesta con queste caratteristiche:
- Richiede un riepilogo del testo nella colonna
bodydella tabellaarticles.
SELECT * FROM AI.GENERATE_TEXT( MODEL `mydataset.text_model`, ( SELECT CONCAT('Summarize this text', body) AS prompt FROM mydataset.articles ));
Esempio 2
L'esempio seguente mostra una richiesta con queste caratteristiche:
- Utilizza una query per creare i dati del prompt concatenando stringhe che forniscono prefissi del prompt con le colonne della tabella.
- Restituisce una risposta breve.
SELECT * FROM AI.GENERATE_TEXT( MODEL `mydataset.text_model`, ( SELECT CONCAT(question, 'Text:', description, 'Category') AS prompt FROM mydataset.input_table ), STRUCT( 100 AS max_output_tokens));
Esempio 3
L'esempio seguente mostra una richiesta con queste caratteristiche:
- Utilizza la colonna
promptdella tabellapromptsper il prompt.
SELECT * FROM AI.GENERATE_TEXT( MODEL `mydataset.text_model`, TABLE mydataset.prompts);
Mistral AI
SELECT * FROM AI.GENERATE_TEXT( MODEL `PROJECT_ID.DATASET_ID.MODEL_NAME`, {TABLE PROJECT_ID.DATASET_ID.TABLE_NAME | (PROMPT_QUERY)}, STRUCT( { { [MAX_OUTPUT_TOKENS AS max_output_tokens] [, TOP_P AS top_p] [, TEMPERATURE AS temperature] [, STOP_SEQUENCES AS stop_sequences] | } [, MODEL_PARAMS AS model_params] }) );
Sostituisci quanto segue:
PROJECT_ID: il tuo ID progetto.DATASET_ID: l'ID del set di dati che contiene il modello.MODEL_NAME: il nome del modello.TABLE_NAME: il nome della tabella che contiene il prompt. Questa tabella deve avere una colonna denominatapromptoppure puoi utilizzare un alias per utilizzare una colonna con un nome diverso.PROMPT_QUERY: una query che fornisce i dati del prompt. Questa query deve produrre una colonna denominataprompt.TOKENS: un valoreINT64che imposta il numero massimo di token che possono essere generati nella risposta. Questo valore deve essere compreso nell'intervallo[1,4096]. Specifica un valore più basso per risposte più brevi e un valore più alto per risposte più lunghe. Il valore predefinito è128.TEMPERATURE: un valoreFLOAT64nell'intervallo[0.0,1.0]che controlla il grado di casualità nella selezione dei token. Il valore predefinito è0.I valori più bassi per
temperaturesono ideali per i prompt che richiedono una risposta più deterministica e meno aperta o creativa, mentre i valori più alti pertemperaturepossono portare a risultati più diversificati o creativi. Un valore di0pertemperatureè deterministico, il che significa che viene sempre selezionata la risposta con la probabilità più alta.TOP_P: un valoreFLOAT64nell'intervallo[0.0,1.0]aiuta a determinare la probabilità dei token selezionati. Specifica un valore più basso per risposte meno casuali e un valore più alto per risposte più casuali. Il valore predefinito è0.95.STOP_SEQUENCES: un valoreARRAY<STRING>che rimuove le stringhe specificate se sono incluse nelle risposte del modello. Le stringhe vengono confrontate esattamente, comprese le maiuscole. Il valore predefinito è un array vuoto.MODEL_PARAMS: un valore letterale stringa formattato in JSON che fornisce parametri al modello. Il valore deve essere conforme al formato del corpo della richiestagenerateContent. Puoi fornire un valore per qualsiasi campo nel corpo della richiesta, ad eccezione del campocontents[]. Se imposti questo campo, non puoi specificare anche i parametri del modello nell'argomento struct di primo livello per la funzioneAI.GENERATE_TEXT. Devi specificare ogni parametro del modello nel campoMODEL_PARAMSoppure omettere questo campo e specificare ogni parametro separatamente.
Esempio 1
L'esempio seguente mostra una richiesta con queste caratteristiche:
- Richiede un riepilogo del testo nella colonna
bodydella tabellaarticles.
SELECT * FROM AI.GENERATE_TEXT( MODEL `mydataset.text_model`, ( SELECT CONCAT('Summarize this text', body) AS prompt FROM mydataset.articles ));
Esempio 2
L'esempio seguente mostra una richiesta con queste caratteristiche:
- Utilizza una query per creare i dati del prompt concatenando stringhe che forniscono prefissi del prompt con le colonne della tabella.
- Restituisce una risposta breve.
SELECT * FROM AI.GENERATE_TEXT( MODEL `mydataset.text_model`, ( SELECT CONCAT(question, 'Text:', description, 'Category') AS prompt FROM mydataset.input_table ), STRUCT( 100 AS max_output_tokens));
Esempio 3
L'esempio seguente mostra una richiesta con queste caratteristiche:
- Utilizza la colonna
promptdella tabellapromptsper il prompt.
SELECT * FROM AI.GENERATE_TEXT( MODEL `mydataset.text_model`, TABLE mydataset.prompts);
Modelli aperti
SELECT * FROM AI.GENERATE_TEXT( MODEL `PROJECT_ID.DATASET_ID.MODEL_NAME`, {TABLE PROJECT_ID.DATASET_ID.TABLE_NAME | (PROMPT_QUERY)}, STRUCT( { { [MAX_OUTPUT_TOKENS AS max_output_tokens] [, TOP_K AS top_k] [, TOP_P AS top_p] [, TEMPERATURE AS temperature] } | [, MODEL_PARAMS AS model_params] }) );
Sostituisci quanto segue:
PROJECT_ID: il tuo ID progetto.DATASET_ID: l'ID del set di dati che contiene il modello.MODEL_NAME: il nome del modello.TABLE_NAME: il nome della tabella che contiene il prompt. Questa tabella deve avere una colonna denominatapromptoppure puoi utilizzare un alias per utilizzare una colonna con un nome diverso.PROMPT_QUERY: una query che fornisce i dati del prompt. Questa query deve produrre una colonna denominataprompt.TOKENS: un valoreINT64che imposta il numero massimo di token che possono essere generati nella risposta. Questo valore deve essere compreso nell'intervallo[1,4096]. Specifica un valore più basso per risposte più brevi e un valore più alto per risposte più lunghe. Se non specifichi un valore, il modello determina un valore appropriato.TEMPERATURE: un valoreFLOAT64nell'intervallo[0.0,1.0]che controlla il grado di casualità nella selezione dei token. Se non specifichi un valore, il modello determina un valore appropriato.I valori più bassi per
temperaturesono ideali per i prompt che richiedono una risposta più deterministica e meno aperta o creativa, mentre i valori più alti pertemperaturepossono portare a risultati più diversificati o creativi. Un valore di0pertemperatureè deterministico, il che significa che viene sempre selezionata la risposta con la probabilità più alta.TOP_K: un valoreINT64nell'intervallo[1,40]che determina il pool iniziale di token che il modello prende in considerazione per la selezione. Specifica un valore più basso per risposte meno casuali e un valore più alto per risposte più casuali. Se non specifichi un valore, il modello determina un valore appropriato.TOP_P: un valoreFLOAT64nell'intervallo[0.0,1.0]contribuisce a determinare la probabilità dei token selezionati. Specifica un valore più basso per risposte meno casuali e un valore più alto per risposte più casuali. Se non specifichi un valore, il modello determina un valore appropriato.MODEL_PARAMS: un valore letterale stringa formattato in JSON che fornisce parametri al modello. Il valore deve essere conforme al formato del corpo della richiestagenerateContent. Puoi fornire un valore per qualsiasi campo nel corpo della richiesta, ad eccezione del campocontents[]. Se imposti questo campo, non puoi specificare anche i parametri del modello nell'argomento struct di primo livello per la funzioneAI.GENERATE_TEXT. Devi specificare ogni parametro del modello nel campoMODEL_PARAMSoppure omettere questo campo e specificare ogni parametro separatamente.
Esempio 1
L'esempio seguente mostra una richiesta con queste caratteristiche:
- Richiede un riepilogo del testo nella colonna
bodydella tabellaarticles.
SELECT * FROM AI.GENERATE_TEXT( MODEL `mydataset.text_model`, ( SELECT CONCAT('Summarize this text', body) AS prompt FROM mydataset.articles ));
Esempio 2
L'esempio seguente mostra una richiesta con queste caratteristiche:
- Utilizza una query per creare i dati del prompt concatenando stringhe che forniscono prefissi del prompt con le colonne della tabella.
- Restituisce una risposta breve.
SELECT * FROM AI.GENERATE_TEXT( MODEL `mydataset.text_model`, ( SELECT CONCAT(question, 'Text:', description, 'Category') AS prompt FROM mydataset.input_table ), STRUCT( 100 AS max_output_tokens));
Esempio 3
L'esempio seguente mostra una richiesta con queste caratteristiche:
- Utilizza la colonna
promptdella tabellapromptsper il prompt.
SELECT * FROM AI.GENERATE_TEXT( MODEL `mydataset.text_model`, TABLE mydataset.prompts);
Generare testo dai dati della tabella degli oggetti
Genera testo utilizzando la
funzione AI.GENERATE_TEXT
con un modello Gemini per analizzare i dati non strutturati di una tabella
di oggetti. Fornisci i dati del prompt nel parametro prompt.
SELECT * FROM AI.GENERATE_TEXT( MODEL `PROJECT_ID.DATASET.MODEL`, { TABLE `PROJECT_ID.DATASET.TABLE` | (QUERY_STATEMENT) }, STRUCT( PROMPT AS prompt { { [, MAX_OUTPUT_TOKENS AS max_output_tokens] [, TOP_P AS top_p] [, TEMPERATURE AS temperature] [, STOP_SEQUENCES AS stop_sequences] [, SAFETY_SETTINGS AS safety_settings] } | [, MODEL_PARAMS AS model_params] }) );
Sostituisci quanto segue:
PROJECT_ID: il progetto che contiene la risorsa.DATASET: il set di dati che contiene la risorsa.MODEL: il nome del modello remoto rispetto al modello Vertex AI. Per saperne di più su come creare questo tipo di modello remoto, consulta L'istruzioneCREATE MODELper i modelli remoti su LLM.Puoi verificare quale modello viene utilizzato dal modello remoto aprendo la consoleGoogle Cloud e esaminando il campo Endpoint remoto nella pagina dei dettagli del modello.
TABLE: il nome della tabella degli oggetti che contiene i contenuti da analizzare. Per saperne di più sui tipi di contenuti che puoi analizzare, consulta Input.Il bucket Cloud Storage utilizzato dalla tabella degli oggetti di input deve trovarsi nello stesso progetto in cui hai creato il modello e in cui chiami la funzione
AI.GENERATE_TEXT.QUERY_STATEMENT: la query GoogleSQL che genera i dati dell'immagine. Puoi specificare solo le clausoleWHEREeORDER BYnella query.PROMPT: un valoreSTRINGche contiene il prompt da utilizzare per analizzare i contenuti visivi. Il valorepromptdeve contenere meno di 16.000 token. Un token potrebbe essere più piccolo di una parola e corrisponde a circa quattro caratteri. Cento token corrispondono a circa 60-80 parole.MAX_OUTPUT_TOKENS: un valoreINT64che imposta il numero massimo di token che possono essere generati nella risposta. Questo valore deve essere compreso nell'intervallo[1,8192]. Specifica un valore più basso per risposte più brevi e un valore più alto per risposte più lunghe. Il valore predefinito è1024.TOP_P: un valoreFLOAT64nell'intervallo[0.0,1.0]che modifica il modo in cui il modello seleziona i token per l'output. Specifica un valore più basso per risposte meno casuali e un valore più alto per risposte più casuali. Il valore predefinito è0.95.I token vengono selezionati dal più probabile al meno probabile finché la somma delle loro probabilità non corrisponde al valore di
TOP_P. Ad esempio, se i token A, B e C hanno una probabilità di0.3,0.2e0.1e il valore diTOP_Pè0.5, il modello seleziona A o B come token successivo utilizzando il valore diTEMPERATUREe non prende in considerazione C.TEMPERATURE: un valoreFLOAT64nell'intervallo[0.0,1.0]che controlla il grado di casualità nella selezione dei token. I valori diTEMPERATUREpiù bassi sono ideali per i prompt che richiedono una risposta più deterministica e meno aperta o creativa, mentre i valori diTEMPERATUREpiù alti possono portare a risultati più diversificati o creativi. Un valoreTEMPERATUREpari a0è deterministico, il che significa che viene sempre selezionata la risposta con la probabilità più alta. Il valore predefinito è0.STOP_SEQUENCES: un valoreARRAY<STRING>che rimuove le stringhe specificate se sono incluse nelle risposte del modello. Le stringhe vengono confrontate esattamente, comprese le maiuscole. Il valore predefinito è un array vuoto.SAFETY_SETTINGS: un valoreARRAY<STRUCT<STRING AS category, STRING AS threshold>>che configura le soglie di sicurezza dei contenuti per filtrare le risposte. Il primo elemento della struttura specifica una categoria di danni, mentre il secondo elemento specifica una soglia di blocco corrispondente. Il modello filtra i contenuti che violano queste impostazioni. Puoi specificare ogni categoria una sola volta. Ad esempio, non puoi specificare siaSTRUCT('HARM_CATEGORY_DANGEROUS_CONTENT' AS category, 'BLOCK_MEDIUM_AND_ABOVE' AS threshold)cheSTRUCT('HARM_CATEGORY_DANGEROUS_CONTENT' AS category, 'BLOCK_ONLY_HIGH' AS threshold). Se non è presente un'impostazione di sicurezza per una determinata categoria, viene utilizzata l'impostazione di sicurezzaBLOCK_MEDIUM_AND_ABOVE.Le categorie supportate sono le seguenti:
HARM_CATEGORY_HATE_SPEECHHARM_CATEGORY_DANGEROUS_CONTENTHARM_CATEGORY_HARASSMENTHARM_CATEGORY_SEXUALLY_EXPLICIT
Le soglie supportate sono le seguenti:
BLOCK_NONE(Accesso limitato)BLOCK_LOW_AND_ABOVEBLOCK_MEDIUM_AND_ABOVE(valore predefinito)BLOCK_ONLY_HIGHHARM_BLOCK_THRESHOLD_UNSPECIFIED
Per ulteriori informazioni, consulta la definizione di categoria di sicurezza e soglia di blocco.
MODEL_PARAMS: un valore letterale stringa formattato in JSON che fornisce parametri aggiuntivi al modello. Il valore deve essere conforme al formatogenerateContentdel corpo della richiesta. Puoi fornire un valore per qualsiasi campo nel corpo della richiesta, ad eccezione del campocontents[]. Se imposti questo campo, non puoi specificare anche parametri del modello nell'argomento struct di primo livello della funzioneAI.GENERATE_TEXT.
Esempi
Questo esempio traduce e trascrive i contenuti audio da una
tabella degli oggetti denominata feedback:
SELECT * FROM AI.GENERATE_TEXT( MODEL `mydataset.audio_model`, TABLE `mydataset.feedback`, STRUCT('What is the content of this audio clip, translated into Spanish?' AS PROMPT));
Questo esempio classifica i contenuti PDF di una tabella di oggetti
denominata invoices:
SELECT * FROM AI.GENERATE_TEXT( MODEL `mydataset.classify_model`, TABLE `mydataset.invoices`, STRUCT('Classify this document based on the invoice total, using the following categories: 0 to 100, 101 to 200, greater than 200' AS PROMPT));