OpenAI Codex muestra los límites de los grandes modelos lingüísticos


Todas las sesiones de Transform 2021 ahora están disponibles bajo demanda. Mira ahora.


En un nuevo artículo, los investigadores de OpenAI revelaron detalles sobre Codex, un modelo de aprendizaje profundo que genera código fuente de software. Codex impulsa Copilot, una herramienta para «programadores de pares de IA» desarrollada conjuntamente por OpenAI y GitHub. Copilot está disponible actualmente en modo de prueba beta para un número limitado de usuarios.

La lectura del documento es fascinante y explica el proceso mediante el cual los científicos de OpenAI lograron reutilizar su modelo de lenguaje insignia, GPT-3, para crear el Codex. Pero lo que es más importante, el documento también arroja una luz muy necesaria sobre cuánto puede confiar en el aprendizaje profundo en la programación.

El teorema de «no hay almuerzo gratis»

Codex es un descendiente de GPT-3, un modelo de lenguaje de aprendizaje profundo masivo que se lanzó el año pasado. La complejidad de los modelos de aprendizaje profundo a menudo se mide por el número de sus parámetros. En general, la capacidad de aprendizaje de un modelo aumenta con el número de parámetros. GPT-3 vino con 175 mil millones de parámetros, más de dos órdenes de magnitud más grande que su predecesor GPT-2 (1,5 mil millones de parámetros). GPT-3 se entrenó a más de 600 gigabytes, más de 50 veces más grande que el conjunto de datos de entrenamiento de GPT-2.

Aparte de su enorme tamaño, la principal innovación de GPT-3 fue el «aprendizaje rápido», la capacidad de realizar tareas para las que no estaba capacitado. El documento que presentó GPT-3 se titulaba “Los modelos de lenguaje son aprendices de pocas oportunidades” y decía: “Aquí mostramos que la ampliación de los modelos de lenguaje mejora significativamente el rendimiento independiente de la tarea con pocas grabaciones [emphasis mine], a veces incluso utilizando enfoques de ajuste fino de la técnica anterior para lograr la competitividad «.

Básicamente, la premisa era que un modelo suficientemente grande que fue entrenado en un corpus de texto grande podría mantenerse al día o superar a varios modelos que se especializan en ciertas tareas.

Pero, según el nuevo artículo de OpenAI, ninguna de las diversas versiones de GPT-3 pudo resolver ninguno de los problemas de codificación utilizados para evaluar el Codex. Para ser justos, no había ningún ejemplo de codificación en el conjunto de datos de entrenamiento de GPT-3, por lo que no podemos esperar que pueda codificar. Pero los científicos de OpenAI también probaron GPT-J, un modelo de 6 mil millones de parámetros entrenado en The Pile, un conjunto de datos de 800 gigabytes que contiene 95 gigabytes de GitHub y 32 gigabytes de datos StackExchange. GPT-J resolvió el 11,4 por ciento de los problemas de codificación. Codex, una versión del parámetro de 12 mil millones de GPT-3, ajustado a 159 gigabytes de muestras de código de GitHub, resolvió el 28,8 por ciento de los problemas. Una versión separada del Codex llamada Codex-S que se perfeccionó mediante el aprendizaje supervisado aumentó el rendimiento al 37,7 por ciento (otros modelos de GPT y Codex se capacitan mediante el aprendizaje no supervisado).

Codex demuestra que el aprendizaje automático todavía está dominado por el teorema de «No hay almuerzo gratis» (NFL), lo que significa que la generalización se produce a expensas del rendimiento. En otras palabras, los modelos de aprendizaje automático son más precisos cuando están diseñados para resolver un problema específico. Por otro lado, su desempeño se degrada a medida que se expande su área de problemas.

El Codex puede realizar una tarea específica (convertir descripciones de funciones y firmas en código fuente) con alta precisión a expensas de las deficientes capacidades de procesamiento del lenguaje natural. Por otro lado, GPT-3 es un modelo de lenguaje general que puede generar texto decente sobre muchos temas (incluidos conceptos de programación complicados) pero no puede escribir una sola línea de código.

Tamaño frente a costo

Los experimentos de los investigadores de OpenAI muestran que el rendimiento del Codex mejoró a medida que el modelo de aprendizaje automático creció en tamaño. Para 300 millones de parámetros, el Codex resolvió el 13,2 por ciento de los problemas de evaluación frente al 28,8 por ciento de rendimiento del modelo de 12 mil millones de parámetros.

Pero la versión completa de GPT-3 contiene 175 mil millones de parámetros, un orden de magnitud más grande que el que se usó para crear el Codex. ¿No produciría mejores resultados entrenar el modelo más grande con los datos de entrenamiento del Codex?

Una razón probable para detenerse en 12 mil millones podría ser el tamaño récord. Un modelo del Codex más grande requeriría un conjunto de datos más grande. El entrenamiento en el corpus de 159 gigabytes probablemente conduciría a un sobreajuste, y el modelo se volvería muy bueno para recordar y ensayar sus ejemplos de entrenamiento y muy pobre para lidiar con situaciones nuevas. La recopilación y gestión de grandes conjuntos de datos es un proceso costoso y que requiere mucho tiempo.

Un problema igualmente molesto sería el costo del Codex. Aparte de un experimento científico, el Codex debería convertirse en la columna vertebral de un producto futuro que podría generar beneficios para un laboratorio de investigación que es prácticamente propiedad de una empresa comercial. Como mencioné anteriormente, el costo de capacitación y ejecución del modelo GPT-3 de 175 mil millones haría muy difícil construir un modelo de negocio rentable.

Sin embargo, una versión más pequeña pero finamente ajustada de GPT-3 sería mucho más manejable en términos de ganancias y pérdidas.

Finalmente, como muestran los experimentos de OpenAI, la relación tamaño-dinero del Codex sigue una escala logarítmica. Esto significa que el aumento en el rendimiento disminuirá gradualmente a medida que aumente el tamaño del modelo. Por lo tanto, el costo adicional de recopilar datos y capacitar y ejecutar el modelo más grande puede no valer la pena el pequeño aumento en el rendimiento.

Y tenga en cuenta que la generación de código es un mercado muy lucrativo. Dados los salarios por hora de los programadores, incluso el ahorro de unas pocas horas de tiempo de programación al mes sería suficiente para cubrir las tarifas de suscripción del Codex. En otras áreas donde la mano de obra es menos costosa, la automatización de tareas con modelos de lenguaje grandes será un desafío mayor desde una perspectiva de pérdidas y ganancias.

Generar código frente a comprender la comprensión

Una cosa para recordar es que no importa cuán intrigante sea el resultado del Codex, el modelo de aprendizaje profundo no comprende la programación. Como todos los demás modelos de lenguaje basados ​​en el aprendizaje profundo, Codex registra correlaciones estadísticas entre fragmentos de código.

En su artículo, los científicos de OpenAI admiten que Codex “no se puede capacitar de manera eficiente” y que “incluso los desarrolladores experimentados no se acercan a esta cantidad de código en el curso de sus carreras”.

También agregan que «se espera que un estudiante fuerte que complete un curso de introducción a la informática sea capaz de resolver más problemas que Codex-12B».

Aquí hay un extracto interesante del artículo: «Ensayamos tokens del Codex hasta que encontramos una de las siguientes secuencias de parada: ‘ nclass’, ‘ ndef’, ‘ n #’, ‘ nif’ o ‘ nprint’ , porque de lo contrario el modelo genera más funciones o instrucciones «.

Esto significa que Independientemente, Codex continúa generando código incluso después de que el bloque que soluciona el problema indicado en el símbolo del sistema ya se haya completado.

Este es un esquema que funciona bien cuando desea resolver problemas simples que siguen apareciendo. Pero cuando se aleja e intenta escribir un programa grande que aborde un problema que debe resolverse en varios pasos, las limitaciones del Codex se vuelven obvias.

Los científicos de OpenAI encontraron que el rendimiento del modelo disminuye exponencialmente a medida que aumenta el número de componentes en la descripción funcional.

