← Volver al blog
Fundamentos

Creando modelos que siguen instrucciones… ¿hasta el exceso?

Una breve introducción a la etapa de post entrenamiento de los modelos de lenguaje enfocada en hacer que los modelos sigan instrucciones de los usuarios.

Yabra Muvdi7 min read

Hace un par de semanas, OpenAI tuvo que revertir una actualización a su modelo GPT‑4o por una razón un poco extraña: su excesiva adulación. Los usuarios empezaron a notar rápidamente que la nueva versión del modelo los halagaba incluso en las circunstancias más ridículas. A mí, por ejemplo, me dijo que era un gran diseñador gráfico 😎:

Diagrama 1. Ejemplo de adulación en ChatGPT.

Según la empresa, una de las razones principales detrás de este exceso de adulación fue que el modelo se entrenó poniendo demasiado énfasis en la retroalimentación que daban los usuarios a las respuestas. En este artículo quiero explorar a profundidad este tema: cómo entra la retroalimentación humana al proceso de entrenamiento de estos modelos y qué problemas pueden surgir en el camino.

De la predicción de palabras al seguimiento de instrucciones

Como les conté en este artículo, el primer paso en el entrenamiento de los modelos de lenguaje es la predicción de la palabra faltante al final de un fragmento de texto. Sin embargo, este proceso no es suficiente para crear modelos que permitan interacciones fluidas con los usuarios. Esta primera generación de modelos fallaba en un aspecto fundamental: no lograba seguir las instrucciones de los usuarios.

Era común que, por ejemplo, después de que un usuario hiciera una pregunta, el modelo respondiera con otra pregunta. Esto hace sentido porque seguramente en los fragmentos de texto con los que fue entrenado, el modelo vio muchos ejemplos de preguntas seguidos por otras preguntas (piensen en libros de texto o exámenes). Pero este tipo de comportamiento está lejos de ser lo que espera el usuario. Los usuarios quieren un modelo que sepa seguir instrucciones y genere respuestas alienadas a sus preferencias.

Para solucionar este problema las empresas detrás de estos modelos decidieron empezar a recolectar nuevas fuentes de datos que permitieran darle al modelo ejemplos claros de las respuestas que un humano considera adecuadas. OpenAI, Anthropic y Google publicaron artículos al respecto. En particular, se empezaron a recoger dos tipos de datos:

  1. Datos instrucción-respuesta: Una serie de instrucciones de distintos tipos, acompañadas de respuestas escritas por humanos. Con estos datos es posible mejorar la capacidad del modelo para seguir instrucciones. Aquí hay un ejemplo de una base de datos de este estilo. El Diagrama 2 muestra tres ejemplos de este tipo de datos.

Diagrama 2. Ejemplos de datos tipo instrucción-respuesta.

  1. Ranking de respuestas: Una vez que el modelo aprende a seguir instrucciones, se genera con él varias respuestas para una misma petición. A continuación, se pide a evaluadores humanos que ordenen esas respuestas según su calidad. Este proceso de clasificación refleja las preferencias de los usuarios. El Diagrama 3 muestra un ejemplo de este tipo de datos. Es muy parecido a cuando ChatGPT les pregunta qué respuesta les gusta más entre dos opciones (todos trabajamos gratis para OpenAI a ratos 😅).

Digrama 3. Ejemplo de ranking humano.

Con estos dos tipos de datos las empresas pudieron entrenar una nueva generación de modelos que permiten una interacción fluida con los usuarios. De hecho, el modelo con el que OpenAI lanzó al mundo ChatGPT fue uno que se entrenó con estos datos; de ahí su éxito.

Recolectando preferencias humanas

Suena simple, pero el proceso de recolectar estos dos tipos de datos está lleno de preguntas complejas.

¿Qué tipo de tareas se seleccionan para mostrarle al modelo ejemplos de respuestas correctas? ¿Qué significa que una respuesta sea correcta cuando la pregunta no es sobre un hecho factual? ¿Quién está capacitado para escribir estas respuestas? ¿De quién son las preferencias? ¿En qué idioma se debe hacer todo esto?

