Mit der Gemini API optimieren

Designstrategien für Prompts wie „wenige-shot“-Prompts liefern möglicherweise nicht immer die gewünschten Ergebnisse. Die Feinabstimmung ist ein Prozess, mit dem Sie die Leistung Ihres Modells bei bestimmten Aufgaben verbessern oder dem Modell dabei helfen können, bestimmte Ausgabeanforderungen einzuhalten, wenn Anweisungen nicht ausreichen und Sie eine Reihe von Beispielen zur Veranschaulichung der gewünschten Ausgaben haben.

Auf dieser Seite finden Sie eine Anleitung zur Feinabstimmung des Textmodells, das dem Gemini API-Textdienst zugrunde liegt.

Funktionsweise der Abstimmung

Ziel der Feinabstimmung ist es, die Leistung des Modells für Ihre spezifische Aufgabe weiter zu verbessern. Für die Optimierung erhält das Modell ein Trainings-Dataset, das viele Beispiele der Aufgabe enthält. Bei Nischenaufgaben können Sie die Modellleistung erheblich verbessern, wenn Sie das Modell anhand einer geringen Anzahl von Beispielen abstimmen.

Ihre Trainingsdaten sollten als Beispiele mit Prompt-Eingaben und erwarteten Antwortausgaben strukturiert sein. Sie können Modelle auch direkt in Google AI Studio mithilfe von Beispieldaten abstimmen. Ziel ist es, dem Modell beizubringen, das gewünschte Verhalten oder die gewünschte Aufgabe zu imitieren. Dazu geben Sie ihm viele Beispiele, die dieses Verhalten oder diese Aufgabe veranschaulichen.

Wenn Sie einen Abstimmungsjob ausführen, lernt das Modell zusätzliche Parameter, mit denen es die erforderlichen Informationen codieren kann, die zum Ausführen der gewünschten Aufgabe oder zum gewünschten Verhalten erforderlich sind. Diese Parameter können dann zum Zeitpunkt der Inferenz verwendet werden. Die Ausgabe des Abstimmungsjobs ist ein neues Modell, das im Grunde eine Kombination aus den neu erlernten Parametern und dem ursprünglichen Modell ist.

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 eine optimale Leistung sollten die Beispiele im Dataset hochwertig, vielfältig und repräsentativ für reale Ein- und Ausgaben sein.

Format

Die im Dataset enthaltenen Beispiele 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.

Wenn Sie jedem Beispiel in Ihrem Dataset einen Prompt oder eine Präambel hinzufügen, können Sie auch die Leistung des abgestimmten Modells verbessern. Hinweis: Wenn Ihr Dataset einen Prompt oder eine Präambel enthält, sollte dieser auch zum Zeitpunkt der Inferenz im Prompt für das abgestimmte Modell enthalten sein.

Größe der Trainingsdaten

Sie können ein Modell mit nur 20 Beispielen optimieren. Zusätzliche Daten verbessern im Allgemeinen die Qualität der Antworten. Abhängig von Ihrer Anwendung sollten Sie ein Targeting zwischen 100 und 500 Beispiele vornehmen. Die folgende Tabelle enthält 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 hochgeladen wurden.

Klicken Sie auf die Schaltfläche Importieren und folgen Sie der Anleitung im Dialogfeld, um Daten aus einer Datei zu importieren, oder wählen Sie einen strukturierten Prompt mit Beispielen für den Import als Abstimmungs-Dataset aus.

Clientbibliothek

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. Weitere Informationen finden Sie im Kurzanleitung zur Optimierung mit Python.

cURL

Wenn Sie die REST API mit cURL aufrufen möchten, stellen Sie für das Argument training_data Trainingsbeispiele im JSON-Format bereit. Weitere Informationen finden Sie in der Kurzanleitung zur Feinabstimmung mit cURL.

Erweiterte Abstimmungseinstellungen

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

  • Epochen:Ein vollständiger Trainingsdurchlauf für das gesamte Trainings-Dataset, sodass jedes Beispiel einmal verarbeitet wurde.
  • Batchgröße:Die Reihe von Beispielen, die in einer Trainingsdurchlaufung 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 jedem Durchlauf angepasst werden sollen. Eine Lernrate von 0,3 würde beispielsweise Gewichtungen und Verzerrungen dreimal wirksamer anpassen als eine Lernrate von 0,1. Hohe und niedrige Lernraten haben ihre eigenen Vor- und Nachteile und sollten an Ihren Anwendungsfall angepasst werden.
  • Multiplikator für Lernrate:Der Ratenmultiplikator ändert die ursprüngliche Lernrate des Modells. Ein Wert von 1 verwendet die ursprüngliche Lernrate des Modells. Werte größer als 1 erhöhen die Lernrate, Werte zwischen 1 und 0 verringern die Lernrate.

Die folgende Tabelle enthält die empfohlenen Konfigurationen für die Feinabstimmung eines Fundamentmodells:

Hyperparameter Standardwert Empfohlene Anpassungen
Epoche 5

Wenn der Verlust vor fünf Epochen zu einem Plateau führt, 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 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 tiefsten Punkt in der Kurve beenden, kurz bevor es zum Hochstufen kommt. Das folgende Diagramm zeigt beispielsweise, wie die Verlustkurve ungefähr in der Epoche 4 bis 6 ansteigt. Sie können also den Parameter Epoch auf 4 setzen und trotzdem die gleiche Leistung erzielen.

Liniendiagramm, das die Verlustkurve für das Modell zeigt. Die Linie spitzt zwischen der ersten und der zweiten Epoche an, dann fällt sie stark auf fast 0 und nach drei Epochen wieder ab.

Status des Abstimmungsjobs prüfen

Sie können den Status Ihres Abstimmungsjobs in Google AI Studio auf dem Tab Meine Bibliothek oder über das Attribut metadata des abgestimmten Modells in der Gemini API prüfen.

Fehler beheben

Dieser Abschnitt enthält Tipps zum Beheben von Fehlern, die beim Erstellen Ihres abgestimmten Modells auftreten können.

Authentifizierung

Für die Abstimmung mithilfe der API und der Clientbibliothek ist eine Nutzerauthentifizierung erforderlich. Ein API-Schlüssel allein reicht nicht aus. Wenn der Fehler 'PermissionDenied: 403 Request had insufficient authentication scopes' angezeigt wird, müssen Sie die Nutzerauthentifizierung einrichten.

Informationen zum Konfigurieren von OAuth-Anmeldedaten für Python finden Sie in der Anleitung zur Einrichtung von OAuth.

Gekündigte Modelle

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

Nächste Schritte