Mit der Gemini API optimieren

Strategien für das Design von Prompts wie Few Shot Prompting liefern möglicherweise nicht immer die gewünschten Ergebnisse. Mit der Feinabstimmung können Sie die Leistung Ihres Modells für bestimmte Aufgaben verbessern oder bestimmte Modellanforderungen erfüllen, wenn die Anleitungen nicht ausreichen und Sie eine Reihe von Beispielen haben, die die gewünschten Ergebnisse veranschaulichen.

Auf dieser Seite erhalten Sie einen konzeptionellen Überblick über die Feinabstimmung des Textmodells, das dem Textdienst der Gemini API zugrunde liegt. Wenn Sie mit der Optimierung beginnen möchten, sehen Sie sich die Anleitung zur Feinabstimmung an. Eine allgemeinere Einführung in die Anpassung von LLMs für bestimmte Anwendungsfälle finden Sie im Crashkurs für maschinelles Lernen unter LLMs: Feinabstimmung, Destillation und Prompt-Engineering.

So funktioniert die Feinabstimmung

Das Ziel der Feinabstimmung besteht darin, die Leistung des Modells für Ihre spezifische Aufgabe weiter zu verbessern. Bei der Feinabstimmung wird dem Modell ein Trainings-Dataset mit vielen Beispielen für die Aufgabe zur Verfügung gestellt. Bei Nischenaufgaben können Sie erhebliche Verbesserungen der Modellleistung erzielen, wenn Sie das Modell mit einer kleinen Anzahl von Beispielen abstimmen. Diese Art der Modelloptimierung wird manchmal als überwachte Feinabstimmung bezeichnet, um sie von anderen Arten der Feinabstimmung zu unterscheiden.

Ihre Trainingsdaten sollten als Beispiele mit Prompt-Eingängen und erwarteten Antwortausgaben strukturiert sein. Sie können Modelle auch direkt in Google AI Studio mit Beispieldaten optimieren. Ziel ist es, dem Modell beizubringen, das gewünschte Verhalten oder die gewünschte Aufgabe nachzuahmen. Dazu werden viele Beispiele veranschaulicht, die dieses Verhalten oder diese Aufgabe veranschaulichen.

Wenn Sie einen Abstimmungsjob ausführen, lernt das Modell zusätzliche Parameter, die ihm dabei helfen, die erforderlichen Informationen zu codieren, um die gewünschte Aufgabe auszuführen oder das gewünschte Verhalten zu erlernen. Diese Parameter können dann bei der Inferenz verwendet werden. Die Ausgabe des Abstimmungsjobs ist ein neues Modell, das eine Kombination aus den neu erlernten Parametern und dem ursprünglichen Modell darstellt.

Dataset vorbereiten

Bevor Sie mit der Feinabstimmung beginnen können, benötigen Sie ein Dataset, mit dem Sie das Modell abstimmen können. Für die beste Leistung sollten die Beispiele im Dataset von hoher Qualität, vielfältig und repräsentativ für reale Eingaben und Ausgaben sein.

Format

Die Beispiele in Ihrem Dataset 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.

Hier ein weiteres Beispiel für Python-Trainingsdaten für eine Anwendung, die die nächste Zahl in einer Sequenz generiert:

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"},
]

Wenn Sie jedem Beispiel in Ihrem Dataset einen Prompt oder eine Präambel hinzufügen, lässt sich die Leistung des optimierten Modells ebenfalls verbessern. Hinweis: Wenn Ihr Dataset einen Prompt oder eine Präambel enthält, sollte dieser auch in der Prompt-Anfrage an das optimierte Modell bei der Inferenz enthalten sein.

Beschränkungen

Hinweis:Die Feinabstimmung von Datasets für Gemini 1.5 Flash ist mit folgenden Einschränkungen verbunden:

  • Die maximale Eingabegröße pro Beispiel beträgt 40.000 Zeichen.
  • Die maximale Ausgabegröße pro Beispiel beträgt 5.000 Zeichen.

Größe der Trainingsdaten

Sie können ein Modell bereits mit 20 Beispielen optimieren. Zusätzliche Daten verbessern in der Regel die Qualität der Antworten. Je nach Anwendung sollten Sie zwischen 100 und 500 Beispiele anstreben. In der folgenden Tabelle sind die empfohlenen Dataset-Größen für die Feinabstimmung eines Textmodells für verschiedene gängige Aufgaben aufgeführt:

Aufgabe Anzahl der Beispiele im Dataset
Klassifizierung 100+
Zusammenfassung 100-500+
Dokumentsuche 100+

Dataset für die Optimierung hochladen

Die Daten werden entweder inline über die API oder über Dateien übergeben, die in Google AI Studio hochgeladen wurden.

Wenn Sie die Clientbibliothek verwenden möchten, geben Sie die Datendatei im createTunedModel-Aufruf an. Die maximal zulässige Dateigröße beträgt 4 MB. Informationen zu den ersten Schritten finden Sie in der Kurzanleitung zum Optimieren mit Python.

