Le strategie di progettazione dei prompt, come quelle di tipo few-shot, potrebbero non produrre sempre i risultati di cui hai bisogno. La ottimizzazione fine è un processo che può migliorare le prestazioni del modello in attività specifiche o aiutarlo a soddisfare requisiti specifici di output quando le istruzioni non sono sufficienti e hai un insieme di esempi che mostrano gli output che ti interessano.
Questa pagina fornisce una panoramica concettuale della messa a punto del modello di testo alla base del servizio di testo dell'API Gemini. Quando è tutto pronto per iniziare la sintonizzazione, prova il tutorial sulla messa a punto fine. Se vuoi un'introduzione più generale alla personalizzazione degli LLM per casi d'uso specifici, consulta LLM: ottimizzazione, distillazione e progettazione di prompt nel corso introduttivo al machine learning.
Come funziona la messa a punto fine
L'obiettivo del perfezionamento è migliorare ulteriormente le prestazioni del modello per un'attività specifica. La messa a punto fornisce al modello un set di dati di addestramento contenente molti esempi dell'attività. Per attività di nicchia, puoi ottenere miglioramenti significativi nelle prestazioni del modello ottimizzandolo sulla base di un numero modesto di esempi. Questo tipo di ottimizzazione del modello è a volte definito ottimizzazione fine supervisionata per distinguerlo da altri tipi di ottimizzazione fine.
I dati di addestramento devono essere strutturati come esempi con input prompt e output di risposta previsti. Puoi anche ottimizzare i modelli utilizzando dati di esempio direttamente in Google AI Studio. L'obiettivo è insegnare al modello a imitare il comportamento o l'attività desiderati fornendogli molti esempi che li illustrano.
Quando esegui un job di ottimizzazione, il modello apprende parametri aggiuntivi che lo aiutano a codificare le informazioni necessarie per eseguire l'attività desiderata o apprendere il comportamento desiderato. Questi parametri possono essere utilizzati al momento dell'inferenza. L'output del job di ottimizzazione è un nuovo modello, che è in pratica una combinazione dei parametri appena appresi e del modello originale.
Prepara il set di dati
Prima di poter iniziare la messa a punto, devi avere un set di dati con cui ottimizzare il modello. Per ottenere il miglior rendimento, gli esempi nel set di dati devono essere di alta qualità, diversi e rappresentativi di input e output reali.
Formato
Gli esempi inclusi nel 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 può riconoscere il pattern, anche se la domanda esatta fosse presente in un esempio del set di dati.
Ecco un altro esempio di dati di addestramento di Python per un'applicazione che genera il numero successivo di una sequenza:
training_data = [
{"text_input": "1", "output": "2"},
{"text_input": "3", "output": "4"},
{"text_input": "-3", "output": "-2"},
{"text_input": "twenty two", "output": "twenty three"},
{"text_input": "two hundred", "output": "two hundred one"},
{"text_input": "ninety nine", "output": "one hundred"},
{"text_input": "8", "output": "9"},
{"text_input": "-98", "output": "-97"},
{"text_input": "1,000", "output": "1,001"},
{"text_input": "10,100,000", "output": "10,100,001"},
{"text_input": "thirteen", "output": "fourteen"},
{"text_input": "eighty", "output": "eighty one"},
{"text_input": "one", "output": "two"},
{"text_input": "three", "output": "four"},
{"text_input": "seven", "output": "eight"},
]
Anche l'aggiunta di un prompt o di un preambolo a ogni esempio del set di dati può contribuire a migliorare il rendimento del modello ottimizzato. Tieni presente che se un prompt o un preambolo è incluso nel set di dati, deve essere incluso anche nel prompt del modello ottimizzato al momento dell'inferenza.
Limitazioni
Nota:i set di dati di ottimizzazione fine per Gemini 1.5 Flash presentano le seguenti limitazioni:
- La dimensione massima dell'input per esempio è 40.000 caratteri.
- La dimensione massima dell'output per esempio è di 5000 caratteri.
Dimensione dei dati di addestramento
Puoi ottimizzare un modello con un minimo di 20 esempi. I dati aggiuntivi in genere migliorano la qualità delle risposte. Scegli come target un numero compreso tra 100 e 500 esempi, a seconda dell'applicazione. La tabella seguente mostra le dimensioni consigliate dei set di dati per la messa a punto di un modello di testo per varie attività comuni:
Attività | Numero di esempi nel set di dati |
---|---|
Classificazione | 100+ |
Riassunto | 100-500+ |
Ricerca nei documenti | 100+ |
Carica il set di dati per l'ottimizzazione
I dati vengono trasmessi in linea utilizzando l'API o tramite i file caricati in Google AI Studio.
Per utilizzare la libreria client, fornisci il file di dati nella chiamata createTunedModel
.
La dimensione massima consentita per il file è 4 MB. Per iniziare, consulta la guida rapida all'ottimizzazione fine con Python.
Per chiamare l'API REST utilizzando cURL, fornisci esempi di addestramento in formato JSON all'argomento
training_data
. Per iniziare, consulta la guida rapida alla regolazione con cURL.
Impostazioni di ottimizzazione avanzata
Quando crei un processo di ottimizzazione, puoi specificare le seguenti impostazioni avanzate:
- Epoche: un passaggio di addestramento completo sull'intero set di addestramento in modo che ogni esempio sia stato elaborato una volta.
- Dimensione del batch:l'insieme di esempi utilizzati in un'iterazione di addestramento. La dimensione del batch determina il numero di esempi in un batch.
- Tasso di apprendimento:un numero in virgola mobile che indica all'algoritmo con quale intensità regolare i parametri del modello a ogni iterazione. Ad esempio, un tasso di apprendimento di 0,3 modificherebbe i pesi e i bias tre volte più potentemente di un tasso di apprendimento di 0,1. I tassi di apprendimento elevati e ridotti hanno ciascuno i propri compromessi e devono essere regolati in base al caso d'uso.
- Moltiplicatore del tasso di apprendimento:il moltiplicatore del tasso modifica il tasso di apprendimento originale del modello. Un valore pari a 1 utilizza il tasso di apprendimento originale del modello. I valori maggiori di 1 aumentano il tasso di apprendimento, mentre quelli compresi tra 1 e 0 lo riducono.
Configurazioni consigliate
La tabella seguente mostra le configurazioni consigliate per perfezionare un modello di base:
Iperparametro | Valore predefinito | Modifiche consigliate |
---|---|---|
Epoca | 5 |
Se la perdita inizia a stabilizzarsi prima di 5 epoche, utilizza un valore inferiore. Se la perdita è in fase di convergenza e non sembra raggiungere un plateau, utilizza un valore più alto. |
Dimensione del batch | 4 | |
Tasso di apprendimento | 0,001 | Utilizza un valore più piccolo per set di dati più piccoli. |
La curva di perdita mostra quanto la previsione del modello si discosta dalle predizioni ideali negli esempi di addestramento dopo ogni epoca. Idealmente, dovresti interrompere l'addestramento nel punto più basso della curva, appena prima che raggiunga il plateau. Ad esempio,
il grafico seguente mostra che la curva di perdita raggiunge un plateau intorno all'epoca 4-6, il che significa
che puoi impostare il parametro Epoch
su 4 e ottenere comunque lo stesso rendimento.
Controllare lo stato del job di ottimizzazione
Puoi controllare lo stato del tuo job di ottimizzazione in Google AI Studio nella scheda
La mia raccolta o utilizzando la proprietà metadata
del modello ottimizzato nell'
API Gemini.
Risolvere gli errori
Questa sezione include suggerimenti su come risolvere gli errori che potresti riscontrare durante la creazione del modello ottimizzato.
Autenticazione
La regolazione mediante l'API e la libreria client richiede l'autenticazione. Puoi configurare l'autenticazione utilizzando una chiave API (opzione consigliata) o le credenziali OAuth. Per la documentazione sulla configurazione di una chiave API, consulta Configurare la chiave API.
Se viene visualizzato un errore 'PermissionDenied: 403 Request had insufficient authentication
scopes'
, potrebbe essere necessario configurare l'autenticazione degli utenti utilizzando le credenziali OAuth. Per configurare le credenziali OAuth per Python, consulta il nostro
tutorial sulla configurazione di OAuth.
Modelli annullati
Puoi annullare un job di ottimizzazione fine in qualsiasi momento prima del completamento. Tuttavia, le prestazioni di inferenza di un modello annullato sono imprevedibili, in particolare se il job di ottimizzazione viene annullato all'inizio dell'addestramento. Se hai annullato perché vuoi interrompere l'addestramento in un'epoca precedente, devi creare un nuovo job di ottimizzazione e impostare l'epoca su un valore inferiore.
Limitazioni dei modelli ottimizzati
Nota:i modelli ottimizzati presentano le seguenti limitazioni:
- Il limite di input di un modello Gemini 1.5 Flash ottimizzato è 40.000 caratteri.
- La modalità JSON non è supportata con i modelli ottimizzati.
- L'istruzione di sistema non è supportata con i modelli ottimizzati.
- È supportato solo l'inserimento di testo.
Passaggi successivi
Inizia con i tutorial sulla messa a punto: