Daten für die beaufsichtigte Feinabstimmung von Gemini-Modellen vorbereiten

In diesem Dokument wird beschrieben, wie Sie einen Datensatz für die beaufsichtigte Feinabstimmung für ein Gemini-Modell definieren. Sie können die Datentypen Text, Bild, Audio und Dokument optimieren.

Überwachte Abstimmungs-Datasets

Mit einem Dataset für die überwachte Feinabstimmung wird ein vortrainiertes Modell für eine bestimmte Aufgabe oder Domain optimiert. Die Eingabedaten sollten ähnlich denen aussehen, die Sie für das Modell in der Praxis erwarten. Die Ausgabelabels sollten die richtigen Antworten oder Ergebnisse für jede Eingabe darstellen.

Trainings-Dataset

Zum Abstimmen eines Modells stellen Sie ein Trainings-Dataset bereit. Die besten Ergebnisse erzielen Sie erst einmal mit 100 Beispielen. Bei Bedarf können Sie die Anzahl auf Tausende von Beispielen hochskalieren. Die Qualität des Datensatzes ist viel wichtiger als die Quantität.

Einschränkungen:

  • Maximale Anzahl der Eingabe- und Ausgabetokens pro Beispiel: 32.000
  • Maximale Dateigröße des Trainingsdatensatzes: Bis zu 1 GB für JSONL.

Validierungs-Dataset

Wir empfehlen dringend, einen Validierungsdatensatz anzugeben. Mit einem Validierungs-Dataset können Sie die Effektivität eines Abstimmungsjobs messen.

Einschränkungen:

  • Maximale Anzahl der Eingabe- und Ausgabetokens pro Beispiel: 32.000
  • Maximale Anzahl von Beispielen im Validierungs-Dataset: 256
  • Maximale Dateigröße des Trainingsdatensatzes: Bis zu 1 GB für JSONL.

Dataset-Format

Ihr Dataset zur Abstimmung eines Modells muss im JSON Lines-Format (JSONL) vorliegen, wobei jede Zeile ein einzelnes Abstimmungsbeispiel enthält. Bevor Sie Ihr Modell abstimmen, müssen Sie Ihr Dataset in einen Cloud Storage-Bucket hochladen.

Beispiel für einen Datensatz für gemini-1.5-pro und 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
          }
        }
      ]
    }
  ]
}

Parameter

Das Beispiel enthält Daten mit den folgenden Parametern:

Parameter

contents

Erforderlich: Content

Der Inhalt der aktuellen Unterhaltung mit dem Modell.

Bei Einzelabfragen ist dies eine einzelne Instanz. Bei Mehrfachabfragen ist dies ein wiederkehrendes Feld, das den Unterhaltungsverlauf und die letzte Anfrage enthält.

systemInstruction

Optional: Content

Verfügbar für gemini-1.5-flash und gemini-1.5-pro.

Anleitung für das Modell, um es zu einer besseren Leistung zu steuern. Beispiel: „Antworten Sie so kurz wie möglich“ oder „Verwenden Sie in Ihrer Antwort keine technischen Begriffe“.

Die text-Strings werden auf das Tokenlimit angerechnet.

Das Feld role von systemInstruction wird ignoriert und wirkt sich nicht auf die Leistung des Modells aus.

Inhalt

Der grundlegende strukturierte Datentyp, der mehrteilige Inhalte einer Nachricht enthält.

Diese Klasse besteht aus zwei Hauptattributen: role und parts. Das Attribut role bezeichnet die Person, die den Inhalt erzeugt, während das Attribut parts mehrere Elemente enthält, die jeweils ein Datensegment innerhalb einer Nachricht darstellen.

Parameter

role

Optional: string

Die Identität der Entität, die die Nachricht erstellt. Folgende Werte werden unterstützt:

  • user: Gibt an, dass die Nachricht von einer realen Person gesendet wurde, in der Regel eine von Nutzern erstellte Nachricht.
  • model: Gibt an, dass die Nachricht vom Modell generiert wird.

