Ten samouczek pomoże Ci rozpocząć dostrajanie interfejsu Gemini API za pomocą pakietu SDK w języku Python lub interfejsu API REST, curl. Przykłady pokazują, jak dostroić model tekstu za Gemini API.
Wyświetl na ai.google.dev | Wypróbuj notatnik Colab | Wyświetl notatnik na GitHubie |
Konfigurowanie uwierzytelniania
Interfejs Gemini API umożliwia dostrajanie modeli na podstawie własnych danych. To Twoje dane, dostrojonych modeli wymaga bardziej rygorystycznej kontroli dostępu niż klucze interfejsu API.
Zanim uruchomisz ten samouczek, musisz skonfigurować OAuth w projekt.
Wyświetlenie listy dostrojonych modeli
Dotychczasowe dostrojone modele możesz sprawdzać na stronie genai.list_tuned_models
.
for model_info in genai.list_tuned_models():
print(model_info.name)
Tworzenie modelu dostrojonego
Aby utworzyć model dostrojony, musisz przekazać swój zbiór danych do modelu w
Metoda genai.create_tuned_model
. Możesz to zrobić, bezpośrednio definiując
danych wejściowych i wyjściowych w rozmowie lub importowaniu z pliku do struktury DataFrame w celu
do metody.
W tym przykładzie dostrój model tak, aby wygenerować kolejną liczbę w funkcji
kolejne wartości. Jeśli na przykład dane wejściowe to 1
, model powinien zwrócić 2
. Jeśli
wejściowa jest wartość one hundred
, dane wyjściowe powinny mieć wartość one hundred one
.
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
Optymalne wartości liczby epoki, wielkości wsadu i tempa uczenia się są zależne od tych wartości na zbiorze danych i innych ograniczeniach Twojego przypadku użycia. Aby dowiedzieć się więcej o: zwróć uwagę na te wartości. Zaawansowane ustawienia dostrajania oraz Hiperparametry.
Dostrajanie modelu może zająć dużo czasu, więc ten interfejs API nie czeka na
dostrajania, by zakończyć. Zamiast tego zwraca google.api_core.operation.Operation
obiekt, który pozwala sprawdzić stan zadania dostrajania lub zaczekać, aż
i sprawdź wynik.
Dostrojony model zostanie natychmiast dodany do listy dostrojonych modeli, ale stan jest ustawiony na tworzenie podczas dostrajania modelu.
Sprawdź postęp dostrajania
Postęp dostrajania możesz sprawdzić za pomocą wait_bar()
:
for status in operation.wait_bar():
time.sleep(10)
Aby sprawdzić łączną liczbę kroków dostrajania, możesz też użyć wartości operation.metadata
i operation.update()
, aby odświeżyć stan operacji.
Zadanie dostrajania możesz anulować w dowolnym momencie przy użyciu metody cancel()
.
operation.cancel()
Wypróbowywanie modelu
Możesz użyć metody genai.generate_text
i podać nazwę dostrojonego odtwarzacza
aby przetestować jego wydajność.
model = genai.GenerativeModel(model_name="tunedModels/my-increment-model")
result = model.generate_content("III")
print(result.text) # "IV"
Zaktualizuj opis
Opis dostrojonego modelu możesz w każdej chwili zaktualizować, korzystając z
Metoda genai.update_tuned_model
.
genai.update_tuned_model('tunedModels/my-increment-model', {"description":"This is my model."})
Usuwanie modelu
Listę dostrojonych modeli możesz wyczyścić, usuwając modele, których już nie potrzebujesz.
Aby usunąć model, użyj metody genai.delete_tuned_model
. Jeśli anulujesz którykolwiek z nich
zadań dostrajania, warto je usunąć, ponieważ ich wydajność może
jest nieprzewidywalna.
genai.delete_tuned_model("tunedModels/my-increment-model")