Panoramica dell'ottimizzazione dei modelli

L'ottimizzazione di un modello di base può migliorarne le prestazioni. I modelli di base vengono addestrati per uso generico e a volte non eseguono le attività come vorresti. Ciò potrebbe essere dovuto al fatto che le attività che vuoi che il modello esegua sono attività specializzate che sono difficili da addestrare a un modello utilizzando solo la progettazione dei prompt.

In questi casi, puoi utilizzare l'ottimizzazione per migliorare le prestazioni di un modello per attività specifiche. L'ottimizzazione del modello può anche aiutare a soddisfare requisiti di output specifici quando le istruzioni non sono sufficienti. Questa pagina fornisce una panoramica dell'ottimizzazione del modello, descrive le opzioni di ottimizzazione disponibili su Vertex AI e ti aiuta a determinare quando utilizzare ogni opzione di ottimizzazione.

Panoramica dell'ottimizzazione del modello

L'ottimizzazione funziona fornendo un modello con un set di dati di addestramento che contiene molti esempi di attività uniche. Per attività uniche o di nicchia, puoi ottenere miglioramenti significativi nelle prestazioni del modello ottimizzandolo su un numero modesto di esempi. Dopo aver ottimizzato un modello, sono necessari meno esempi nei prompt.

Vertex AI supporta i seguenti metodi per ottimizzare i modelli di base.

Gemini

Ottimizzazione supervisionata

L'ottimizzazione supervisionata per i modelli Gemini migliora le prestazioni del modello insegnandogli una nuova competenza. I dati che contengono centinaia di esempi etichettati vengono utilizzati per insegnare al modello a imitare un'attività o un comportamento desiderato. Ogni esempio etichettato mostra cosa vuoi che il modello restituisca durante l'inferenza.

Quando esegui un job di ottimizzazione supervisionato, il modello apprende parametri aggiuntivi che lo aiutano a codificare le informazioni necessarie per eseguire l'attività voluta o scoprire il comportamento desiderato. Questi parametri vengono usati durante l'inferenza. L'output del job di ottimizzazione è un nuovo modello che combina i nuovi parametri appresi con il modello originale.

L'ottimizzazione supervisionata di un modello di testo è una buona opzione quando l'output del modello non è complesso e relativamente facile da definire. L'ottimizzazione supervisionata è consigliata per classificazione, analisi del sentiment, estrazione di entità, riassunto di contenuti non complessi e scrittura di query specifiche del dominio. Per i modelli di codice, l'ottimizzazione supervisionata è l'unica opzione.

PaLM

Ottimizzazione supervisionata

L'ottimizzazione supervisionata per i modelli PaLM migliora le prestazioni del modello insegnandogli una nuova competenza. I dati che contengono centinaia di esempi etichettati vengono utilizzati per insegnare al modello a imitare un'attività o un comportamento desiderato. Ogni esempio con etichetta mostra cosa vuoi che il modello restituisca durante l'inferenza.

Quando esegui un job di ottimizzazione supervisionato, il modello apprende parametri aggiuntivi che lo aiutano a codificare le informazioni necessarie per eseguire l'attività voluta o scoprire il comportamento desiderato. Questi parametri vengono usati durante l'inferenza. L'output del job di ottimizzazione è un nuovo modello che combina i nuovi parametri appresi con il modello originale.

L'ottimizzazione supervisionata di un modello di testo è una buona opzione quando l'output del modello non è complesso e relativamente facile da definire. L'ottimizzazione supervisionata è consigliata per classificazione, analisi del sentiment, estrazione di entità, riassunto di contenuti non complessi e scrittura di query specifiche del dominio. Per i modelli di codice, l'ottimizzazione supervisionata è l'unica opzione.

Ottimizzazione per rinforzo con feedback umano (RLHF)

L'apprendimento per rinforzo con feedback umano (RLHF) per i modelli PaLM utilizza preferenze specificate dagli utenti per ottimizzare un modello linguistico. Utilizzando il feedback umano per ottimizzare i tuoi modelli, puoi fare in modo che i modelli si allineino meglio alle preferenze umane e ridurre i risultati indesiderati in scenari in cui le persone hanno intuizioni complesse su un'attività. Ad esempio, RLHF può aiutare a risolvere un compito ambiguo, come scrivere una poesia sull'oceano, offrendo a un umano due poesie sull'oceano e lasciando che sia la persona a scegliere la sua preferita.

L'ottimizzazione RLHF è una buona opzione quando l'output del modello è complesso e non è facile da ottenere con l'ottimizzazione supervisionata. L'ottimizzazione RLHF è consigliata per la risposta alle domande, il riassunto di contenuti complessi e la creazione di contenuti, ad esempio una riscrittura. L'ottimizzazione RLHF non è supportata dai modelli di codice.

Distillazione di modelli

La distillazione dei modelli per i modelli PaLM è una buona opzione se hai un modello di grandi dimensioni da ridurre senza comprometterne la capacità. Il processo di distillazione di un modello crea un nuovo modello addestrato più piccolo, che costa meno da usare e ha una latenza minore rispetto al modello originale.

Suggerimenti per LoRA e QLoRA per gli LLM

Puoi anche usare l'adattamento a basso ranking dei modelli linguistici di grandi dimensioni (LoRA) per ottimizzare i modelli LLM di Vertex Vertex AI.

Questa sezione fornisce suggerimenti per l'utilizzo di LoRA e della sua versione più efficiente in termini di memoria, QLoRA.

Suggerimenti di ottimizzazione della LoRA

La seguente tabella riassume i suggerimenti per l'ottimizzazione degli LLM utilizzando LoRA o QLoRA:

Specifica Consigliato Dettagli
Efficienza della memoria GPU QLRA QLoRA ha un utilizzo massimo di memoria GPU inferiore di circa il 75% rispetto a LoRA.
Velocità LoRA LoRA è circa il 66% più veloce di QLoRA in termini di velocità di ottimizzazione.
Efficienza in termini di costi LoRA Sebbene entrambi i metodi siano relativamente economici, LoRA costa fino al 40% in meno rispetto a QLoRA.
Maggiore lunghezza massima della sequenza QLRA Una lunghezza massima della sequenza aumenta il consumo della memoria della GPU. QLoRA utilizza meno memoria GPU, quindi può supportare lunghezze massime delle sequenze più elevate.
Miglioramento dell'accuratezza Uguale Entrambi i metodi offrono miglioramenti simili in termini di precisione.
Maggiori dimensioni del batch QLRA QLoRA supporta dimensioni batch molto più elevate. Ad esempio, di seguito sono riportati suggerimenti sulle dimensioni del batch per l'ottimizzazione di openLLaMA-7B sulle seguenti GPU:
  • 1 A100 40G:
    • LoRA: è consigliata una dimensione del batch pari a 2.
    • QLoRA: è consigliata una dimensione del batch pari a 24.
  • 1 L4:
    • LoRA: la dimensione del batch 1 non riesce a causa di un errore di memoria insufficiente (OOM).
    • QLoRA: si consiglia una dimensione del batch pari a 12.
  • 1 V100:
    • LoRA: la dimensione del batch 1 non riesce a causa di un errore di memoria insufficiente (OOM).
    • QLoRA: è consigliata una dimensione del batch pari a 8.

Passaggi successivi