Ottimizzazione dei modelli di testo Gemini

Questa pagina fornisce i passaggi consigliati per ottimizzare un modello di testo con o Gemini. Questa guida tratta di classificazione, analisi del sentiment ed estrazione.

Limitazioni

  • I modelli Gemini non supportano i punteggi di confidenza.
  • Gemini non può fornire punteggi numerici per l'analisi del sentiment. Ciò limita la capacità di stimare il sentiment in base a una soglia numerica.

Per migliorare l'affidabilità degli output del modello di AI, valuta la possibilità di incorporare come l'autocoerenza per il punteggio di confidenza. Questa tecnica genera più output del modello per lo stesso input e poi impiega la maggioranza sistema di votazione per determinare l'output più probabile. Il punteggio di confidenza può essere rappresentate da un rapporto che riflette la proporzione di volte la maggior parte della produzione è stato generato.

Per le attività di analisi del sentiment, valuta la possibilità di utilizzare un LLM come revisore per fornire risposte verbali i punteggi di confidenza. Chiedi al modello di analizzare il sentiment e poi restituisce un un punteggio verbale (ad esempio "molto probabile") anziché un punteggio numerico. I punteggi verbali sono generalmente più interpretabili e meno soggetti a pregiudizi nel contesto degli LLM.

Ottimizzazione del modello di testo con Gemini

Esistono due opzioni che puoi utilizzare per ottimizzare i modelli di testo per la classificazione, l'estrazione e del sentiment con Gemini, tramite prompt con un modello preaddestrato e perfezionamenti personalizzati.

  • Prompt con modelli Gemini preaddestrati: i prompt sono l'arte creando istruzioni efficaci per guidare modelli di AI come Gemini nella generazione gli output che desideri. Implica la progettazione di prompt che trasmettano chiaramente l'attività, formato desiderato e ogni contesto pertinente. Puoi usare le funzionalità di Gemini con una configurazione minima. È più adatta per:

    • Dati etichettati limitati: se hai una piccola quantità di dati etichettati o non possono permettersi un lungo processo di ottimizzazione.
    • Prototipazione rapida: quando devi testare rapidamente un concetto o ottenere una base di riferimento. il rendimento senza pesanti investimenti in ottimizzazioni.
  • Ottimizzazione personalizzata dei modelli Gemini: per risultati più personalizzati, Gemini consente di ottimizzare i modelli in base a set di dati specifici. Per creare un modello di AI che eccelle nel tuo dominio specifico, valuta la possibilità di ottimizzarlo. Questo comporta il riaddestramento del modello di base sul proprio set di dati etichettato, l'adattamento i pesi alle tue attività e ai tuoi dati. Puoi adattare Gemini ai tuoi casi d'uso. Il perfezionamento è più efficace quando:

    • Hai etichettato i dati: un set di dati di grandi dimensioni su cui eseguire l'addestramento (pensa a 100 esempi o di più), il che consente al modello di apprendere a fondo le specifiche dell'attività.
    • Attività complesse o uniche: per scenari in cui avanzati le strategie di prompting non sono sufficienti e un modello su misura per i tuoi dati è essenziale.

Se possibile, prova entrambi gli approcci per vedere quale genera risultati migliori per la tua caso d'uso. Ti consigliamo di iniziare con i prompt per trovare il prompt ottimale. Poi, passa all'ottimizzazione (se richiesta) per aumentare ulteriormente le prestazioni o correggere errori ricorrenti.

Sebbene l'aggiunta di altri esempi possa essere vantaggiosa, è importante valutare dove il modello commette errori prima di aggiungere altri dati. Indipendentemente dall'approccio, dati di alta qualità e ben etichettati sono fondamentali per un buon rendimento e sono migliori quantità. Inoltre, i dati utilizzati per l'ottimizzazione devono riflettere il tipo di dati che il modello incontrerà in produzione. Per lo sviluppo, il deployment consulta la documentazione principale di Vertex AI.

Prompt con Gemini

Puoi usare le capacità di comprensione del linguaggio dei modelli Gemini fornendo loro alcuni esempi della tua attività (classificazione, estrazione, analisi del sentiment) nel prompt stesso. Il modello apprende da questi esempi e applica queste conoscenze al tuo nuovo input.

