Mejorar la IA para resolver problemas en competencias de codificación

Mejorar la IA para resolver problemas en competencias de codificación

Entrevista Las capacidades de los modelos de lenguajes grandes comerciales para resolver problemas de programación competitivos se pueden mejorar significativamente guiando cuidadosamente sus procesos a través de una ingeniería rápida e inteligente.

Para demostrar esto, Codium AI, con sede en Israel, construyó AlphaCodium y liberado el software en GitHub este mes. AlphaCodium no es un modelo de lenguaje grande en sí mismo. Más bien, es un método que mejora las capacidades de resolución de problemas de las herramientas de inteligencia artificial generativa como GPT-4 mediante el uso de lo que el director ejecutivo Itamar Friedman llama "ingeniería de flujo".

Primero, se introduce una pregunta de programación en el modelo de lenguaje grande subyacente y se le pide que describa y resuma el problema. Esa información luego orienta cómo se debe comenzar a resolver el problema. AlphaCodium define cosas, como cuáles deberían ser las entradas y salidas, al encontrar una solución. Todo esto está especificado en lenguaje natural.

Luego, el modelo comienza a generar código que se alinea con las especificaciones que acaba de describir. Los concursos de programación que piden a los contendientes que codifiquen según las especificaciones suelen proporcionar pruebas que muestran lo que debería generar un script para una entrada determinada. AlphaCodium genera más de estos casos de prueba y luego analiza posibles soluciones para verificar si el código funciona como se esperaba.

Si no logra coincidir con ninguna de las salidas definidas en alguna de las pruebas, el modelo genera diferentes soluciones hasta que pasan todas las pruebas o falla. Pueden surgir errores cuando su código no se compila o simplemente es incorrecto.

Puede ver los diferentes pasos del proceso de ingeniería de flujo en el siguiente diagrama. Se divide en gran medida en una fase de preprocesamiento, donde el sistema analiza el problema en lenguaje natural, y una etapa de iteración de código, donde ejecuta posibles soluciones frente a pruebas públicas y generadas por IA.

alfacodio

Todos los pasos generales que guían a AlphaCodium en la generación de código para resolver problemas

"No tomamos el problema, vamos al modelo y le decimos: 'Oye, por favor genera la solución final'", dijo Friedman. El registro. "Pedimos al modelo que redefina este problema en viñetas". Simplificarlo y dividir las cosas en partes facilita que el modelo genere posteriormente código para diferentes partes de un algoritmo.

Básicamente, la ingeniería de flujo es un procedimiento que guía el proceso de resolución de problemas del modelo dividiéndolo en pasos bien definidos. Se nos dice que pedirle que "divida el código generado en pequeñas subfunciones, con nombres y funcionalidades significativos", genera menos errores y hace que el código sea más fácil de probar y corregir.

"Básicamente dedicamos el 95 por ciento de nuestro tiempo a la ingeniería de flujo, y sólo el 5 por ciento a la ingeniería de indicaciones y no cambiamos las indicaciones para cada [paso]", agregó Friedman.

Los ingenieros de Codium probaron el rendimiento de su modelo en cientos de problemas utilizados en las partes de verificación y prueba del conjunto de datos CodeForces compilado por Google DeepMind hace dos años. Afirman que AlphaCodium resolvió mejor problemas de codificación que los modelos AlphaCode y AlphaCode2 de Google DeepMind.

En los resultados reportados en un arXiv [PDF], AlphaCodium pudo responder correctamente el 44 por ciento de las preguntas en comparación con el 24 por ciento de AlphaCode, mientras generó solo cinco soluciones en comparación con las diez soluciones elegidas por AlphaCode para 107 problemas de validación. Curiosamente, la brecha se redujo cuando se trataba de 165 problemas de prueba, con AlphaCodium resolviendo el 29 por ciento en comparación con el 28 por ciento de AlphaCode.

AlphaCode selecciona las diez soluciones más prometedoras entre decenas de miles, o cientos de miles, de posibles scripts que genera, lo que hace que su ejecución sea computacionalmente intensiva.

"Nos centramos mucho más en todo el flujo de pruebas", dijo Friedman. “Para [Google], trabajaron mucho en la generación. Intentan generar cientos de otras opciones y nosotros generamos muy pocas soluciones, pero las probamos muy bien para guiar la mejora del código”.

AlphaCodium es un poquito mejor que el último modelo AlphaCode2 de Google DeepMind, que es 10,000 veces más eficiente que su predecesor AlphaCode, añadió.

alfacodio_2

Cómo se compara AlphaCodium con otros modelos de última generación en términos de precisión y eficiencia

Friedman dijo que confiaba en que el rendimiento de AlphaCodium no se debe a una fuga de datos, donde el modelo subyacente ha sido entrenado y probado en los mismos problemas. La versión GPT-4 que impulsa AlphaCodium se entrenó con texto extraído de Internet hasta septiembre de 2021, mientras que los problemas en los que probó su sistema se tomaron del conjunto de datos CodeForces antes mencionado que se publicó mucho más tarde.

Sin embargo, una mejor comparación entre manzanas y manzanas que evalúa el proceso de ingeniería de flujo es analizar la capacidad de GPT-4 para resolver esas mismas preguntas con y sin la aplicación de AlphaCodium. El antiguo GPT-4 solo pudo responder correctamente el 19 y el 12 por ciento de los problemas en los conjuntos de validación y prueba respectivamente, en comparación con el 44 y el 29 por ciento de la variante impulsada por AlphaCodium.

En resumen, parece que implementar una canalización cuidadosa que genere datos adicionales para guiar cómo se genera el código y mejorar el proceso de prueba puede ser más efectivo que intentar entrenar un modelo de lenguaje grande desde cero.

Codium lanzó recientemente una nueva herramienta para ayudar a los desarrolladores de Python, quienes ahora pueden llamar a AlphaCodium para resolver directamente un problema de codificación en su IDE. puedes jugar con el aquí. ®

Sello de tiempo:

Mas de El registro