La distillazione passo passo utilizza un grande modello insegnante per addestrare un modello studente più piccolo a eseguire meglio determinate attività con capacità di ragionamento migliorate. La addestrato e distillato può fare le stesse cose che ti interessano nella a un modello insegnante a un costo inferiore e a una latenza minore.
Quando distilli un modello di base, utilizzi un modello insegnante e un modello studente:
Il modello insegnante è il modello di grandi dimensioni che può fare ciò che vuoi. Tuttavia, a causa delle sue dimensioni, l'utilizzo del modello insegnante potrebbe costare di più e avere una maggiore latenza rispetto a un modello più piccolo.
Il modello studente è più piccolo del modello insegnante. La formazione di distillazione utilizza esempi e fondamenti logici etichettati generati modello insegnante per ottimizzare il modello di studente. Il rendimento e il ragionamento del modello distillato risultante sono migliori dell'originale modello studentesco.
Quando crei un job di distillazione, specifichi un modello insegnante e un modello studente.
Flusso di lavoro per l'ottimizzazione e la distillazione di un modello
Il flusso di lavoro di distillazione su Vertex AI include seguenti passaggi:
- Prepara il set di dati di ottimizzazione del modello.
- Specifica il modello insegnante.
- Specifica il modello dello studente.
- Carica il set di dati di ottimizzazione del modello in un bucket Cloud Storage.
- Creare un job di distillazione del modello.
Al termine della distillazione del modello, il modello distillato viene implementato in un endpoint Vertex AI. Il nome dell'endpoint corrisponde al nome il modello distillato. I modelli distillati sono disponibili per la selezione in Vertex AI Studio quando vuoi creare un nuovo prompt.
Modelli supportati
Puoi specificare quanto segue per il modello Insegnante:
text-unicorn@001
Puoi specificare quanto segue per il modello studente:
text-bison@002
Formato del set di dati
La distillazione funziona su un set di dati etichettato o senza etichetta. Se hai un set di dati etichettato di alta qualità con centinaia di esempi, ti consigliamo di utilizzarlo. In caso contrario, puoi utilizzare un set di dati di prompt senza etichetta. Se utilizzi un senza etichetta, il modello insegnante genera le etichette e la logica per la distillazione. Se utilizzi un set di dati non etichettato, ti consigliamo di utilizzare più di 1000 esempi.
Il set di dati per la distillazione etichettato o non etichettato deve essere in Formato JSON Lines (JSONL) in cui ogni riga contiene un singolo esempio di ottimizzazione. Prima di distillare il modello, carica il set di dati in un bucket Cloud Storage.
Ogni esempio di set di dati contiene un campo input_text
con il prompt del modello e
campo output_text
facoltativo che contiene una risposta di esempio che
del modello distillato.
La lunghezza massima del token per input_text
è 7168 e il token massimo
la lunghezza di output_text
è 1024. Se uno dei campi supera il token massimo
i token in eccesso vengono troncati.
Il numero massimo di esempi che un set di dati per un modello di generazione di testo può contenere è 10.000.
Esempio di set di dati
{"input_text": "question: How many people live in Beijing? context: With over 21 million residents, Beijing is the world's most populous national capital city and is China's second largest city after Shanghai. It is located in Northern China, and is governed as a municipality under the direct administration of the State Council with 16 urban, suburban, and rural districts.[14] Beijing is mostly surrounded by Hebei Province with the exception of neighboring Tianjin to the southeast; together, the three divisions form the Jingjinji megalopolis and the national capital region of China.", "output_text": "over 21 million people"}
{"input_text": "question: How many parishes are there in Louisiana? context: The U.S. state of Louisiana is divided into 64 parishes (French: paroisses) in the same manner that 48 other states of the United States are divided into counties, and Alaska is divided into boroughs.", "output_text": "64"}
Includi istruzioni negli esempi
Per attività come la classificazione, è possibile creare un set di dati di esempi che non contengono istruzioni. Tuttavia, l'esclusione delle istruzioni dagli esempi nel set di dati comporta un peggioramento delle prestazioni dopo la distillazione rispetto all'inclusione delle istruzioni, in particolare per i set di dati più piccoli.
Istruzioni non incluse:
{"input_text": "5 stocks to buy now", "output_text": "business"}
Istruzioni incluse:
{"input_text": "Classify the following text into one of the following classes: [business, entertainment] Text: 5 stocks to buy now", "output_text": "business"}
Set di dati di esempio
Puoi utilizzare un set di dati di esempio per iniziare la distillazione. Di seguito è riportato un set di dati delle attività di classificazione che contiene trascrizioni mediche di esempio per di varie specialità mediche. I dati provengono da mtsamples.com come reso disponibile su Kaggle.
URI del set di dati di distillazione di esempio:
gs://cloud-samples-data/vertex-ai/model-evaluation/peft_train_sample.jsonl
URI del set di dati di valutazione di esempio:
gs://cloud-samples-data/vertex-ai/model-evaluation/peft_eval_sample.jsonl
Per utilizzare questi set di dati, specifica gli URI nei parametri applicabili quando creazione di un job di distillazione di modelli di testo.
Ad esempio:
...
"dataset_uri": "gs://cloud-samples-data/vertex-ai/model-evaluation/peft_train_sample.jsonl",
...
"evaluation_data_uri": "gs://cloud-samples-data/vertex-ai/model-evaluation/peft_eval_sample.jsonl",
...
Mantieni la coerenza con i dati di produzione
Gli esempi nei set di dati devono corrispondere al traffico di produzione previsto. Se il set di dati contiene formattazioni, parole chiave, istruzioni o informazioni specifiche, i dati di produzione devono essere formattati allo stesso modo e contenere le stesse istruzioni.
Ad esempio, se gli esempi nel tuo set di dati includono "question:"
e "context:"
, anche il traffico di produzione deve essere formattato in modo da includere "question:"
e "context:"
nello stesso ordine in cui appare negli esempi di set di dati. Se escludi il contesto, il modello non riconoscerà il pattern, anche se la domanda esatta fosse presente in un esempio del set di dati.
Carica la distillazione dei set di dati in Cloud Storage
Per eseguire un job di ottimizzazione, devi caricare uno o più set di dati in un nel bucket Cloud Storage. Puoi crea un nuovo bucket Cloud Storage o utilizzarne uno esistente per archiviare i file dei set di dati. La regione del bucket non corrisponde importante, ma consigliamo di utilizzare un bucket che si trova nella stessa posizione il progetto Google Cloud in cui prevedi di ottimizzare il modello.
Una volta creato il bucket, carica il file del set di dati nel bucket.
Distillazione impostazioni regione
Puoi specificare tre impostazioni di regione Google Cloud quando configuri di distillazione. Una regione è quella in cui viene eseguita la pipeline che ottimizza il modello. L'altra regione è quella in cui viene eseguita la parte di ottimizzazione del modello del processo di distillazione e viene caricato il modello distillato.
Regione job di pipeline
La regione del job della pipeline è la regione in cui viene eseguito il job della pipeline. Se non viene specificata la regione di caricamento del modello facoltativa, il modello viene caricato e di cui viene eseguito il deployment nella regione del job della pipeline. I dati intermedi, come il set di dati trasformato, vengono archiviati nella regione del job della pipeline. Per scoprire quali regioni puoi utilizzare per la regione del job della pipeline, consulta Regioni supportate per i job della pipeline e il caricamento dei modelli.
Devi specificare la regione del job della pipeline utilizzando uno dei seguenti metodi.
Se crei un job di distillazione inviando una richiesta POST utilizzando il metodo
pipelineJobs.create
, utilizza l'URL per specificare la regione in cui viene eseguito il job della pipeline. Nel seguente URL, sostituendo entrambe le istanze diPIPELINE_JOB_REGION
con la regione in cui viene eseguita la pipeline:https://PIPELINE_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/PIPELINE_JOB_REGION/pipelineJobs
Se utilizzi la console Google Cloud per creare un job di distillazione, specifica la regione del job di pipeline nel controllo Regione quando crei il tuo job di distillazione. Nella console Google Cloud, il controllo Regione specifica sia la regione del job della pipeline sia la regione di caricamento del modello. Quando Utilizzare la console Google Cloud per creare un job di distillazione, in entrambe le regioni sono sempre uguali.
Regione di caricamento del modello
Puoi utilizzare il parametro facoltativo tuned_model_location
per specificare dove
viene caricato il modello distillato. Se la regione di caricamento del modello non è specificata, il
modello distillato viene caricato nella regione del job della pipeline. Puoi
utilizzare una delle
regioni di caricamento dei modelli e dei job della pipeline supportati
per la regione di caricamento del modello. Puoi specificare la regione di caricamento del modello utilizzando uno
di questi metodi:
Se crei un job di distillazione inviando una richiesta POST utilizzando il metodo
pipelineJobs
, puoi utilizzare il parametrolocation
per specificare la regione di caricamento del modello.Se utilizzi la console Google Cloud per creare un job di distillazione, specifica la regione di caricamento del modello nel controllo Regione quando crei il job di distillazione. Nella console Google Cloud, il controllo Regione specifica sia la regione di caricamento del modello sia la regione del job della pipeline. Quando utilizzi la console Google Cloud per creare un job di distillazione, entrambe le regioni sono sempre le stesse.
Impostazioni della regione di distillazione
La regione scelta è dove Vertex AI distilla il modello e poi lo carica.
La regione di ottimizzazione è il luogo in cui viene eseguito il calcolo per la parte dell'ottimizzazione di distillazione. Questa regione è determinata dal tipo di acceleratore inserito scegliere.
us-central1
: se scegli questa regione, vengono utilizzate 8 GPU Nvidia A100 da 80 GB.europe-west4
: se scegli questa regione, vengono utilizzati 64 core del pod TPU v3.
Regioni supportate per il caricamento di job della pipeline e modelli
Puoi utilizzare una delle seguenti regioni per specificare la regione di caricamento del modello e per specificare la regione del job della pipeline:
us-central1
europe-west4
asia-southeast1
us-west1
europe-west3
europe-west2
asia-northeast1
us-east4
us-west4
northamerica-northeast1
europe-west9
europe-west1
asia-northeast3
Crea un job di distillazione del modello di testo
Puoi creare un job di distillazione del modello di testo utilizzando la console Google Cloud o l'API. Per indicazioni sulle configurazioni di distillazione del modello, consulta Configurazioni consigliate.
REST
Per creare un job di distillazione del modello, invia una richiesta POST utilizzando
pipelineJobs
.
Tieni presente che alcuni parametri non sono supportati da tutti i modelli. Ensure
di includere solo i parametri applicabili per il modello
in fase di distillazione.
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- PIPELINEJOB_DISPLAYNAME: un nome visualizzato per il job pipeline.
- OUTPUT_DIR: l'URI del bucket in cui eseguire l'output degli elementi della pipeline.
- PROJECT_ID: il tuo ID progetto.
- MODEL_DISPLAYNAME: un nome visualizzato per
distillato caricato da
pipelineJob
. - DATASET_URI: URI del file del set di dati.
- PIPELINE_JOB_REGION:
la regione in cui viene eseguito il job di ottimizzazione della pipeline. Si tratta anche della regione predefinita in cui viene caricato il
modello ottimizzato. Se vuoi caricare il modello in un'altra regione, utilizza il parametro
location
per specificare la regione di caricamento del modello ottimizzato. Per ulteriori informazioni, consulta Regione di caricamento del modello. - MODEL_UPLOAD_REGION: (Facoltativo) La regione in cui viene caricato il modello ottimizzato. Se non specifichi una regione di caricamento del modello, il modello ottimizzato viene caricato nella stessa regione in cui viene eseguito il job della pipeline. Per ulteriori informazioni, consulta la sezione Regione di caricamento del modello.
- ACCELERATOR_TYPE:
(facoltativo, valore predefinito:
GPU
) tipo di acceleratore da utilizzare per l'ottimizzazione del modello. Le opzioni valide sono:GPU
: utilizza otto GPU A100 da 80 GB per l'ottimizzazione. Assicurati di disporre di quota sufficiente. Se scegliGPU
, quindi VPC‑SC è supportato. CMEK è supportata se l'ottimizzazione la località e la località di caricamento del modello sonous-centra1
. Per ulteriori informazioni, vedi Impostazioni della regione di ottimizzazione supervisionata. Se scegliGPU
, i calcoli di ottimizzazione del modello vengono eseguiti nella regioneus-central1
.TPU
: utilizza 64 core del pod TPU v3 per l'ottimizzazione. Assicurati di avere un numero sufficiente di video quota. CMEK non è supportato, ma VPC-SC è supportato. Se scegliTPU
, i calcoli di ottimizzazione del modello vengono eseguiti Regioneeurope-west4
.
- TEACHER_MODEL_REFERENCE: il nome del
modello di insegnante da utilizzare per l'estrazione. Il modello supportato è
text-unicorn@001
. - STUDENT_MODEL_REFERENCE: il nome del
modello dello studente da utilizzare per la distillazione. Il modello supportato è
text-bison@002
. - STEPS:
Il
numero di passaggi da eseguire per l'ottimizzazione del modello. Il valore predefinito è 300. Il batch
variano in base alla località di ottimizzazione e alle dimensioni del modello. Per i modelli 8K, come
text-bison@002
,chat-bison@002
,code-bison@002
ecodechat-bison@002
:us-central1
ha una dimensione del batch pari a 8.europe-west4
ha una dimensione del batch pari a 24.
text-bison-32k
,chat-bison-32k
,code-bison-32k
ecodechat-bison-32k
:us-central1
ha una dimensione del batch pari a 8.europe-west4
ha una dimensione del batch pari a 8.
Ad esempio, se stai addestrando
text-bison@002
ineurope-west4
, ci sono 240 esempi in un set di dati di addestramento e impostisteps
su 20, il numero di esempi di addestramento è il prodotto di 20 passaggi e la dimensione del batch di 24, ovvero 480 passaggi di addestramento. In questo caso, il processo di addestramento prevede due epoche perché esamina gli esempi due volte. Inus-central1
, se un set di dati di addestramento contiene 240 esempi e impostisteps
su 15, il numero di esempi di addestramento è il prodotto di 15 passaggi e la dimensione del batch di 8, ovvero 120 passaggi di addestramento. In questo caso, ci sono 0,5 epoche perché ci sono metà delle fasi di addestramento rispetto agli esempi. - LEARNING_RATE_MULTIPLIER: A
da applicare al tasso di apprendimento suggerito. Per utilizzare il tasso di apprendimento consigliato, usa
1.0
. - (Facoltativo) EVAL_DATASET_URI: l'URI del file JSONL contenente il set di dati di valutazione per la previsione e la valutazione batch. La valutazione non è supportata per
chat-bison
. Per ulteriori informazioni, consulta Formato del set di dati per l'ottimizzazione di un modello di codice. Il set di dati di valutazione richiede tra 10 e 250 esempi. - EVAL_INTERVAL:
(Facoltativo, valore predefinito,
20
) Il numero di passaggi di ottimizzazione tra ogni valutazione. L'intervallo di valutazione non è supportato per i modelli di chat. Poiché la valutazione viene eseguita sull'intero set di dati di valutazione, un intervallo di valutazione inferiore determina tempi di ottimizzazione più lunghi. Ad esempio, sesteps
è 200 eEVAL_INTERVAL
è 100, otterrai solo due punti dati per le metriche di valutazione. Questo parametro richiede l'impostazione dievaluation_data_uri
. - ENABLE_EARLY_STOPPING:
(facoltativo, valore predefinito per
true
) Unboolean
che, se impostato sutrue
, interrompe l'ottimizzazione prima di completare tutti i passaggi se le prestazioni del modello, misurate la precisione dei token previsti, non migliora abbastanza tra le esecuzioni delle valutazioni. Se èfalse
, l'ottimizzazione continua fino al completamento di tutti i relativi passaggi. Questo parametro richiede l'impostazione dievaluation_data_uri
. L'opzione Abilita l'interruzione anticipata non è supportata per i modelli di chat. - TENSORBOARD_RESOURCE_ID: (Facoltativo) L'ID di un'istanza Vertex AI TensorBoard. La L'istanza di Vertex AI TensorBoard viene utilizzata per creare un esperimento dopo l'ottimizzazione il job viene completato. L'istanza Vertex AI TensorBoard deve trovarsi nella stessa regione di ottimizzazione della pipeline.
- ENCRYPTION_KEY_NAME:
(Facoltativo) Il nome completo di una chiave di crittografia gestita dal cliente (CMEK) che vuoi utilizzare
per la crittografia dei dati. Una CMEK è disponibile solo in
us-central1
. Se utilizzius-central1
e non specifichi una CMEK, viene utilizzata una chiave di proprietà di Google e gestita da Google. Per impostazione predefinita, in tutte le altre regioni disponibili viene utilizzata una chiave di proprietà di Google e gestita da Google. Per maggiori informazioni informazioni, consulta la panoramica di CMEK. - TEMPLATE_URI: l'URI del modello di distillazione,
https://us-kfp.pkg.dev/ml-pipeline/distillation/distillation/v1.0.0
. - (Facoltativo) SERVICE_ACCOUNT: il servizio
utilizzato da Vertex AI per eseguire il job della pipeline. Per impostazione predefinita, viene utilizzato l'account di servizio predefinito (
PROJECT_NUMBER‑compute@developer.gserviceaccount.com
) di Compute Engine del progetto. Scopri di più su come collegare un account di servizio personalizzato.
Metodo HTTP e URL:
POST https://PIPELINE_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/PIPELINE_JOB_REGION/pipelineJobs
Corpo JSON della richiesta:
{ "displayName": "PIPELINEJOB_DISPLAYNAME", "runtimeConfig": { "gcsOutputDirectory": "gs://OUTPUT_DIR", "parameterValues": { "project": "PROJECT_ID", "model_display_name": "MODEL_DISPLAYNAME", "dataset_uri": "gs://DATASET_URI", "location": "MODEL_UPLOAD_REGION", "accelerator_type": "ACCELERATOR_TYPE", "teacher_model_reference":TEACHER_MODEL_REFERENCE , "student_model_reference":STUDENT_MODEL_REFERENCE , "train_steps": STEPS, "learning_rate_multiplier": LEARNING_RATE_MULTIPLIER, "evaluation_data_uri": "gs://EVAL_DATASET_URI", "evaluation_interval": EVAL_INTERVAL, "enable_early_stopping": ENABLE_EARLY_STOPPING, "enable_checkpoint_selection": "ENABLE_CHECKPOINT_SELECTION", "tensorboard_resource_id": "TENSORBOARD_ID", "encryption_spec_key_name": "ENCRYPTION_KEY_NAME" } }, "encryptionSpec": { "kmsKeyName": "ENCRYPTION_KEY_NAME" }, "serviceAccount": "SERVICE_ACCOUNT", "templateUri": "TEMPLATE_URI" }
Per inviare la richiesta, scegli una delle seguenti opzioni:
curl
Salva il corpo della richiesta in un file denominato request.json
.
ed esegui questo comando:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://PIPELINE_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/PIPELINE_JOB_REGION/pipelineJobs"
PowerShell
Salva il corpo della richiesta in un file denominato request.json
,
quindi esegui il comando seguente:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://PIPELINE_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/PIPELINE_JOB_REGION/pipelineJobs" | Select-Object -Expand Content
Dovresti ricevere una risposta JSON simile alla seguente. Tieni presente che pipelineSpec
è stato troncato per risparmiare spazio.
Python
Per scoprire come installare o aggiornare l'SDK Vertex AI per Python, vedi Installare l'SDK Vertex AI per Python. Per ulteriori informazioni, consulta documentazione di riferimento dell'API Python.
Console
Per distillare un modello di testo utilizzando Console Google Cloud, segui questi passaggi:
- Nella sezione Vertex AI della console Google Cloud, vai alla pagina Vertex AI Studio.
- Fai clic sulla scheda Ottimizzazione e distillazione.
- Fai clic su Crea modello distillato.
- Configura i dettagli del modello:
- Nome modello: inserisci un nome per il modello distillato.
- Modello insegnante: seleziona il modello che vuoi utilizzare per il modello insegnante.
- Modello studente: seleziona il modello da utilizzare per la modello studentesco.
- Regione: Seleziona la regione in cui viene eseguito il job di ottimizzazione della pipeline e in cui viene eseguito il deployment del modello ottimizzato.
- Directory di lavoro: inserisci la posizione di Cloud Storage in cui vengono archiviati gli artefatti quando il modello viene ottimizzato.
- Espandi Opzioni avanzate per configurare le impostazioni avanzate.
- Passaggi di addestramento:
Inserisci il
di passaggi da eseguire per l'ottimizzazione del modello. Il valore predefinito è 300. La dimensione del batch varia in base alla posizione di ottimizzazione e alle dimensioni del modello. Per i modelli 8K, come
text-bison@002
,chat-bison@002
,code-bison@002
ecodechat-bison@002
:us-central1
ha una dimensione del batch pari a 8.europe-west4
ha una dimensione del batch pari a 24.
text-bison-32k
,chat-bison-32k
,code-bison-32k
ecodechat-bison-32k
:us-central1
ha una dimensione del batch pari a 8.europe-west4
ha una dimensione del batch pari a 8.
Ad esempio, se stai addestrando
text-bison@002
ineurope-west4
, ci sono 240 esempi in un set di dati di addestramento e impostisteps
su 20, quindi di esempi di addestramento è il prodotto di 20 passaggi e la dimensione del batch di 24, ovvero 480 passaggi. In questo caso, il processo di addestramento prevede due epoche, perché passa attraverso esempi due volte. Inus-central1
, se un set di dati di addestramento contiene 240 esempi e impostisteps
su 15, il numero di esempi di addestramento è il prodotto di 15 passaggi e la dimensione del batch di 8, ovvero 120 passaggi di addestramento. In questo caso, ci sono 0,5 epoche perché ci sono metà delle fasi di addestramento rispetto agli esempi. - Moltiplicatore del tasso di apprendimento: inserisci la dimensione del passaggio in ogni iterazione. Il valore predefinito è 1.
- (Facoltativo) Tipo di acceleratore: inserisci il tipo di acceleratore da utilizzare per ottimizzare il modello. Le opzioni valide sono:
GPU
: utilizza otto GPU A100 da 80 GB per l'ottimizzazione. Assicurati di disporre di quota sufficiente. Se scegliGPU
, VPC-SC è supportato. CMEK è supportato se la località di ottimizzazione e la località di caricamento del modello sonous-centra1
. Per ulteriori informazioni, vedi Impostazioni della regione di ottimizzazione supervisionata. Se scegliGPU
, i calcoli di ottimizzazione del modello vengono eseguiti nella regioneus-central1
.TPU
: utilizza 64 core del pod TPU v3 per l'ottimizzazione. Assicurati di avere un numero sufficiente di video quota. CMEK non è supportato, ma VPC-SC è supportato. Se scelgoTPU
, i calcoli di ottimizzazione del modello vengono eseguiti nella regioneeurope-west4
.
- Aggiungi un'istanza TensorBoard: (Facoltativo) L'ID di un'istanza Vertex AI TensorBoard. L'istanza Vertex AI TensorBoard viene utilizzata per creare un esperimento al termine del job di ottimizzazione. L'istanza TensorBoard di Vertex AI deve trovarsi nella stessa regione della pipeline di ottimizzazione.
- Crittografia
(Facoltativo) Scegli se utilizzare una chiave di proprietà e gestita da Google o una chiave di crittografia gestita dal cliente
(CMEK). La chiave CMEK per la crittografia è disponibile solo nella regione
us-central1
. In tutte le altre regioni disponibili, viene utilizzata una chiave di proprietà e gestita da Google. Per ulteriori informazioni, consulta la panoramica di CMEK. - (Facoltativo) Account di servizio: scegli un account di servizio gestito dall'utente. Un account di servizio determina a quali risorse Google Cloud può accedere il tuo codice di servizio. Se non scegli un account di servizio, verrà utilizzato un agente di servizio che include le autorizzazioni appropriate per la maggior parte dei modelli.
- Passaggi di addestramento:
Inserisci il
di passaggi da eseguire per l'ottimizzazione del modello. Il valore predefinito è 300. La dimensione del batch varia in base alla posizione di ottimizzazione e alle dimensioni del modello. Per i modelli 8K, come
- Fai clic su Continua.
- Se vuoi caricare il file del set di dati di distillazione, seleziona
Carica un file JSONL
- In Seleziona file JSONL, fai clic su Sfoglia e seleziona il file del set di dati.
- In Posizione del set di dati, fai clic su Sfoglia e seleziona il bucket Cloud Storage in cui vuoi archiviare il file del set di dati.
Utilizzare un file JSONL esistente
In Percorso file Cloud Storage, fai clic su Sfoglia e seleziona il bucket Cloud Storage in cui si trova il file del set di dati.
Carica il file JSONL in Cloud Storage. Se le tue
il file del set di dati si trova già in un bucket Cloud Storage, seleziona
File JSONL esistente su Cloud Storage.
- (Facoltativo) Per valutare il modello distillato, seleziona Abilita la valutazione del
modello e configura la valutazione del modello:
- (Facoltativo) Set di dati di valutazione: l'URI del file JSONL contenente il set di dati di valutazione per la previsione e la valutazione batch. La valutazione non è supportata per
codechat-bison
. Per ulteriori informazioni, consulta Formato del set di dati per l'ottimizzazione di un modello di codice. Il set di dati di valutazione richiede tra 10 e 250 esempi. - Intervallo di valutazione:
(Facoltativo, valore predefinito
20
) Il numero di passaggi di ottimizzazione tra ogni valutazione. L'intervallo di valutazione non è supportato per i modelli di chat. Poiché la valutazione viene eseguita sull'intero set di dati di valutazione, un intervallo di valutazione inferiore determina tempi di ottimizzazione più lunghi. Ad esempio, sesteps
è 200 eEVAL_INTERVAL
è 100, otterrai solo due punti dati per le metriche di valutazione. Questo parametro richiede l'impostazione dievaluation_data_uri
. - Attivare l'interruzione anticipata:
(facoltativo, valore predefinito
true
) Unboolean
che, se impostato sutrue
, interrompe l'ottimizzazione prima di completare tutti i passaggi se le prestazioni del modello, misurate la precisione dei token previsti, non migliora abbastanza tra le esecuzioni delle valutazioni. Se èfalse
, l'ottimizzazione continua fino al completamento di tutti i relativi passaggi. Questo parametro richiede l'impostazione dievaluation_data_uri
. L'opzione Abilita l'interruzione anticipata non è supportata per i modelli di chat. - Abilita selezione dei checkpoint: Se abilitato, Vertex AI seleziona e restituisce il checkpoint con il modello migliore le prestazioni di valutazione da tutti i checkpoint creati durante il job di ottimizzazione. Se disattivato, lo stato viene restituito il checkpoint creato durante il job di ottimizzazione. Ogni checkpoint fa riferimento a uno snapshot durante un job di ottimizzazione.
- Istanza TensorFlow: (Facoltativo) L'ID di un'istanza Vertex AI TensorBoard. L'istanza Vertex AI TensorBoard viene utilizzata per creare un esperimento al termine del job di ottimizzazione. L'istanza TensorBoard di Vertex AI deve trovarsi nella stessa regione della pipeline di ottimizzazione.
- (Facoltativo) Set di dati di valutazione: l'URI del file JSONL contenente il set di dati di valutazione per la previsione e la valutazione batch. La valutazione non è supportata per
- Fai clic su Avvia distillazione.
Configurazioni consigliate
La tabella seguente mostra le configurazioni consigliate per la distillazione di un modello di base per attività:
Attività | N. di esempi nel set di dati | Passaggi di addestramento |
---|---|---|
Classificazione | 100+ | 200-1000 |
Riassunto | 100-500+ | 1000-1500 |
QA estrattivo | 100+ | 200-800 |
Per i passaggi di addestramento, puoi provare più di un valore per ottenere le migliori prestazioni su un determinato set di dati, ad esempio 100, 200, 500.
Visualizza un elenco di modelli distillati
Puoi visualizzare un elenco dei modelli nel tuo progetto corrente, inclusi i modelli distillati, utilizzando la console Google Cloud o l'SDK Vertex AI per Python.
Python
Prima di provare questo esempio, segui le istruzioni di configurazione Python riportate nella guida rapida all'utilizzo delle librerie client di Vertex AI. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Python di Vertex AI.
Per eseguire l'autenticazione su Vertex AI, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Console
Per visualizzare i modelli distillati nella console Google Cloud, vai a Pagina Vertex AI Model Registry.
Carica un modello di testo distillato
Il codice campione seguente utilizza l'SDK Vertex AI per Python per caricare un di generazione del testo:
import vertexai from vertexai.preview.language_models import TextGenerationModel model = TextGenerationModel.get_tuned_model(TUNED_MODEL_NAME)
Sostituisci TUNED_MODEL_NAME
con
il nome della risorsa qualificato del modello distillato.
Questo nome è nel formato
projects/PROJECT_ID/locations/LOCATION/models/MODEL_ID
.
Puoi trovare l'ID modello del modello distillato in
Vertex AI Model Registry.
Metriche di ottimizzazione e valutazione
Puoi configurare un job di ottimizzazione del modello per raccogliere e generare report sull'ottimizzazione del modello. le metriche di valutazione del modello, che possono essere visualizzate utilizzando Vertex AI TensorBoard
Metriche di ottimizzazione del modello
Puoi configurare un job di ottimizzazione del modello per raccogliere le seguenti metriche di ottimizzazione perchat-bison
, code-bison
, codechat-bison
e text-bison
:
/train_total_loss
: perdita del set di dati dell'ottimizzazione in una fase di addestramento./train_fraction_of_correct_next_step_preds
: l'accuratezza dei token in un addestramento passaggio. Una singola previsione è composta da una sequenza di token. Questa metrica misura la precisione dei token previsti rispetto al suolo per l'ottimizzazione del set di dati./train_num_predictions:
Numero di token previsti in un passaggio di addestramento.
Metriche di valutazione del modello
Puoi configurare un job di ottimizzazione del modello per raccogliere le seguenti metriche di valutazione
per code-bison
e text-bison
:
/eval_total_loss
: perdita per il set di dati di valutazione in un passaggio di valutazione./eval_fraction_of_correct_next_step_preds
: l'accuratezza del token di valutazione. Una singola previsione è composta da una sequenza di token. Questa metrica misura l'accuratezza dei token previsti rispetto ai dati empirici reali nel set di dati di valutazione./eval_num_predictions
: numero di token previsti in un passaggio di valutazione.
Le visualizzazioni delle metriche sono disponibili al termine del job di ottimizzazione del modello. Se specifichi solo un ID istanza Vertex AI TensorBoard e non un set di dati di valutazione quando crei il job di ottimizzazione, sono disponibili solo le visualizzazioni per le metriche di ottimizzazione.