Las estrategias de diseño de instrucciones, como las instrucciones con ejemplos limitados, no siempre los resultados que necesitas. El ajuste es un proceso que puede mejorar el rendimiento en tareas específicas o ayudar al modelo a adherirse a un resultado específico cuando las instrucciones no son suficientes y tienes un conjunto de ejemplos que demuestren los resultados que deseas.
En esta página, se proporciona una descripción general conceptual del ajuste del modelo de texto en el servicio de texto de la API de Gemini. Cuando esté todo listo para comenzar el ajuste, prueba instructivo de ajuste. Si quieres obtener una introducción más general a la personalización de LLM para casos de uso específicos, consulta LLM: Ajuste fino, destilación y ingeniería de instrucciones en el Curso intensivo de aprendizaje automático.
Cómo funciona el ajuste fino
El objetivo del ajuste fino es mejorar aún más el rendimiento del modelo en tu tarea específica. El ajuste funciona proporcionando al modelo un modelo conjunto de datos 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 estructurarse como ejemplos con entradas de instrucciones y los resultados de respuesta esperados. 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 codificar la información necesaria para realizar la tarea deseada o aprender lo que de tu modelo. Estos parámetros se pueden usar en el momento de la inferencia. El resultado de la de ajuste de escala automático es un nuevo modelo, que es, en la práctica, una combinación de los servicios los parámetros 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 obtener el mejor rendimiento, los ejemplos del conjunto de datos deben ser de alta calidad, diversos y representativos de entradas y salidas 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.
A modo de ejemplo, estos son los datos de entrenamiento de Python para una aplicación que genera el siguiente número de 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 una consigna o un preámbulo se incluido en tu conjunto de datos, también debería incluirse en la instrucción para el en el momento de la inferencia.
Limitaciones
Nota: Los conjuntos de datos de ajuste para Gemini 1.5 Flash tienen los siguientes elementos: 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. Debes segmentar entre 100 y 500 ejemplos, según tu aplicación. En la siguiente tabla, se muestran los tamaños de conjunto 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 de forma intercalada con la API o a través de archivos subidos a Google. con Vertex AI Studio.
Para usar la biblioteca cliente, proporciona el archivo de datos en la llamada a createTunedModel
.
El tamaño máximo del archivo es de 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 para ajustes 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: una pasada de entrenamiento completa sobre todo el conjunto de entrenamiento de modo que cada ejemplo se procesó una vez.
- Tamaño del lote: Es el conjunto de ejemplos que se usan en una iteración de entrenamiento. El el tamaño del lote determina la cantidad de ejemplos en un lote.
- Tasa de aprendizaje: Es un número de punto flotante que le indica al algoritmo cómo hacerlo. para ajustar los parámetros del modelo en cada iteración. Por ejemplo, un de 0.3 ajustaría las ponderaciones y los sesgos tres veces más más potente que una tasa de aprendizaje de 0.1. Las tasas de aprendizaje altas y bajas tienen sus propias compensaciones únicas y deben ajustarse 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 de la un modelo de responsabilidad compartida. Los valores superiores a 1 aumentan la tasa de aprendizaje, y los valores entre 1 y 0 la disminuyen.
Parámetros de configuración recomendados
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 estancarse, 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 de las predicciones ideales en los ejemplos de entrenamiento después de cada época. Lo ideal es detener la capacitación en el punto más bajo de la curva justo antes de que se estabilice. 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.
Verifica el estado del trabajo de ajuste
Puedes verificar el estado de tu trabajo de ajuste en Google AI Studio en la pestaña
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 OAuth
credenciales. Para configurar las credenciales de OAuth para Python, visita nuestra
el instructivo de configuración de OAuth.
Modelos cancelados
Puedes cancelar una tarea de ajuste fino 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 lo hiciste porque quieres detener el entrenamiento en una época anterior, debes crear una nueva tarea de optimización y establecer la época 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: