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.

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-Eingängen und erwarteten Antwortausgaben strukturiert sein. Sie können Modelle auch direkt anhand von Beispieldaten abstimmen in Google AI Studio. 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 helfen Die notwendigen Informationen zu codieren, um die gewünschte Aufgabe auszuführen oder das Gesuchte zu lernen verhalten. Diese Parameter können dann bei der Inferenz verwendet werden. Die Ausgabe des Abstimmungsjob ist ein neues Modell, das praktisch eine Kombination aus erlernten Parameter und dem ursprünglichen Modell.

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 bietet, sollten die Beispiele im Dataset hochwertig, vielfältig und für echte Ein- und Ausgaben repräsentativ sind.

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. 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 Datensätzen 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 mit nur 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 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 über die API oder über Dateien übergeben, die in Google AI Studio hochgeladen wurden.

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. Weitere Informationen finden Sie in der Kurzanleitung zur Feinabstimmung mit cURL um loszulegen.

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 angibt, um die Modellparameter bei jeder Iteration anzupassen. 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 entsprechend dem Anwendungsfall angepasst werden.
  • Lernratenmultiplikator: Mit dem Multiplikator wird die ursprüngliche Lernrate des Modells geändert. Ein Wert von 1 verwendet die ursprüngliche Lernrate der modellieren. Werte über 1 erhöhen die Lernrate und Werte zwischen 1 und 0 die Lernrate senken.

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

Hyperparameter Standardwert Empfohlene Anpassungen
Epoche 5

Verwenden Sie einen kleineren Wert, wenn der Verlust vor fünf Epochen zu einem Plateau führt.

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 Datasets 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 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 Tuning-Jobs 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 die Authentifizierung entweder mit einem API-Schlüssel (empfohlen) oder mit OAuth-Anmeldedaten einrichten. Eine Dokumentation zum Einrichten eines API-Schlüssels finden Sie unter Richten Sie einen API-Schlüssel ein.

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 Abstimmungsjob jederzeit vor Abschluss des Jobs abbrechen. Die Inferenzleistung eines abgebrochenen Modells ist jedoch nicht vorhersehbar, insbesondere wenn der Optimierungsjob zu Beginn des Trainings abgebrochen wird. Wenn du gekündigt hast, weil du Wenn Sie das Training zu einer früheren Epoche beenden möchten, sollten Sie eine neue Abstimmung erstellen und legen Sie für die Epoche einen niedrigeren Wert fest.

Einschränkungen abgestimmter Modelle

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 von abgestimmten Modellen nicht unterstützt.
  • Es wird nur die Texteingabe unterstützt.

Nächste Schritte

Beginnen Sie mit den Anleitungen zur Feinabstimmung: