Ajuste con la API de Gemini

Es posible que las estrategias de diseño de instrucciones, como las instrucciones con pocas tomas, no siempre produzcan los resultados que necesitas. El ajuste fino es un proceso que puede mejorar el rendimiento de tu modelo en tareas específicas o ayudar a que el modelo cumpla con requisitos de salida específicos cuando las instrucciones no sean suficientes y tengas un conjunto de ejemplos que demuestren los resultados que deseas.

En esta página, se proporciona una descripción general conceptual para ajustar el modelo de texto detrás del servicio de texto de la API de Gemini. Cuando esté todo listo para comenzar el ajuste, prueba instructivo de ajuste. Si deseas una introducción más general a la personalización de LLM para casos de uso específicos, consulta descifrar? LLM: Ajuste, ingeniería de instrucciones y síntesis en la Curso intensivo de aprendizaje automático.

Cómo funciona el ajuste fino

El objetivo del ajuste es mejorar aún más el rendimiento del modelo para para tu tarea específica. El ajuste fino funciona proporcionando al modelo un conjunto de datos de entrenamiento que contiene muchos ejemplos de la tarea. Para tareas de nicho, puedes obtener Mejoras significativas en el rendimiento del modelo ajustando el modelo con una una gran cantidad de ejemplos. Este tipo de ajuste de modelo a veces se conoce como ajuste supervisado para distinguirlo de otros tipos de ajuste.

Tus datos de entrenamiento deben estar estructurados como ejemplos con entradas de instrucciones y salidas de respuestas esperadas. También puedes ajustar los modelos con datos de ejemplo directamente en Google AI Studio. El objetivo es enseñarle al modelo a imitar el comportamiento deseado. o tarea, dándole muchos ejemplos que ilustran ese comportamiento o esa tarea.

Cuando ejecutas un trabajo de ajuste, el modelo aprende parámetros adicionales que lo ayudan a codificar la información necesaria para realizar la tarea deseada o aprender el comportamiento deseado. Luego, estos parámetros se pueden usar en el momento de la inferencia. El resultado del trabajo de ajuste es un modelo nuevo, que es una combinación de los parámetros recién aprendidos y el modelo original.

Prepara tu conjunto de datos

Antes de que puedas comenzar con el ajuste, necesitas un conjunto de datos para ajustar el modelo. Para el mejor rendimiento, los ejemplos del conjunto de datos deben ser de alta calidad diversos y representativos de entradas y resultados reales.

Formato

Los ejemplos que se incluyen en tu conjunto de datos deben coincidir con tu tráfico de producción esperado. Si tu conjunto de datos contiene formato, palabras clave, instrucciones o información específicas, los datos de producción deben tener el mismo formato y contener las mismas instrucciones.

Por ejemplo, si los ejemplos de tu conjunto de datos incluyen una "question:" y un "context:", el tráfico de producción también debe tener el formato de modo que incluya una "question:" y un "context:" en el mismo orden en que aparecen en ejemplos de conjuntos de datos. Si excluyes el contexto, el modelo no puede reconocer el patrón, incluso si la pregunta exacta estaba en un ejemplo del conjunto de datos.

Como ejemplo, aquí están los datos de entrenamiento de Python para una aplicación que genera el siguiente número en una secuencia:

training_data = [
  {"text_input": "1", "output": "2"},
  {"text_input": "3", "output": "4"},
  {"text_input": "-3", "output": "-2"},
  {"text_input": "twenty two", "output": "twenty three"},
  {"text_input": "two hundred", "output": "two hundred one"},
  {"text_input": "ninety nine", "output": "one hundred"},
  {"text_input": "8", "output": "9"},
  {"text_input": "-98", "output": "-97"},
  {"text_input": "1,000", "output": "1,001"},
  {"text_input": "10,100,000", "output": "10,100,001"},
  {"text_input": "thirteen", "output": "fourteen"},
  {"text_input": "eighty", "output": "eighty one"},
  {"text_input": "one", "output": "two"},
  {"text_input": "three", "output": "four"},
  {"text_input": "seven", "output": "eight"},
]

Agregar una instrucción o un preámbulo a cada ejemplo de tu conjunto de datos también puede ayudar a mejorar el rendimiento del modelo ajustado. Ten en cuenta que, si se incluye una instrucción o un preámbulo en tu conjunto de datos, también se debe incluir en la instrucción del modelo ajustado en el momento de la inferencia.

Limitaciones

Nota: 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.

Tamaño de los datos de entrenamiento

Puedes ajustar un modelo con tan solo 20 ejemplos. Datos adicionales suele mejorar la calidad de las respuestas. Deberías orientarte entre 100 y 500 ejemplos, según tu aplicación. En la siguiente tabla, se muestra tamaños de conjuntos de datos recomendados para ajustar un modelo de texto para varias tareas comunes:

