Prepara i dati per il perfezionamento supervisionato dei modelli Gemini

Questo documento descrive come definire un set di dati di ottimizzazione fine supervisionato per un modello Gemini. Puoi ottimizzare i tipi di dati testo, immagine, audio e documento.

Informazioni sui set di dati di ottimizzazione fine supervisionata

Un set di dati di ottimizzazione fine supervisionata viene utilizzato per ottimizzare un modello preaddestrato per un compito o un dominio specifico. I dati di input devono essere simili a quelli che prevedi che il modello incontrerà nell'uso reale. Le etichette di output devono rappresentare le risposte o gli esiti corretti per ogni input.

Set di dati di addestramento

Per ottimizzare un modello, fornisci un set di dati di addestramento. Per ottenere risultati ottimali, ti consigliamo di iniziare con 100 esempi. Se necessario, puoi aumentare il numero di esempi fino a migliaia. La qualità del set di dati è molto più importante della quantità.

Limitazioni:

  • Token di input e output massimi per esempio: 32.000
  • Dimensione massima del set di dati di addestramento: fino a 1 GB per JSONL.

Set di dati di convalida

Ti consigliamo vivamente di fornire un set di dati di convalida. Un set di dati di convalida ti aiuta a misurare l'efficacia di un'attività di ottimizzazione.

Limitazioni:

  • Token di input e output massimi per esempio: 32.000
  • Numero massimo di esempi nel set di dati di convalida: 256
  • Dimensione massima del set di dati di addestramento: fino a 1 GB per JSONL.

Formato del set di dati

Il set di dati di ottimizzazione del modello deve essere nel formato JSON Lines (JSONL), in cui ogni riga contiene un singolo esempio di ottimizzazione. Prima di ottimizzare il modello, devi caricare il set di dati in un bucket Cloud Storage.

Esempio di set di dati per gemini-1.5-pro e gemini-1.5-flash

{
  "systemInstruction": {
    "role": string,
    "parts": [
      {
        "text": string
      }
    ]
  },
  "contents": [
    {
      "role": string,
      "parts": [
        {
          // Union field data can be only one of the following:
          "text": string,
          "fileData": {
            "mimeType": string,
            "fileUri": string
          }
        }
      ]
    }
  ]
}

Parametri

L'esempio contiene dati con i seguenti parametri:

Parametri

contents

Obbligatorio: Content

I contenuti della conversazione corrente con il modello.

Per le query con un solo tratto, si tratta di una singola istanza. Per le query con più turni, si tratta di un campo ripetuto che contiene la cronologia della conversazione e l'ultima richiesta.

systemInstruction

(Facoltativo) Content

Disponibile per gemini-1.5-flash e gemini-1.5-pro.

Istruzioni per il modello per indirizzarlo verso un rendimento migliore. Ad esempio, "Rispondi nel modo più conciso possibile" o "Non utilizzare termini tecnici nella risposta".

Le stringhe text vengono conteggiate ai fini del limite di token.

Il campo role di systemInstruction viene ignorato e non influisce sul rendimento del modello.

Sommario

Il tipo di dati strutturati di base contenente i contenuti suddivisi in più parti di un messaggio.

Questa classe è composta da due proprietà principali: role e parts. La proprietà role indica la persona che produce i contenuti, mentre la proprietà parts contiene più elementi, ciascuno dei quali rappresenta un segmento di dati all'interno di un messaggio.

Parametri

role

(Facoltativo) string

L'identità dell'entità che crea il messaggio. Sono supportati i seguenti valori:

  • user: indica che il messaggio è stato inviato da una persona reale, in genere un messaggio generato dall'utente.
  • model: indica che il messaggio è generato dal modello.

Il valore model viene utilizzato per inserire i messaggi del modello nella conversazione durante le conversazioni multi-turno.

Per le conversazioni non con più turni, questo campo può essere lasciato vuoto o non impostato.

parts

part

Un elenco di parti ordinate che compongono un singolo messaggio. Parti diverse possono avere tipi MIME IANA diversi.

Per i limiti agli input, ad esempio il numero massimo di token o il numero di immagini, consulta le specifiche del modello nella pagina Modelli Google.

Per calcolare il numero di token nella richiesta, consulta Ottieni il conteggio dei token.

Parti

Un tipo di dati contenente contenuti multimediali che fanno parte di un messaggio Content con più parti.

Parametri

text

(Facoltativo) string

Un prompt di testo o uno snippet di codice.

fileData

(Facoltativo) fileData

Dati archiviati in un file.

Esempio di set di dati per Gemini 1.0 Pro

Ogni esempio di conversazione in un set di dati di ottimizzazione è composto da un campo messaggi obbligatorio.

Il campo messages è costituito da un array di coppie di ruoli e contenuti. Il campo role fa riferimento all'autore del messaggio ed è impostato su system, user o model. Il ruolo system è facoltativo e può essere presente solo nel primo elemento dell'elenco di messaggi. I ruoli user o model sono obbligatori e possono ripetersi in modo alternato.

Il campo content è il content del messaggio.

Per ogni esempio, la lunghezza massima del token per context e messages combinati è di 32.768 token. Inoltre, ogni campo di contenuti per il campo del modello non deve superare gli 8192 token.

{
  "messages": [
    {
      "role": string,
      "content": string
    }
  ]
}

Mantieni la coerenza con i dati di produzione

Gli esempi nei 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 riconoscerà il pattern, anche se la domanda esatta fosse presente in un esempio del set di dati.

Carica i set di dati di ottimizzazione in Cloud Storage

Per eseguire un job di ottimizzazione, devi caricare uno o più set di dati in un bucket Cloud Storage. Puoi creare un nuovo bucket Cloud Storage o utilizzarne uno esistente per archiviare i file del set di dati. La regione del bucket non è importante, ma ti consigliamo di utilizzare un bucket nello stesso progetto Google Cloud in cui prevedi di ottimizzare il modello.

Una volta creato il bucket, carica il file del set di dati nel bucket.

Seguire le best practice per la progettazione dei prompt

Una volta ottenuto il set di dati di addestramento e addestrato il modello, è il momento di progettare i prompt. È importante seguire le best practice per la progettazione dei prompt nel set di dati di addestramento per fornire una descrizione dettagliata dell'attività da eseguire e dell'aspetto che deve avere l'output.

Passaggi successivi