Wenn Sie die REST API mit cURL aufrufen möchten, geben Sie dem Argument training_data Trainingsbeispiele im JSON-Format an. Informationen zu den ersten Schritten finden Sie in der Kurzanleitung zum Optimieren mit cURL.

Einstellungen für die erweiterte Abstimmung

Beim Erstellen eines Optimierungsjobs können Sie die folgenden erweiterten Einstellungen angeben:

  • Epochen: Ein vollständiger Trainingsdurchlauf des gesamten Trainingssatzes, bei dem jedes Beispiel einmal verarbeitet wird.
  • Batchgröße:Die Anzahl der Beispiele, die in einer Trainingsiteration verwendet werden. Die Batchgröße bestimmt die Anzahl der Beispiele in einem Batch.
  • Lernrate:Eine Gleitkommazahl, die dem Algorithmus mitteilt, wie stark die Modellparameter bei jeder Iteration angepasst werden sollen. Bei einer Lernrate von 0,3 werden Gewichte und Voreingenommenheiten beispielsweise dreimal stärker angepasst als bei einer Lernrate von 0,1. Hohe und niedrige Lernraten haben jeweils Vor- und Nachteile und sollten je nach Anwendungsfall angepasst werden.
  • Lernratenmultiplikator:Mit dem Multiplikator wird die ursprüngliche Lernrate des Modells geändert. Bei einem Wert von 1 wird die ursprüngliche Lernrate des Modells verwendet. Werte über 1 erhöhen die Lernrate und Werte zwischen 1 und 0 senken die Lernrate.

Die folgende Tabelle zeigt die empfohlenen Konfigurationen für die Feinabstimmung eines Foundation-Modells:

Hyperparameter Standardwert Empfohlene Anpassungen
Epoche 5

Wenn der Verlust vor 5 Epochen ein Plateau erreicht, verwenden Sie einen kleineren Wert.

Wenn der Verlust konvergiert und nicht zu stagnieren scheint, verwenden Sie einen höheren Wert.

Batchgröße 4
Lernrate 0,001 Verwenden Sie für kleinere Datensätze einen kleineren Wert.

Die Verlustkurve zeigt, wie stark die Vorhersage des Modells nach jeder Epoche von den idealen Vorhersagen in den Trainingsbeispielen abweicht. Idealerweise sollten Sie das Training am niedrigsten Punkt der Kurve beenden, kurz bevor sie ein Plateau erreicht. Im folgenden Diagramm ist beispielsweise zu sehen, dass die Verlustkurve bei etwa 4 bis 6 Epochen ein Plateau erreicht. Das bedeutet, dass Sie den Parameter Epoch auf 4 festlegen können und trotzdem dieselbe Leistung erzielen.

Liniendiagramm mit der Verlustkurve für das Modell. Die Linie steigt zwischen der ersten und der zweiten Epoche an, fällt dann stark auf fast 0 ab und gleicht sich nach drei Epochen wieder aus.

Status des Tuning-Jobs prüfen

Sie können den Status Ihres Tuning-Jobs in Google AI Studio auf dem Tab Meine Bibliothek oder mithilfe der Eigenschaft metadata des abgestimmten Modells in der Gemini API prüfen.

Fehler beheben

In diesem Abschnitt finden Sie Tipps zur Behebung von Fehlern, die beim Erstellen des optimierten Modells auftreten können.

Authentifizierung

Für die Optimierung mit der API und der Clientbibliothek ist eine Authentifizierung erforderlich. Sie können die Authentifizierung entweder mit einem API-Schlüssel (empfohlen) oder mit OAuth-Anmeldedaten einrichten. Eine entsprechende Dokumentation finden Sie unter API-Schlüssel einrichten.

Wenn der Fehler 'PermissionDenied: 403 Request had insufficient authentication scopes' angezeigt wird, müssen Sie möglicherweise die Nutzerauthentifizierung mit OAuth-Anmeldedaten einrichten. Informationen zum Konfigurieren von OAuth-Anmeldedaten für Python findest du in der OAuth-Einrichtungsanleitung.

Abgebrochene Modelle

Sie können einen Optimierungsjob jederzeit vor Abschluss abbrechen. Die Inferenzleistung eines abgebrochenen Modells ist jedoch nicht vorhersehbar, insbesondere wenn der Optimierungsjob zu Beginn des Trainings abgebrochen wird. Wenn Sie das Training abgebrochen haben, weil Sie es bei einer früheren Epoche beenden möchten, sollten Sie einen neuen Optimierungsjob erstellen und die Epoche auf einen niedrigeren Wert festlegen.

Einschränkungen bei optimierten Modellen

Hinweis:Für optimierte Modelle gelten die folgenden Einschränkungen:

  • Das Eingabelimit eines optimierten Gemini 1.5-Flash-Modells beträgt 40.000 Zeichen.
  • Der JSON-Modus wird für optimierte Modelle nicht unterstützt.
  • Systemanweisungen werden bei optimierten Modellen nicht unterstützt.
  • Es wird nur die Texteingabe unterstützt.

Nächste Schritte

Hier finden Sie Anleitungen zur Feinabstimmung: