Il servizio di distillazione di Gemini (distillazione) consente agli utenti di addestrare un modello "studente" più piccolo ed efficiente che utilizza gli output e i pattern di ragionamento di un modello "insegnante" più grande e potente. Sebbene i modelli di frontiera definiscano l'avanguardia dell'AI, possono essere sottoposti a overprovisioning per casi d'uso aziendali specifici. La distillazione colma questa lacuna, consentendo un'efficienza di livello di produzione (latenza e costi inferiori) e, al contempo, ai modelli più piccoli di raggiungere un livello di ragionamento più approfondito.
A differenza del fine-tuning supervisionato standard (SFT), che utilizza solo l'output di testo finale, la distillazione sfrutta:
- Risposte dell'insegnante: l'output di testo finale.
- Pensieri non elaborati: i percorsi di ragionamento interni generati dal modello insegnante.
Modelli supportati
I seguenti modelli sono supportati per la distillazione durante l'accesso in anteprima:
- Modello insegnante:
gemini-3.1-pro - Modello studente:
gemini-2.5-flash

Figura 1. Illustrazione del sistema che mostra come funziona il servizio di distillazione di Gemini.
Casi d'uso adatti
La distillazione è consigliata rispetto ai prompt standard o all'ottimizzazione supervisionata (SFT) nei seguenti scenari:
- Applicazioni ad alto volume e sensibili alla latenza: quando l'applicazione richiede le capacità di ragionamento di un modello di livello Pro, ma deve soddisfare SLA di latenza rigorosi o vincoli di budget che richiedono un modello di livello Flash.
- Mancanza di dati di riferimento (SFT non fattibile): quando hai un set di dati di grandi dimensioni di prompt o query degli utenti, ma non hai le risorse per etichettare o generare manualmente risposte di riferimento di alta qualità richieste per la SFT standard.
- Attività di ragionamento complesse: attività che coinvolgono logiche in più passaggi, riepilogo di documenti altamente tecnici o attività di codifica complesse in cui il modello Flash di base ha difficoltà, ma il modello Pro riesce.
- Significativi divari di prestazioni: quando il modello insegnante supera sostanzialmente il modello studente di base per l'attività specifica, fornendo un chiaro margine di conoscenza da trasferire durante la distillazione.
Prerequisiti e configurazione del progetto
Prima di avviare un job di distillazione, assicurati che l'ambiente sia configurato correttamente: Google Cloud
- Richiedi l'accesso alla lista consentita: assicurati che l' Google Cloud ID progetto sia stato aggiunto alla lista consentita per l'accesso in anteprima al servizio di distillazione di Gemini. Contatta il tuo rappresentante di vendita Google per aggiungere il tuo progetto alla lista consentita.
- Abilita l'API: abilita l'API Agent Platform nel tuo Google Cloud progetto.
- Imposta le autorizzazioni del ruolo IAM: devi avere il ruolo IAM
Amministratore di Agent Platform (
roles/aiplatform.admin) . - Imposta la regione: i job di distillazione devono essere eseguiti nella
us-central1regione.
Preparazione del set di dati
Una funzionalità chiave di questo servizio è l'utilizzo di set di dati solo con prompt. Poiché il modello insegnante genera gli output di destinazione durante il processo di distillazione, non devi fornire le risposte previste.
Requisiti del set di dati
I set di dati devono essere in formato JSON Lines (JSONL) e archiviati in un bucket Cloud Storage. Ogni voce deve rispettare il formato del set di dati di ottimizzazione di Gemini in aggiunta a quanto segue:
- Istruzioni di sistema: puoi includere un campo
systemInstructionfacoltativo (con un ruolo "system") per definire i prompt di sistema. - Input: il campo dei contenuti (con un ruolo "user") è obbligatorio per l' input principale.
Prompt multi-turn: puoi alternare i ruoli "user" e "model", a condizione che la voce finale nella sequenza sia "user".
Di seguito sono riportati due esempi di file dataset.jsonl:
{
"contents": [
{
"role": "user",
"parts": [
{
"text": "You're the artist here. Choose as many strands of thread as you like, as long as you're using three or more. Go for color combinations that you think would make a pretty pattern. Get creative! If you only use one color of thread, you won't be able to create a pattern.\n\nProvide a summary of the article in two or three sentences:\n\n"
}
]
}
]
},
{
"contents": [
{
"role": "user",
"parts": [
{
"text": "You're the artist here. Choose as many strands of thread as you like, as long as you're using three or more. Go for color combinations that you think would make a pretty pattern. Get creative! If you only use one color of thread, you won't be able to create a pattern.\n\nProvide a summary of the article in two or three sentences:\n\n"
}
]
},
{
"role": "model",
"parts": [
{
"text": "Choose several strands of embroidery thread in a variety of colors."
}
]
},
{
"role": "user",
"parts": [
{
"text": "You will need one egg (raw or hard boiled but hard boiled is best) and one spoon for each person participating in the race. You might even like to use dyed Easter eggs as something special for Easter. It's best to have this race on grass or some other soft surface, to give dropped eggs a chance!"
}
]
}
]
}
Best practice
Segui queste indicazioni quando crei il set di dati:
- Dimensioni: per un miglioramento della qualità notevole,è consigliabile un minimo di 1000 esempi.
- Diversità: assicurati che i prompt coprano i casi limite e le lunghezze variabili previste nel traffico di produzione.
Configurare la richiesta di distillazione
Un job di distillazione richiede la configurazione sia del comportamento di generazione dell'insegnante sia degli iperparametri di addestramento dello studente.
Configurare il comportamento di generazione del modello insegnante
Devi definire il modo in cui il modello insegnante risponde al set di dati. La qualità del modello studente è direttamente vincolata alla qualità dell'output dell'insegnante. Per configurare il comportamento di generazione del modello insegnante, imposta candidateCount:
candidateCount: il numero di varianti di risposta da generare. (Esempio:4. Intervallo[1, 5]). Se non viene specificato nella richiesta, verrà utilizzato un valore predefinito di4.
Impostare gli iperparametri di distillazione
Gli iperparametri di distillazione controllano il processo di addestramento del modello studente. Per ulteriori informazioni sugli iperparametri in Gemini Enterprise Agent Platform, consulta la "Creare un job di ottimizzazione" sezione della guida al fine-tuning supervisionato.
Quando crei un job di distillazione, devi impostare i seguenti iperparametri:
epochCount: il numero di volte in cui il modello studente eseguirà l'iterazione sul set di dati. (Esempio:20. Intervallo[1, 100]). Se non viene specificato, viene utilizzato un valore predefinito di4.learningRateMultiplier: modifica il tasso di apprendimento di base del modello studente. (Esempio:2.0. Intervallo[0.25, 4]). Se non viene specificato, viene utilizzato un valore predefinito di1.
Avviare il job di distillazione
Durante il periodo di accesso in anteprima, puoi inviare e monitorare i job di distillazione utilizzando la versione REST dell'API Agent Platform. Puoi avviare un nuovo job di distillazione o eseguire l'ottimizzazione continua di un checkpoint del modello già distillato.
Creare un nuovo job di distillazione
Crea un file JSON denominato request.json contenente la configurazione del job. Nell'esempio seguente, la configurazione di generazione dell'insegnante è nidificata nel campo hyperParameters:
{
"description": "Distillation testing job.",
"baseModel": "gemini-2.5-flash",
"tunedModelDisplayName": "flash-distillation-run-1",
"distillationSpec": {
"promptDatasetUri": "gs://your-bucket/path/to/prompt_dataset.jsonl",
"validationDatasetUri": "",
"base_teacher_model": "gemini-3.1-pro-preview",
"hyperParameters": {
"epochCount": "20",
"learningRateMultiplier": 2.0,
"generation_config": {
"candidateCount": 5
}
}
}
}
Invia il job utilizzando curl:
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
https://us-central1-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/us-central1/tuningJobs \
-d @request.json
Eseguire l'ottimizzazione continua
Se vuoi riprendere l'ottimizzazione da un checkpoint del modello distillato in precedenza, includi il blocco preTunedModel nel file request.json. L'ottimizzazione continua è supportata solo per i checkpoint del modello distillato in precedenza, con lo stesso modello studente di base. I checkpoint del modello ottimizzato supervisionato in precedenza (anche con lo stesso modello studente di base) non sono supportati.
Di seguito è riportato un esempio di configurazione dell'ottimizzazione continua per un checkpoint del modello distillato in precedenza:
{
"description": "Continuous distillation testing job.",
"preTunedModel": {
"tunedModelName": "projects/YOUR_PROJECT_ID/locations/us-central1/models/PRETUNED_MODEL_ID@1",
"checkpointId": "1",
"baseModel": "gemini-2.5-flash"
},
"tunedModelDisplayName": "flash-distillation-continuous",
"distillationSpec": {
"promptDatasetUri": "gs://your-bucket/path/to/prompt_dataset.jsonl",
"validationDatasetUri": "",
"base_teacher_model": "gemini-3.1-pro-preview",
"hyperParameters": {
"epochCount": "20",
"learningRateMultiplier": 2.0,
"generation_config": {
"candidateCount": 5,
}
}
}
}
Invia il payload utilizzando curl:
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
https://us-central1-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/us-central1/tuningJobs \
-d @request.json
Monitorare il job di distillazione
La risposta di invio restituirà un nome del job contenente il tuo
JOB_ID. Puoi controllare lo stato del job (state, errori e iperparametri finali) inviando una richiesta GET:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
https://us-central1-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/us-central1/tuningJobs/JOB_ID
Puoi anche monitorare visivamente l'avanzamento nella Google Cloud console andando su Agent Platform > Ottimizzazione e scegliendo la
us-central1 regione.
Per questa release di accesso in anteprima, l'interfaccia utente della console di Agent Platform presenta le seguenti limitazioni note:
- Avanzamento del campionamento dell'insegnante: non è presente un widget di avanzamento per il processo di campionamento del modello insegnante. Sebbene lo stato possa visualizzare "Running Prepare for tuning", il job procede normalmente in background.
- Grafici di ottimizzazione dello studente: durante la fase di ottimizzazione del modello studente, l'interfaccia utente fornisce grafici per la curva di perdita e i token di testo di addestramento totali.
- Tabella dei checkpoint: l'interfaccia utente mostra una tabella dei checkpoint intermedi e link all'endpoint di previsione di Agent Platform generato per la valutazione. A causa di un problema noto, la colonna "Epoch" in questa tabella mostra "0".
Annullare il job di distillazione
Per annullare un job di distillazione in corso, procedi in uno dei seguenti modi:
Utilizza la Google Cloud console, modificando il seguente URL:
https://console.cloud.google.com/agent-platform/tuning/managed?project=YOUR_PROJECT_ID&vertex_ai_region=us-central1Sostituisci YOUR_PROJECT_ID con l'ID progetto.
Utilizza
curlper inviare una richiesta POST per annullare il job:curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ https://us-central1-aiplatform.googleapis.com/v1beta1/projects/YOUR_PROJECT_ID/locations/us-central1/tuningJobs/YOUR_JOB_ID:cancelSostituisci quanto segue:
YOUR_PROJECT_IDcon l'ID progetto.YOUR_JOB_IDcon l'ID job.
Valutare il risultato
Al termine del job di distillazione, il nuovo modello studente viene registrato automaticamente nel registro dei modelli di Gemini Enterprise Agent Platform e vengono creati uno o più endpoint dedicati per pubblicare le previsioni. Per valutare il risultato, individua l'endpoint, invia una richiesta di previsione e infine valuta.
Per valutare il risultato:
Invia la seguente richiesta GET per visualizzare lo stato del job di ottimizzazione.
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ https://us-central1-aiplatform.googleapis.com/v1beta1/projects/YOUR_PROJECT_ID/locations/us-central1/tuningJobs/YOUR_JOB_IDSostituisci quanto segue:
YOUR_PROJECT_IDcon l'ID progetto.YOUR_JOB_IDcon l'ID job.
I job completati mostrano un campo
endpointnidificato all'interno dell'oggettotunedModel. Estrai ilENDPOINT_IDdalla fine della stringa del percorso restituita (ad esempio,projects/.../endpoints/YOUR_ENDPOINT_ID). Prendi nota dell'ID endpoint.Assicurati che il job di ottimizzazione sia stato completato correttamente, perché l'endpoint non è disponibile mentre il job di ottimizzazione è ancora in esecuzione o non è riuscito. Se il campo
endpointnon è presente, esegui il debug del job di ottimizzazione visualizzando le chiavistateoerrordel job.Crea una richiesta di payload JSON denominata
generate_content_request.jsonche contenga il prompt:{ "contents": { "role": "user", "parts": [ { "text": "hi, say something" } ] } }Utilizza il seguente esempio POST per inviare una richiesta di previsione:
curl -X POST \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ https://us-central1-aiplatform.googleapis.com/v1beta1/projects/YOUR_PROJECT_ID/locations/us-central1/endpoints/YOUR_ENDPOINT_ID:generateContent \ -d @generate_content_request.jsonSostituisci quanto segue:
YOUR_PROJECT_ID: l'ID progetto.YOUR_JOB_ID: l'ID job.ENDPOINT_ID: l'ID endpoint.
Per valutare i risultati:
Esegui un test set di holdout, utilizzando prompt non inclusi nei dati di addestramento, sul modello appena distillato.
Confronta gli output con il modello
gemini-2.5-flashdi base per misurare i miglioramenti della qualità.Confronta gli output con il modello
gemini-3.1-proper determinare quanto il modello studente si avvicina al ragionamento dell'insegnante.
Limitazioni
La tabella seguente descrive le limitazioni per la distillazione:
La distillazione è soggetta alle seguenti limitazioni:
- Limitazioni del modello:
- Consulta i modelli supportati
- Restrizioni del set di dati:
- Limiti di volume:
- La capacità massima del set di addestramento è di 50.000 esempi.
- Le dimensioni del file JSONL di origine non devono superare 1 GB.
- Specifiche della finestra contestuale:
- Il servizio supporta un massimo di 8000 token di input per voce. I job di distillazione vengono terminati se più del 10% delle voci fornite supera questa soglia stabilita.
- Il campionamento del modello insegnante è limitato a un output massimo di 24.000 token. Nei casi in cui il modello insegnante genera più di 24.000 token, i contenuti vengono troncati a questo limite, il che potrebbe influire sulle prestazioni del modello studente.
- Modalità: limitata ai dati basati su testo. Non è previsto il supporto per gli input multimodali, inclusi video, immagini o chiamate di funzioni.
- Limiti di volume:
- Limitazioni di configurazione e iperparametri
- Rispetta i seguenti limiti quando definisci distillationSpec e i relativi hyperParameters:
- Crittografia: CMEK non è disponibile per le attività di distillazione che coinvolgono i modelli proprietari di Google.
epochCount: limitato a un valore intero compreso tra 1 e 100.learningRateMultiplier: i valori devono essere compresi nell'intervallo di rappresentazione in virgola mobile0.25-4.0.
- Rispetta i seguenti limiti quando definisci distillationSpec e i relativi hyperParameters:
- Distillazione in un unico passaggio: il campionamento del modello insegnante e l'ottimizzazione del modello studente vengono eseguiti in una singola chiamata API. Se hai una grande quantità di dati da campionare, gli stessi dati devono essere campionati di nuovo nell'ottimizzazione successiva.
Ottenere l'accesso
Se ti interessa sperimentare il servizio di distillazione di Gemini, contatta il nostro team del servizio di ottimizzazione all'indirizzo cloud-ai-tuning-service-support@google.com per richiedere l'accesso e l'inserimento del progetto nella lista consentita.
Per garantire prestazioni e gestione delle risorse ottimali, ti consigliamo di creare un progetto Google Cloud dedicato per le attività di distillazione. Quando contatti il nostro team, fornisci l'ID progetto o il numero di progetto per velocizzare la procedura di inserimento nella lista consentita.
Quote e policy di accesso
Vengono applicate le seguenti quote e policy di accesso:
Capacità: ai progetti aggiunti di recente alla nostra lista consentita viene fornita una quota simultanea predefinita di 4. Per evitare conflitti di risorse, ti consigliamo di utilizzare un progetto separato anziché uno in cui sono già in esecuzione altri job di ottimizzazione di Gemini.
Periodo di accesso: l'accesso viene concesso per un periodo iniziale di 30 giorni.