I parametri di sintonizzazione configurano gli esperimenti di sintonizzazione che si utilizzano per sintonizzare il modello di fondazione.
Per saperne di più sulle fasi che si svolgono durante un esperimento di messa a punto e su come i parametri che si possono configurare influenzano il processo.
Flusso di lavoro per la messa a punto dei prompt
Durante l'esperimento, il modello di ottimizzazione regola ripetutamente la struttura del prompt in modo che le sue previsioni possano migliorare nel tempo.
Il diagramma seguente illustra i passaggi che si verificano durante l'esecuzione di un esperimento di prompt-tuning. Le parti del flusso dell'esperimento che si possono configurare sono evidenziate da un'icona utente . Questi punti di decisione corrispondono ai parametri di ottimizzazione dell'esperimento controllati.
Il diagramma mostra i seguenti passi dell'esperimento:
Inizia dal metodo di inizializzazione che si sceglie di utilizzare per inizializzare il prompt.
Se il parametro metodo di inizializzazione è impostato su
text
, è necessario aggiungere il testo di inizializzazione.Se specificato, tokenizza il testo di inizializzazione e lo converte in un vettore di prompt.
Legge i dati di addestramento, li tokenizza e li converte in batch.
La dimensione dei batch è determinata dal parametro dimensione batch .
Invia l'input dagli esempi nel batch al modello di base affinché il modello elabori e generi l'output.
Confronta l'output del modello con l'output dei dati di training che corrispondono all'input dei dati di training inoltrati. Quindi, calcola il gradiente di perdita, che è la differenza tra l'output previsto e l'output effettivo dai dati di addestramento.
Ad un certo punto, l'esperimento regola il vettore di prompt che viene aggiunto all'input in base alla prestazione del modello. Quando si verifica questa regolazione dipende da come è stato configurato il parametro passi di accumulo .
Le regolazioni vengono applicate al vettore di prompt inizializzato nel passo 2. Il grado di modifica del vettore è controllato dal parametro Tasso di apprendimento . Il vettore di prompt modificato viene aggiunto come prefisso all'input dall'esempio successivo nei dati di addestramento e viene inoltrato come input al modello.
Il processo si ripete fino a quando non vengono elaborati tutti gli esempi in tutti i batch.
L'intera serie di batch viene elaborata nuovamente per il numero di volte specificato nel parametro Numero di epoche .
Parametri predefiniti per la messa a punto del prompt
I migliori valori degli iperparametri da utilizzare per un esperimento di prompt-tuning variano in base ai dati e al caso d'uso.
La tabella seguente riporta i valori dei parametri da utilizzare come punto di partenza per la messa a punto immediata di un modello di fondazione di terze parti.
Nome del parametro | Valore predefinito per flan-t5-xl-3b | Ulteriori informazioni |
---|---|---|
Metodo di inizializzazione | Casuale | Inizializzazione dell'ottimizzazione delle richieste |
Testo di inizializzazione | Nessuna | Inizializzazione dell'ottimizzazione delle richieste |
Dimensione del lotto | 16 | Segmentazione dei dati di formazione |
Passi di accumulo | 16 | Segmentazione dei dati di formazione |
Tasso di apprendimento | 0.3 | Gestione del tasso di apprendimento |
Numero di epoche (numero di cicli di addestramento) | 20 | Scelta del numero di esecuzioni di addestramento da completare |
I parametri predefiniti utilizzati per la messa a punto immediata del modello di fondazione granite-13b-instruct-v2 sono regolati in base al tipo di attività che si desidera svolgere con il modello messo a punto.
La tabella seguente riporta i valori dei parametri da utilizzare come punto di partenza per ogni tipo di attività supportata per la messa a punto del modello di fondazione granite-13b-instruct-v2.
Nome del parametro | Valore predefinito per la classificazione | Valore predefinito per la generazione | Valore predefinito per il riepilogo | Ulteriori informazioni |
---|---|---|---|---|
Dimensione del lotto | 8 | 16 | 8 | Segmentazione dei dati di formazione |
Passi di accumulo | 32 | 16 | 1 | Segmentazione dei dati di formazione |
Tasso di apprendimento | 0.0006 | 0.0002 | 0.0002 | Gestione del tasso di apprendimento |
Numero di epoche (numero di cicli di addestramento) | 20 | 20 | 40 | Scelta del numero di esecuzioni di addestramento da completare |
Descrizioni dei parametri
La tabella seguente descrive i parametri di sintonizzazione che è possibile personalizzare.
Nome del parametro | Descrizione | Opzioni di valore | Ulteriori informazioni |
---|---|---|---|
Metodo di inizializzazione (messa a punto rapida) | Specifica come inizializzare il vettore prompt. | Casuale, Testo | Inizializzazione dell'ottimizzazione delle richieste |
Testo di inizializzazione (sintonizzazione del prompt) | Testo da utilizzare come prompt per la prima esecuzione dell'esperimento. | – | Inizializzazione dell'ottimizzazione delle richieste |
Dimensione del lotto | Numero di esempi etichettati da elaborare in una sola volta. | 1-16 | Segmentazione dei dati di formazione |
Passi di accumulo | Numero di lotti da elaborare prima di effettuare le regolazioni. | 1-128 | Segmentazione dei dati di formazione |
Tasso di apprendimento | Determina l'ambito della modifica da apportare quando il modello viene regolato. | 0.00001–0.5 | Gestione del tasso di apprendimento |
Numero di epoche (numero di cicli di addestramento) | Numero di volte in cui scorrere i dati di addestramento. | 1-50 | Scelta del numero di esecuzioni di addestramento da completare |
Segmentazione dei dati di addestramento
Quando viene eseguito un esperimento, l'esperimento prima suddivide i dati di addestramento in batch più piccoli, quindi si allena su un batch alla volta. Ogni batch deve essere contenuto nella memoria GPU per essere elaborato. Per ridurre la quantità di memoria GPU necessaria, è possibile configurare l'esperimento di ottimizzazione per posticipare le regolazioni fino a quando non viene elaborato più di un batch. Il tuning viene eseguito su un batch e le sue metriche di prestazione vengono calcolate, ma non vengono apportate immediatamente modifiche. Invece, le informazioni sulle prestazioni vengono raccolte su un certo numero di batch prima che vengano valutate le metriche delle prestazioni cumulative.
Utilizzare i seguenti parametri per controllare il modo in cui i dati di addestramento vengono segmentati:
Dimensione batch Numero di esempi etichettati (noti anche come campioni) da elaborare contemporaneamente.
Ad esempio, per un dataset con 1.000 esempi e una dimensione batch di 10, il dataset è diviso in 100 batch di 10 esempi ciascuno.
Se il dataset di addestramento è piccolo, specificare una dimensione batch più piccola per garantire che ciascun batch abbia un numero sufficiente di esempi.
Fasi di accumulo: numero di lotti da elaborare prima di effettuare le regolazioni.
Ad esempio, se il set di dati è suddiviso in 100 lotti e si imposta il valore dei passi di accumulo su 10, le regolazioni vengono eseguite 10 volte invece di 100 volte.
Scelta del numero di esecuzioni di addestramento da completare
Il parametro Numero di epoche specifica il numero di volte in cui eseguire il ciclo dei dati di addestramento.
Ad esempio, con una dimensione del batch di 10 e un set di dati con 1.000 esempi, un'epoca deve elaborare 100 batch ed effettuare le regolazioni 100 volte. Se si imposta il numero di epoche su 20, il modello viene passato attraverso il dataset 20 volte, il che significa che elabora un totale di 2.000 batch durante il processo di ottimizzazione.
Maggiore è il numero di epoche e maggiori sono i dati di addestramento, maggiore è il tempo necessario per ottimizzare un modello.
Gestione del tasso di apprendimento
Il parametro velocità di apprendimento determina l'entità della modifica da apportare quando il modello viene regolato. Più alto è il numero, maggiore è il cambiamento.
Inizializzazione del prompt
Quando si crea un esperimento di regolazione del prompt, si può scegliere se specificare il proprio testo come vettore del prompt iniziale o lasciare che l'esperimento lo generi per voi. Questi nuovi token avviano il processo di addestramento in posizioni casuali o in base all'inserimento di un vocabolario o di un'istruzione che specifichi nel testo. Gli studi dimostrano che, man mano che la dimensione del modello sottostante cresce oltre 10 miliardi di parametri, il metodo di inizializzazione utilizzato diventa meno importante.
La scelta effettuata quando si crea l'esperimento di ottimizzazione personalizza il modo in cui viene inizializzato il prompt.
Metodo di inizializzazione: scegliere un metodo dalle opzioni seguenti:
- Testo: il metodo Ottimizzazione prompt viene utilizzato quando si specifica il testo di inizializzazione del prompt stesso.
- Casuale: viene utilizzato il metodo di ottimizzazione del prompt che consente all'esperimento di aggiungere valori scelti casualmente da includere nel prompt.
Testo di inizializzazione: il testo che vuoi aggiungere. Specificare una descrizione dell'attività o istruzioni simili a quelle utilizzate per la richiesta zero - shot.
Ulteriori informazioni
Argomento principale: Ottimizzazione di un modello