Genera text embedding utilizzando la funzione AI.GENERATE_EMBEDDING
Questo documento mostra come creare un modello remoto BigQuery ML che fa riferimento a un modello di embedding. Quindi devi utilizzare il modello con la funzione AI.GENERATE_EMBEDDING per creare text embedding utilizzando i dati di una tabella standard di BigQuery.
Sono supportati i seguenti tipi di modelli remoti:
- Modelli remoti su modelli di embedding di Agent Platform.
- Modelli remoti su modelli aperti supportati.
Ruoli obbligatori
Per creare un modello remoto e utilizzare la funzione AI.GENERATE_EMBEDDING, devi disporre dei seguenti ruoli IAM (Identity and Access Management):
- Creare e utilizzare set di dati, tabelle e modelli BigQuery:
BigQuery Data Editor (
roles/bigquery.dataEditor) nel progetto. Creare, delegare e utilizzare le connessioni BigQuery: BigQuery Connections Admin (
roles/bigquery.connectionsAdmin) sul 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ù, consulta Configura la connessione predefinita.Concedi le autorizzazioni al account di servizio della connessione: Project IAM Admin (
roles/resourcemanager.projectIamAdmin) sul progetto che contiene l'endpoint della piattaforma Gemini Enterprise Agent. 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.Creare job BigQuery: Utente job BigQuery (
roles/bigquery.jobUser) nel 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
- Esegui query sui dati della tabella:
bigquery.tables.getData
Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.
Prima di iniziare
-
Nella console Google Cloud , nella pagina di selezione del progetto, seleziona o crea un progetto Google Cloud .
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 per 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'autorizzazioneresourcemanager.projects.create. Scopri come concedere i ruoli.
-
Verifica che la fatturazione sia attivata per il tuo progetto Google Cloud .
-
Abilita le API BigQuery, BigQuery Connection e Agent Platform, se non sono già abilitate.
Ruoli richiesti per abilitare le API
Per abilitare le API, devi disporre dell'autorizzazione
serviceusage.services.enable. Se hai creato il progetto, probabilmente hai già questa autorizzazione tramite il ruolo Proprietario (roles/owner). In caso contrario, puoi ottenere questa autorizzazione tramite il ruolo Amministratore Service Usage (roles/serviceusage.serviceUsageAdmin). Scopri come concedere i ruoli.
Crea un set di dati
Crea un set di dati BigQuery per contenere le tue risorse:
Console
Nella console Google Cloud , vai alla pagina BigQuery.
Nel riquadro a sinistra, fai clic su Spazio di esplorazione:

Se non vedi il riquadro a sinistra, fai clic su Espandi riquadro sinistro 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, segui questi passaggi:
In ID set di dati, digita un nome per il set di dati.
Per Tipo di località, seleziona Regione o Multi-regione.
- Se hai selezionato Regione, seleziona una località dall'elenco Regione.
- Se hai selezionato Multiregione, seleziona Stati Uniti o Europa dall'elenco Multiregione.
Fai clic su Crea set di dati.
bq
Crea una connessione
Crea una connessione alle risorse Cloud e ottieni il account di servizio della connessione. Crea la connessione nella stessa località del set di dati creato nel passaggio precedente.
Puoi saltare questo passaggio se hai configurato una connessione predefinita o se hai il 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 sinistro per aprirlo.
Nel riquadro Explorer, espandi il nome del progetto, quindi fai clic su Connessioni.
Nella pagina Connessioni, fai clic su Crea connessione.
In 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.
In Tipo di località, seleziona una località per la connessione. La connessione deve essere collocata insieme alle 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 account di servizio da utilizzare in un passaggio successivo.
SQL
Utilizza l'istruzione CREATE CONNECTION:
Nella console Google Cloud , vai alla pagina BigQuery.
Nell'editor di query, inserisci la seguente istruzione:
CREATE CONNECTION [IF NOT EXISTS] `CONNECTION_NAME` OPTIONS ( connection_type = "CLOUD_RESOURCE", friendly_name = "FRIENDLY_NAME", description = "DESCRIPTION" );
Sostituisci quanto segue:
-
CONNECTION_NAME: il nome della connessione nel formatoPROJECT_ID.LOCATION.CONNECTION_ID,LOCATION.CONNECTION_IDoCONNECTION_ID. Se il progetto o la località vengono omessi, vengono dedotti dal progetto e dalla località in cui viene eseguita l'istruzione. -
FRIENDLY_NAME(facoltativo): un nome descrittivo per la connessione. -
DESCRIPTION(facoltativo): una descrizione della connessione.
-
Fai clic su Esegui.
Per saperne di più su come eseguire le query, consulta Esegui una query interattiva.
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 ID progetto Google CloudCONNECTION_ID: un ID per la tua connessione
Quando crei una risorsa di connessione, BigQuery crea un account di servizio di sistema univoco e lo associa alla connessione.
Risoluzione dei problemi: se ricevi 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 del 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."}
Python
Prima di provare questo esempio, segui le istruzioni di configurazione di Python nella guida rapida di BigQuery per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API BigQuery Python.
Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.
Node.js
Prima di provare questo esempio, segui le istruzioni di configurazione di Node.js nella guida rapida di BigQuery per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API BigQuery Node.js.
Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.
Java
Prima di provare questo esempio, segui le istruzioni di configurazione di Java nella guida rapida di BigQuery per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API BigQuery Java.
Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.
Terraform
Utilizza la risorsa google_bigquery_connection.
Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.
L'esempio seguente crea una connessione alle risorse Cloud denominata
my_cloud_resource_connection nella regione US:
Per applicare la configurazione 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.
Prepara la directory
Ogni file di configurazione Terraform deve avere la propria directory (chiamata anche modulo principale).
-
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 è 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.Facoltativamente, copia il codice da GitHub. Questa opzione è consigliata quando lo snippet Terraform fa parte di una soluzione end-to-end.
- Esamina e modifica i parametri di esempio da applicare al tuo ambiente.
- Salva le modifiche.
-
Inizializza Terraform. Devi eseguire questa operazione una sola volta per directory.
terraform init
Facoltativamente, per utilizzare l'ultima versione del provider Google, includi l'opzione
-upgrade:terraform init -upgrade
Applica le modifiche
-
Esamina 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 il comando seguente e inserendo
yesal prompt:terraform apply
Attendi che Terraform visualizzi il messaggio "Apply complete!".
- Apri il tuo progetto Google Cloud 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 al account di servizio della connessione il ruolo Agent Platform User.
Se prevedi di specificare l'endpoint come URL quando crei il modello remoto, ad esempio endpoint = 'https://us-central1-aiplatform.googleapis.com/v1/projects/myproject/locations/us-central1/publishers/google/models/text-embedding-005', concedi questo ruolo nello stesso progetto che specifichi nell'URL.
Se prevedi di specificare l'endpoint utilizzando il nome del modello quando crei il modello remoto, ad esempio endpoint = 'text-embedding-005', 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. does not have the permission to access resource.
Per concedere il ruolo, segui questi passaggi:
Console
Vai alla pagina IAM e amministrazione.
Fai clic su Concedi l'accesso.
Viene visualizzata la finestra di dialogo Aggiungi entità.
Nel campo Nuove entità, inserisci l'ID del account di servizio che hai copiato in precedenza.
Nel campo Seleziona un ruolo, cerca Agent Platform User.
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 del tuo progettoMEMBER: l'ID del account di servizio che hai copiato in precedenza
Scegli un metodo di deployment dei modelli aperti
Se stai creando 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 Agent Platform
Model Garden o Hugging Face nell'istruzione CREATE MODEL.
In alternativa, puoi eseguire manualmente il deployment del modello aperto, quindi utilizzarlo con il modello remoto specificando l'endpoint del modello nell'istruzione CREATE MODEL. Per saperne di più, consulta Esegui il deployment di modelli aperti.
Crea un modello remoto BigQuery ML
Crea un modello remoto:
Modelli Agent Platform
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 conterrà il modello. Questo set di dati deve trovarsi nella stessa località 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 completamente qualificato mostrato in ID connessione. Ad esempio,
projects/myproject/locations/connection_location/connections/myconnection.ENDPOINT: il nome di un modello di embedding da utilizzare. Per saperne di più, consultaENDPOINT.Il modello Agent Platform specificato deve essere disponibile nella località in cui stai creando il modello remoto. Per saperne di più, consulta Località.
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 conterrà il modello. Questo set di dati deve trovarsi nella stessa località 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 completamente qualificato mostrato in ID connessione. Ad esempio,
projects/myproject/locations/connection_location/connections/myconnection.HUGGING_FACE_MODEL_ID: un valoreSTRINGche specifica l'ID del 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 nell'hub dei modelli Hugging Face e copiando l'ID modello dalla parte superiore della scheda del modello.MODEL_GARDEN_MODEL_NAME: un valoreSTRINGche specifica l'ID e la versione di un modello Model Garden di Gemini Enterprise Agent Platform 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 Model Garden di Agent Platform e copiando l'ID modello 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, quindi 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 Hugging Face con accesso limitato o privato.Alcuni modelli con limitazioni richiedono l'accettazione esplicita dei relativi Termini di servizio prima che venga concesso 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 per il deployment del modello su Agent Platform. Per informazioni sui tipi di macchine supportati, consulta Tipi di macchine. Se non specifichi un valore per l'opzioneMACHINE_TYPE, viene utilizzato il tipo di macchina predefinito di Model Garden della piattaforma agente 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 della piattaforma agente. 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 valoreMIN_REPLICA_COUNTdeve essere compreso nell'intervallo[1, 4096]. Il valore predefinito è1.MAX_REPLICA_COUNT: un valoreINT64che specifica il numero massimo di repliche della macchina utilizzate durante il deployment del modello su un endpoint della piattaforma agente. 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 valoreMAX_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 fornire la disponibilità garantita delle macchine virtuali (VM) durante la generazione delle previsioni e specifica se il modello utilizza le VM di tutte le prenotazioni disponibili o solo di una prenotazione specifica. Per saperne di più, consulta Affinità di prenotazione di Compute Engine.Puoi utilizzare solo le prenotazioni di Compute Engine condivise con Agent Platform. Per saperne di più, consulta Consenti l'utilizzo di una prenotazione.
I valori supportati sono:
NO_RESERVATION: non viene utilizzata alcuna prenotazione quando viene eseguito il deployment del modello in un endpoint Agent Platform. SpecificareNO_RESERVATIONha lo stesso effetto di non specificare un'affinità di prenotazione.ANY_RESERVATION: il deployment del modello della piattaforma agente utilizza le macchine virtuali (VM) delle prenotazioni di 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 le seguenti qualifiche:- Utilizzano il tipo di macchina specificato dal valore
MACHINE_TYPE. - Se il set di dati BigQuery in cui stai creando il modello remoto è 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 la capacità delle prenotazioni disponibili non è sufficiente o se non vengono trovate prenotazioni adatte, il sistema esegue il provisioning di VM di Compute Engine on demand per soddisfare i requisiti delle risorse.
- Utilizzano il tipo di macchina specificato dal valore
SPECIFIC_RESERVATION: il deployment del modello Agent Platform utilizza le VM solo dalla prenotazione specificata nel valoreRESERVATION_AFFINITY_VALUES. Questa prenotazione deve essere configurata per l'utilizzo 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 valoreRESERVATION_AFFINITY_TYPEèSPECIFIC_RESERVATION.RESERVATION_AFFINITY_VALUES: un valoreARRAY<STRING>che specifica il nome completo della risorsa della prenotazione di 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 Visualizza le prenotazioni.
Devi specificare questa opzione quando il valore
RESERVATION_AFFINITY_TYPEèSPECIFIC_RESERVATION.ENDPOINT_IDLE_TTL: un valoreINTERVALche specifica la durata dell'inattività dopo la quale il modello aperto viene automaticamente disinstallato dall'endpoint della piattaforma agente.Per attivare l'annullamento del deployment automatico, specifica un valore valore letterale dell'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,5 ore).L'inattività del modello è definita come il tempo trascorso dall'esecuzione di una delle seguenti operazioni sul modello:
- Esecuzione dell'istruzione
CREATE MODEL. - Esecuzione dell'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 reimposta il timer di inattività su zero. La reimpostazione viene attivata 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 del modello BigQuery rimane invariato, inclusi i metadati del modello. Per utilizzare nuovamente il modello per l'inferenza, devi eseguirne nuovamente il deployment eseguendo l'istruzione
ALTER MODELsul modello e impostando l'opzioneDEPLOY_MODELsuTRUE.- Esecuzione dell'istruzione
Modelli open 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 conterrà il modello. Questo set di dati deve trovarsi nella stessa località 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 completamente qualificato mostrato in ID connessione. Ad esempio,
projects/myproject/locations/connection_location/connections/myconnection.ENDPOINT_REGION: la regione in cui è stato eseguito il deployment del modello aperto.ENDPOINT_PROJECT_ID: il progetto in cui è stato eseguito il deployment del 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.
Genera text embedding
Genera text embedding con la funzione AI.GENERATE_EMBEDDING utilizzando i dati di testo di una colonna della tabella o di una query.
In genere, utilizzeresti un modello di text embedding per i casi d'uso di solo testo e un modello di embedding multimodale per i casi d'uso di ricerca cross-modale, in cui gli embedding per i contenuti testuali e visivi vengono generati nello stesso spazio semantico.
Testo di Agent Platform
Genera text embedding utilizzando un modello remoto su un modello di text embedding di Agent Platform:
SELECT * FROM AI.GENERATE_EMBEDDING( MODEL `PROJECT_ID.DATASET_ID.MODEL_NAME`, {TABLE PROJECT_ID.DATASET_ID.TABLE_NAME | (CONTENT_QUERY)}, STRUCT(TASK_TYPE AS task_type, OUTPUT_DIMENSIONALITY AS output_dimensionality) );
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 remoto su un modello di embedding.TABLE_NAME: il nome della tabella che contiene il testo da incorporare. Questa tabella deve avere una colonna denominatacontentoppure puoi utilizzare un alias per utilizzare una colonna con un nome diverso.CONTENT_QUERY: una query il cui risultato contiene una colonnaSTRINGdenominatacontent.TASK_TYPE: un valore letteraleSTRINGche specifica l'applicazione downstream prevista per aiutare il modello a produrre embedding di qualità migliore.TASK_TYPEaccetta i seguenti valori:RETRIEVAL_QUERY: specifica che il testo fornito è una query in un'impostazione di ricerca o recupero.RETRIEVAL_DOCUMENT: specifica che il testo fornito è un documento in un contesto di ricerca o recupero.Quando utilizzi questo tipo di attività, è utile includere il titolo del documento nell'istruzione della query per migliorare la qualità dell'embedding. Il titolo del documento deve trovarsi in una colonna denominata
titleo con aliastitle, ad esempio:SELECT * FROM AI.GENERATE_EMBEDDING( MODEL
mydataset.embedding_model, (SELECT abstract as content, header as title, publication_number FROMmydataset.publications), STRUCT('RETRIEVAL_DOCUMENT' as task_type) );Se specifichi la colonna del titolo nella query di input, viene compilato il campo
titledel corpo della richiesta inviata al modello. Se specifichi un valoretitlequando utilizzi un altro tipo di attività, l'input viene ignorato e non ha alcun effetto sui risultati dell'embedding.SEMANTIC_SIMILARITY: specifica che il testo specificato verrà utilizzato per la similarità testuale semantica (STS).CLASSIFICATION: specifica che gli embedding verranno utilizzati per la classificazione.CLUSTERING: specifica che gli embedding verranno utilizzati per il clustering.QUESTION_ANSWERING: specifica che gli embedding verranno utilizzati per rispondere alle domande.FACT_VERIFICATION: specifica che gli embedding verranno utilizzati per la verifica dei fatti.CODE_RETRIEVAL_QUERY: specifica che gli embedding verranno utilizzati per il recupero del codice.
OUTPUT_DIMENSIONALITY: un valoreINT64che specifica il numero di dimensioni da utilizzare per la generazione degli embedding. Ad esempio, se specifichi256 AS output_dimensionality, la colonna di outputembeddingcontiene un embedding a 256 dimensioni per ogni valore di input.Per i modelli remoti su modelli
gemini-embedding-2-previewogemini-embedding-001, il valoreOUTPUT_DIMENSIONALITYdeve essere compreso nell'intervallo[1, 3072]. Il valore predefinito è3072. Per i modelli remoti rispetto ai modellitext-embedding, il valoreOUTPUT_DIMENSIONALITYdeve essere compreso nell'intervallo[1, 768]. Il valore predefinito è768.
Esempio: incorpora il testo in una tabella
L'esempio seguente mostra una richiesta di incorporamento della colonna content della tabella text_data:
SELECT * FROM AI.GENERATE_EMBEDDING( MODEL `mydataset.embedding_model`, TABLE mydataset.text_data, STRUCT('CLASSIFICATION' AS task_type) );
Testo aperto
Nota: per fornire un feedback o richiedere assistenza per questa funzionalità, contatta bqml-feedback@google.com.
Genera text embedding utilizzando un modello remoto su un modello di embedding aperto:
SELECT * FROM AI.GENERATE_EMBEDDING( MODEL `PROJECT_ID.DATASET_ID.MODEL_NAME`, {TABLE PROJECT_ID.DATASET_ID.TABLE_NAME | (CONTENT_QUERY)}, );
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 remoto su un modello di embedding.TABLE_NAME: il nome della tabella che contiene il testo da incorporare. Questa tabella deve avere una colonna denominatacontentoppure puoi utilizzare un alias per utilizzare una colonna con un nome diverso.CONTENT_QUERY: una query il cui risultato contiene una colonnaSTRINGdenominatacontent.
Agent Platform multimodale
Genera text embedding utilizzando un modello remoto su un modello di embedding multimodale di Agent Platform:
SELECT * FROM AI.GENERATE_EMBEDDING( MODEL `PROJECT_ID.DATASET_ID.MODEL_NAME`, {TABLE PROJECT_ID.DATASET_ID.TABLE_NAME | (CONTENT_QUERY)}, STRUCT(OUTPUT_DIMENSIONALITY AS output_dimensionality) );
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 remoto su un modellomultimodalembedding@001.TABLE_NAME: il nome della tabella che contiene il testo da incorporare. Questa tabella deve avere una colonna denominatacontentoppure puoi utilizzare un alias per utilizzare una colonna con un nome diverso.CONTENT_QUERY: una query il cui risultato contiene una colonnaSTRINGdenominatacontent.OUTPUT_DIMENSIONALITY: un valoreINT64che specifica il numero di dimensioni da utilizzare per la generazione degli embedding. I valori validi sono128,256,512e1408. Il valore predefinito è1408. Ad esempio, se specifichi256 AS output_dimensionality, la colonna di outputembeddingcontiene un embedding a 256 dimensioni per ogni valore di input.
Esempio: utilizza gli embedding per classificare la somiglianza semantica
L'esempio seguente incorpora una raccolta di recensioni di film e le ordina in base alla distanza del coseno rispetto alla recensione "Questo film era nella media" utilizzando la funzione VECTOR_SEARCH.
Una distanza minore indica una maggiore somiglianza semantica.
Per saperne di più sulla ricerca vettoriale e sull'indice vettoriale, consulta Introduzione alla ricerca vettoriale.
CREATE TEMPORARY TABLE movie_review_embeddings AS ( SELECT * FROM AI.GENERATE_EMBEDDING( MODEL `bqml_tutorial.embedding_model`, ( SELECT "This movie was fantastic" AS content UNION ALL SELECT "This was the best movie I've ever seen!!" AS content UNION ALL SELECT "This movie was just okay..." AS content UNION ALL SELECT "This movie was terrible." AS content ) ) ); WITH average_review_embedding AS ( SELECT embedding FROM AI.GENERATE_EMBEDDING( MODEL `bqml_tutorial.embedding_model`, (SELECT "This movie was average" AS content) ) ) SELECT base.content AS content, distance AS distance_to_average_review FROM VECTOR_SEARCH( TABLE movie_review_embeddings, "embedding", (SELECT embedding FROM average_review_embedding), distance_type=>"COSINE", top_k=>-1 ) ORDER BY distance_to_average_review;
Il risultato è simile al seguente:
+------------------------------------------+----------------------------+ | content | distance_to_average_review | +------------------------------------------+----------------------------+ | This movie was just okay... | 0.062789813467745592 | | This movie was fantastic | 0.18579561313064263 | | This movie was terrible. | 0.35707466240930985 | | This was the best movie I've ever seen!! | 0.41844932504542975 | +------------------------------------------+----------------------------+