Der Wert model wird verwendet, um Nachrichten aus dem Modell in die Unterhaltung einzufügen, die Unterhaltungen über mehrere Themen führen.

Bei Unterhaltungen, die nicht mehrere Themen enthalten, kann dieses Feld leer bleiben oder nicht festgelegt werden.

parts

part

Eine Liste geordneter Teile einer einzelnen Nachricht. Verschiedene Teile haben möglicherweise unterschiedliche IANA-MIME-Typen.

Limits für die Eingaben, z. B. die maximale Anzahl von Tokens oder die Anzahl der Bilder, finden Sie in den Modellspezifikationen auf der Seite Google-Modelle.

Wie du die Anzahl der Tokens in deiner Anfrage berechnest, erfährst du unter Tokenanzahl abrufen.

Teile

Ein Datentyp mit Medien, die Teil einer mehrteiligen Content-Nachricht sind.

Parameter

text

Optional: string

Ein Text-Prompt oder ein Code-Snippet.

fileData

Optional: fileData

In einer Datei gespeicherte Daten.

Beispiel für einen Datensatz für Gemini 1.0 Pro

Jedes Unterhaltungsbeispiel in einem Dataset zur Feinabstimmung besteht aus einem erforderlichen Nachrichtenfeld.

Das messages-Feld besteht aus einem Array aus Rollen-Inhalts-Paaren. Das Feld role bezieht sich auf den Autor der Nachricht und ist auf system, user oder model festgelegt. Die Rolle system ist optional und kann nur beim ersten Element der Nachrichtenliste vorkommen. Die Rollen user oder model sind erforderlich und können abwechselnd wiederholt werden.

Das Feld content ist der content der Nachricht.

Für jedes Beispiel beträgt die maximale Tokenlänge für context und messages zusammen 32.768 Tokens. Außerdem sollte jedes Inhaltsfeld für das Modellfeld 8.192 Tokens nicht überschreiten.

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

Konsistenz mit Produktionsdaten gewährleisten

Die Beispiele in Ihren Datasets sollten dem erwarteten Produktionstraffic entsprechen. Wenn Ihr Dataset bestimmte Formatierungen, Keywords, Anleitungen oder Informationen enthält, sollten die Produktionsdaten auf die gleiche Weise formatiert sein und die gleichen Anweisungen enthalten.

Wenn die Beispiele in Ihrem Dataset beispielsweise ein "question:" und ein "context:" enthalten, sollte der Produktionstraffic ebenfalls so formatiert werden, dass er ein "question:" und ein "context:" in der gleichen Reihenfolge wie in den Dataset-Beispielen enthält. Wenn Sie den Kontext ausschließen, erkennt das Modell das Muster nicht, selbst wenn die genaue Frage in einem Beispiel im Dataset vorkommt.

Abstimmungs-Datasets in Cloud Storage hochladen

Zum Ausführen eines Abstimmungsjobs müssen Sie ein oder mehrere Datasets in einen Cloud Storage-Bucket hochladen. Sie können entweder einen neuen Cloud Storage-Bucket erstellen oder einen vorhandenen Bucket zum Speichern von Dataset-Dateien verwenden. Die Region des Buckets spielt keine Rolle. Wir empfehlen jedoch die Verwendung eines Buckets im selben Google Cloud-Projekt, in dem Sie die Modellabstimmung ausführen möchten.

Wenn der Bucket bereit ist, laden Sie Ihre Dataset-Datei in den Bucket hoch.

Best Practices für das Prompt-Design beachten

Sobald Sie Ihr Trainingsdatensatz haben und das Modell trainiert haben, ist es an der Zeit, Prompts zu entwerfen. Es ist wichtig, die Best Practices für das Design von Prompts in Ihrem Trainingsdatensatz zu befolgen, um eine detaillierte Beschreibung der durchzuführenden Aufgabe und der gewünschten Ausgabe zu geben.

Nächste Schritte