Fine Tuning de Modelos GPT con Recetas Latinoamericanas

Clase 17 de 19Curso de Transfer Learning con Pytorch y OpenAI

Resumen

¿Qué es la API de OpenAI y cómo se utiliza para el fine tuning?

La inteligencia artificial generativa está revolucionando múltiples campos, y con ella han surgido diversas plataformas que facilitan el ajuste fino (fine tuning) de modelos, haciéndolo accesible incluso para aquellos sin hardware especializado. La API de OpenAI es una de estas plataformas, permitiendo afinar modelos de manera práctica y eficiente directamente con una CPU. Este innovador enfoque elimina la necesidad de contar con una GPU, facilitando más aún la implementación de estos modelos.

Para comenzar, se carga un conjunto de datos, como en el caso de recetas de cocina latinoamericanas disponible en Hugging Face, mediante el uso de bibliotecas como pandas. El proceso incluye la visualización y acondicionamiento del conjunto de datos para prepararlo y ajustar el formato exigido por OpenAI, presentándolo en una estructura tipo pregunta-respuesta entre usuario y asistente.

¿Cómo preparar los datos para el fine tuning?

Al usar la API de OpenAI, es crucial adaptar el conjunto de datos al formato esperado. OpenAI requiere una estructura que diferencie entre 'usuario' como quien plantea una pregunta o solicitud, y 'assistant' que proporciona la respuesta. Esta organización asegura una correcta interpretación y desempeño durante el entrenamiento del modelo.

  1. Preprocesamiento de Datos: Elimina caracteres conflictivos, como \n o \r, para evitar futuros errores de codificación.
  2. Creación del data frame: Organiza el contenido de manera que las preguntas o títulos de las recetas estén bien definidas junto con sus respectivos ingredientes y pasos.
  3. Conversión a JSONL: Este formato, esencial para OpenAI, es una colección de objetos JSON en una sola línea, facilitando la carga y estructura de los datos.
# Ejemplo de estructura JSONL
{
    "prompt": "Receta para arepas de queso",
    "completion": "Ingredientes: una taza de harina, etc..."
}

¿Cómo cargar y afinar el modelo con la API de OpenAI?

Antes de cargar el archivo JSONL a OpenAI, es fundamental tener a mano una clave API, ya que la plataforma es paga y requiere autenticación. Una vez autenticado, el procedimiento de carga y afinado puede llevarse a cabo:

  1. Carga del archivo JSONL: Se envía el archivo a OpenAI con la ruta específica, asignándole el propósito de fine tuning.
  2. Obtención del ID: Al cargar el archivo, obtienes un identificador único necesario para el posterior ajuste fino.
  3. Proceso de Fine Tuning: Selecciona un modelo como GPT-4 para el tuning, definiendo el archivo ID correspondiente.
  4. Verificación y Ejecución: Tras la ejecución, recibes retroalimentación del estado del ajuste y confirmaciones por email.

Predicciones y Pruebas

Una vez entrenado el modelo, se puede comenzar a realizar predicciones basadas en tus datos ajustados. Definiendo un rol como 'assistant', el modelo responde a las consultas del usuario con las recetas y pasos asociados:

# Ejemplo de consulta al modelo entrenado
def assistant(query):
    response = "Ingredientes para {}".format(query)
    # Asume que esta función procesa adecuadamente la consulta.
    return response

resultado = assistant("arepas de queso")
print(resultado)

Este sencillo proceso de afinar modelos permite a los usuarios desarrollar asistentes especializados en cocinas o cualquier otro campo, sin la necesidad de grandes infraestructuras. ¡Continúa explorando y experimentando con tus propios conjuntos de datos y descubre todo lo que puedes lograr con esta poderosa herramienta!