Mit der Gemini API optimieren

Designstrategien für Prompts wie „wenige-Shot-Prompts“ führen nicht immer zu dem Ergebnis, Ergebnisse, die Sie benötigen. Die Feinabstimmung ist ein Prozess, mit dem Sie die bei bestimmten Aufgaben zu unterstützen oder dem Modell zu helfen, wenn die Anleitung nicht ausreicht und Sie eine Reihe von Beispielen haben die die gewünschten Ausgaben zeigen.

Auf dieser Seite erhalten Sie einen konzeptionellen Überblick über die Feinabstimmung des Textmodells, das dem Textdienst der Gemini API zugrunde liegt. Wenn Sie bereit sind, mit der Abstimmung zu beginnen, versuchen Sie Folgendes: Anleitung zur Optimierung. 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.

Funktionsweise der Abstimmung

Ziel der Feinabstimmung ist es, die Leistung des Modells Ihre spezifische Aufgabe. 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-Eingaben erwartete Antwortausgaben. 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 zum Zeitpunkt 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, kann das Modell das Muster nicht erkennen. auch wenn die genaue Frage in einem Beispiel im Dataset enthalten war.

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. Wenn ein Prompt oder eine Präambel in Ihrem Dataset enthalten sein sollte, sollte sie auch im Prompt für das abgestimmte Modell zur Inferenzzeit.

Beschränkungen

Hinweis: Die Abstimmung von Datasets für Gemini 1.5 Flash umfasst Folgendes: Einschränkungen:

  • 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 mit nur 20 Beispielen optimieren. Zusätzliche Daten verbessert allgemein die Qualität der Antworten. Je nach Anwendung sollten Sie zwischen 100 und 500 Beispiele anstreben. In der folgenden Tabelle sehen Sie Empfohlene Dataset-Größen für die Feinabstimmung eines Textmodells für verschiedene gängige Aufgaben:

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

Abstimmungs-Dataset hochladen

Die Daten werden entweder inline mit der API oder über Dateien übergeben, die in Google AI Studio

Wenn du die Clientbibliothek verwenden möchtest, musst du die Datendatei im createTunedModel-Aufruf angeben. Die maximal zulässige Dateigröße beträgt 4 MB. Weitere Informationen finden Sie in der Kurzanleitung zur Optimierung mit Python um loszulegen.

Um die REST API mit cURL aufzurufen, stellen Sie dem training_data-Argument. Informationen zu den ersten Schritten finden Sie in der Kurzanleitung zum Optimieren mit cURL.

Erweiterte Abstimmungseinstellungen

Beim Erstellen eines Abstimmungsjobs können Sie die folgenden erweiterten Einstellungen festlegen:

  • Epochen: Ein vollständiger Trainingsdurchlauf des gesamten Trainingssatzes, bei dem jedes Beispiel einmal verarbeitet wird.
  • Batchgröße:Die Reihe von Beispielen, die in einem Trainingsdurchlauf verwendet werden. Die 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. Beispiel: eine Lernrate von 0,3, würden Gewichtungen und Verzerrungen dreimal mehr als eine Lernrate von 0,1. Hohe und niedrige Lernraten haben jeweils Vor- und Nachteile und sollten entsprechend dem Anwendungsfall angepasst werden.
  • Multiplikator für Lernrate:Mit dem Multiplikator wird der Wert ursprüngliche Lernrate zu verbessern. Ein Wert von 1 verwendet die ursprüngliche Lernrate der modellieren. 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 konvergieren und sich nicht auffallen lässt, 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 vom Idealwert abweicht. Vorhersagen in den Trainingsbeispielen nach jeder Epoche. Idealerweise sollten Sie das Training am niedrigsten Punkt der Kurve beenden, kurz bevor ein Plateau erreicht wird. Im folgenden Diagramm ist beispielsweise zu sehen, dass die Verlustkurve etwa bei den Epochen 4–6 ein Plateau erreicht. Das bedeutet, dass Sie den Parameter Epoch auf 4 festlegen können und trotzdem dieselbe Leistung erzielen.

Liniendiagramm, das die Verlustkurve für das Modell zeigt. 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 Abstimmungsjobs prüfen

Sie können den Status Ihres Abstimmungsjobs in Google AI Studio unter dem Meine Bibliothek oder mithilfe des Attributs metadata des abgestimmten Modells im Gemini API verfügbar.

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 Authentifizierung mit einem API-Schlüssel (empfohlen) oder mithilfe von OAuth einrichten Anmeldedaten. 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 finden Sie in der Anleitung zur OAuth-Einrichtung.

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:Abgestimmte Modelle unterliegen den folgenden Einschränkungen:

  • Das Eingabelimit für ein abgestimmtes Flash-Modell von Gemini 1.5 beträgt 40.000 Zeichen.
  • Der JSON-Modus wird für optimierte Modelle nicht unterstützt.
  • Es wird nur die Texteingabe unterstützt.

Nächste Schritte

Beginnen Sie mit den Anleitungen zur Feinabstimmung: