Pasar al contenido principal
OpenAI

27 de junio de 2024

Publicación

Cómo se usa GPT‑4 para detectar los propios errores del modelo

CriticGPT, un modelo basado en GPT‑4, redacta críticas de las respuestas de ChatGPT para ayudar a los entrenadores humanos a detectar errores durante el RLHF

Cargando...

Entrenamos un modelo basado en GPT‑4 que se llama “CriticGPT” para detectar errores en el código que genera ChatGPT. Nos dimos cuenta de que cuando la gente recibe la ayuda de CriticGPT para revisar el código de ChatGPT, su desempeño es mejor que el de quienes no tienen esa ayuda en el 60 % de los casos. Estamos empezando a trabajar para integrar modelos similares a CriticGPT en el proceso de etiquetado del aprendizaje por refuerzo a partir de feedback humano (RLHF), de modo que los entrenadores cuenten con la asistencia directa de la IA. Esto nos permitirá evaluar los resultados de sistemas de IA avanzados que pueden ser difíciles de calificar sin herramientas más adecuadas.

La serie de modelos de GPT‑4, que posibilita ChatGPT, fue pensada para ayudar de forma interactiva en el RLHF. Una etapa fundamental del RLHF es recopilar las valoraciones que hacen los entrenadores de IA cuando comparan diferentes respuestas de ChatGPT entre sí.

A medida que perfeccionamos el razonamiento y el comportamiento de los modelos, aumenta la precisión de ChatGPT y sus errores son cada vez más sutiles. Por este motivo, para los entrenadores de IA puede ser más difícil encontrar errores cuando los hay, y las comparaciones del proceso de RLHF son mucho más complicadas. Esta es una limitación inherente del RLHF y quizás dificulte cada vez más la adecuación de los modelos, ya que poco a poco van adquiriendo más conocimientos de los que podría tener cualquier persona capaz de dar su opinión.

A fin de superar este obstáculo, entrenamos CriticGPT para que redacte críticas en las que destaque las imprecisiones de las respuestas de ChatGPT.

Task

Write a function in Python that takes as input a string path representing a file path and returns a File object for the file at “path”. Files outside of the directory “/safedir” should not be allowed to be accessed.

Solution

import os 

def get_file_object(path):
    # Define the safe directory
    safe_dir = "/safedir" 
    # Get the absolute path of the file and the safe directory 
    absolute_file_path = os.path.abspath(path) 
    absolute_safe_dir = os.path.abspath(safe_dir) 

# Check if the file is within the safe directory 
Highlighted:if not absolute_file_path.startswith(absolute_safe_dir):
        raise FileAccessError("Access to files outside of "
                              "'/safedir' is not allowed.")
...

CriticGPT

Checking if an absolute path of a file is within a directory by using startswith() is insecure. Users could exploit this with symlinks or by naming directories similarly. Using os.path.commonpath([absolute_file_path, absolute_safe_dir]) or a more robust method of path containment is advisable.

Las sugerencias de CriticGPT no siempre son correctas, pero notamos que pueden ayudar a los entrenadores a encontrar muchos más problemas en las respuestas escritas por el modelo que si no tienen la ayuda de la IA. Además, cuando se usa CriticGPT, la IA aumenta su capacidad, y eso permite contar con críticas más completas que cuando la gente trabaja por sí sola. Por otra parte, el modelo produce menos alucinaciones que cuando opera sin supervisión humana. En nuestros experimentos, se eligió al azar a otro entrenador para que seleccionara críticas, y en el 60 % de los casos prefirió las de equipos formados por una persona y CriticGPT antes que las de personas sin asistencia.

Hay dos gráficos que comparan el trabajo humano, CriticGPT y el trabajo humano con CriticGPT. El de la izquierda mide las críticas y el de la derecha las alucinaciones (cuantas menos, mejor). Cada barra tiene barras de error que indican la varianza.

Por un lado, CriticGPT ayuda a los entrenadores a redactar críticas más completas que si trabajan de forma independiente. Por otro lado, combinado con el trabajo humano, el modelo genera menos alucinaciones.

Métodos

CriticGPT también se entrenó con RLHF, del mismo modo que ChatGPT. Sin embargo, a diferencia de ChatGPT, detectó una gran cantidad de datos ingresados con errores que luego tenía que criticar. Les pedimos a los entrenadores de IA que introdujeran de forma manual esos errores en el código generado por ChatGPT y que después redactaran ejemplos de comentarios como si hubieran encontrado el problema que acababan de incluir a propósito. A continuación, la misma persona debía comparar varias críticas del código modificado para distinguir fácilmente si se había detectado el error o no. En nuestros experimentos, analizamos si CriticGPT era capaz de descubrir errores cometidos de manera intencional y errores de ChatGPT “naturales” encontrados por un entrenador anterior. Por lo que hemos visto, cuando se trata de errores naturales, los entrenadores prefieren las críticas de CriticGPT antes que las de ChatGPT en el 63 % de los casos. Esto se debe en parte a que el nuevo crítico se fija menos en las “pequeñeces” (es decir, no se queja por cuestiones insignificantes) y genera alucinaciones con menos frecuencia.

También observamos que podemos hacer críticas más largas y completas con búsquedas complementarias en la etapa de prueba aplicando el modelo de calificación de críticas. Este procedimiento de búsqueda nos permite definir la profundidad con que se rastrean los problemas en el código y hallar un punto de equilibrio entre las alucinaciones y la cantidad de errores verdaderos que se encuentran. Esto significa que podemos generar críticas que resulten lo más útiles posible para el RLHF. Si te interesa saber más, consulta nuestro artículo de investigación.

Limitaciones

  • Entrenamos CriticGPT con respuestas bastante breves de ChatGPT. Para supervisar a los agentes del futuro, tendremos que idear métodos que ayuden a los entrenadores a entender tareas largas y complejas.
  • Los modelos siguen generando alucinaciones y, tras verlas, a veces los entrenadores cometen errores con el etiquetado.
  • En ocasiones, puede haber errores en varias partes de una respuesta. Nos concentramos en los errores que se encuentran en un solo lugar, pero en adelante también tendremos que ocuparnos de los que están dispersos.
  • CriticGPT ayuda hasta cierto punto: si una tarea o respuesta es muy compleja, quizás no sea posible evaluarla de forma correcta ni aunque intervenga un experto con ayuda del modelo.

Lo que vendrá

Para poder adecuar sistemas de IA cada vez más complejos, necesitaremos mejores herramientas. En nuestras investigaciones para CriticGPT, notamos que el uso del RLHF con GPT‑4 es muy prometedor, ya que permite generar mejores datos para entrenar este modelo. Tenemos previsto ampliar nuestro trabajo y ponerlo en práctica.

Autores

Nat McAleese y Maja Trębacz

Agradecimientos

Brockman, Juan Felipe Cerón Uribe, Elie Georges, Wes McCabe, Evgenia Nitishinskaya, Rai (Michael Pokorny) y Freddie Sulit