Este tutorial vai ajudar você a começar a usar o serviço de ajuste da API Gemini com o SDK do Python ou a API REST usando o curl. Os exemplos mostram como ajustar o modelo de texto por trás do serviço de geração de texto da API Gemini.
![]() |
![]() |
![]() |
Limitações
Antes de ajustar um modelo, considere as seguintes limitações:
Ajustar conjuntos de dados
O ajuste fino dos conjuntos de dados do Gemini 1.5 Flash tem as seguintes limitações:
- O tamanho máximo de entrada por exemplo é de 40.000 caracteres.
- O tamanho máximo de saída por exemplo é de 5.000 caracteres.
- Somente exemplos de pares de entrada e saída são aceitos. Não há suporte para conversas de vários turnos no estilo de chat.
Modelos ajustados
Os modelos ajustados têm as seguintes limitações:
- O limite de entrada de um modelo Gemini 1.5 Flash ajustado é de 40.000 caracteres.
- O modo JSON não é compatível com modelos ajustados.
- Somente a entrada de texto é aceita.
Antes de começar: configure o projeto e a chave de API
Antes de chamar a API Gemini, você precisa configurar seu projeto e a chave de API.
Listar modelos ajustados
É possível verificar os modelos ajustados com o método
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)
Criar um modelo ajustado
Para criar um modelo ajustado, transmita o conjunto de dados para o modelo no método tunedModels.create
.
Neste exemplo, você vai ajustar um modelo para gerar o próximo número na
sequência. Por exemplo, se a entrada for 1
, o modelo vai gerar 2
. Se a
entrada for one hundred
, a saída será 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)
Os valores ideais para a contagem de épocas, o tamanho do lote e a taxa de aprendizado dependem do seu conjunto de dados e de outras restrições do caso de uso. Para saber mais sobre esses valores, consulte Configurações avançadas de ajuste e Hiperparâmetros.
Testar o modelo
Use o método
tunedModels.generateContent
e especifique o nome do modelo ajustado para testar a performance dele.
response = client.models.generate_content(
model=tuning_job.tuned_model.model,
contents='III'
)
Não implementado
Alguns recursos (relatórios de progresso, atualização da descrição e exclusão de modelos ajustados) ainda não foram implementados no novo SDK.