Ottimizzazione con l'API Gemini

Le strategie di progettazione dei prompt, come i prompt few-shot, potrebbero non produrre sempre i risultati di cui hai bisogno. L'ottimizzazione è un processo che può migliorare la qualità 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 dimostrano gli output che vuoi ottenere.

Questa pagina fornisce una panoramica concettuale del perfezionamento del modello di testo alla base il servizio di testo dell'API Gemini. Quando vuoi iniziare l'ottimizzazione, prova la tutorial sull'ottimizzazione. Se vuoi un'introduzione più generale alla personalizzazione degli LLM per casi d'uso specifici, controlla fuori LLM: messa a punto, distillazione e prompt engineering nel Machine Learning Crash Course.

Come funziona l'ottimizzazione

L'obiettivo del perfezionamento è migliorare ulteriormente le prestazioni del modello per per l'attività specifica. Il processo di ottimizzazione prevede l'addestramento del modello contenente molti esempi dell'attività. Per attività di nicchia, puoi ottenere miglioramenti significativi nelle prestazioni del modello, grazie alla sua messa a punto 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 prompt e output di risposta previsti. Puoi anche ottimizzare i modelli utilizzando direttamente i dati di esempio 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 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 l'ottimizzazione, hai bisogno di un set di dati per 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 formattazione, parole chiave, istruzioni, o informazioni, i dati di produzione devono essere formattati nello stesso modo e contengono le stesse istruzioni.

Ad esempio, se gli esempi nel tuo set di dati includono "question:" e una proprietà "context:", anche il traffico di produzione deve essere formattato per includere un "question:" e "context:" nello stesso ordine in cui vengono visualizzati nel set di dati esempi. 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 nel set di dati, dovrebbe essere incluso anche nel prompt del modello modello al momento dell'inferenza.

Limitazioni

Nota:i set di dati di ottimizzazione per Gemini 1.5 Flash includono quanto segue. 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. Il target deve essere 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 documenti 100+

Carica il set di dati per l'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. Consulta le guida rapida dell'ottimizzazione con Python per iniziare.

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

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 dimensione del batch determina il numero di esempi in un batch.
  • Tasso di apprendimento:un numero in virgola mobile che indica all'algoritmo come i parametri del modello a ogni iterazione. Ad esempio, un un tasso di apprendimento pari a 0,3 regoli ponderazioni e bias il triplo in modo potente rispetto a un tasso di apprendimento pari a 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 di apprendimento modifica il valore del modello. tasso di apprendimento originale. Il valore 1 utilizza il tasso di apprendimento originale della un modello di machine learning. Valori superiori a 1 aumentano il tasso di apprendimento e valori compresi tra 1 mentre 0 abbassano il tasso di apprendimento.

La tabella seguente mostra le configurazioni consigliate per l'ottimizzazione 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 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. L'ideale sarebbe interrompere l'addestramento nel punto più basso della curva, subito prima di alzarsi. Ad esempio: il grafico seguente mostra la curva di perdita che si attenua all'incirca all'epoca 4-6, il che significa 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 presenta picchi tra la prima e la seconda epoca, poi cala bruscamente fino a quasi 0 e si stabilizza dopo tre epoche.

Controlla lo stato del job di ottimizzazione

Puoi controllare lo stato del tuo job di ottimizzazione in Google AI Studio nella sezione La mia libreria o utilizzando la proprietà metadata del modello ottimizzato nella dell'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 dell'utente. Una chiave API da solo non è sufficiente. Se viene visualizzato un errore 'PermissionDenied: 403 Request had insufficient authentication scopes', devi configurare l'utente autenticazione.

Per configurare le credenziali OAuth per Python, consulta il 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'abbonamento perché hai interrompere l'addestramento in un'epoca precedente, devi creare una nuova ottimizzazione job e impostiamo l'epoca su un valore più basso.

Limitazioni dei modelli ottimizzati

Nota: i modelli ottimizzati hanno 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'input di testo.

Passaggi successivi

Inizia con i tutorial sull'ottimizzazione: