Refuerzo de aprendizaje de la retroalimentación humana, explicó simplemente

La aparición de ChatGPT en 2022 cambió por completo la forma en que el mundo comenzó a percibir la inteligencia artificial. El increíble rendimiento de ChatGPT condujo al rápido desarrollo de otros LLMS poderosos.

Podríamos decir aproximadamente que ChatGPT es una versión actualizada de GPT-3. Pero en comparación con las versiones GPT anteriores, esta vez los desarrolladores de OpenAI no solo usaron más datos o solo arquitecturas de modelos complejas. En cambio, diseñaron una técnica increíble que permitió un avance.

En este artículo, hablaremos sobre RLHF, un algoritmo fundamental implementado en el núcleo de ChatGPT que supera los límites de las anotaciones humanas para LLM. Aunque el algoritmo se basa en la optimización de políticas proximales (PPO), mantendremos la explicación simple, sin entrar en los detalles del aprendizaje de refuerzo, que no es el foco de este artículo.

Desarrollo de PNL antes de chatgpt

Para sumergirnos mejor en el contexto, recordemos cómo se desarrollaron LLMS en el pasado, antes de Chatgpt. En la mayoría de los casos, el desarrollo de LLM consistió en dos etapas:

Marco de pre-entrenamiento y ajuste fino

La capacitación previa incluye el modelado de idiomas, una tarea en la que un modelo trata de predecir un token oculto en el contexto. La distribución de probabilidad producida por el modelo para el token oculto se compara con la distribución de la verdad del suelo para el cálculo de pérdidas y la mayor retrospropagación. De esta manera, el modelo aprende la estructura semántica del lenguaje y el significado detrás de las palabras.

Si quieres aprender más sobre Marco de pre-entrenamiento y ajuste finomira mi Artículo sobre Bert.

Después de eso, el modelo está ajustado en una tarea aguas abajo, que podría incluir diferentes objetivos: resumen de texto, traducción de texto, generación de texto, respuesta de preguntas, etc. En muchas situaciones, el ajuste fino requiere un conjunto de datos marcado por el humano, que debe contener preferiblemente suficientes muestras de texto para permitir que el modelo generalice su aprendizaje bien y evite el exceso de ajuste.

Aquí es donde aparecen los límites del ajuste. La anotación de datos suele ser una tarea que requiere mucho tiempo realizada por los humanos. Tomemos una tarea de pregunta, por ejemplo. Para construir muestras de entrenamiento, necesitaríamos un conjunto de datos etiquetado manualmente de preguntas y respuestas. Para cada pregunta, necesitaríamos una respuesta precisa proporcionada por un humano. Por ejemplo:

Durante la anotación de datos, proporcionar respuestas completas a las indicaciones requiere mucho tiempo humano.

En realidad, para capacitar una LLM, necesitaríamos millones o incluso miles de millones de tales pares (preguntas, respuesta). Este proceso de anotación requiere mucho tiempo y no escala bien.

RLHF

Habiendo entendido el problema principal, ahora es un momento perfecto para sumergirse en los detalles de RLHF.

Si ya ha usado CHATGPT, probablemente haya encontrado una situación en la que ChatGPT le pide que elija la respuesta que se adapte mejor a su mensaje inicial:

La interfaz CHATGPT le pide a un usuario que califique dos respuestas posibles.

Esta información se utiliza en realidad para mejorar continuamente ChatGPT. Entendamos cómo.

En primer lugar, es importante notar que elegir la mejor respuesta entre dos opciones es una tarea mucho más simple para un humano que proporcionar una respuesta exacta a una pregunta abierta. La idea que vamos a ver se basa exactamente en eso: queremos que el humano simplemente elija una respuesta de dos opciones posibles para crear el conjunto de datos anotado.

Elegir entre dos opciones es una tarea más fácil que pedirle a alguien que escriba la mejor respuesta posible.

Generación de respuesta

En LLMS, hay varias formas posibles de generar una respuesta a partir de la distribución de las probabilidades de token predichas:

  • Tener una distribución de salida pag Sobre las fichas, el modelo siempre elige determinista el token con la mayor probabilidad.
El modelo siempre selecciona el token con la mayor probabilidad de Softmax.
  • Tener una distribución de salida pag Sobre los tokens, el modelo muestra aleatoriamente un token de acuerdo con su probabilidad asignada.
El modelo elige aleatoriamente un token cada vez. La mayor probabilidad no garantiza que se elija el token correspondiente. Cuando el proceso de generación se ejecuta nuevamente, los resultados pueden ser diferentes.

