W tym samouczku dowiesz się, jak zacząć korzystać z usługi dostrojenia interfejsu Gemini API za pomocą pakietu Python SDK lub interfejsu REST API za pomocą curl. Przykłady pokazują, jak dostosować model tekstowy, który obsługuje usługę generowania tekstu w interfejsie Gemini API.
![]() |
![]() |
![]() |
Ograniczenia
Zanim dostosujesz model, pamiętaj o tych ograniczeniach:
Zbiory danych do dostrajania
Dane do dostosowania w przypadku Gemini 1.5 Flash mają te ograniczenia:
- Maksymalny rozmiar danych wejściowych na przykład wynosi 40 tys. znaków.
- Maksymalny rozmiar wyjściowy na przykład wynosi 5000 znaków.
- Obsługiwane są tylko pary danych wejściowych i wyjściowych. Rozmowy wielostronne w stylu czatu nie są obsługiwane.
Modele dostrojone
Dostrojone modele mają te ograniczenia:
- Limit danych wejściowych w dostosowanym modelu Gemini 1.5 Flash wynosi 40 tys. znaków.
- Tryb JSON nie jest obsługiwany w przypadku dostrojonych modeli.
- Obsługiwane są tylko dane tekstowe.
Zanim zaczniesz: skonfiguruj projekt i klucz interfejsu API
Zanim wywołasz interfejs Gemini API, musisz skonfigurować projekt i klucz interfejsu API.
Wyświetlanie listy modeli dostrojonych
Istniejące dostrojone modele możesz sprawdzić za pomocą metody tunedModels.list
.
from google import genai
client = genai.Client() # Get the key from the GOOGLE_API_KEY env variable
for model_info in client.models.list():
print(model_info.name)
Tworzenie modelu dostrojonego
Aby utworzyć dostrojony model, musisz przekazać zbiór danych do modelu w metodzie tunedModels.create
.
W tym przykładzie dostosujesz model, aby wygenerował następną liczbę w sekwencji. Jeśli na przykład dane wejściowe to 1
, model powinien zwrócić 2
. Jeśli dane wejściowe to one hundred
, dane wyjściowe powinny być one hundred one
.
# create tuning model
training_dataset = [
["1", "2"],
["3", "4"],
["-3", "-2"],
["twenty two", "twenty three"],
["two hundred", "two hundred one"],
["ninety nine", "one hundred"],
["8", "9"],
["-98", "-97"],
["1,000", "1,001"],
["10,100,000", "10,100,001"],
["thirteen", "fourteen"],
["eighty", "eighty one"],
["one", "two"],
["three", "four"],
["seven", "eight"],
]
training_dataset=types.TuningDataset(
examples=[
types.TuningExample(
text_input=i,
output=o,
)
for i,o in training_dataset
],
)
tuning_job = client.tunings.tune(
base_model='models/gemini-1.0-pro-001',
training_dataset=training_dataset,
config=types.CreateTuningJobConfig(
epoch_count= 5,
batch_size=4,
learning_rate=0.001,
tuned_model_display_name="test tuned model"
)
)
# generate content with the tuned model
response = client.models.generate_content(
model=tuning_job.tuned_model.model,
contents='III',
)
print(response.text)
Optymalne wartości liczby epok, rozmiaru partii i tempo nauki zależą od zbioru danych i innych ograniczeń związanych z przypadkiem użycia. Więcej informacji o tych wartościach znajdziesz w artykułach Zaawansowane ustawienia dostrajania i Hiperparametry.
Wypróbowywanie modelu
Aby przetestować wydajność dostrojonego modelu, możesz użyć metody tunedModels.generateContent
i podać nazwę dostrojonego modelu.
response = client.models.generate_content(
model=tuning_job.tuned_model.model,
contents='III'
)
Nie wdrożono
Niektóre funkcje (raportowanie postępów, aktualizowanie opisu i usuwanie dostrojonych modeli) nie zostały jeszcze zaimplementowane w nowym pakiecie SDK.