I modelli di codice possono essere ottimizzati ottimizzazione supervisionata. L'ottimizzazione supervisionata utilizza esempi etichettati che dimostrano il tipo di output che desideri dalla generazione del codice o dal modello di chat di codice durante l'inferenza. Codice modelli non supportano l'ottimizzazione Apprendimento per rinforzo con l'ottimizzazione del feedback umano (RLHF).
Scenari per l'utilizzo dell'ottimizzazione del modello di codice
L'ottimizzazione è necessaria quando vuoi che un modello apprenda qualcosa di nicchia o specifico
che si discosta dai modelli
di linguaggio e codice generali. Di seguito sono riportate le
esempi di ciò che puoi insegnare con i modelli code-bison
e codechat-bison
:
- Come generare codice per le librerie personalizzate. Addestrando un modello di codice con esempi etichettati di una libreria personalizzata, puoi generare specifiche di quella libreria personalizzata.
- Come utilizzare il codebase. Addestrando un modello con campioni etichettati del tuo codebase, puoi generare codice o chattare su codice che utilizza qualità nel tuo codebase.
- Come generare un codice utilizzando varianti di un linguaggio di programmazione. Addestrando un di codice con esempi etichettati di una variante linguistica, puoi generare parlare del codice che utilizza le particolari convenzioni di quella variante linguistica standard.
Questi scenari includono requisiti di codice difficili da acquisire istruzioni per il prompt. Di seguito sono riportati alcuni esempi:
Generazione del codice
Questo prompt e questa risposta di esempio aiutano a ottimizzare
code-bison
di lavorare con un set di dati specifico.Questo prompt e questa risposta di esempio consentono di addestrare
code-bison
creano un prodotto utilizzando Python.
Chat di codice
Questo prompt e questa risposta di esempio aiutano a ottimizzare
codechat-bison
per aiutare gli utenti a imparare a lavorare con un set di dati specifico.Questo prompt e questa risposta di esempio consentono di ottimizzare
codechat-bison
per aiutare un utente a imparare a creare un prodotto utilizzando Python durante una sessione di chat.
Prepara il set di dati di ottimizzazione del modello di codice
Il set di dati utilizzato per ottimizzare un modello di codice include esempi allineati con l'attività che vuoi venga eseguita dal modello. Il set di dati deve includere un numero minimo di di 10 esempi, ma consigliamo almeno 500 esempi per ottenere buoni risultati. Più esempi fornisci, migliori saranno i risultati.
Formato del set di dati per l'ottimizzazione di un modello di codice
Il set di dati dell'ottimizzazione di un modello di generazione del codice e di un modello di chat del codice deve essere Formato JSON Lines (JSONL). Le seguenti include i dettagli sul formato del set di dati e gli esempi di set di dati per ogni modello:
Generazione del codice
Il set di dati di ottimizzazione del modello di generazione del codice deve essere in JSON
Lines (JSONL) in cui ogni riga
contiene un singolo esempio di ottimizzazione. Ogni esempio è composto da un
Campo input_text
che contiene il prompt al modello e un
Campo output_text
contenente una risposta di esempio che il modello ottimizzato
dovrebbe essere prodotto.
Il numero massimo di esempi di un set di dati per un modello di generazione di testo che può contenere è 10.000.
Esempi di un set di dati per l'ottimizzazione di un modello di generazione del codice
Questo argomento mostra due esempi di set di dati di ottimizzazione del modello di generazione del codice. La Di seguito è riportato il primo esempio di un set di dati per l'ottimizzazione della generazione del codice:
{"input_text": "How to create a product in Python with the Cloud Vision API?", "output_text": "Use this Python code sample to learn how to create a product with the Cloud Vision API:\n\n```python\n\r\n\r\n\r\n\r\n\r\nfrom google.cloud import vision\r\nfrom google.protobuf import field_mask_pb2 as field_mask\r\n\r\ndef create_product(\r\n project_id, location, product_id, product_display_name,\r\n product_category):\r\n \"\"\"Create one product.\r\n Args:\r\n project_id: Id of the project.\r\n location: A compute region name.\r\n product_id: Id of the product.\r\n product_display_name: Display name of the product.\r\n product_category: Category of the product.\r\n \"\"\"\r\n client = vision.ProductSearchClient()\r\n\r\n # A resource that represents Google Cloud Platform location.\r\n location_path = f\"projects/{project_id}/locations/{location}\"\r\n\r\n # Create a product with the product specification in the region.\r\n # Set product display name and product category.\r\n product = vision.Product(\r\n display_name=product_display_name,\r\n product_category=product_category)\r\n\r\n # The response is the product with the `name` field populated.\r\n response = client.create_product(\r\n parent=location_path,\r\n product=product,\r\n product_id=product_id)\r\n\r\n # Display the product information.\r\n print('Product name: {}'.format(response.name))\r\n```"}
Di seguito è riportato il secondo esempio di un set di dati per l'ottimizzazione della generazione del codice:
{"input_text": "python to retrieve the labels of a dataset for a given dataset ID in BigQuery", "output_text": "Here is a Python code sample to retrieve the labels of a dataset for a given dataset ID in BigQuery.\n\n```python\n\n from google.cloud import bigquery\n\n # Construct a BigQuery client object.\n client = bigquery.Client()\n\n # TODO(developer): Set dataset_id to the ID of the dataset to fetch.\n # dataset_id = \"your-project.your_dataset\"\n\n dataset = client.get_dataset(dataset_id) # Make an API request.\n\n # View dataset labels.\n print(\"Dataset ID: {}\".format(dataset_id))\n print(\"Labels:\")\n if dataset.labels:\n for label, value in dataset.labels.items():\n print(\"\\t{}: {}\".format(label, value))\n else:\n print(\"\\tDataset has no labels defined.\")\n```"}
Chat di codice
Il set di dati di ottimizzazione del modello di chat del codice deve essere in JSON
Lines (JSONL) in cui ogni riga
contiene un singolo esempio di ottimizzazione. Ogni esempio è composto da un messages
campo che contiene esempi di prompt di chat e risposte che il modello ottimizzato
che ci si aspetta di produrre.
Il numero massimo di campi author
che gli esempi nel set di dati per un
che il modello di chat del codice può contenere 10.000. Il valore massimo corrisponde alla somma di tutte le
author
campi in tutti i messages
in tutti gli esempi.
Esempi di un set di dati per l'ottimizzazione dei modelli di chat del codice
Questo argomento mostra due esempi di set di dati di ottimizzazione dei modelli di chat di codice. La Ecco il primo esempio di un set di dati per l'ottimizzazione della chat del codice:
{"messages": [{"author":"user", "content": "How to create a product in Python with Cloud Vision?"}, {"author": "assistant", "content": "Use this Python code sample to learn how to create a product with Cloud Vision:\n\n```python\n\r\n\r\n\r\n\r\n\r\nfrom google.cloud import vision\r\nfrom google.protobuf import field_mask_pb2 as field_mask\r\n\r\ndef create_product(\r\n project_id, location, product_id, product_display_name,\r\n product_category):\r\n \"\"\"Create one product.\r\n Args:\r\n project_id: Id of the project.\r\n location: A compute region name.\r\n product_id: Id of the product.\r\n product_display_name: Display name of the product.\r\n product_category: Category of the product.\r\n \"\"\"\r\n client = vision.ProductSearchClient()\r\n\r\n # A resource that represents Google Cloud Platform location.\r\n location_path = f\"projects/{project_id}/locations/{location}\"\r\n\r\n # Create a product with the product specification in the region.\r\n # Set product display name and product category.\r\n product = vision.Product(\r\n display_name=product_display_name,\r\n product_category=product_category)\r\n\r\n # The response is the product with the `name` field populated.\r\n response = client.create_product(\r\n parent=location_path,\r\n product=product,\r\n product_id=product_id)\r\n\r\n # Display the product information.\r\n print('Product name: {}'.format(response.name))\r\n```"}]}
Di seguito è riportato il secondo esempio di un set di dati per l'ottimizzazione della chat di codice:
{"messages": [{"author":"user", "content": "Python to retrieve the labels of a dataset for a given dataset ID in BigQuery"}, {"author": "assistant", "content": "Here is a Python code sample to retrieve the labels of a dataset for a given dataset ID in BigQuery.\n\n```python\n\n from google.cloud import bigquery\n\n # Construct a BigQuery client object.\n client = bigquery.Client()\n\n # TODO(developer): Set dataset_id to the ID of the dataset to fetch.\n # dataset_id = \"your-project.your_dataset\"\n\n dataset = client.get_dataset(dataset_id) # Make an API request.\n\n # View dataset labels.\n print(\"Dataset ID: {}\".format(dataset_id))\n print(\"Labels:\")\n if dataset.labels:\n for label, value in dataset.labels.items():\n print(\"\\t{}: {}\".format(label, value))\n else:\n print(\"\\tDataset has no labels defined.\")\n```"}]}
Mantieni la coerenza con i dati di produzione
Gli esempi nei tuoi 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 una proprietà
"context:"
, anche il traffico di produzione deve essere formattato per includere un
"question:"
e "context:"
nello stesso ordine in cui vengono visualizzati nel set di dati
esempi. Se escludi il contesto, il modello non riconoscerà il pattern,
anche se la domanda esatta
si trovava in un esempio nel set di dati.
Includi istruzioni negli esempi
Per attività come la generazione di codice, puoi creare un set di dati di esempi che non contengono istruzioni. Tuttavia, ad eccezione delle istruzioni fornite nelle di esempio nel set di dati determina prestazioni peggiori dopo l'ottimizzazione rispetto all'inclusione istruzioni, in particolare per set di dati più piccoli.
Istruzioni non incluse:
{ "input_text": "Calculate the sum of a list of integers.", "output_text": "```python\nnums = [1, 2, 3]\ntotal_sum = sum(nums)\n```" }
Istruzioni incluse:
{ "input_text": "Write the code in Python: calculate the sum of a list of integers", "output_text": "```python\nnums = [1, 2, 3]\ntotal_sum = sum(nums)\n```" }
Carica set di dati di ottimizzazione 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 progetto Google Cloud in cui prevedi di ottimizzare il modello.
Quando il bucket è pronto, carica il file del tuo set di dati al bucket.
Impostazioni della regione di ottimizzazione supervisionata
Puoi specificare tre impostazioni della regione Google Cloud quando configuri un job di ottimizzazione. Una regione è quella in cui viene eseguita la pipeline che ottimizza il modello. La in un'altra regione è quella in cui viene eseguito il job di ottimizzazione del modello e il modello ottimizzato viene caricato.
Regione job di pipeline
La regione del job della pipeline è quella in cui viene eseguito il job della pipeline. Se la regione caricamento modello facoltativa non è specificata, allora il modello viene caricato e sottoposto a deployment nella regione del job della pipeline. Dati intermedi, trasformato, viene archiviato nella regione del job della pipeline. Per sapere quali regioni utilizzabili per la regione del job della pipeline, vedi Regioni supportate per job di pipeline e caricamento modelli. Devi specificare la regione del job della pipeline utilizzando uno dei seguenti metodi:
Se utilizzi l'SDK Vertex AI, puoi specificare la regione in cui il job della pipeline viene eseguito utilizzando il parametro
tuning_job_location
nella Metodotune_model
dell'oggetto che rappresenta il modello che stai ottimizzando (ad esempio,TextGenerationModel.tune_model
: ).Se crei un job di ottimizzazione supervisionato tramite l'invio di una richiesta POST utilizzando il
pipelineJobs.create
, utilizzerai l'URL per specificare la regione in cui si trova il job della pipeline viene eseguito. 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 supervisionato di ottimizzazione del modello, devi specificare la regione del job di pipeline nel controllo Regione quando e creare il tuo job di ottimizzazione. Nella console Google Cloud, la regione che specifica sia la regione del job della pipeline sia la regione di caricamento del modello. Quando utilizzi la console Google Cloud per creare un'ottimizzazione del modello supervisionato le due regioni sono sempre le stesse.
Regione di caricamento modello
Puoi utilizzare il parametro facoltativo tuned_model_location
per specificare dove
il modello ottimizzato viene caricato. Se la regione di caricamento del modello non è specificata,
il modello ottimizzato viene caricato nella regione del job della pipeline.Puoi
usa uno dei
Regioni supportate per job di pipeline e caricamento modelli
per la regione di caricamento del modello. Puoi specificare la regione di caricamento del modello utilizzando una
uno dei seguenti metodi:
Se utilizzi l'SDK Vertex AI, il parametro
tuned_model_location
è specificato nel metodotune_model
dell'oggetto che rappresenta il modello che stai ottimizzando (ad esempio,TextGenerationModel.tune_model
: ).Se crei un job di ottimizzazione del modello supervisionato inviando una richiesta POST utilizzando
pipelineJobs
, puoi utilizzare il parametrolocation
per specificare il caricamento del modello regione.Se utilizzi la console Google Cloud per creare un job supervisionato di ottimizzazione del modello, devi specificare la regione di caricamento del modello nel controllo Regione quando crei il tuo job di ottimizzazione. Nella console Google Cloud, il controllo Regione specifica sia la regione di caricamento del modello sia la regione del job della pipeline. Quando utilizzare la console Google Cloud per creare un job supervisionato di ottimizzazione del modello, regioni sono sempre le stesse.
Regione di ottimizzazione del modello
La regione di ottimizzazione del modello è il luogo in cui avviene il calcolo dell'ottimizzazione del modello. Questo
è determinata dal tipo di acceleratore scelto. Se specifichi TPU
per il tipo di acceleratore, il calcolo dell'ottimizzazione del modello avviene
europe-west4
. Se specifichi GPU
come tipo di acceleratore, modella il modello
l'ottimizzazione avviene in us-central1
.
Regioni supportate per il caricamento di modelli e job di pipeline
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 ottimizzazione del modello di codice
Puoi creare un job di ottimizzazione supervisionato utilizzando la console Google Cloud, l'API Vertex AI SDK per Python. Per indicazioni sulle configurazioni di ottimizzazione del modello, consulta le Configurazioni consigliate.
Crea un job di ottimizzazione del modello di generazione del codice
Di seguito viene illustrato come creare un job di ottimizzazione del modello di generazione del codice utilizzando la console Google Cloud o i comandi dell'API REST.
REST
Per creare un job di ottimizzazione del modello di generazione del codice, invia una richiesta POST utilizzando il metodo pipelineJobs.
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- PROJECT_ID: il tuo ID progetto.
- TUNINGPIPELINE_DISPLAYNAME: un display del job della pipeline.
- OUTPUT_DIR: l'URI del bucket di cui eseguire l'output gli artefatti della pipeline.
- MODEL_DISPLAYNAME: un nome visualizzato per modello caricato (creato) da pipelineJob.
- DATASET_URI: URI del file del set di dati.
- EVAL_DATASET_URI:
(Facoltativo) L'URI del file JSONL che contiene il set di dati di valutazione per la previsione batch e
la valutazione delle prestazioni. 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. - 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
. - PIPELINE_JOB_REGION:
La regione in cui viene eseguito il job di ottimizzazione della pipeline. Questa è anche la regione predefinita per la posizione
viene caricato il modello. Se vuoi caricare il modello in una regione diversa, utilizza il metodo
Parametro
location
per specificare la regione di caricamento del modello ottimizzato. Per ulteriori informazioni, vedi Regione del job di pipeline. - MODEL_UPLOAD_REGION: (Facoltativo) La regione in cui viene caricato il modello ottimizzato. Se non specifichi una regione per il caricamento del modello, il modello ottimizzato viene caricato nella stessa regione in cui viene eseguito il job della pipeline. Per ulteriori informazioni, vedi Regione di caricamento 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 avere un numero sufficiente di video quota. Se scegliGPU
, quindi VPC‑SC è supportato. CMEK è supportata se l'ottimizzazione la località e la località di caricamento del modello sonous-centra1
. Per maggiori informazioni, vedi Regione di ottimizzazione supervisionata impostazioni. Se scegliGPU
, i calcoli di ottimizzazione del modello vengono eseguiti regioneus-central1
.TPU
: utilizza 64 core del pod TPU v3 per l'ottimizzazione. Assicurati di avere un numero sufficiente di video quota. CMEK non è supportata, ma VPC‑SC è supportato. Se scegliTPU
, i calcoli di ottimizzazione del modello vengono eseguiti Regioneeurope-west4
.
- 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. - ENABLE_CHECKPOINT_SELECTION:
Un valore di stringa che può essere
true
,false
odefault
. Se impostato su "true", Vertex AI seleziona e restituisce il checkpoint con la migliore valutazione del modello delle prestazioni da tutti i checkpoint creati durante il job di ottimizzazione. Se impostato su "false", lo stato finale viene restituito il checkpoint creato durante il job di ottimizzazione. Ogni checkpoint fa riferimento a uno snapshot durante un job di ottimizzazione. - 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, verrà utilizzata una chiave di proprietà di Google e gestita da Google. R La chiave di proprietà di Google e gestita da Google viene utilizzata per impostazione predefinita in tutte le altre disponibili. Per ulteriori informazioni informazioni, consulta la panoramica di CMEK. - STEPS:
La
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, 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 sono presenti 240 esempi in un set di dati di addestramento e impostisteps
su 15, il numero di esempi di addestramento è il prodotto di 15 e la dimensione del batch di 8 o 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 La dimensione del passo a ogni iterazione. Il valore predefinito è 1.
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", "evaluation_data_uri": "EVAL_DATASET_URI", "evaluation_interval": "EVAL_INTERVAL", "enable_early_stopping": "ENABLE_EARLY_STOPPING", "enable_checkpoint_selection": "ENABLE_CHECKPOINT_SELECTION", "tensorboard_resource_id": "TENSORBOARD_RESOURCE_ID", "location": "MODEL_UPLOAD_REGION", "accelerator_type": "ACCELERATOR_TYPE", "large_model_reference": "code-bison@002", "train_steps": STEPS, "learning_rate_multiplier": LEARNING_RATE_MULTIPLIER } } "templateUri": "https://us-kfp.pkg.dev/ml-pipeline/large-language-model-pipelines/tune-large-model/v3.0.0" }
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
.
ed esegui questo comando:
$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.
Console
Per ottimizzare una generazione di codice o un modello di chat del codice con l'ottimizzazione supervisionata, utilizza nella console Google Cloud, segui questi passaggi:
- Nella sezione Vertex AI della console Google Cloud, vai a la pagina Vertex AI Studio.
- Fai clic sulla scheda Ottimizzazione e distillazione.
- Fai clic su Crea modello ottimizzato.
- Fai clic su Ottimizzazione supervisionata.
- Configura i dettagli del modello:
- Nome del modello ottimizzato: inserisci un nome per il modello ottimizzato.
- Modello di base: seleziona il modello che vuoi ottimizzare.
- 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 output: Inserisci il percorso di Cloud Storage in cui sono 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. 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, 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 sono presenti 240 esempi in un set di dati di addestramento e impostisteps
su 15, il numero di esempi di addestramento è il prodotto di 15 e la dimensione del batch di 8 o 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 il dimensione del passo a ogni iterazione. Il valore predefinito è 1.
- Tipo di acceleratore:
(Facoltativo) Inserisci il
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 avere un numero sufficiente di video quota. 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
, l'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 è supportata, ma VPC‑SC è supportato. Se scegliTPU
, i calcoli di ottimizzazione del modello vengono eseguiti Regioneeurope-west4
.
- Aggiungi un'istanza TensorBoard: (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.
- Crittografia
(Facoltativo) Scegli se utilizzare una chiave di proprietà e gestita da Google o una chiave di crittografia gestita dal cliente
(CMEK). Una CMEK è disponibile per la crittografia solo nella regione
us-central1
. In tutte le altre regioni disponibili, viene utilizzata una chiave di proprietà e gestita da Google. Per ulteriori informazioni, vedi Panoramica di CMEK. - Account di servizio (Facoltativo) 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, allora 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. Il batch
variano in base alla località di ottimizzazione e alle dimensioni del modello. Per i modelli 8K, come
- Fai clic su Continua.
- Se vuoi caricare il file del tuo set di dati, 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 archiviare i tuoi del set di dati.
Usa un file JSONL esistente
In Percorso file di Cloud Storage, fai clic su Sfoglia e seleziona il bucket Cloud Storage in cui si trova il file del set di dati individuarlo.
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 ottimizzato, seleziona Abilita modello
valutazione e configura la valutazione del modello:
- .
- Set di dati di valutazione:
(Facoltativo) L'URI del file JSONL che contiene il set di dati di valutazione per la previsione batch e
la valutazione delle prestazioni. 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
) Un valoreboolean
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.
- ID TensorBoard: (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.
- Set di dati di valutazione:
(Facoltativo) L'URI del file JSONL che contiene il set di dati di valutazione per la previsione batch e
la valutazione delle prestazioni. La valutazione non è supportata per
- Fai clic su Avvia ottimizzazione.
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.
Comando curl di esempio per ottimizzare un modello di generazione del codice
PROJECT_ID=myproject
DATASET_URI=gs://my-gcs-bucket-uri/dataset
EVAL_DATASET_URI=gs://cloud-samples-data/vertex-ai/model-evaluation/eval_sample.jsonl
OUTPUT_DIR=gs://my-gcs-bucket-uri/output
ACCELERATOR_TYPE=GPU
LOCATION=us-central1
curl \
-X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
"https://${REGION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${REGION}/pipelineJobs?pipelineJobId=tune-large-model-$(date +%Y%m%d%H%M%S)" -d \
$'{
"displayName": "'${PIPELINE_NAME}'",
"runtimeConfig": {
"gcsOutputDirectory": "'${OUTPUT_DIR}'",
"parameterValues": {
"project": "'${PROJECT_ID}'",
"model_display_name": "The display name for your model in the UI",
"dataset_uri": "'${DATASET_URI}'",
"evaluation_data_uri:": "'${EVAL_DATASET_URI}'",
"location": "'${LOCATION}'",
"accelerator_type": "'${ACCELERATOR_TYPE}'",
"large_model_reference": "code-bison@002",
"learning_rate_multiplier": 1,
"train_steps": 300
}
},
"templateUri": "https://us-kfp.pkg.dev/ml-pipeline/large-language-model-pipelines/tune-large-model/v3.0.0"
}'
Crea un job di ottimizzazione del modello di chat del codice
Di seguito viene illustrato come creare un job di ottimizzazione del modello di chat del codice utilizzando la console Google Cloud o i comandi dell'API REST.
REST
Per creare un job di ottimizzazione del modello di chat del codice, invia una richiesta POST utilizzando il metodo pipelineJobs.
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- PROJECT_ID: il tuo ID progetto.
- TUNINGPIPELINE_DISPLAYNAME: un display del job della pipeline.
- OUTPUT_DIR: l'URI del bucket di cui eseguire l'output degli artifacs della pipeline.
- PIPELINE_JOB_REGION:
La regione in cui viene eseguito il job di ottimizzazione della pipeline. Questa è anche la regione predefinita per la posizione
viene caricato il modello. Se vuoi caricare il modello in una regione diversa, utilizza il metodo
Parametro
location
per specificare la regione di caricamento del modello ottimizzato. Per ulteriori informazioni, vedi Regione del job di pipeline. - MODEL_UPLOAD_REGION: (Facoltativo) La regione in cui viene caricato il modello ottimizzato. Se non specifichi una regione per il caricamento del modello, il modello ottimizzato viene caricato nella stessa regione in cui viene eseguito il job della pipeline. Per ulteriori informazioni, vedi Regione di caricamento 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 avere un numero sufficiente di video quota. Se scegliGPU
, quindi VPC‑SC è supportato. CMEK è supportata se l'ottimizzazione la località e la località di caricamento del modello sonous-centra1
. Per maggiori informazioni, vedi Regione di ottimizzazione supervisionata impostazioni. Se scegliGPU
, i calcoli di ottimizzazione del modello vengono eseguiti regioneus-central1
.TPU
: utilizza 64 core del pod TPU v3 per l'ottimizzazione. Assicurati di avere un numero sufficiente di video quota. CMEK non è supportata, ma VPC‑SC è supportato. Se scegliTPU
, i calcoli di ottimizzazione del modello vengono eseguiti Regioneeurope-west4
.
- MODEL_DISPLAYNAME: un nome visualizzato per modello caricato (creato) da pipelineJob.
- DATASET_URI: URI del file del set di dati.
- 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, verrà utilizzata una chiave di proprietà di Google e gestita da Google. R La chiave di proprietà di Google e gestita da Google viene utilizzata per impostazione predefinita in tutte le altre disponibili. Per ulteriori informazioni informazioni, consulta la panoramica di CMEK. - DEFAULT_CONTEXT: il
contesto che si applica a tutti gli esempi di ottimizzazione nel set di dati di ottimizzazione. Impostazione del campo
context
in un esempio sostituisce il contesto predefinito. - STEPS:
La
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, 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 sono presenti 240 esempi in un set di dati di addestramento e impostisteps
su 15, il numero di esempi di addestramento è il prodotto di 15 e la dimensione del batch di 8 o 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: La dimensione del passo a ogni iterazione. Il valore predefinito è 1.
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", "tensorboard_resource_id": "TENSORBOARD_RESOURCE_ID", "location": "MODEL_UPLOAD_REGION", "accelerator_type": "ACCELERATOR_TYPE", "large_model_reference": "codechat-bison@002", "default_context": "DEFAULT_CONTEXT", "train_steps": STEPS, "learning_rate_multiplier": LEARNING_RATE_MULTIPLIER } }, "templateUri": "https://us-kfp.pkg.dev/ml-pipeline/large-language-model-pipelines/tune-large-chat-model/v3.0.0" }
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
.
ed esegui questo comando:
$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.
Console
Per ottimizzare una generazione di codice o un modello di chat del codice con l'ottimizzazione supervisionata, utilizza nella console Google Cloud, segui questi passaggi:
- Nella sezione Vertex AI della console Google Cloud, vai a la pagina Vertex AI Studio.
- Fai clic sulla scheda Ottimizzazione e distillazione.
- Fai clic su Crea modello ottimizzato.
- Fai clic su Ottimizzazione supervisionata.
- Configura i dettagli del modello:
- Nome del modello ottimizzato: inserisci un nome per il modello ottimizzato.
- Modello di base: seleziona il modello che vuoi ottimizzare.
- 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 output: Inserisci il percorso di Cloud Storage in cui sono 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. 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, 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 sono presenti 240 esempi in un set di dati di addestramento e impostisteps
su 15, il numero di esempi di addestramento è il prodotto di 15 e la dimensione del batch di 8 o 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 il dimensione del passo a ogni iterazione. Il valore predefinito è 1.
- Tipo di acceleratore:
(Facoltativo) Inserisci il
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 avere un numero sufficiente di video quota. 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
, l'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 è supportata, ma VPC‑SC è supportato. Se scegliTPU
, i calcoli di ottimizzazione del modello vengono eseguiti Regioneeurope-west4
.
- Aggiungi un'istanza TensorBoard: (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.
- Crittografia
(Facoltativo) Scegli se utilizzare una chiave di proprietà e gestita da Google o una chiave di crittografia gestita dal cliente
(CMEK). Una CMEK è disponibile per la crittografia solo nella regione
us-central1
. In tutte le altre regioni disponibili, viene utilizzata una chiave di proprietà e gestita da Google. Per ulteriori informazioni, vedi Panoramica di CMEK. - Account di servizio (Facoltativo) 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, allora 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. Il batch
variano in base alla località di ottimizzazione e alle dimensioni del modello. Per i modelli 8K, come
- Fai clic su Continua.
- Se vuoi caricare il file del tuo set di dati, 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 archiviare i tuoi del set di dati.
Usa un file JSONL esistente
In Percorso file di Cloud Storage, fai clic su Sfoglia e seleziona il bucket Cloud Storage in cui si trova il file del set di dati individuarlo.
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 ottimizzato, seleziona Abilita modello
valutazione e configura la valutazione del modello:
- .
- Set di dati di valutazione:
(Facoltativo) L'URI del file JSONL che contiene il set di dati di valutazione per la previsione batch e
la valutazione delle prestazioni. 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
) Un valoreboolean
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.
- ID TensorBoard: (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.
- Set di dati di valutazione:
(Facoltativo) L'URI del file JSONL che contiene il set di dati di valutazione per la previsione batch e
la valutazione delle prestazioni. La valutazione non è supportata per
- Fai clic su Avvia ottimizzazione.
Comando curl di esempio per ottimizzare un modello di chat del codice
PROJECT_ID=myproject
DATASET_URI=gs://my-gcs-bucket-uri/dataset
OUTPUT_DIR=gs://my-gcs-bucket-uri/output
ACCELERATOR_TYPE=GPU
LOCATION=us-central1
curl \
-X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
"https://${REGION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${REGION}/pipelineJobs?pipelineJobId=tune-large-chat-model-$(date +%Y%m%d%H%M%S)" -d \
$'{
"displayName": "'${PIPELINE_NAME}'",
"runtimeConfig": {
"gcsOutputDirectory": "'${OUTPUT_DIR}'",
"parameterValues": {
"project": "'${PROJECT_ID}'",
"model_display_name": "your-model-display-name",
"dataset_uri": "'${DATASET_URI}'",
"location": "'${LOCATION}'",
"large_model_reference": "codechat-bison@002",
"train_steps": 300,
"learning_rate_multiplier": 1,
"encryption_spec_key_name": "projects/myproject/locations/us-central1/keyRings/sample-key/cryptoKeys/sample-key"
}
},
"encryptionSpec": {
"kmsKeyName": "projects/myproject/locations/us-central1/keyRings/sample-key/cryptoKeys/sample-key"
"templateUri": "https://us-kfp.pkg.dev/ml-pipeline/large-language-model-pipelines/tune-large-chat-model/v3.0.0"
}'
Configurazioni di ottimizzazione consigliate per i modelli di codice
La tabella seguente mostra le configurazioni consigliate per l'ottimizzazione di un codice modello per attività:
Attività | N. di esempi nel set di dati | Passaggi di addestramento |
---|---|---|
Generazione del codice | 500+ | 200-1000 |
Chat di codice | 500+ | 200-1000 |
Per i passaggi di addestramento, puoi provare più di un valore per ottenere il miglior rendimento su per uno specifico set di dati, ad esempio 100, 200, 500.
Visualizza un elenco di modelli ottimizzati
Puoi utilizzare la console Google Cloud o l'SDK Vertex AI per Python per visualizzare un elenco modelli di codice ottimizzati nel progetto attuale.
Visualizza un elenco di modelli di codice ottimizzati (console)
Per visualizzare i tuoi modelli ottimizzati di chat di codice e generazione del codice nella Nella console Google Cloud, vai alla pagina Vertex AI Model Registry.
Vai al registro dei modelli di Vertex AI
Visualizza un elenco di modelli ottimizzati di generazione del codice (SDK)
Il codice campione seguente utilizza l'SDK Vertex AI per Python per elencare il codice ottimizzato nel tuo progetto attuale:
import vertexai from vertexai.preview.language_models import CodeGenerationModel model = CodeGenerationModel.from_pretrained("code-bison@002").list_tuned_model_names()
Visualizza un elenco di modelli di chat del codice ottimizzati (SDK)
Il codice campione seguente utilizza l'SDK Vertex AI per Python per elencare il codice ottimizzato modelli di chat del tuo progetto attuale:
import vertexai from vertexai.preview.language_models import CodeChatModel model = CodeChatModel.from_pretrained("codechat-bison@002").list_tuned_model_names()
Carica un modello ottimizzato
Puoi utilizzare l'SDK Vertex AI per Python per caricare un modello di codice ottimizzato.
Carica un modello ottimizzato di generazione del codice
Il codice campione seguente utilizza l'SDK Vertex AI per Python per caricare un codice ottimizzato
di pre-elaborazione. Nel codice campione, sostituisci
TUNED_MODEL_NAME
con il nome risorsa qualificato di
del modello ottimizzato. Questo nome è nel formato
projects/PROJECT_ID/locations/LOCATION/models/MODEL_ID
.
Puoi trovare l'ID del modello ottimizzato in
Vertex AI Model Registry.
import vertexai from vertexai.preview.language_models import CodeGenerationModel model = CodeGenerationModel.get_tuned_model(TUNED_MODEL_NAME)
Carica un modello ottimizzato di chat del codice
Il codice campione seguente utilizza l'SDK Vertex AI per Python per caricare un codice ottimizzato modello di chat:
import vertexai from vertexai.preview.language_models import CodeChatModel model = CodeChatModel.get_tuned_model(TUNED_MODEL_NAME)
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 di 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 una fase 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. Questo misura l'accuratezza dei token previsti rispetto alla metrica basato su 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 di valutazione quando si crea il job di ottimizzazione, solo le visualizzazioni le metriche di ottimizzazione sono disponibili.
Quota
I job di ottimizzazione in us-central1
utilizzano otto GPU A100 da 80 GB.
I job di ottimizzazione in europe-west4
utilizzano 64 core dell'TPU v3 pod
risorsa di addestramento di modelli personalizzati.
Se non disponi di quota sufficiente o vuoi eseguire più in job simultanei di ottimizzazione nel tuo progetto Google Cloud, devi per richiedere una quota aggiuntiva:
Per
us-central1
, invia una richiesta perRestricted image training Nvidia A100 80 GB GPUs per region
nella regioneus-central1
in multipli di otto.Per
europe-west4
, invia una richiesta perRestricted image training TPU V3 pod cores per region
nella regioneeurope-west4
in multipli di 64.
Passaggi successivi
- Per un numero maggiore di modelli, funzionalità avanzate e la possibilità di trascrivere file fino al otto ore, vedi Speech-to-Text.