Este segundo método de muestreo da como resultado un comportamiento modelo más aleatorizado, lo que permite la generación de diversas secuencias de texto. Por ahora, supongamos que generamos muchos pares de tales secuencias. El conjunto de datos resultante de pares está etiquetado por humanos: para cada par, se le pregunta a un humano cuál de las dos secuencias de salida se ajusta mejor a la secuencia de entrada. El conjunto de datos anotado se usa en el siguiente paso.

En el contexto de RLHF, se llama el conjunto de datos anotado creado de esta manera “Comentarios humanos”.

Modelo de recompensa

Después de que se crea el conjunto de datos anotado, lo usamos para entrenar un llamado modelo de “recompensa”, cuyo objetivo es aprender a estimar numéricamente qué tan buena o mala es una respuesta dada para un mensaje inicial. Idealmente, Queremos que el modelo de recompensa genere valores positivos para buenas respuestas y valores negativos para respuestas malas.

Hablando del modelo de recompensa, su arquitectura es exactamente la misma que la LLM inicial, excepto la última capa, donde, en lugar de generar una secuencia de texto, el modelo genera un valor flotante, una estimación para la respuesta.

Es necesario pasar tanto el aviso inicial como la respuesta generada como entrada al modelo de recompensa.

Función de pérdida

Puede preguntar lógicamente cómo el modelo de recompensa aprenderá esta tarea de regresión si no hay etiquetas numéricas en el conjunto de datos anotado. Esta es una pregunta razonable. Para abordarlo, vamos a usar un truco interesante: Pasaremos una respuesta buena y mala a través del modelo de recompensa, que finalmente generará dos estimaciones diferentes (recompensas).

Luego construiremos inteligentemente una función de pérdida que las comparará relativamente.

Función de pérdida utilizada en el algoritmo RLHF. R₊ se refiere a la recompensa asignada a la mejor respuesta, mientras que R₋ es una recompensa estimada para la peor respuesta.

Conectemos algunos valores de argumentos para la función de pérdida y analicemos su comportamiento. A continuación se muestra una tabla con los valores enchufados:

Una tabla de valores de pérdida dependiendo de la diferencia entre R₊ y R₋.

Podemos observar inmediatamente dos ideas interesantes:

  • Si la diferencia entre R₊ y R₋ es negativoes decir, una mejor respuesta recibió una recompensa más baja que una peor, entonces el valor de pérdida será proporcionalmente grande a la diferencia de recompensa, lo que significa que el modelo debe ajustarse significativamente.
  • Si la diferencia entre R₊ y R₋ es positivaes decir, una mejor respuesta recibió una recompensa más alta que una peor, entonces la pérdida estará limitada dentro de valores mucho más bajos en el intervalo (0, 0.69), lo que indica que el modelo hace su trabajo bien para distinguir respuestas buenas y malas.

Lo bueno de usar una función de pérdida de este tipo es que el modelo aprende recompensas apropiadas para los textos generados por sí mismo, y nosotros (los humanos) no tenemos que evaluar explícitamente cada respuesta numéricamente, solo proporcionar un valor binario: es una respuesta dada mejor o peor.

Entrenando un LLM original

El modelo de recompensa entrenado se usa para entrenar el LLM original. Para eso, podemos alimentar una serie de nuevas indicaciones para el LLM, que generará secuencias de salida. Luego, las indicaciones de entrada, junto con las secuencias de salida, se alimentan al modelo de recompensa para estimar cuán buenas son esas respuestas.

Después de generar estimaciones numéricas, esa información se utiliza como retroalimentación para el LLM original, que luego realiza actualizaciones de peso. ¡Un enfoque muy simple pero elegante!

Diagrama de entrenamiento RLHF

La mayoría de las veces, en el último paso para ajustar los pesos del modelo, se utiliza un algoritmo de aprendizaje de refuerzo (generalmente realizado por optimización de políticas proximales – PPO).

Incluso si no es técnicamente correcto, si no está familiarizado con el aprendizaje de refuerzo o PPO, puede pensar en ello como backpropagation, como en los algoritmos normales de aprendizaje automático.

Inferencia

Durante la inferencia, solo se usa el modelo entrenado original. Al mismo tiempo, el modelo puede mejorarse continuamente en segundo plano mediante la recolección de indicaciones del usuario y periódicamente pidiéndoles que califiquen cuál de las dos respuestas es mejor.

Conclusión

En este artículo, hemos estudiado RLHF, una técnica altamente eficiente y escalable para entrenar modernas LLM. Una combinación elegante de un LLM con un modelo de recompensa nos permite simplificar significativamente la tarea de anotación realizada por los humanos, lo que requirió grandes esfuerzos en el pasado cuando se realizan a través de procedimientos de ajuste fino en bruto.

RLHF se usa en el centro de muchos modelos populares como ChatGPT, Claude, Gemini o Mistral.

Recursos

Todas las imágenes a menos que se indique lo contrario el autor es