Questo tutorial mostra come ottimizzare un modello che arricchisce una frase fornendo una formulazione più precisa o aggiungendo qualificatori senza modificarne il significato generale. Crei un
modello remoto
che fa riferimento a un
modello Gemini Enterprise Agent Platform,
utilizzi l'
ottimizzazione supervisionata,
e poi valuti il modello ottimizzato con la
ML.EVALUATE funzione.
L'ottimizzazione ti aiuta a personalizzare il modello ospitato di Agent Platform, ad esempio quando il comportamento previsto è difficile da definire in un prompt o quando i prompt non producono costantemente i risultati previsti. L'ottimizzazione supervisionata influenza il modello anche nei seguenti modi:
- Guida il modello a restituire stili di risposta specifici, ad esempio più concisi o più dettagliati.
- Insegna al modello nuovi comportamenti, ad esempio rispondere ai prompt come una persona specifica.
- Fa sì che il modello si aggiorni con nuove informazioni.
In questo tutorial, l'obiettivo è che il modello generi testo il cui stile e contenuto siano il più possibile conformi al contenuto basato su dati empirici reali fornito.
Obiettivi
- Crea un set di dati.
- Importa i dati di addestramento e valutazione nelle tabelle.
- Crea un modello di base.
- Valuta le prestazioni del modello di base.
- Crea un modello ottimizzato.
- Valuta le prestazioni del modello ottimizzato.
Costi
In questo documento vengono utilizzati i seguenti componenti fatturabili di Google Cloud:
- BigQuery. You incur costs for the queries that you run in BigQuery.
- BigQuery ML. You incur costs for the model that you create and the processing that you perform in BigQuery ML.
- Gemini Enterprise Agent Platform. You incur costs for calls to and supervised tuning of the Gemini model.
Per generare una stima dei costi in base all'utilizzo previsto,
utilizza il calcolatore prezzi.
Per maggiori informazioni, consulta le seguenti risorse:
Prima di iniziare
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 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 una tabella:
bigquery.tables.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 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.
-
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 attivata per il tuo Google Cloud progetto.
-
Abilita le API BigQuery, BigQuery Connection, Agent Platform e Compute Engine.
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 utilizzo servizi (roles/serviceusage.serviceUsageAdmin). Scopri come concedere i ruoli.
Crea un set di dati
Per creare un set di dati BigQuery, seleziona una delle seguenti opzioni:
Console
Nella Google Cloud console, 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 a sinistra per aprirlo.
In Spazio di esplorazione, espandi il progetto e poi fai clic su Set di dati.
Nella pagina Set di dati, fai clic su Crea set di dati.
Nel riquadro Crea set di dati, segui questi passaggi:
In ID set di dati, inserisci
bqml_tutorial.In Località dei dati, seleziona Stati Uniti.
Lascia invariate le impostazioni predefinite rimanenti.
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 tabelle di test
Crea tabelle di dati di addestramento e valutazione basate sul set di dati pubblico
task955_wiki_auto_style_transfer
di Hugging Face.
Apri Cloud Shell.
In Cloud Shell, crea tabelle di dati di test e valutazione:
python3 -m pip install pandas pyarrow fsspec huggingface_hub python3 -c "import pandas as pd; df_train = pd.read_parquet('hf://datasets/Lots-of-LoRAs/task955_wiki_auto_style_transfer/data/train-00000-of-00001.parquet').drop('id', axis=1); df_train['output'] = [x[0] for x in df_train['output']]; df_train.to_json('wiki_auto_style_transfer_train.jsonl', orient='records', lines=True);" python3 -c "import pandas as pd; df_valid = pd.read_parquet('hf://datasets/Lots-of-LoRAs/task955_wiki_auto_style_transfer/data/valid-00000-of-00001.parquet').drop('id', axis=1); df_valid['output'] = [x[0] for x in df_valid['output']]; df_valid.to_json('wiki_auto_style_transfer_valid.jsonl', orient='records', lines=True);" bq load --replace=true --source_format=NEWLINE_DELIMITED_JSON bqml_tutorial.wiki_auto_style_transfer_train wiki_auto_style_transfer_train.jsonl input:STRING,output:STRING bq load --replace=true --source_format=NEWLINE_DELIMITED_JSON bqml_tutorial.wiki_auto_style_transfer_valid wiki_auto_style_transfer_valid.jsonl input:STRING,output:STRING
Visualizza i dati di addestramento
I dati di addestramento di input sono un prompt che chiede al modello di elaborare una frase senza modificarne il significato generale. Ogni prompt include lo stesso insieme di due esempi positivi e due esempi negativi, insieme a una frase da riscrivere. L'output è la frase più dettagliata prodotta dal modello.
Nella Google Cloud console, vai alla pagina BigQuery.
Nell'editor di query, esegui la seguente istruzione per visualizzare un esempio di dati di input e output:
SELECT * FROM bqml_tutorial.wiki_auto_style_transfer_train LIMIT 1;
Il risultato è simile al seguente:
+-----------------------------------------------+-------------------------------------------------+ | input | output | +-----------------------------------------------+-------------------------------------------------+ | Definition: In this task, we ask you to | Merton College ( in full : The House or College | | elaborate the sentence without changing its | of Scholars of Merton in the University of | | general meaning. You can do so by explaining | Oxford ) is one of the constituent colleges of | | further the input sentence, using more | the University of Oxford in England . | | precise wording, adding qualifiers and | | | auxiliary information etc. | | | | | | Positive Example 1 - | | | Input: The Inheritance Cycle is a series of | | | fantasy books written by Christopher Paolini. | | | Output: The Inheritance Cycle is a tetralogy | | | of young adult high fantasy novels written by | | | American author Christopher Paolini. | | | | | | Positive Example 2 - | | | Input: The Greco-Roman or Graeco-Roman world, | | | refers to geographical regions and countries | | | who had the language , culture , government | | | or religion of the ancient Greeks and Romans. | | | Output: The Greco-Roman world , Greco-Roman | | | culture , or the term Greco-Roman (spelled | | | Graeco-Roman in the United Kingdom and the | | | Commonwealth), when used as an adjective , as | | | understood by modern scholars and writers , | | | refers to those geographical regions and | | | countries that culturally ( and so | | | historically ) were directly , long-term , | | | and intimately influenced by the language , | | | culture , government and religion of the | | | ancient Greeks and Romans. | | | | | | Negative Example 1 - | | | Input: Boryla, an American football | | | quarterback, did not participate in the 1952 | | | playoffs. | | | Output: Boryla was not in the 1952 playoffs. | | | | | | Negative Example 2 - | | | Input: The wild population in China decreased | | | to around 2,000 in 2005. | | | Output: By 2005, the wild population | | | decreased to about 2,000. | | | | | | Now complete the following example - | | | Input: Merton College is one of the colleges | | | of the University of Oxford . | | | Output: | | +-----------------------------------------------+-------------------------------------------------+
Crea un modello di base
Crea un modello remoto su un modello Gemini:
Nella Google Cloud console, vai alla pagina BigQuery.
Nell'editor di query, esegui la seguente istruzione per creare un modello remoto:
CREATE OR REPLACE MODEL `bqml_tutorial.gemini_baseline` REMOTE WITH CONNECTION DEFAULT OPTIONS (ENDPOINT = 'gemini-2.5-pro');
Il completamento della query richiede alcuni secondi, dopodiché il modello
gemini_baselineviene visualizzato nel set di datibqml_tutorialnel riquadro Spazio di esplorazione. Poiché la query utilizza un'istruzioneCREATE MODELper creare un modello, non vengono visualizzati i risultati della query.
Controlla le prestazioni del modello di base
Per vedere il rendimento del modello remoto sui dati di valutazione senza alcuna
ottimizzazione, esegui la
AI.GENERATE_TEXT funzione:
Nella Google Cloud console, vai alla pagina BigQuery.
Nell'editor di query, esegui la seguente istruzione:
SELECT result, ground_truth FROM AI.GENERATE_TEXT( MODEL `bqml_tutorial.gemini_baseline`, ( SELECT input AS prompt, output AS ground_truth FROM `bqml_tutorial.wiki_auto_style_transfer_valid` LIMIT 10 ));
Il risultato è simile al seguente:
+-------------------------------------------------+-------------------------------------------------+ | result | ground_truth | +-------------------------------------------------+-------------------------------------------------+ | In mathematics, and more specifically in graph | In mathematics , and more specifically in graph | | theory, a graph is an abstract structure that | theory , a graph is a structure amounting to a | | is used to model pairwise relationships between | set of objects in which some pairs of the | | objects. A graph in this context is made up of | objects are in some sense " related " . | | vertices (also called nodes or points) and | | | edges (also called links or lines) that connect | | | pairs of vertices. | | | ... | ... | +-------------------------------------------------+-------------------------------------------------+
Sebbene il modello di base generi testo che riflette accuratamente i fatti forniti nel contenuto basato su dati empirici reali, lo stile del testo a volte è diverso. Il modello di base tende a produrre elaborazioni più lunghe rispetto ai dati empirici reali desiderati.
Valuta il modello di base
Per eseguire una valutazione più dettagliata delle prestazioni del modello, utilizza la
ML.EVALUATE funzione.
Questa funzione calcola le metriche del modello che misurano l'accuratezza e la qualità del testo generato per vedere come le risposte del modello si confrontano con le risposte ideali.
Nella Google Cloud console, vai alla pagina BigQuery.
Nell'editor di query, esegui la seguente istruzione:
SELECT * FROM ML.EVALUATE( MODEL `bqml_tutorial.gemini_baseline`, ( SELECT input AS input_text, output AS output_text FROM `bqml_tutorial.wiki_auto_style_transfer_valid` ), STRUCT('text_generation' AS task_type));
Il risultato è simile al seguente:
+---------------------+---------------------+-------------------------------------------+--------------------------------------------+ | bleu4_score | rouge-l_precision | rouge-l_recall | rouge-l_f1_score | evaluation_status | +---------------------+---------------------+---------------------+---------------------+--------------------------------------------+ | 0.32571814014498979 | 0.45752569962901607 | 0.557224161991254 | 0.49205029983307907 | { | | | | | | "num_successful_rows": 176, | | | | | | "num_total_rows": 176 | | | | | | } | +---------------------+---------------------+ --------------------+---------------------+--------------------------------------------+
Questi punteggi forniscono un modo quantitativo per misurare le prestazioni. Le sezioni successive mostrano come creare un modello ottimizzato e confrontarne le prestazioni con il modello di base.
Crea un modello ottimizzato
Crea un modello remoto molto simile a quello creato in
Crea un modello, ma questa volta specifica la clausola
AS SELECT
per fornire i dati di addestramento per ottimizzare il modello.
Nella Google Cloud console, vai alla pagina BigQuery.
Nell'editor delle query, esegui la seguente istruzione per creare un modello remoto:
CREATE OR REPLACE MODEL `bqml_tutorial.gemini_tuned` REMOTE WITH CONNECTION DEFAULT OPTIONS ( endpoint = 'gemini-2.5-pro', max_iterations = 500, data_split_method = 'no_split') AS SELECT input AS prompt, output AS label FROM `bqml_tutorial.wiki_auto_style_transfer_train`;
Il completamento della query richiede alcuni minuti, dopodiché il modello
gemini_tunedviene visualizzato nel set di datibqml_tutorialnel riquadro Spazio di esplorazione. Poiché la query utilizza un'istruzioneCREATE MODELper creare un modello, non vengono visualizzati i risultati della query.
Controlla le prestazioni del modello ottimizzato
Per vedere il rendimento del modello ottimizzato sui dati di valutazione, esegui la funzione AI.GENERATE_TEXT:
Nella Google Cloud console, vai alla pagina BigQuery.
Nell'editor di query, esegui la seguente istruzione:
SELECT result, ground_truth FROM AI.GENERATE_TEXT( MODEL `bqml_tutorial.gemini_tuned`, ( SELECT input AS prompt, output AS ground_truth FROM `bqml_tutorial.wiki_auto_style_transfer_valid` LIMIT 10 ));
Il modello ottimizzato produce testo il cui stile è molto più simile al contenuto basato su dati empirici reali.
Valuta il modello ottimizzato
Per vedere come le risposte del modello ottimizzato si confrontano con le risposte ideali, utilizza la funzione ML.EVALUATE:
Nella Google Cloud console, vai alla pagina BigQuery.
Nell'editor di query, esegui la seguente istruzione:
SELECT * FROM ML.EVALUATE( MODEL `bqml_tutorial.gemini_tuned`, ( SELECT input AS prompt, output AS label FROM `bqml_tutorial.wiki_auto_style_transfer_valid` ), STRUCT('text_generation' AS task_type));
Il risultato è simile al seguente:
+---------------------+---------------------+-------------------------------------------+--------------------------------------------+ | bleu4_score | rouge-l_precision | rouge-l_recall | rouge-l_f1_score | evaluation_status | +---------------------+---------------------+---------------------+---------------------+--------------------------------------------+ | 0.44878025403825506 | 0.57236062510796448 | 0.638794269320597 | 0.59591519400141835 | { | | | | | | "num_successful_rows": 176, | | | | | | "num_total_rows": 176 | | | | | | } | +---------------------+---------------------+ --------------------+---------------------+--------------------------------------------+
Il modello ottimizzato mostra un netto miglioramento delle prestazioni e supera il modello di base in tutte le metriche di valutazione.
Libera spazio
Per evitare che al tuo account Google Cloud vengano addebitati costi relativi alle risorse utilizzate in questo tutorial, elimina il progetto che contiene le risorse oppure mantieni il progetto ed elimina le singole risorse.
Elimina il progetto
Elimina un Google Cloud progetto:
gcloud projects delete PROJECT_ID
Elimina singole risorse
Se vuoi riutilizzare il progetto, elimina le risorse che hai creato per questo tutorial.
Vai alla pagina BigQuery.
Elimina il set di dati
bqml_tutorial. Se elimini il set di dati, verranno eliminati anche i modelli e le tabelle.Nel riquadro Spazio di esplorazione, espandi il progetto e fai clic su Set di dati.
Nell'elenco Set di dati, fai clic sul set di dati
bqml_tutorial.Nel riquadro dei dettagli, fai clic su Elimina.
Nella finestra di dialogo Elimina set di dati, fai clic su Elimina.
Passaggi successivi
- Scopri di più sulla
ML.EVALUATEfunzione. - Scopri di più sulla
AI.GENERATE_TEXTfunzione. - Esamina le opzioni di ottimizzazione supervisionata per i modelli remoti.