Ottimizzazione di LLM e modelli di AI

I modelli linguistici di grandi dimensioni (LLM) sono strumenti potenti che possono aiutare a svolgere molte attività diverse, dalla scrittura di email alla risposta a domande complesse. A volte, però, questi modelli non comprendono esattamente ciò che devono fare per il tuo progetto specifico. È qui che entra in gioco l'ottimizzazione. È come insegnare a uno studente intelligente le competenze specifiche di cui ha bisogno per un determinato lavoro.

Ottimizzazione di Gemini con Google AI Studio

Che cos'è l'ottimizzazione?

L'ottimizzazione prevede l'ulteriore addestramento di un LLM preaddestrato su un set di dati specifico per l'attività (un processo di apprendimento per trasferimento). Pensa a un modello preaddestrato che ha già appreso molte informazioni generali e che viene messo a punto per specializzarsi in un'area particolare.

Quando eseguire l'ottimizzazione e quando usare RAG

L'ottimizzazione e la Retrieval Augmented Generation (RAG) sono due modi diversi per adattare gli LLM a usi specifici. La scelta del metodo giusto dipende da fattori come il tipo di attività, la disponibilità di dati sufficienti e l'obiettivo che si vuole raggiungere.

Tecnica


Differenza principale


Vantaggi

Challenges

Ottimizzazione

Modifica il parametro del modello.

Maggiore accuratezza, maggiore specificità, riduzione delle allucinazioni, interazioni personalizzate, convenienza, riduzione dei bias.

Rischio di "oblio catastrofico", costi delle risorse più elevati, maggiori esigenze di dati e potenziale "overfitting".

RAG


Potenzia i prompt con conoscenze esterne.

Integrazione dinamica delle conoscenze, pertinenza contestuale, versatilità, minore necessità di una formazione approfondita.

Accuratezza limitata (ad esempio, la RAG può fare riferimento solo ai dati a cui ha accesso e non fa inferenze in base al suo addestramento), complessità della manutenzione dei sistemi RAG, potenziale di allucinazioni.

Tecnica


Differenza principale


Vantaggi

Challenges

Ottimizzazione

Modifica il parametro del modello.

Maggiore accuratezza, maggiore specificità, riduzione delle allucinazioni, interazioni personalizzate, convenienza, riduzione dei bias.

Rischio di "oblio catastrofico", costi delle risorse più elevati, maggiori esigenze di dati e potenziale "overfitting".

RAG


Potenzia i prompt con conoscenze esterne.

Integrazione dinamica delle conoscenze, pertinenza contestuale, versatilità, minore necessità di una formazione approfondita.

Accuratezza limitata (ad esempio, la RAG può fare riferimento solo ai dati a cui ha accesso e non fa inferenze in base al suo addestramento), complessità della manutenzione dei sistemi RAG, potenziale di allucinazioni.

Dovresti considerare l'ottimizzazione quando vuoi che un LLM:

  • Comprenda un linguaggio o un gergo specifico: se il tuo progetto utilizza molti termini specifici del settore, l'ottimizzazione può aiutare il modello ad apprendere e utilizzare correttamente quel linguaggio.  
  • Migliori l'accuratezza in un'attività specifica: l'ottimizzazione può migliorare significativamente le prestazioni del modello se devi fargli svolgere un'attività specifica, come la classificazione delle recensioni dei clienti o la generazione di descrizioni dei prodotti 
  • Corrisponda a uno stile o a un tono particolare: se vuoi che il modello generi un testo che corrisponda a una voce del brand o a uno stile di scrittura specifico, la messa a punto può aiutarti.  
  • Lavori con dati limitati: quando hai dati limitati, l'ottimizzazione può essere più efficiente dell'addestramento di un modello da zero perché sfrutta le conoscenze che il modello pre-addestrato ha già  
  • Riduca i costi e la latenza: per i casi d'uso ad alto volume, ottimizzare un modello più piccolo può essere più conveniente rispetto all'utilizzo di un modello più grande e di uso generico per ogni richiesta
  • Gestisca i casi limite: l'ottimizzazione può migliorare la capacità del modello di gestire i casi limite e i prompt complessi che sono difficili da affrontare solo con il prompt engineering

Come funziona l'ottimizzazione: una guida passo passo

L'ottimizzazione si basa sulle fondamenta di un LLM preaddestrato. Questi modelli preaddestrati hanno già appreso un'enorme quantità di conoscenze linguistiche generali da set di dati di grandi dimensioni. Durante l'ottimizzazione, il modello viene esposto a un set di dati più piccolo e specifico per l'attività e i parametri interni del modello, che possiamo immaginare come milioni di piccole "manopole" che controllano le sue conoscenze, vengono regolati per adattarsi meglio agli esempi nel nuovo set di dati. Questo processo di "riaddestramento" aggiorna finemente la struttura interna del modello in modo che diventi un esperto del nuovo argomento. Analizziamo il processo di ottimizzazione in alcuni passaggi pratici:

Passaggio 1: preparazione dei dati

Prima di poter iniziare l'ottimizzazione, è fondamentale preparare i dati. La qualità e la struttura dei dati influiscono direttamente sulle prestazioni del modello ottimizzato. Questa fase prevede la raccolta, la pulizia, la formattazione e la suddivisione dei dati in set appropriati per l'addestramento, la convalida e il test.

  • Raccogli i dati: raccogli i dati che utilizzerai per ottimizzare il modello; questi dati devono essere pertinenti all'attività specifica in cui vuoi che il modello eccella
  • Pulisci e formatta: pulisci i dati rimuovendo errori, incongruenze e informazioni irrilevanti; assicurati che siano in un formato comprensibile per il modello
  • Dividi i dati: dividi i dati in tre set: 1) addestramento (utilizzato per addestrare il modello), 2) convalida (utilizzato per monitorare le prestazioni del modello e regolare le impostazioni) e 3) test (utilizzato per valutare le prestazioni finali del modello ottimizzato).

Passaggio 2: scelta di un approccio

Quando si parla di ottimizzazione, hai diverse opzioni per decidere quanto del modello preaddestrato vuoi perfezionare. L'approccio scelto dipende da fattori quali le dimensioni del set di dati, le risorse di computing disponibili e il livello di accuratezza desiderato. I due approcci principali sono l'ottimizzazione completa e la parameter-efficient fine-tuning (PEFT) (PEFT).


Ottimizzazione completa

Nell'ottimizzazione completa, tutti i parametri del modello vengono aggiornati durante l'addestramento. Questo approccio è adatto quando il set di dati specifico per l'attività è di grandi dimensioni e significativamente diverso dai dati di pre-addestramento.  


PEFT 

La parameter-efficient fine-tuning (PEFT) offre un modo più intelligente ed efficiente per eseguire l'ottimizzazione. Invece di riaddestrare l'intero modello (che è lento e costoso), i metodi PEFT congelano l'LLM originale e aggiungono piccoli nuovi strati addestrabili.

Immagina di dover aggiungere alcune pagine di post-it con le nuove informazioni specializzate a un libro di testo di 1000 pagine, invece di doverlo riscrivere completamente. Questo rende il processo molto più veloce ed economico. I metodi PEFT più diffusi includono LoRA (Low-Rank Adaptation) e QLoRA (Quantized Low-Rank Adaptation), che offrono un modo più efficiente per ottimizzare gli LLM. 

Passaggio 3: addestramento del modello

Ora che i dati sono preparati e la tecnica è stata selezionata, è il momento di addestrare il modello. È qui che il modello apprende dai tuoi dati e regola i suoi parametri per migliorare le prestazioni sull'attività specifica. Un monitoraggio e una regolazione attenti delle impostazioni di addestramento sono essenziali per ottenere risultati ottimali.

  • Imposta gli iperparametri: configura impostazioni come il tasso di apprendimento, la dimensione del batch e il numero di epoche; queste impostazioni aiutano a controllare il modo in cui il modello apprende
  • Avvia l'addestramento: inserisci i dati di addestramento nel modello e lascia che apprenda; monitora le prestazioni del modello utilizzando il set di validazione
  • Apporta le modifiche necessarie: se il modello non funziona bene, puoi modificare gli iperparametri o provare una tecnica di ottimizzazione diversa.

Passaggio 4: valutazione e deployment

La fase finale prevede la valutazione delle prestazioni del modello ottimizzato e la sua distribuzione per l'uso nel mondo reale. Ciò richiede di valutarne l'accuratezza e l'efficienza, per poi integrarlo nell'applicazione o nel sistema. Potrebbe essere necessario un monitoraggio e un riaddestramento continui per mantenere prestazioni ottimali nel tempo.

  • Valuta le prestazioni: utilizza il test set per valutare le prestazioni finali del modello ottimizzato; esamina le metriche pertinenti alla tua attività, come accuratezza, precisione e richiamo
  • Esegui il deployment del modello: se le prestazioni ti soddisfano, esegui il deployment del modello nell'applicazione o nel sistema
  • Monitora le prestazioni: tieni d'occhio le prestazioni del modello nel mondo reale e riaddestralo secondo necessità per mantenere l'accuratezza.

Tipi di ottimizzazione

Esistono diversi modi per ottimizzare un modello, a seconda dei tuoi obiettivi e delle tue risorse:

Tipo

Descrizione

Casi d'uso

Ottimizzazione supervisionata

Il modello viene addestrato su un set di dati etichettato con coppie input-output.

Classificazione del testo, riconoscimento di entità denominate, analisi del sentiment.

Ottimizzazione delle istruzioni

Il modello viene addestrato su un set di dati di istruzioni e risposte desiderate.

Chatbot, sistemi di risposta alle domande, generazione di codice.

Apprendimento few-shot

Il modello riceve alcuni esempi dell'attività desiderata all'interno del prompt.

Adattamento a nuove attività con dati limitati.

Transfer learning

Il modello sfrutta le conoscenze acquisite dal pre-addestramento su un set di dati per uso generico.

Adattamento alle attività correlate.

Ottimizzazione specifica per il dominio

Il modello viene adattato a un particolare dominio o settore.

Analisi di documenti legali, generazione di report medici, previsioni finanziarie.

Apprendimento multi-task

Il modello viene addestrato su più attività contemporaneamente.

Migliorare le prestazioni tra attività correlate.

Ottimizzazione sequenziale

Il modello viene adattato a una serie di attività correlate in più fasi.

Perfezionamento graduale delle funzionalità per attività complesse.

Tipo

Descrizione

Casi d'uso

Ottimizzazione supervisionata

Il modello viene addestrato su un set di dati etichettato con coppie input-output.

Classificazione del testo, riconoscimento di entità denominate, analisi del sentiment.

Ottimizzazione delle istruzioni

Il modello viene addestrato su un set di dati di istruzioni e risposte desiderate.

Chatbot, sistemi di risposta alle domande, generazione di codice.

Apprendimento few-shot

Il modello riceve alcuni esempi dell'attività desiderata all'interno del prompt.

Adattamento a nuove attività con dati limitati.

Transfer learning

Il modello sfrutta le conoscenze acquisite dal pre-addestramento su un set di dati per uso generico.

Adattamento alle attività correlate.

Ottimizzazione specifica per il dominio

Il modello viene adattato a un particolare dominio o settore.

Analisi di documenti legali, generazione di report medici, previsioni finanziarie.

Apprendimento multi-task

Il modello viene addestrato su più attività contemporaneamente.

Migliorare le prestazioni tra attività correlate.

Ottimizzazione sequenziale

Il modello viene adattato a una serie di attività correlate in più fasi.

Perfezionamento graduale delle funzionalità per attività complesse.

Best practice per l'ottimizzazione

Per ottenere il massimo dall'ottimizzazione, segui queste best practice :  

  • Qualità e quantità dei dati: utilizza un set di dati di alta qualità, pertinente, diversificato e sufficientemente grande. La qualità dei dati è fondamentale nell'ottimizzazione. Assicurati che i dati siano accurati, coerenti e privi di errori o bias. Ad esempio, un set di dati con etichette "piene di rumore" o formattazione incoerente può ostacolare in modo significativo la capacità del modello di apprendere in modo efficace.   
  • Ottimizzazione degli iperparametri: sperimenta diverse impostazioni degli iperparametri per trovare la configurazione ottimale per la tua attività.   
  • Valutazione regolare: valuta regolarmente le prestazioni del modello durante l'addestramento per monitorare i progressi e apportare le modifiche necessarie.   
  • Evita l'overfitting: utilizza tecniche come l'interruzione anticipata e la regolarizzazione per evitare l'overfitting dei dati di addestramento.   
  • Affronta i bias: tieni conto dei potenziali bias nei dati e utilizza tecniche per mitigarli nel modello ottimizzato.

Vantaggi dell'ottimizzazione degli LLM

L'ottimizzazione offre alcuni potenziali vantaggi:

Maggiore accuratezza

Può migliorare significativamente l'accuratezza e la pertinenza dell'output del modello per il tuo caso d'uso specifico, riducendo potenzialmente le allucinazioni dell'AI.  

Addestramento più rapido

L'ottimizzazione è più rapida e richiede meno dati rispetto all'addestramento di un modello da zero.

Conveniente

Può essere più conveniente rispetto all'addestramento di un nuovo modello perché richiede meno potenza di calcolo e dati. 

Personalizzazione

L'ottimizzazione ti consente di personalizzare il comportamento del modello in modo che sia in linea con le tue esigenze e i tuoi obiettivi specifici. 

Bias ridotto

Può fornire un controllo migliore sul comportamento del modello, riducendo potenzialmente il rischio di generare contenuti parziali o controversi.

Finestra contestuale più ampia

L'ottimizzazione può essere utilizzata per aumentare la finestra di contesto degli LLM, consentendo di elaborare e conservare più informazioni.

Sfide comuni durante l'ottimizzazione

Sebbene il perfezionamento possa offrire molti vantaggi, è necessario essere consapevoli di alcune possibili sfide: 

  • Overfitting: il modello apprende troppo bene i dati di addestramento e non generalizza bene i nuovi dati. Puoi utilizzare tecniche come la regolarizzazione e l'aumento dei dati per mitigare l'overfitting.  
  • Scarsità di dati: dati insufficienti possono limitare l'efficacia dell'ottimizzazione. Valuta la possibilità di utilizzare tecniche di aumento dei dati o di trasferimento dell'apprendimento da altre attività correlate.  
  • Dimenticanza catastrofica: se specializzi troppo il modello, può dimenticare le sue conoscenze generali. È come un medico esperto che diventa un chirurgo iper-specializzato, ma dimentica le nozioni di base del primo soccorso. Puoi utilizzare tecniche come la regolarizzazione e i replay buffer per mitigare la dimenticanza catastrofica.  
  • Risorse di calcolo: l'ottimizzazione dei modelli di grandi dimensioni può essere costosa dal punto di vista computazionale e richiedere una quantità significativa di memoria. Valuta la possibilità di utilizzare tecniche come PEFT, quantizzazione e addestramento distribuito per ridurre i requisiti di calcolo.  
  • Valutazione: la valutazione delle prestazioni degli LLM ottimizzati può essere complessa e richiede un'attenta selezione di metriche e benchmark.  
  • Sfide dell'apprendimento multi-task: l'ottimizzazione degli LLM per l'apprendimento multi-task introduce sfide uniche, come l'interferenza tra attività, in cui obiettivi diversi si scontrano durante l'addestramento, e lo sbilanciamento dei dati, in cui le attività con più dati possono dominare.

Casi d'uso di ottimizzazione

L'ottimizzazione può essere applicata a un'ampia gamma di casi d'uso:

Assistenza clienti

Ottimizza un LLM per comprendere e rispondere alle richieste dei clienti in modo più efficace, anche all'interno dei chatbot.  

La capacità degli LLM di generare riassunti concisi e accurati in domini o stili di scrittura specifici può essere migliorata attraverso l'ottimizzazione.

Creazione di contenuti

Crea post di blog, articoli o descrizioni di prodotti in uno stile specifico con un modello ottimizzato.  

Analisi dei dati

Ottimizza un modello per classificare e analizzare dati di testo, come post di social media o recensioni dei clienti.

Genera codice in un linguaggio di programmazione o framework specifico con un modello ottimizzato. 

Traduzione automatica

Google Traduttore utilizza l'ottimizzazione per migliorare la qualità della traduzione automatica adattando il modello a coppie di lingue e domini specifici. 

Ottimizzazione su larga scala con Google Cloud

Google Cloud offre un ecosistema solido per supportare gli sforzi di ottimizzazione dei modelli, fornendo tutto il necessario, da una piattaforma di machine learning unificata all'hardware specializzato richiesto per accelerare i calcoli complessi. Che tu stia personalizzando un foundation model o perfezionando il tuo, questi servizi semplificano l'intero workflow.

Fai il prossimo passo

Inizia a creare su Google Cloud con 300 $ di crediti gratuiti e oltre 20 prodotti Always Free.

Google Cloud