Anleitung zur Optimierung

Dieses Tutorial hilft Ihnen beim Einstieg in den Abstimmungsdienst der Gemini API mit dem Python SDK oder der REST API curl Die Beispiele zeigen, wie das Textmodell dahinter Gemini API-Dienst zur Textgenerierung.

Auf ai.google.dev ansehen Colab-Notebook testen Notebook auf GitHub ansehen

Beschränkungen

Bevor Sie ein Modell optimieren, sollten Sie sich mit den folgenden Einschränkungen vertraut machen:

Datasets für die Feinabstimmung

Für die Feinabstimmung von Datasets für Gemini 1.5 Flash gelten die folgenden Einschränkungen:

  • Die maximale Eingabegröße pro Beispiel beträgt 40.000 Zeichen.
  • Die maximale Ausgabegröße pro Beispiel beträgt 5.000 Zeichen.
  • Es werden nur Beispiele für Eingabe/Ausgabe-Paare unterstützt. Chatweise in mehreren Schritten Unterhaltungen werden nicht unterstützt.

Abgestimmte Modelle

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

Hinweis: Projekt und API-Schlüssel einrichten

Bevor Sie die Gemini API aufrufen, müssen Sie Ihr Projekt einrichten und konfigurieren Ihren API-Schlüssel.

Abgestimmte Modelle auflisten

Sie können Ihre vorhandenen optimierten Modelle mit der Methode tunedModels.list prüfen.

import google.generativeai as genai

for model_info in genai.list_tuned_models():
    print(model_info.name)

Abgestimmtes Modell erstellen

Um ein abgestimmtes Modell zu erstellen, müssen Sie Ihr dataset an das Modell in tunedModels.create .

In diesem Beispiel stimmen Sie ein Modell ab, um die nächste Zahl in der Sequenz hinzufügen. Wenn die Eingabe beispielsweise 1 ist, sollte das Modell 2 ausgeben. Wenn der Parameter Eingabe one hundred ist, sollte die Ausgabe one hundred one sein.

import google.generativeai as genai

import time

base_model = "models/gemini-1.5-flash-001-tuning"
training_data = [
    {"text_input": "1", "output": "2"},
    # ... more examples ...
    # ...
    {"text_input": "seven", "output": "eight"},
]
operation = genai.create_tuned_model(
    # You can use a tuned model here too. Set `source_model="tunedModels/..."`
    display_name="increment",
    source_model=base_model,
    epoch_count=20,
    batch_size=4,
    learning_rate=0.001,
    training_data=training_data,
)

for status in operation.wait_bar():
    time.sleep(10)

result = operation.result()
print(result)
# # You can plot the loss curve with:
# snapshots = pd.DataFrame(result.tuning_task.snapshots)
# sns.lineplot(data=snapshots, x='epoch', y='mean_loss')

model = genai.GenerativeModel(model_name=result.name)
result = model.generate_content("III")
print(result.text)  # IV

Die optimalen Werte für die Anzahl der Epochen, die Batchgröße und die Lernrate hängen von Ihrem Datensatz und anderen Einschränkungen Ihres Anwendungsfalls ab. Weitere Informationen über finden Sie unter Erweiterte Abstimmungseinstellungen und Hyperparameter:

Da die Abstimmung eines Modells viel Zeit in Anspruch nehmen kann, wartet diese API nicht auf den um die Abstimmung abzuschließen. Stattdessen wird ein google.api_core.operation.Operation-Wert Objekt, mit dem Sie den Status des Abstimmungsjobs prüfen oder warten können, bis er abgeschlossen ist, und prüfen Sie das Ergebnis.

Das abgestimmte Modell wird sofort der Liste der abgestimmten Modelle hinzugefügt. Während der Abstimmung ist sein Status jedoch auf „Erstellen“ festgelegt.

Fortschritt der Abstimmung prüfen

Sie können den Fortschritt der Optimierung mit der Methode wait_bar() prüfen:

for status in operation.wait_bar():
    time.sleep(10)

Sie können auch operation.metadata verwenden, um die Gesamtzahl der Abstimmungsschritte zu prüfen und operation.update(), um den Status des Vorgangs zu aktualisieren.

Sie können den Abstimmungsjob jederzeit mit der Methode cancel() abbrechen.

operation.cancel()

Modell testen

Sie können die Methode tunedModels.generateContent verwenden und den Namen des optimierten Modells angeben, um seine Leistung zu testen.

import google.generativeai as genai

model = genai.GenerativeModel(model_name="tunedModels/my-increment-model")
result = model.generate_content("III")
print(result.text)  # "IV"

Beschreibung aktualisieren

Sie können die Beschreibung Ihres abgestimmten Modells jederzeit aktualisieren. Verwenden Sie dazu die genai.update_tuned_model-Methode.

genai.update_tuned_model('tunedModels/my-increment-model', {"description":"This is my model."})

Modell löschen

Sie können die Liste der abgestimmten Modelle bereinigen, indem Sie nicht mehr benötigte Modelle löschen. Verwenden Sie die Methode tunedModels.delete, um ein Modell zu löschen. Wenn Sie Abstimmungsjobs abgebrochen haben, können Sie diese wie folgt löschen: kann die Leistung unvorhersehbar sein.

genai.delete_tuned_model("tunedModels/my-increment-model")