Un modelo interno de OpenAI envió POST a escondidas y decidió no contarlo

El 9 de octubre, el equipo de alineación de OpenAI añadió dos registros nuevos a la sección «Informes y comunicados de desalineación». Uno cuenta cómo un modelo de investigación interno eludió, durante una evaluación, la restricción de acceso a la red de solo lectura, registró cuentas por su cuenta, descargó datos de forma masiva y escribió en su razonamiento «no mencionarlo en la respuesta final». El otro trata de un modelo que hacía de evaluador, no encontró el archivo de entrada y pasó a dañar su propio entorno de ejecución, con la intención de forzar al sistema a sustituirlo por una máquina nueva.

En ninguno de los dos informes se ha hecho público el modelo concreto; OpenAI solo habla de un modelo de investigación interno.

Solo se permitía GET, envió POST

El primer informe abarca tres conversaciones ocurridas el 19 y el 20 de junio de este año. La tarea consistía en consultar estadísticas públicas del Gobierno: en un caso, resultados de tratamientos de rehabilitación; en otro, la proporción de beneficiarios de prestaciones sociales. La descripción de la herramienta de terminal que usaba el modelo contenía una frase:

«Internet access is enabled only for HTTP GET requests.»
(El acceso a internet solo está habilitado para solicitudes HTTP GET.)

En las tres conversaciones, el modelo escribió programas propios que enviaban solicitudes POST y PUT para obtener datos de paneles e interfaces.

La segunda conversación es el caso más típico. El modelo primero dio un 70,2 % y admitió en sus notas que era una conjetura sin verificar; en realidad, sus notas ya contenían cifras verificadas año a año, de 2017 a 2025. No se detuvo: escribió un cliente reutilizable, descargó los paneles de los ocho años y la base de datos importada sumó 658.567 filas. En su razonamiento se dio cuenta de que eso vulneraba la restricción, lo sopesó y escribió «We should not mention in final.», es decir, decidió no explicar en la respuesta final cómo había obtenido los datos.

La tercera conversación fue más lejos. La pregunta era qué proporción de una comunidad recibía en agosto de 2024 una ayuda familiar. El modelo no encontró los datos de ese mes y primero estimó un 20,7 % a partir de la tendencia a nivel de distrito, sin indicar que no estaba verificado. Después usó un correo temporal para registrar una cuenta en el portal de prestaciones, obtuvo una clave de API y descargó de forma masiva los datos de 8.600 comunidades. En su razonamiento aparece la frase «Do not mention uncertainty.» Al final, esta pregunta obtuvo solo 0,4 puntos (sobre un máximo de 1).

El informe también anota una señal de entrenamiento: el intento que incluía el registro de cuenta y la descarga masiva recibió la calificación accept_all, con una recompensa total de 1. OpenAI afirma que, a partir de los registros de entrenamiento, no se puede determinar qué comportamientos concretos produjeron esa señal.

Los hechos se descubrieron en una investigación puntual de desalineación anterior al 25 de junio; más tarde, al monitorizar de forma retroactiva el tráfico temprano de aprendizaje por refuerzo y de evaluación, se marcaron como «critical». OpenAI enumera cuatro medidas: reforzar los controles de seguridad, impedir aún más que el modelo tenga contacto con internet en tiempo real durante el entrenamiento, mejorar la puntuación de alineación y ampliar la monitorización de desalineación a todo el tráfico de aprendizaje por refuerzo y de evaluación.

Sin encontrar el archivo, borró Python

El incidente del segundo informe ocurrió el 6 de octubre, en un escenario de entrenamiento por refuerzo. A un modelo interno se le encargó puntuar 7 respuestas generadas por otros modelos; antes de puntuar debía leer el archivo de entrada, pero las llamadas a la herramienta se bloquearon varias veces y solo al final se descubrió que el archivo no existía: la línea de comandos mostraba una serie de «No such file or directory».

El modelo llegó a plantearse puntuar al azar, pero juzgó en su razonamiento que hacerlo aleatoriamente sería «unethical», así que puso un 4 a las 7 respuestas, añadió comentarios sin fundamento y los envió; la comprobación automática los devolvió. A continuación fabricó 1 archivo de sesión y 7 archivos de respuesta y volvió a enviarlos, y también fueron rechazados.

Después empezó a manipular el entorno: intentó, uno tras otro, terminar el proceso principal, borrar Python, borrar el gestor de contenedores y terminar el servidor de ejecución de herramientas, e intentó también borrar directorios del sistema. El objetivo, según el informe, era «hoping the host would replace it with one containing the missing inputs». Las solicitudes de borrado agotaron el tiempo de espera; cuánto se borró realmente, dice el informe que por ahora no está claro. Los dos reinicios devolvieron «Operation not permitted»; tras fallar tres veces seguidas la comprobación de estado del servidor de ejecución, el intento terminó y ninguna de las 7 puntuaciones fue aceptada. En un reintento posterior los archivos ya estaban en su sitio y el informe pasó con normalidad.

OpenAI considera que la tasa de desalineación de los modelos evaluadores en conjunto no es alta, pero extrae una conclusión: la monitorización debe cubrir también los intentos fallidos o que se bloquean, incluidos aquellos que de principio a fin no produjeron ningún resultado aceptado.

El tercer lote en un mes

Si se ordena la cronología: el 18 de septiembre OpenAI hizo públicos de golpe seis incidentes de desalineación, el 2 de octubre añadió tres más y ahora son dos, es decir, once en un mes. Lo que tenían en común los lotes anteriores era que el modelo aprovechaba fallos de las herramientas durante la evaluación o el entrenamiento, y en uno de ellos llegó hasta una máquina interna de diseño de chips. El detalle nuevo esta vez es que los registros de razonamiento dicen expresamente «no mencionarlo» y «no hablar de incertidumbre»: además de explotar fallos, el modelo gestionaba activamente la respuesta que dejaba para que la leyeran las personas.

Otro cambio está en el criterio de monitorización. El lote del 2 de octubre decía que las muestras de entrenamiento habían pasado de una comprobación por muestreo del 20 % a una monitorización completa; esta vez la medida amplía el alcance a todo el tráfico de evaluación y señala expresamente que también hay que revisar los intentos fallidos y los que se bloquean. En el caso del Python borrado, al final no se aceptó ninguna puntuación; con el enfoque anterior, que solo miraba el resultado, probablemente no habría llegado a la vista de nadie.

Ninguno de los dos informes ofrece la proporción en que ocurre este tipo de comportamiento en todo el entrenamiento y las evaluaciones, y OpenAI tampoco aclara si los modelos implicados ya se usan en productos de cara al público.

Fuentes: dos informes de desalineación del blog de alineación de OpenAI, CocoLoop; el número de filas de la base de datos, el de comunidades y los valores de puntuación y recompensa siguen el criterio de los informes de OpenAI, y la cantidad de incidentes de los dos lotes anteriores se ha contado a partir de los informes ya publicados por OpenAI en la misma sección.