Le tecniche di prompting comuni che possono essere utilizzate per ottimizzare i risultati includono:

  • Prompt zero-shot: viene chiesto direttamente al modello di eseguire un'attività senza fornendo esempi specifici.
  • Prompt few-shot: fornire alcuni esempi insieme alle istruzioni per per guidare la comprensione del modello.
  • Prompt di pensiero: suddivisione delle attività complesse in passaggi più piccoli e per guidare il modello in ogni passaggio in sequenza.

Sebbene la progettazione dei prompt sia flessibile, alcune strategie possono guidare l'output di un modello. Test e valutazioni accurati sono essenziali per ottimizzare il rendimento.

I modelli linguistici di grandi dimensioni (LLM), addestrati su enormi dati di testo, apprendono i pattern linguistici e le relazioni. Dato un prompt, questi modelli prevedono la continuazione più probabile, in modo simile al completamento automatico avanzato. Perciò, quando crei i prompt, tieni presente fattori che influenzano la previsione di un modello.

Il processo di prompt engineering è illustrato nel seguente diagramma: Il processo di ingegneria del prompt

Prepara i dati di input

Puoi utilizzare diverse tecniche di prompt. I seguenti esempi mostrano come utilizzare la tecnica di prompt few-shot:

Classificazione

Richiedi

               Classify the following as red wine or white wine:
               
                  Name: Chardonnay
                  Type: White wine
                  Name: Cabernet
                  Type: Red wine
                  Name: Moscato
                  Type: White wine
               
               Name: Riesling
               Type: 
            

Risposta

         White wine
         

Estrazione

Richiedi

            Extract the technical specifications from the text below in a JSON format.
INPUT: Google Nest Wifi, network speed up to 1200Mpbs, 2.4GHz and 5GHz frequencies, WP3 protocol OUTPUT: { "product":"Google Nest Wifi", "speed":"1200Mpbs", "frequencies": ["2.4GHz", "5GHz"], "protocol":"WP3" } Google Pixel 7, 5G network, 8GB RAM, Tensor G2 processor, 128GB of storage, Lemongrass

Risposta

         {
         "product": "Google Pixel 7",
         "network": "5G",
         "ram": "8GB",
         "processor": "Tensor G2",
         "storage": "128GB",
         "color": "Lemongrass"
         }
         

Analisi del sentiment

Richiedi

            Classify the sentiment of the message. Please only print the category name without anything else.
            
               Message: I had to compare two versions of Hamlet for my Shakespeare class and unfortunately I picked this version. Everything from the acting (the actors deliver most of their lines directly to the camera) to the camera shots (all medium or close up shots...no scenery shots and very little back ground in the shots) were absolutely terrible. I watched this over my spring break and it is very safe to say that I feel that I was gypped out of 114 minutes of my vacation. Not recommended by any stretch of the imagination.
               Category: negative
               Message: This Charles outing is decent but this is a pretty low-key performance. Marlon Brando stands out. There's a subplot with Mira Sorvino and Donald Sutherland that forgets to develop and it hurts the film a little. I'm still trying to figure out why Charlie want to change his name.
               Category: negative
Message: My family has watched Arthur Bach stumble and stammer since the movie first came out. We have most lines memorized. I watched it two weeks ago and still get tickled at the simple humor and view-at-life that Dudley Moore portrays. Liza Minelli did a wonderful job as the side kick - though I'm not her biggest fan. This movie makes me just enjoy watching movies. My favorite scene is when Arthur is visiting his fiancée's house. His conversation with the butler and Susan's father is side-spitting. The line from the butler, "Would you care to wait in the Library" followed by Arthur's reply, "Yes I would, the bathroom is out of the question", is my NEWMAIL notification on my computer.

Risposta

         Positive
         

Ottieni una risposta della previsione

Ecco un esempio di risposta di codice Python di esempio per l'esempio di classificazione. Per ulteriori informazioni, consulta la Panoramica dell'IA generativa su Vertex AI.

from vertexai import generative_models
from vertexai.generative_models import GenerativeModel