Tarea Cantidad de ejemplos en el conjunto de datos
Clasificación 100+
Resúmenes 100-500
Búsqueda de documentos 100+

Sube tu conjunto de datos de ajuste

Los datos se pasan intercalados con la API o a través de archivos subidos en Google AI Studio.

Para usar la biblioteca cliente, proporciona el archivo de datos en la llamada a createTunedModel. El tamaño del archivo no puede superar los 4 MB. Consulta la guía de inicio rápido para ajustar con precisión con Python para comenzar.

Para llamar a la API de REST con cURL, proporciona ejemplos de entrenamiento en formato JSON al training_data. Consulta la guía de inicio rápido de la configuración con cURL para comenzar.

Configuración de ajuste avanzado

Cuando creas un trabajo de ajuste, puedes especificar la siguiente configuración avanzada:

  • Ciclos de entrenamiento: Es un recorrido de entrenamiento completo por todo el conjunto de entrenamiento, de manera que cada ejemplo se haya procesado una vez.
  • Tamaño del lote: Es el conjunto de ejemplos que se usa en una iteración de entrenamiento. El tamaño del lote determina la cantidad de ejemplos que hay en un lote.
  • Tasa de aprendizaje: Es un número de punto flotante que le indica al algoritmo con qué intensidad ajustar los parámetros del modelo en cada iteración. Por ejemplo, una tasa de aprendizaje de 0.3 ajustaría los pesos y sesgos tres veces más potente que una tasa de aprendizaje de 0.1. Las tasas de aprendizaje altas y bajas tienen con sus compensaciones únicas, por lo que debes ajustarlo según tu caso de uso.
  • Multiplicador de la tasa de aprendizaje: El multiplicador de tasa modifica la tasa de aprendizaje. la tasa de aprendizaje original. Un valor de 1 usa la tasa de aprendizaje original del modelo. Los valores mayores que 1 aumentan la tasa de aprendizaje y los valores entre 1. y 0, baja la tasa de aprendizaje.

En la siguiente tabla, se muestran los parámetros de configuración recomendados para ajustar un modelo de base:

Hiperparámetro Valor predeterminado Ajustes recomendados
Epoch 5

Si la pérdida comienza a estancarse antes de 5 ciclos de entrenamiento, usa un valor menor.

Si la pérdida converge y no parece estabilizarse, usa un valor más alto.

Tamaño del lote 4
Tasa de aprendizaje 0.001 Usa un valor menor para conjuntos de datos más pequeños.

La curva de pérdida muestra cuánto se desvía la predicción del modelo del ideal predicciones en los ejemplos de entrenamiento después de cada ciclo de entrenamiento. Idealmente, quieres dejar de en el punto más bajo de la curva, justo antes de que se estanca. Por ejemplo: el siguiente gráfico muestra que la curva de pérdida se estabiliza en las épocas 4-6, lo que significa Puedes establecer el parámetro Epoch en 4 y seguir obteniendo el mismo rendimiento.

Gráfico de líneas que muestra la curva de pérdida del modelo. La línea aumenta repentinamente entre
la primera y la segunda época, luego disminuye bruscamente a casi 0 y se nivela
después de tres ciclos de entrenamiento.

Verifica el estado del trabajo de ajuste

Puedes verificar el estado de tu trabajo de ajuste en Google AI Studio, en la Mi biblioteca o con la propiedad metadata del modelo ajustado en la API de Gemini.

Solucionar errores

En esta sección, se incluyen sugerencias para resolver los errores que puedes encontrar cuando creas tu modelo ajustado.

Autenticación

La optimización con la API y la biblioteca cliente requiere autenticación. Puedes configurar la autenticación con una clave de API (recomendado) o con credenciales de OAuth. Si deseas obtener documentación para configurar una clave de API, consulta Configura una clave de API.

Si ves un error 'PermissionDenied: 403 Request had insufficient authentication scopes', es posible que debas configurar la autenticación de usuarios con credenciales de OAuth. Para configurar las credenciales de OAuth para Python, visita nuestra el instructivo de configuración de OAuth.

Modelos cancelados

Puedes cancelar un trabajo de ajuste en cualquier momento antes de que finalice. Sin embargo, el rendimiento de la inferencia de un modelo cancelado es impredecible, en particular, si la tarea de ajuste se cancela al principio del entrenamiento. Si cancelaste el servicio porque si deseas detener el entrenamiento en un ciclo de entrenamiento anterior, debes crear un nuevo ajuste y establece el ciclo de entrenamiento en un valor más bajo.

Limitaciones de los modelos ajustados

Nota: 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.

¿Qué sigue?

Comienza con los instructivos de ajuste fino: