Regolazione fine dell'adattamento a basso rango ( LoRA )
L'adattamento a basso rango ( LoRA ) adatta un modello di base per un compito modificando i pesi di un sottoinsieme rappresentativo dei parametri del modello, chiamati adattatori a basso rango, invece dei pesi del modello di base durante la messa a punto. Al momento dell'inferenza, i pesi degli adattatori sintonizzati vengono aggiunti ai pesi del modello di base per generare un output sintonizzato per un compito.
Come funziona la sintonizzazione dell'adattamento a basso rango ( LoRA )
L'adattamento a basso rango ( LoRA ) è una tecnica di messa a punto efficiente dei parametri (PEFT) che aggiunge un sottoinsieme di parametri al modello di base congelato e aggiorna il sottoinsieme durante l'esperimento di messa a punto, senza modificare i parametri del modello di base. Quando il modello di base sintonizzato viene inferenziato, i nuovi pesi dei parametri del sottoinsieme vengono aggiunti ai pesi dei parametri del modello di base per generare un output personalizzato per un compito.
Il modo in cui viene creato il sottoinsieme di parametri implica una certa matematica. Ricordiamo che la rete neurale di un modello di fondazione è composta da strati, ciascuno con una matrice complessa di parametri. Questi parametri hanno valori di peso che vengono impostati durante l'addestramento iniziale del modello di fondazione. Il sottoinsieme di parametri utilizzati per la messa a punto di LoRA viene ricavato applicando la decomposizione di rango ai pesi del modello di base. Il rango di una matrice indica il numero di vettori della matrice che sono linearmente indipendenti tra loro. La decomposizione di rango, nota anche come decomposizione di matrice, è un metodo matematico che utilizza queste informazioni di rango per rappresentare la matrice originale in due matrici più piccole che, una volta moltiplicate, formano una matrice della stessa dimensione della matrice originale. Con questo metodo, le due matrici più piccole catturano insieme i modelli e le relazioni chiave della matrice più grande, ma con meno parametri. Le matrici più piccole prodotte sono chiamate matrici a basso rango o adattatori a basso rango.
Durante un esperimento di sintonizzazione su LoRA, i valori dei pesi dei parametri del sottoinsieme - gli adattatori di basso rango - vengono regolati. Poiché gli adattatori hanno meno parametri, l'esperimento di messa a punto è più veloce e richiede meno risorse per memorizzare e calcolare le modifiche. Sebbene le matrici di adattamento manchino di alcune informazioni delle matrici del modello di base, il metodo di messa a punto di LoRA è efficace perché LoRA sfrutta il fatto che i modelli di fondazione di grandi dimensioni utilizzano in genere molti più parametri di quelli necessari per un compito.
L'output di un esperimento di messa a punto di LoRA è un insieme di adattatori che contengono nuovi pesi. Quando questi adattatori sintonizzati vengono moltiplicati, formano una matrice della stessa dimensione della matrice del modello di base. Al momento dell'inferenza, i nuovi pesi ottenuti dal prodotto degli adattatori vengono aggiunti direttamente ai pesi del modello di base per generare l'output ottimizzato.
È possibile configurare i parametri dell'esperimento di sintonizzazione di LoRA, ad esempio gli strati del modello di base da selezionare e il rango da utilizzare nella scomposizione delle matrici del modello di base. Per maggiori dettagli, vedere Parametri per la messa a punto dei modelli di fondazione.
Quando si distribuisce la risorsa adattatore, è necessario distribuire la risorsa in uno spazio di distribuzione in cui è distribuito anche il modello di base. È possibile utilizzare il metodo di regolazione fine LoRA in watsonx.ai per regolare solo i modelli di fondazione non quantizzati.
I vantaggi dell'utilizzo della tecnica di messa a punto di LoRA sono i seguenti:
- Gli adattatori più piccoli e addestrabili utilizzati dalla tecnica LoRA richiedono meno risorse di memoria e di calcolo durante la messa a punto.
- Gli aggiustamenti degli adattatori vengono applicati al momento dell'inferenza senza influenzare la lunghezza della finestra di contesto o la velocità delle risposte del modello.
- È possibile distribuire un modello di fondazione di base e utilizzare il modello con diversi adattatori per personalizzare gli output per diverse attività.
Flusso di lavoro per la messa a punto dell'adattamento a basso rango ( LoRA )
Durante l'esperimento di messa a punto LoRA, i pesi dei parametri di un sottoinsieme rappresentativo dei parametri del modello, chiamati adattatori di basso rango, vengono ripetutamente aggiustati in modo che le previsioni del modello di base messo a punto possano migliorare nel tempo.
Il diagramma seguente illustra le fasi di un esperimento di messa a punto LoRA.
Le parti del flusso dell'esperimento che si possono configurare sono evidenziate con un'icona utente . Questi punti di decisione corrispondono ai parametri di regolazione dell'esperimento controllati dall'utente. Vedere Parametri per la messa a punto dei modelli di fondazione.
Il diagramma mostra le seguenti fasi dell'esperimento:
L'esperimento legge i dati di addestramento, li tokenizza e li converte in batch.
La dimensione dei batch è determinata dal parametro batch size.
Vengono ideati adattatori a basso rango, che sono un sottoinsieme rappresentativo dei parametri del modello di base. I pesi iniziali degli adattatori a basso rango vengono applicati ai livelli del modello specificati nel parametro target_modules e sono calcolati in base al valore specificato per il parametro rank.
Invia l'input dagli esempi del batch agli adattatori LoRA e quindi al modello di fondazione per elaborare e generare l'output.
Confronta l'output del modello con l'output dei dati di addestramento che corrispondono ai dati di addestramento inviati. Quindi, calcola il gradiente di perdita, che è la differenza tra l'uscita prevista e l'uscita effettiva dai dati di addestramento.
L'esperimento regola i pesi dei parametri dell'adattatore LoRA in base alla perdita calcolata del modello. Il momento in cui si verifica questa regolazione dipende dalla configurazione del parametro Fasi di accumulo.
Le regolazioni vengono applicate ai pesi dei parametri degli adattatori di LoRA. Il grado di modifica dei pesi è controllato da una combinazione dei valori dei parametri tasso di apprendimento, alfa e abbandono.
L'input dell'esempio successivo nei dati di addestramento viene inviato all'adattatore LoRA come input. L'adattatore applica le ultime modifiche ai pesi e le aggiunge ai pesi del modello di base per adattarli al compito.
Il processo si ripete finché non vengono elaborati tutti gli esempi di tutti i lotti.
L'intero set di batch viene rielaborato per il numero di volte specificato nel parametro Numero di epoche.
Per saperne di più LoRA
- IBM.com: Che cos'è LoRA (adattamento a basso rango)?
- LoRA carta di ricerca
- Parametri per la messa a punto dei modelli di fondazione
Argomento principale: Metodi per la messa a punto dei modelli di fondazione