model = GenerativeModel(model_name="gemini-1.5-flash-001")
response = model.generate_content(["Classify the following as red wine or white wine:

<examples>
Name: Chardonnay
Type: White wine
Name: Cabernet
Type: Red wine
Name: Moscato
Type: White wine
</examples>

Name: Riesling
Type: "])

Ottimizzare con Gemini 1.0 Pro

Il perfezionamento ti consente di adattare Gemini 1.0 Pro alle tue esigenze specifiche. Segui questi passaggi per ottimizzare Gemini 1.0 Pro con i tuoi dati:

Prepara i dati di addestramento

Converti i tuoi dati di addestramento nel formato di ottimizzazione di Gemini, che utilizza un file JSONL la struttura dei file. Ogni riga del file deve rappresentare un singolo esempio di addestramento. Ogni esempio di addestramento deve seguire questa struttura:

{"messages": [{"role": "system", "content": "<system_context>"},, {"role": "user", "content": "<user_input>"}, {"role": "model", "content": "<desired_output>"}]}

Di seguito viene riportato un esempio di voce con due punti dati:

{"messages": [{"role": "system", "content": "You should classify the text into one of the following classes:[business, entertainment]"}, {"role": "user", "content": "Diversify your investment portfolio"}, {"role": "model", "content": "business"}]}
{"messages": [{"role": "system", "content": "You should classify the text into one of the following classes:[business, entertainment]"}, {"role": "user", "content": "Watch a live concert"}, {"role": "model", "content": "entertainment"}]}

Per istruzioni complete e altri esempi, consulta il documento guida alla preparazione dei set di dati.

esegui la pipeline di ottimizzazione

Per avviare il tuo job di ottimizzazione di Gemini, segui questa guida passo passo mediante l'interfaccia utente, Python o l'API REST. Durante la configurazione, seleziona Gemini, configura gli iperparametri di ottimizzazione e specifica impostazioni generali. Ti consigliamo di sperimentare valori diversi per epoche, moltiplicatore del tasso di apprendimento e dimensioni degli adattatori. Per i set di dati con 500-1000 esempi, ti consigliamo di iniziare con le seguenti configurazioni per avere una buona comprensione dell'apprendimento del modello e trovare le impostazioni dei parametri ottimali per la tua attività:

  • epochs=2, learning_rate_multiplier=1, Adapter_size=1;
  • epochs=4, learning_rate_multiplier=1, Adapter_size=1 (predefinito);
  • epochs=6, learning_rate_multiplier=1, dimensioni_adattatore=4;
  • epochs=12, learning_rate_multiplier=4, dimensioni_adattatore=4; e
  • epochs=12, learning_rate_multiplier=4, dimensioni_adattatore=1.

Valutando le prestazioni di una o due configurazioni diverse, puoi identificare i parametri e le modifiche più efficaci per migliorare delle prestazioni. Se non raggiungi il livello di rendimento target, puoi continuare sperimentando queste promettenti configurazioni.

Strumenti e tecniche di valutazione

Una valutazione coerente e comparabile del modello è essenziale per comprendere rendimento e prendere decisioni informate. Ecco alcune tecniche e strumenti per durante la valutazione del modello:

  1. Mantenere una metodologia di valutazione coerente: Utilizzare le stesse metriche e gli stessi metodi di valutazione sia per i modelli ottimizzati che per quelli con prompt. Ciò facilita un confronto diretto e imparziale. Se possibile, utilizza lo stesso set di dati di valutazione usato durante lo sviluppo del modello e deployment. Ciò garantisce un confronto equo tra i tipi di modelli e consente di identificare discrepanze nella qualità.
  2. Strumenti e tecniche di valutazione Servizio di valutazione dell'IA generativa di Vertex AI: offre un livello di latenza sincrona a bassa latenza e valutazioni su piccoli batch di dati. Adatto a valutazioni on demand, rapide iterazione e sperimentazione. Si integra con altri servizi Vertex AI con l'SDK Python.
  3. Suggerimento per classificazione, estrazione e analisi del sentiment: Includi la metrica exact_match quando utilizzi il servizio di valutazione.

Deployment

Per eseguire il deployment del modello ottimizzato, consulta Eseguire il deployment di un modello ottimizzato.

Passaggi successivi