«Este comportamiento es atípico para un programador humano que debería poder implementar correctamente un programa para una cadena de cualquier longitud si puede para una cadena de longitud dos», escriben los investigadores en su artículo.

La falta de comprensión del Codex sobre la estructura y el código del programa se pone de manifiesto además por el hecho de que «puede recomendar código sintácticamente incorrecto o indefinido e invocar funciones, variables y atributos que no están definidos o que están fuera del alcance de la base del código», según el documento. . En la práctica, esto significa que, en algunos casos, el modelo de aprendizaje automático reunirá diferentes piezas de código que ha visto antes, incluso si no coinciden.

En su artículo, los investigadores también discuten problemas de «desalineación» en el Codex, donde el modelo puede resolver un problema particular pero no lo hace debido a varios errores. Codex usa el contenido del archivo en el que está trabajando como contexto para generar su salida. Si su código contiene fallas sutiles (lo cual es normal para los programadores humanos), el Codex puede sugerir «intencionalmente» un código que se ve bien en la superficie pero es incorrecto, advierten los investigadores.

Las desalineaciones son un fenómeno interesante que necesita más investigación. Sin embargo, los experimentos de OpenAI continúan mostrando que «la desalineación probablemente persistirá e incluso empeorará a medida que aumenten los datos, los parámetros y el tiempo de entrenamiento», lo que podría ser otra razón para mantener el tamaño del modelo equilibrado en 12 mil millones de parámetros.

El documento también habla extensamente sobre la capacidad del Codex para producir código obsoleto y vulnerable (que merece un artículo separado, por lo que no lo he discutido aquí).

Uso responsable e informes de IA

Como dije después del lanzamiento de Copilot, el término «Programador de pares de IA» utilizado en el sitio web de GitHub para Copilot es impreciso.

Codex no es un programador. Y tampoco le costará trabajo (si es programador). La programación es solo una parte de lo que hacen los programadores. Los científicos de OpenAI señalan que, en su estado actual, Codex «puede reducir un poco el costo de producción de software al aumentar la productividad de la programación», pero no reemplazará las otras tareas que los desarrolladores de software realizan regularmente, como: B. «Reunirse con colegas, redactar especificaciones de diseño y actualizar las pilas de software existentes».

Confundir Codex con un programador también puede conducir a una «dependencia excesiva», donde un programador aprueba ciegamente cualquier código generado por el modelo sin revisarlo. Dados los errores obvios y sutiles que puede cometer el Codex, pasar por alto esta amenaza puede crear riesgos para la calidad y la seguridad. “Se requiere supervisión y vigilancia humana para el uso seguro de sistemas de generación de código como Codex”, advierten los investigadores de OpenAI en su artículo.

En general, la respuesta de la comunidad de programación muestra que el Codex es una herramienta muy útil con implicaciones potencialmente importantes para el futuro de la industria del software. Al mismo tiempo, dada la exageración que rodea al lanzamiento de Copilot, es importante comprender los efectos no deseados. En este sentido, vale la pena felicitar a las personas de OpenAI por estudiar, documentar e informar de manera responsable sobre los límites y las amenazas del Codex.

Ben Dickson es ingeniero de software y fundador de TechTalks. Escribe sobre tecnología, economía y política.

Esta historia apareció originalmente en Bdtechtalks.com. Copyright 2021

VentureBeat

La misión de VentureBeat es ser un mercado digital para que los responsables de la toma de decisiones tecnológicas obtengan conocimientos sobre tecnologías y transacciones transformadoras. Nuestro sitio web proporciona información importante sobre tecnologías y estrategias de datos para ayudarlo a administrar su organización. Lo invitamos a convertirse en miembro de nuestra comunidad para obtener acceso:

  • información actual sobre los temas de su interés
  • nuestros boletines
  • contenido de liderazgo intelectual cerrado y acceso con descuento a nuestros valiosos eventos, como Transformar 2021: Aprende más
  • Funciones de red y más

conviértete en miembro

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *