La messa a punto di un modello di intelligenza artificiale (IA) generativa come Gemma modifica il comportamento del modello. In genere, perfezioni Gemma con l'intento di migliorare il suo rendimento in un'attività o un dominio specifico o di svolgere meglio un ruolo, ad esempio l'assistenza clienti. I modelli Gemma vengono rilasciati con ponderazioni aperte, il che significa che puoi modificarle e cambiare il comportamento del modello. I passaggi generali per ottimizzare un modello Gemma sono i seguenti:
- Scegliere un framework
- Raccogliere i dati
- Ottimizza e testa il modello
- Esegui il deployment del modello
Scegli un framework
I modelli Gemma sono compatibili con una serie di framework di ottimizzazione dell'IA. Ogni struttura offre vari vantaggi ed è in genere limitata a un formato del modello specifico. Ecco le guide per l'ottimizzazione dei modelli Gemma con vari framework:
- Keras che utilizza LoRA
- Libreria Gemma per JAX
- Hugging Face
- Google Cloud GKE (multi-GPU con HF Transformers)
- Unsloth
- Axolotl
- Keras che utilizza la regolazione distribuita
Assicurati che il formato del modello di deployment previsto, ad esempio il formato 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 consistono in coppie di dati di input con la risposta prevista. Esistono molti set di dati pubblici disponibili online per l'addestramento su varie attività o output. Ad esempio, se vuoi addestrare un modello Gemma a tradurre le descrizioni delle parti dell'auto 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 esegua un insieme specifico di attività o un ruolo, solitamente devi compilare un set di dati che dimostri più varianti dell'attività. La quantità di dati necessaria per ottimizzare un modello dipende dai tuoi obiettivi, in particolare dalla quantità di cambiamento comportamentale che vuoi ottenere dal modello e dal livello di rendimento che vuoi ottenere in base all'attività da svolgere e alla variazione dei dati di input.
In generale, ti consigliamo di iniziare con un piccolo insieme di dati per l'ottimizzazione delle attività, di modificare i parametri di addestramento e di aggiungere dati fino a ottenere il rendimento delle 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 risposta. Per maggiori dettagli, consulta Creare un assistente AI per le email aziendali con Gemma e Attività nelle lingue parlate con Gemma.
Ottimizza e testa il modello
Una volta implementato un framework di ottimizzazione e i dati di ottimizzazione, puoi iniziare la procedura di ottimizzazione del modello Gemma. Quando esegui l'ottimizzazione, hai a disposizione alcune opzioni che influiscono sulle risorse necessarie per completarla. Inoltre, devi avere un piano di test per il modello ottimizzato per valutare se funziona come previsto dopo l'ottimizzazione.
Ottimizzazione efficiente dei parametri
Quando ottimizzi un modello con pesi aperti come Gemma, hai la possibilità di ottimizzare tutti i parametri del modello o di utilizzare una tecnica di ottimizzazione efficiente dei parametri meno dispendiosa in termini di risorse che aggiorna un sottoinsieme di questi. Un approccio di ottimizzazione completa significa che, quando applichi i dati di ottimizzazione, calcoli nuove ponderazioni per tutti i parametri del modello. Questo approccio richiede un'elaborazione e una memoria molto elevate, poiché esegui questi calcoli per miliardi di parametri. L'utilizzo di approcci di ottimizzazione meno impegnativi in termini di risorse, chiamati ottimizzazione fine efficiente dei parametri (PEFT), tra cui tecniche come l'ottimizzazione dell'adattatore a basso ranking (LoRA), può produrre risultati simili con meno risorse di calcolo. Per informazioni dettagliate su come eseguire l'ottimizzazione con meno risorse utilizzando LoRa, consulta Ottimizzazione dei modelli Gemma in Keras utilizzando LoRa e Ottimizzazione dei modelli Gemma in Hugging Face.
Test dei modelli ottimizzati
Dopo aver 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 specificamente. La modalità di test del modello ottimizzato dipende dall'attività che vuoi che esegua e dalla stretta gestione degli input e degli output per il modello. Un modo comune per gestire i test dei modelli generativi è utilizzare casi di successo, di errore e borderline:
- Test di successo: richiedono che il modello ottimizzato debba sempre essere in grado di eseguire correttamente l'operazione.
- Test di errore: richiede che il modello ottimizzato non debba sempre essere in grado di eseguire l'operazione o rifiutarsi esplicitamente di eseguire l'operazione, se richiesto.
- Test di confine: richieste che il modello ottimizzato debba essere in grado di eseguire, se rientrano in un confine definito o in un insieme di confini, di comportamento di output accettabile.
Quando testi le condizioni di errore o limite per la tua applicazione di IA generativa, devi anche applicare approcci, tecniche e strumenti di sicurezza dell'IA generativa come descritto nel Toolkit per l'IA generativa responsabile.
Esegui il deployment del modello
Dopo aver completato l'ottimizzazione e i test, è finalmente giunto il momento di eseguire il deployment del modello. In genere, puoi consultare la documentazione del framework scelto per sapere come implementare un modello ottimizzato.
Se stai implementando un modello con pesi sintonizzati su LoRa, tieni presente che con questa tecnica in genere implementi entrambi il modello originale e i relativi pesi con i pesi LoRa come livello di calcolo aggiuntivo per il modello.