Ajuste fino de modelos para asistentes de cursos en Platzi

Clase 15 de 24Curso de OpenAI API

Resumen

¿Cómo podemos crear un asistente personalizado para Platzi?

Imagina tener un asistente que, al recibir consultas de los estudiantes sobre lo que desean aprender, responda recomendando cursos específicos con enlaces directos. Este asistente se centraría exclusivamente en ofrecer cursos de Platzi, evitando responder a preguntas fuera de este ámbito. Para lograr esto, podemos utilizar Engineering Prompt para ajustar el prompt del sistema con información relevante, o emplear un entrenamiento más sofisticado a través de AI y fine-tuning.

¿Qué es Fine Tuning y cómo se utiliza?

Fine Tuning o ajuste fino es una técnica que permite ajustar modelos de IA para responder de manera más precisa a situaciones específicas, como recomendar cursos de Platzi en este caso. Emplearemos un conjunto de datos que contiene múltiples interacciones entre estudiantes y el asistente para entrenar un modelo que siga patrones y dé respuestas precisas. Con Fine Tuning, es posible definir cuáles respuestas del asistente se deben enfatizar durante el entrenamiento.

Proceso de selección de respuestas

En algunos casos, el asistente puede proporcionar varias respuestas durante una interacción. Por lo tanto, es vital seleccionar la respuesta correcta que queremos que el sistema enfoque. Esto se hace asignando valores denominados "peso" a las respuestas. Por ejemplo, si el asistente falla dos veces y acierta en una tercera, esa respuesta correcta recibe un mayor peso en el entrenamiento.

¿Cómo preparamos los datos para el entrenamiento?

Para realizar fine-tuning con OpenAI necesitamos un archivo en formato JSONL (JSON Lines). Este formato es esencialmente un archivo con líneas individuales de JSON, similar a un CSV pero únicamente compuesto por objetos.

¿Qué características deben tener los datos de entrenamiento?

  • Múltiples líneas que representan ejemplos de interacciones.
  • Al menos 10 ejemplos, siendo lo ideal más de 50 para una mayor precisión.
  • Diversidad y corrección en las respuestas para un aprendizaje sólido.

Platzi proporciona datasets preparados para este propósito: uno para entrenamiento y otro para validación, disponible en la sección de recursos. El primero entrena al modelo para responder adecuadamente, y el segundo verifica su precisión y corrección.

¿Qué parámetros del modelo son importantes?

Varios parámetros automáticos gestionan el entrenamiento, y aunque no es necesario modificarlos, son interesantes de conocer:

1 - Batch Size (tamaño del lote):

  • Número de ejemplos procesados por el modelo simultáneamente.
  • Un tamaño mayor acelera el proceso, pero es menos preciso; un tamaño menor es más lento y preciso.

2 - Learning Rate Multiplier (multiplicador de tasa de aprendizaje):

  • Determina el tamaño de los pasos de aprendizaje del modelo.
  • Pasos más grandes permiten aprender más detalles; pasos pequeños son más rápidos pero menos detallados.

3 - Number of Epochs (número de épocas):

  • Iteraciones completas sobre los datos de entrenamiento.
  • Un número bajo puede resultar en un ajuste insuficiente; un número alto puede llevar a sobre ajuste, donde el modelo memoriza respuestas.

4 - Seed (semilla):

  • Varía ligeramente el resultado del modelo.
  • Generalmente, se deja en automático.

Estos parámetros ayudan a ajustar la precisión y eficiencia del modelo durante su entrenamiento.

Para familiarizarse más con este enfoque y explorar cómo se configuran estos archivos, los usuarios pueden descargar y examinar los datasets para entrenamiento en JSONL, lo que les permitirá experimentar en sus propias aplicaciones.