Ottimizzazione con l'API Gemini

Le strategie di progettazione dei prompt, come i prompt few-shot, potrebbero non produrre sempre i risultati necessari. L'ottimizzazione è un processo che può migliorare le prestazioni del modello su attività specifiche o aiutare il modello a rispettare specifici requisiti di output quando le istruzioni non sono sufficienti e hai una serie di esempi che dimostrano gli output che vuoi.

Questa pagina fornisce indicazioni su come ottimizzare il modello di testo alla base del servizio di testo dell'API Gemini.

Come funziona l'ottimizzazione

L'obiettivo del perfezionamento è migliorare ulteriormente le prestazioni del modello per l'attività specifica. L'ottimizzazione fornisce al modello un set di dati di addestramento contenente molti esempi dell'attività. Per attività di nicchia, è possibile ottenere miglioramenti significativi nelle prestazioni del modello ottimizzando il modello su un numero modesto di esempi.

I dati di addestramento devono essere strutturati come esempi con input di prompt e output di risposta previsti. Puoi anche ottimizzare i modelli usando dati di esempio direttamente in Google AI Studio. L'obiettivo è insegnare al modello a imitare il comportamento o l'attività desiderato, fornendo molti esempi che illustrino tale comportamento o attività.

Quando esegui un job di ottimizzazione, il modello apprende parametri aggiuntivi che lo aiutano a codificare le informazioni necessarie per eseguire l'attività desiderata o ad apprendere il comportamento desiderato. Questi parametri possono quindi essere utilizzati al momento dell'inferenza. L'output del job di ottimizzazione è un nuovo modello, che è di fatto una combinazione dei parametri appena appresi e del modello originale.

prepara il set di dati

Prima di poter iniziare l'ottimizzazione, hai bisogno di un set di dati per ottimizzare il modello. Per ottenere prestazioni ottimali, gli esempi nel set di dati devono essere di alta qualità, diversificati e rappresentativi di input e output reali.

Formato

Gli esempi inclusi nel set di dati devono corrispondere al traffico di produzione previsto. Se il set di dati contiene formattazione, parole chiave, istruzioni o informazioni specifiche, i dati di produzione devono essere formattati nello stesso modo e contenere le stesse istruzioni.

Ad esempio, se gli esempi nel tuo set di dati includono "question:" e "context:", anche il traffico di produzione deve essere formattato in modo da includere un "question:" e un "context:" nello stesso ordine in cui appare negli esempi di set di dati. Se escludi il contesto, il modello non può riconoscere il pattern, anche se la domanda esatta era presente in un esempio nel set di dati.

Anche l'aggiunta di un prompt o un preambolo a ogni esempio nel set di dati può migliorare le prestazioni del modello ottimizzato. Nota: se un prompt o un preambolo è incluso nel set di dati, deve essere incluso anche nel prompt del modello ottimizzato al momento dell'inferenza.

Dimensione dei dati di addestramento

Puoi ottimizzare un modello con solo 20 esempi. Dati aggiuntivi in genere migliorano la qualità delle risposte. Il target deve essere compreso tra 100 e 500 esempi, a seconda dell'applicazione. La seguente tabella mostra le dimensioni consigliate del set di dati per ottimizzare un modello di testo per varie attività comuni:

Attività N. di esempi nel set di dati
Classificazione Oltre 100
Riassunto 100-500+
Ricerca documenti Oltre 100

Carica il tuo set di dati di ottimizzazione

I dati vengono trasmessi in linea utilizzando l'API o tramite file caricati in Google AI Studio.

Fai clic sul pulsante Importa e segui le istruzioni della finestra di dialogo per importare i dati da un file o scegli un prompt strutturato con esempi da importare come set di dati di ottimizzazione.

Libreria client

Per utilizzare la libreria client, fornisci il file di dati nella chiamata createTunedModel. La dimensione massima consentita per il file è 4 MB. Per iniziare, consulta la guida rapida all'ottimizzazione con Python.

