Instructivo de ajuste

.

Este instructivo te ayudará a comenzar a ajustar la API de Gemini con el SDK de Python o la API de REST mediante curl Los ejemplos muestran cómo ajustar el modelo de texto detrás el servicio de generación de texto de la API de Gemini.

Ver en ai.google.dev Prueba un notebook de Colab Ver notebook en GitHub

Configura la autenticación

La API de Gemini te permite ajustar modelos con tus propios datos. Dado que son tus datos y Para tus modelos ajustados, se necesitan controles de acceso más estrictos que los que pueden proporcionar las claves de API.

Antes de ejecutar este instructivo, deberás configurar OAuth para tu proyecto.

Enumerar modelos ajustados

Puedes verificar tus modelos ajustados existentes con el genai.list_tuned_models. .

for model_info in genai.list_tuned_models():
    print(model_info.name)

Crea un modelo ajustado

Para crear un modelo ajustado, debes pasar tu conjunto de datos al modelo en el genai.create_tuned_model. Para ello, define directamente valores de entrada y salida en la llamada o importar desde un archivo a un marco de datos para pasar al método.

En este ejemplo, ajustarás un modelo para generar el siguiente número en la secuencia. Por ejemplo, si la entrada es 1, el modelo debería generar 2. Si el botón la entrada es one hundred, el resultado debería ser 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

Los valores óptimos para el recuento de ciclos de entrenamiento, el tamaño del lote y la tasa de aprendizaje dependen en tu conjunto de datos y otras limitaciones de tu caso de uso. Para obtener más información estos valores, consulta Configuración avanzada de ajuste y Hiperparámetros.

Dado que ajustar un modelo puede llevar mucho tiempo, esta API no espera la el ajuste necesario para completarlo. En su lugar, muestra un google.api_core.operation.Operation. objeto que te permite verificar el estado del trabajo de ajuste o esperar a que completar y verificar el resultado.

Tu modelo ajustado se agrega inmediatamente a la lista de modelos ajustados, pero su el estado esté configurado como “Creando” mientras se ajusta el modelo.

Verificar el progreso del ajuste

Puedes verificar el progreso de la operación de ajuste con wait_bar(). método:

for status in operation.wait_bar():
    time.sleep(10)

También puedes usar operation.metadata para verificar la cantidad total de pasos de ajuste. y operation.update() para actualizar el estado de la operación.

Puedes cancelar tu trabajo de ajuste en cualquier momento con el método cancel().

operation.cancel()

Prueba el modelo

Puedes usar el método genai.generate_text y especificar el nombre del objeto ajustado para probar su rendimiento.

model = genai.GenerativeModel(model_name="tunedModels/my-increment-model")
result = model.generate_content("III")
print(result.text)  # "IV"

Actualiza la descripción

Puedes actualizar la descripción de tu modelo ajustado en cualquier momento con la genai.update_tuned_model.

genai.update_tuned_model('tunedModels/my-increment-model', {"description":"This is my model."})

Borra el modelo

Para limpiar tu lista de modelos ajustados, puedes borrar los modelos que ya no necesitas. Usa el método genai.delete_tuned_model para borrar un modelo. Si cancelaste alguno de ajuste de escala automático, puedes borrarlos, ya que su rendimiento impredecibles.

genai.delete_tuned_model("tunedModels/my-increment-model")