La lista de preguntas que se me ocurren es bastante más larga y muchas de estas no tienen una respuesta clara. Sin embargo, podemos ver lo que algunas de estas empresas han hecho para entender cómo han respondido a estas preguntas. Mirando el artículo de OpenAI sobre su primer modelo entrenado con este tipo de datos (InstructGPT) podemos ver lo siguiente:

  • Las tareas para las cuales los humanos generaron respuesta fueron:

    Diagrama 4. Ejemplos de tareas en el entrenamiento de InstructGPT.

  • 96% de los datos son en inglés.

  • Se contrataron 40 personas a través de Upwork y de ScaleAI con la siguiente composición de nacionalidades:

    Diagrama 5. Nacionalidades de personas contratadas por OpenAI.

Este artículo es del 2022 así que seguramente el tipo de datos que están usando estas empresas hoy en día son diferentes. Recientemente, se han empezado incluso a crear versiones “sintéticas” de estas bases de datos donde las respuestas a las instrucciones son generadas por modelos de lenguaje y no por humanos. Lastimosamente no podemos saber mucho sobre estos datos ya que no son públicos.

Sin embargo, algunas preocupaciones que han sido expresadas en distintos trabajos académicos (Zhou y coautores, Zhang y coautores o Muldoon y coautores) son:

  • La necesidad de diversidad en el tipo de tareas. Si las tareas usadas para recolectar preferencias provienen mayoritariamente de “preguntas frecuentes” o tareas triviales, el modelo resultante será altamente capaz en esos campos pero flaqueará en usos especializados (por ejemplo, asesoría legal o redacción creativa).

  • Selección de anotadores y compensación. Muchas empresas optan por plataformas de “crowdsourcing” como Amazon Mechanical Turk, Prolific, Scale AI, donde la barrera de entrada y los costos son relativamente bajos. Sin embargo, esto plantea varias preguntas: ¿hasta qué punto estos anotadores entienden el contexto de cada tarea? ¿Reciben una paga justa que incentive respuestas cuidadosas?

Todos queremos ser adulados

Volvamos a donde empezamos: modelos que adulan demasiado a la gente. ¿Cómo llegamos hasta aquí? Dando demasiado peso a la fase de entrenamiento que incorpora las preferencias humanas. Si la gente prefiere respuestas con cierto grado de adulación y entrenamos los modelos para generar contenido acorde a esas preferencias, entonces acabamos con modelos aduladores.

Este es un aspecto que me preocupa. Si las redes sociales ya son unas cámaras de eco donde nos encontramos principalmente con el contenido de personas que piensan igual que nosotros (acá un artículo al respecto), interactuar con modelos que digan todo lo que queremos oír es definitivamente un nivel más alto de aislamiento.

Los invito a que hagan el siguiente ejercicio. Si usan ChatGPT vayan a “configuración”, luego a “personalización” y ahí den click en “instrucciones personalizadas”. Escriban lo siguiente donde dice: “¿Qué cualidades debería tener ChatGPT?”:

“Eres un asistente conversacional objetivo y crítico. Evita cumplidos innecesarios y comentarios excesivamente amables; no asumas que siempre debo estar de acuerdo. Prioriza la honestidad y el análisis riguroso: señala incoherencias, plantea objeciones fundamentadas y ofrece perspectivas alternativas cuando corresponda. Sé directo y claro, sin buscar simplemente complacer al usuario.”

Diagrama 6. Personalización de ChatGPT.

Hagan un par de búsquedas antes de hacer el cambio y luego vuelvan a hacerlas después. Con ese cambio ya el modelo no cree que yo sea tan buen diseñador gráfico 😭.

Diagrama 7. Respuesta de ChatGPT después de las instrucciones personalizadas.

Dos cosas que descubrí esta semana

  • Gente desconsiderada. Empecé a leer un libro sobre una ex empleada (Sarah Wynn-Williams) de Facebook que narra todos los detalles de la relación entre la empresa y los distintos gobiernos del mundo. Muy interesante y oscuro. Por ahora solo está disponible en inglés con el nombre de “Careless People” pero estoy seguro que pronto saldrá en español.

  • Granola.ai: Una aplicación que les permite transcribir automáticamente las reuniones virtuales.