Le strategie di progettazione dei prompt, come i prompt 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 vuoi iniziare l'ottimizzazione, prova la tutorial sull'ottimizzazione. Se vuoi una presentazione più generale della personalizzazione degli LLM per casi d'uso specifici, consulta LLM: ottimizzazione, distillazione e progettazione dei 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 per l'attività specifica. Il processo di ottimizzazione prevede l'addestramento del modello contenente molti esempi dell'attività. Per attività di nicchia, puoi ottenere miglioramenti significativi nelle prestazioni del modello, grazie alla sua messa a punto di esempi. Questo tipo di ottimizzazione del modello è a volte indicato come perfezionamento supervisionato, per distinguerlo da altri tipi di ottimizzazione.
I dati di addestramento devono essere strutturati come esempi con input di prompt e gli output di risposta previsti. Puoi anche ottimizzare i modelli utilizzando direttamente dati di esempio 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 quindi 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 l'ottimizzazione, hai bisogno di un set di dati per ottimizzare il modello. Per un rendimento ottimale, 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 alla produzione prevista per via del traffico. 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
si trovava in un esempio nel set di dati.
Come altro esempio, ecco i dati di addestramento Python per un'applicazione genera il numero successivo in 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 un preambolo a ogni esempio nel set di dati può essere utile a migliorare le prestazioni del modello ottimizzato. Tieni presente che se un prompt o un preambolo nel set di dati, dovrebbe essere incluso anche nel prompt del modello modello al momento dell'inferenza.
Limitazioni
Nota: la messa a punto dei set di dati per Gemini 1.5 Flash presenta 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 solo 20 esempi. Dati aggiuntivi migliora generalmente 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à | N. di esempi nel set di dati |
---|---|
Classificazione | 100+ |
Riassunto | 100-500+ |
Ricerca documenti | 100+ |
Carica il tuo set di dati di 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 al
training_data
argomento. Consulta le
guida rapida all'ottimizzazione con cURL
per iniziare.
Impostazioni di ottimizzazione avanzate
Quando crei un job di ottimizzazione, puoi specificare le seguenti impostazioni avanzate:
- Epoche: un passaggio di addestramento completo dell'intero set di addestramento in modo che ogni esempio sia stato elaborato una volta.
- Dimensione 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 un tasso di apprendimento pari a 0,3 regoli ponderazioni e bias il triplo in modo potente rispetto a un tasso di apprendimento pari a 0,1. I tassi di apprendimento elevati e bassi 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 ad appiattirsi prima di 5 epoche, utilizza un valore più basso. Se la perdita converge e non sembra stabilizzarsi, utilizza un valore più alto. |
Dimensione del batch | 4 | |
Tasso di apprendimento | 0,001 | Utilizza un valore inferiore per set di dati più piccoli. |
La curva di perdita mostra quanto la previsione del modello si discosta dall'ideale
le previsioni 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.
Controlla lo stato del job di ottimizzazione
Puoi controllare lo stato del tuo job di ottimizzazione in Google AI Studio nella sezione
La mia libreria o utilizzando la proprietà metadata
del modello ottimizzato nella
dell'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 tramite l'API e la libreria client richiede l'autenticazione. Puoi configura l'autenticazione utilizzando una chiave API (opzione consigliata) o OAuth e credenziali. Per la documentazione sulla configurazione di una chiave API, consulta Impostazione della 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 l'operazione 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 hanno 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.
- È supportato solo l'input di testo.
Passaggi successivi
Inizia con i tutorial sulla messa a punto: