Ottimizzazione del modello Gemma

L'ottimizzazione di un modello di intelligenza artificiale (AI) generativa come Gemma modifica il comportamento del modello. In genere, Gemma viene ottimizzato con l'intento di migliorarne le prestazioni in un'attività o un dominio specifico oppure per svolgere meglio un ruolo, ad esempio quello dell'assistenza clienti. I modelli Gemma vengono rilasciati con pesi aperti, il che significa che puoi modificarli, il che cambia il comportamento del modello. I passaggi generali per il fine tuning di un modello Gemma sono i seguenti:

Scegliere un framework

I modelli Gemma sono compatibili con una serie di framework di ottimizzazione dell'AI. Ogni framework offre vari vantaggi ed è in genere vincolato a un formato specifico del modello. Ecco le guide per l'ottimizzazione dei modelli Gemma con vari framework:

Assicurati che il formato del modello di deployment previsto, ad esempio Keras, Safetensors o GGUF, sia supportato come output dal framework scelto.

Raccogli i dati

L'ottimizzazione del modello richiede dati. I dati di ottimizzazione in genere sono costituiti da coppie di dati di input con la risposta prevista. Sono disponibili online molti set di dati pubblici per l'addestramento su varie attività o output. Ad esempio, se volessi addestrare un modello Gemma a tradurre le descrizioni dei pezzi di ricambio in numeri di parte, il tuo set di dati potrebbe includere quanto segue:

training_data = [
  {"input_text": "Part number for A4 brake caliper", "output_text": "4M0615107BS"},
  {"input_text": "Part number for Beetle fuel pump", "output_text": "6A127026H"},
  {"input_text": "Part number for Camaro cylinder head", "output_text": "12711770"},
]

Se vuoi che un modello Gemma svolga un insieme specifico di attività o un ruolo, in genere devi compilare un set di dati che mostri più varianti di quell'attività. La quantità di dati necessaria per ottimizzare un modello dipende dai tuoi obiettivi, in particolare dalla variazione comportamentale che vuoi che il modello apporti e dal rendimento che vuoi che il modello ottenga in base all'attività da svolgere e al livello di variazione dei dati di input.

In generale, devi iniziare con un piccolo set di dati per la messa a punto dell'attività, modificare i parametri di addestramento e aggiungere dati finché non ottieni il rendimento dell'attività che soddisfa le tue esigenze. Alcune delle nostre applicazioni di esempio mostrano che puoi influenzare il comportamento di un modello Gemma con un minimo di 20 coppie di prompt e risposte. Per maggiori dettagli, vedi Creare un assistente AI per le email aziendali con Gemma e Attività nelle lingue parlate con Gemma.

Ottimizzare e testare il modello

Una volta configurati un framework di ottimizzazione e i dati di ottimizzazione, puoi iniziare il processo di ottimizzazione del modello Gemma. Quando esegui l'ottimizzazione, hai alcune opzioni che influiscono sulle risorse necessarie per completarla. Devi anche avere un piano di test per il modello ottimizzato per valutare se funziona come vuoi dopo l'ottimizzazione.

Ottimizzazione efficiente dei parametri

Quando esegui il fine-tuning di un modello con pesi aperti come Gemma, hai la possibilità di ottimizzare tutti i parametri del modello o utilizzare una tecnica di ottimizzazione efficiente dei parametri che richiede meno risorse e aggiorna un sottoinsieme di questi. Un approccio di ottimizzazione completo significa che, man mano che applichi i dati di ottimizzazione, calcoli nuovi pesi per tutti i parametri del modello. Questo approccio richiede un uso intensivo di calcolo e memoria, poiché esegui questi calcoli per miliardi di parametri. L'utilizzo di approcci di ottimizzazione meno intensivi in termini di risorse, denominati parameter-efficient fine-tuning (PEFT), tra cui tecniche come l'ottimizzazione di Low Rank Adapter (LoRA), può produrre risultati simili con meno risorse di calcolo. Per informazioni dettagliate su come eseguire l'ottimizzazione con meno risorse utilizzando LoRA, vedi Ottimizzare i modelli Gemma in Keras utilizzando LoRA e Ottimizzare i modelli Gemma in Hugging Face.

Test dei modelli ottimizzati

Una volta ottimizzato un modello per un'attività specifica, devi testarne le prestazioni rispetto all'insieme di attività che vuoi che esegua. Devi testare il modello con attività o richieste per le quali non è stato addestrato in modo specifico. Il modo in cui testi il modello ottimizzato dipende dall'attività che vuoi che svolga e da quanto gestisci da vicino gli input e gli output del modello. Un modo comune per gestire i test dei modelli generativi è utilizzare casi di successo, errore e limite:

  • Test di successo: richieste che il modello ottimizzato dovrebbe sempre essere in grado di eseguire correttamente.
  • Test di errore: richieste che il modello ottimizzato non deve mai essere in grado di eseguire o che deve rifiutarsi esplicitamente di eseguire, se richiesto.
  • Test di limite: richieste che il modello sottoposto a tuning deve essere in grado di eseguire se rientrano in un limite o in un insieme di limiti definiti di comportamento di output accettabile.

Quando testi le condizioni di errore o limite per la tua applicazione di AI generativa, devi anche applicare approcci, tecniche e strumenti di sicurezza dell'AI generativa come descritto nel Toolkit per l'AI generativa responsabile.

Esegui il deployment del modello

Dopo aver completato l'ottimizzazione e il test, è il momento di eseguire il deployment del modello. In genere, puoi consultare la documentazione del framework scelto per scoprire come eseguire il deployment di un modello ottimizzato.

Se esegui il deployment di un modello con pesi ottimizzati LoRA, tieni presente che con questa tecnica in genere esegui il deployment sia del modello originale sia dei relativi pesi con i pesi LoRA come livello di calcolo aggiuntivo per il modello.