Prepara i dati per il perfezionamento supervisionato dei modelli Gemini

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

Informazioni sui set di dati di ottimizzazione supervisionata

Un set di dati di ottimizzazione supervisionata viene utilizzato per ottimizzare un modello preaddestrato per un'attività 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 i risultati 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à.

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 job di ottimizzazione.

Limitazioni

Per le limitazioni relative ai set di dati, come i token di input e output massimi, la dimensione massima del set di dati di convalida e la dimensione massima del file del set di dati di addestramento, consulta Informazioni sul fine-tuning supervisionato per i modelli Gemini.

Formato del set di dati

Sono supportati i seguenti formati di dati:

Esempio di set di dati per Gemini

{
  "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 attuale con il modello.

Per le query a un solo turno, si tratta di una singola istanza. Per le query multi-turno, questo è un campo ripetuto che contiene la cronologia della conversazione e l'ultima richiesta.

systemInstruction

(Facoltativo) Content

Vedi Modelli supportati.

Istruzioni per il modello per indirizzarlo verso prestazioni migliori. 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.

tools

Facoltativo. Un frammento di codice che consente al sistema di interagire con sistemi esterni per eseguire un'azione o un insieme di azioni al di fuori delle conoscenze e dell'ambito del modello. Vedi Chiamata di funzione.

Sommario

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

Questa classe è costituita da due proprietà principali: role e parts. La proprietà role indica l'individuo che produce i contenuti, mentre la proprietà parts contiene più elementi, ognuno 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 è 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 multi-turn, questo campo può essere lasciato vuoto o non impostato.

parts

part

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

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

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

Parti

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

Parametri

text

(Facoltativo) string

Un prompt di testo o uno snippet di codice.

fileData

(Facoltativo) fileData

Dati archiviati in un file.

functionCall

(Facoltativo) FunctionCall.

Contiene una stringa che rappresenta il campo FunctionDeclaration.name e un oggetto JSON strutturato contenente eventuali parametri per la chiamata di funzione prevista dal modello.

Vedi Chiamata di funzione.

functionResponse

(Facoltativo) FunctionResponse.

L'output del risultato di un FunctionCall che contiene una stringa che rappresenta il campo FunctionDeclaration.name e un oggetto JSON strutturato contenente qualsiasi output della chiamata di funzione. Viene utilizzato come contesto per il modello.

Vedi Chiamata di funzione.

Esempio di set di dati

Ogni esempio di conversazione in un set di dati di ottimizzazione è composto da un campo messages obbligatorio e da un campo context facoltativo.

Il campo messages è costituito da un array di coppie ruolo-contenuto:

  • Il campo role si riferisce 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 dei messaggi. I ruoli user e model sono obbligatori e possono ripetersi in modo alternato.
  • Il campo content contiene il contenuto del messaggio.

Per ogni esempio, la lunghezza massima dei token per context e messages combinati è di 131.072 token. Inoltre, ogni campo content per il campo model 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 previsto in produzione. 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 facesse parte di un esempio nel 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 che si trova nello stesso progettoGoogle Cloud in cui prevedi di ottimizzare il modello.

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

Segui la best practice per la progettazione dei prompt

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

Passaggi successivi