Este instructivo te ayudará a comenzar a usar el servicio de ajuste de la API de Gemini con el SDK de Python o la API de REST con curl. En los ejemplos, se muestra cómo ajustar el modelo de texto detrás del servicio de generación de texto de la API de Gemini.
![]() |
![]() |
![]() |
Limitaciones
Antes de ajustar un modelo, debes tener en cuenta las siguientes limitaciones:
Conjuntos de datos de ajuste
Los conjuntos de datos de ajuste fino para Gemini 1.5 Flash tienen las siguientes limitaciones:
- El tamaño máximo de entrada por ejemplo es de 40,000 caracteres.
- El tamaño máximo de salida por ejemplo es de 5,000 caracteres.
- Solo se admiten ejemplos de pares de entrada y salida. No se admiten conversaciones de varios turnos de estilo de chat.
Modelos ajustados
Los modelos ajustados tienen las siguientes limitaciones:
- El límite de entrada de un modelo Gemini 1.5 Flash ajustado es de 40,000 caracteres.
- El modo JSON no es compatible con los modelos ajustados.
- Solo se admite la entrada de texto.
Antes de comenzar: Configura tu proyecto y clave de API
Antes de llamar a la API de Gemini, debes configurar tu proyecto y tu clave de API.
Cómo enumerar modelos ajustados
Puedes verificar tus modelos ajustados existentes con el 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)
Crea un modelo ajustado
Para crear un modelo ajustado, debes pasar tu conjunto de datos al modelo en el método tunedModels.create
.
En este ejemplo, ajustarás un modelo para generar el siguiente número de la secuencia. Por ejemplo, si la entrada es 1
, el modelo debe mostrar 2
. Si la entrada es one hundred
, el resultado debería 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)
Los valores óptimos para el recuento de épocas, el tamaño del lote y la tasa de aprendizaje dependen de tu conjunto de datos y de otras restricciones de tu caso de uso. Para obtener más información sobre estos valores, consulta Configuración de ajuste avanzada y Hiperparámetros.
Prueba el modelo
Puedes usar el método
tunedModels.generateContent
y especificar el nombre del modelo ajustado para probar su rendimiento.
response = client.models.generate_content(
model=tuning_job.tuned_model.model,
contents='III'
)
No se implementó
Algunas funciones (informes de progreso, actualización de la descripción y eliminación de modelos ajustados) aún no se implementaron en el nuevo SDK.