Anleitung zur Optimierung

<ph type="x-smartling-placeholder"></ph>

Dieses Tutorial hilft Ihnen beim Einstieg in die Gemini API-Abstimmung mit dem Python SDK oder der REST API unter Verwendung von curl Die Beispiele zeigen, wie das Textmodell dahinter den Textgenerierungsdienst der Gemini API.

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

Authentifizierung einrichten

Mit der Gemini API können Sie Modelle anhand Ihrer eigenen Daten abstimmen. Da es sich um Ihre Daten und für Ihre abgestimmten Modelle benötigen, als dies mit API-Schlüsseln möglich ist.

Bevor Sie diese Anleitung ausführen können, müssen Sie OAuth für Ihr Projekt.

Abgestimmte Modelle auflisten

Sie können Ihre vorhandenen abgestimmten Modelle mit dem genai.list_tuned_models prüfen .

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 der genai.create_tuned_model-Methode. Dazu definieren Sie direkt oder den Import aus einer Datei in einen Dataframe, an die Methode übergeben.

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 die Eingabe one hundred ist, sollte die Ausgabe one hundred one sein.

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 Epochenanzahl, Batchgröße und Lernrate für Ihr Dataset und andere Einschränkungen für Ihren Anwendungsfall. 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.

Ihr abgestimmtes Modell wird sofort der Liste der abgestimmten Modelle hinzugefügt, seine Status ist auf „Wird erstellt“ festgelegt während das Modell abgestimmt wird.

Fortschritt der Abstimmung prüfen

Sie können den Fortschritt der Abstimmung mithilfe der 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 genai.generate_text verwenden und den Namen der abgestimmten um seine Leistung zu testen.

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 genai.delete_tuned_model, um ein Modell zu löschen. Wenn Sie Abstimmungsjobs sollten Sie diese löschen, da ihre Leistung möglicherweise unvorhersehbar sind.

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