<ph type="x-smartling-placeholder">
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")