cURL

Per chiamare l'API REST utilizzando cURL, fornisci esempi di addestramento in formato JSON all'argomento training_data. Per iniziare, consulta la guida rapida all'ottimizzazione con cURL.

Impostazioni di ottimizzazione avanzate

Quando crei un job di ottimizzazione, puoi specificare le seguenti impostazioni avanzate:

  • Epoche: un passaggio di addestramento completo sull'intero set di addestramento in modo che ogni esempio sia stato elaborato una volta.
  • Dimensione del batch: l'insieme di esempi utilizzato in un'iterazione di addestramento. La dimensione del batch determina il numero di esempi in un batch.
  • Tasso di apprendimento: un numero in virgola mobile che indica all'algoritmo l'efficacia con cui regolare i parametri del modello a ogni iterazione. Ad esempio, un tasso di apprendimento di 0,3 regola le ponderazioni e i bias in modo tre volte più efficace rispetto a un tasso di apprendimento di 0,1. Tassi di apprendimento alti e bassi presentano vantaggi unici e devono essere adeguati in base al caso d'uso.
  • Moltiplicatore del tasso di apprendimento:il moltiplicatore del tasso di apprendimento modifica il tasso di apprendimento originale del modello. Il valore 1 utilizza il tasso di apprendimento originale del modello. Valori superiori a 1 aumentano il tasso di apprendimento, mentre quelli tra 1 e 0 riducono il tasso di apprendimento.

La tabella seguente mostra le configurazioni consigliate per il perfezionamento di un modello di base:

Iperparametro Valore predefinito Regolazioni consigliate
Epoca 5

Se la perdita inizia ad appiattirsi prima di 5 epoche, utilizza un valore più basso.

Se la perdita è convergente e non sembra stabilizzarsi, utilizza un valore più alto.

Dimensione del batch 4
Tasso di apprendimento 0,001 Utilizza un valore più basso per set di dati più piccoli.

La curva di perdita mostra in che misura la previsione del modello si discosta dalle previsioni ideali negli esempi di addestramento dopo ogni epoca. Idealmente dovresti interrompere l'addestramento nel punto più basso della curva, subito prima che si avvicini. Ad esempio, il grafico seguente mostra l'aumento della curva di perdita nell'epoca 4-6 circa, il che significa che puoi impostare il parametro Epoch su 4 e ottenere comunque le stesse prestazioni.

Grafico a linee che mostra la curva di perdita del modello. La linea raggiunge un picco tra
la prima e la seconda epoche, poi diminuisce drasticamente fino a quasi 0 e si stabilizza
dopo tre epoche.

Controlla lo stato del job di ottimizzazione

Puoi controllare lo stato del job di ottimizzazione in Google AI Studio nella scheda La mia raccolta o utilizzando la proprietà metadata del modello ottimizzato nell'API Gemini.

Risolvere gli errori

Questa sezione include suggerimenti su come risolvere errori che potresti riscontrare durante la creazione del tuo modello ottimizzato.

Autenticazione

L'ottimizzazione mediante l'API e la libreria client richiede l'autenticazione dell'utente. Non è sufficiente singola chiave API. Se viene visualizzato un errore 'PermissionDenied: 403 Request had insufficient authentication scopes', devi configurare l'autenticazione utente.

Per configurare le credenziali OAuth per Python, fai riferimento al tutorial di configurazione di OAuth.

Modelli annullati

Puoi annullare un job di ottimizzazione in qualsiasi momento prima del suo completamento. Tuttavia, le prestazioni di inferenza di un modello annullato sono imprevedibili, in particolare se il job di ottimizzazione viene annullato all'inizio dell'addestramento. Se hai annullato l'addestramento perché vuoi interrompere l'addestramento in un'epoca precedente, devi creare un nuovo job di ottimizzazione e impostare l'epoca su un valore più basso.

Passaggi successivi