Ottimizzazione con l'API Gemini

Le strategie di progettazione dei prompt, come quelle di tipo few-shot, potrebbero non produrre sempre i risultati di cui hai bisogno. L'ottimizzazione è un processo che può migliorare la capacità del modello il rendimento su attività specifiche o permettere al modello di rispettare dei requisiti quando le istruzioni non sono sufficienti e hai una serie di esempi che dimostrino gli output desiderati.

Questa pagina fornisce una panoramica concettuale della messa a punto del modello di testo alla base del servizio di testo dell'API Gemini. Quando vuoi iniziare l'ottimizzazione, prova la tutorial sull'ottimizzazione. Se vuoi una presentazione più generale della personalizzazione degli LLM per casi d'uso specifici, consulta LLM: ottimizzazione, distillazione e progettazione dei prompt nel corso introduttivo al machine learning.

Come funziona l'ottimizzazione

L'obiettivo del perfezionamento è migliorare ulteriormente le prestazioni del modello per un'attività specifica. La messa a punto funziona fornendo al modello un set di dati di addestramento contenente molti esempi dell'attività. Per attività di nicchia, puoi ottenere miglioramenti significativi nelle prestazioni del modello ottimizzandolo sulla base di un numero modesto di esempi. Questo tipo di ottimizzazione del modello è a volte definito ottimizzazione fine supervisionata per distinguerlo da altri tipi di ottimizzazione fine.

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

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

Prepara il set di dati

Prima di poter iniziare la messa a punto, devi avere un set di dati con cui ottimizzare il modello. Per le prestazioni migliori, 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 formattazioni, parole chiave, istruzioni o informazioni specifiche, i dati di produzione devono essere formattati allo 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 "question:" e "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 fosse presente in un esempio del set di dati.

Come altro esempio, ecco i dati di addestramento Python per un'applicazione genera il numero successivo in una sequenza:

training_data = [
  {"text_input": "1", "output": "2"},
  {"text_input": "3", "output": "4"},
  {"text_input": "-3", "output": "-2"},
  {"text_input": "twenty two", "output": "twenty three"},
  {"text_input": "two hundred", "output": "two hundred one"},
  {"text_input": "ninety nine", "output": "one hundred"},
  {"text_input": "8", "output": "9"},
  {"text_input": "-98", "output": "-97"},
  {"text_input": "1,000", "output": "1,001"},
  {"text_input": "10,100,000", "output": "10,100,001"},
  {"text_input": "thirteen", "output": "fourteen"},
  {"text_input": "eighty", "output": "eighty one"},
  {"text_input": "one", "output": "two"},
  {"text_input": "three", "output": "four"},
  {"text_input": "seven", "output": "eight"},
]

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

Limitazioni

Nota: la messa a punto dei set di dati per Gemini 1.5 Flash presenta le seguenti limitazioni:

  • La dimensione massima di input per esempio è di 40.000 caratteri.
  • La dimensione massima dell'output per esempio è di 5000 caratteri.

Dimensione dei dati di addestramento

Puoi ottimizzare un modello con solo 20 esempi. Dati aggiuntivi migliora generalmente la qualità delle risposte. Scegli come target un numero compreso tra 100 e 500 esempi, a seconda dell'applicazione. La tabella seguente mostra dimensioni consigliate per i set di dati per perfezionare un modello di testo per varie attività comuni:

Attività N. di esempi nel set di dati
Classificazione 100+
Riassunto 100-500+
Ricerca di documenti 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.

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 fine con Python.

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

Impostazioni di ottimizzazione avanzate

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

  • Epoche: un passaggio completo dell'addestramento sull'intero set di addestramento in modo che ogni è stato elaborato una volta.
  • Dimensione del batch: l'insieme di esempi utilizzato in un'iterazione di addestramento. La la dimensione del batch determina il numero di esempi in un batch.
  • Tasso di apprendimento: un numero in virgola mobile che indica all'algoritmo con quale intensità regolare i parametri del modello a ogni iterazione. Ad esempio, un tasso di apprendimento di 0,3 modificherebbe i pesi e i bias tre volte più potentemente di un tasso di apprendimento di 0,1. I tassi di apprendimento elevati e bassi hanno ciascuno i propri compromessi e devono essere regolati in base al caso d'uso.
  • Moltiplicatore del tasso di apprendimento: il moltiplicatore del tasso modifica il tasso di apprendimento originale del modello. Il valore 1 utilizza il tasso di apprendimento originale della un modello di machine learning. I valori maggiori di 1 aumentano il tasso di apprendimento, mentre quelli compresi tra 1 e 0 lo riducono.

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

Iperparametro Valore predefinito Modifiche consigliate
Epoca 5

Se la perdita inizia a stabilizzarsi prima di 5 epoche, utilizza un valore inferiore.

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

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

La curva di perdita mostra quanto la previsione del modello si discosta dall'ideale le previsioni negli esempi di addestramento dopo ogni epoca. Idealmente, dovresti interrompere l'addestramento nel punto più basso della curva, appena prima che raggiunga il plateau. Ad esempio, il grafico seguente mostra che la curva di perdita raggiunge un plateau intorno all'epoca 4-6, il che significa che puoi impostare il parametro Epoch su 4 e ottenere comunque lo stesso rendimento.

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

Controllare lo stato del job di ottimizzazione

Puoi controllare lo stato del tuo 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 gli errori che potresti riscontrare durante la creazione del modello ottimizzato.

Autenticazione

L'ottimizzazione mediante l'API e la libreria client richiede l'autenticazione. Puoi configura l'autenticazione utilizzando una chiave API (opzione consigliata) o OAuth e credenziali. Per la documentazione sulla configurazione di una chiave API, consulta Impostazione della chiave API.

Se viene visualizzato un errore 'PermissionDenied: 403 Request had insufficient authentication scopes', potrebbe essere necessario configurare l'autenticazione utente tramite OAuth e credenziali. Per configurare le credenziali OAuth per Python, visita la nostra il tutorial di configurazione di OAuth.

Modelli annullati

Puoi annullare un job di ottimizzazione fine in qualsiasi momento prima del 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'abbonamento perché hai interrompere l'addestramento in un'epoca precedente, devi creare una nuova ottimizzazione job e impostiamo l'epoca su un valore inferiore.

Limitazioni dei modelli ottimizzati

Nota: i modelli ottimizzati presentano le seguenti limitazioni:

  • Il limite di input di un modello Gemini 1.5 Flash ottimizzato è di 40.000 caratteri.
  • La modalità JSON non è supportata con i modelli ottimizzati.
  • È supportato solo l'inserimento di testo.

Passaggi successivi

Inizia con i tutorial sulla messa a punto: