AlphaСode, una AI de generación de código

DeepMind, conocida por sus desarrollos en el campo de la inteligencia artificial y la construcción de redes neuronales capaces de jugar juegos de computadora y de mesa a nivel humano, dio a conocer recientemente el proyecto AlphaСode el cual describe como un sistema de aprendizaje automático para la generación de código que puede participar en competencias de programación en la plataforma Codeforces y demostrar un resultado promedio.

Se menciona que el proyecto utiliza la arquitectura de red neuronal «Transformer» en combinación con otros métodos de muestreo y filtrado para generar varias variantes de código impredecibles correspondientes al texto en lenguaje natural.

El método como trabaja AlphaСode se basa en filtrar, agrupar y clasificar, con lo cual posteriormente procede a seleccionar el código de trabajo más óptimo del flujo de opciones generado, que luego se verifica para garantizar que se obtenga el resultado correcto (en cada tarea de la competencia, un ejemplo de datos de entrada y un resultado correspondiente) a este ejemplo, que debe obtenerse después de la ejecución del programa).

Detallamos AlphaCode, que utiliza modelos de lenguaje basados ​​en transformadores para generar código a una escala sin precedentes, y luego filtra inteligentemente a un pequeño conjunto de programas prometedores.

Validamos nuestro desempeño utilizando competencias organizadas en Codeforces , una plataforma popular que organiza competencias regulares que atraen a decenas de miles de participantes de todo el mundo que vienen a probar sus habilidades de codificación. Seleccionamos para evaluación 10 concursos recientes, cada uno más nuevo que nuestros datos de entrenamiento. AlphaCode se colocó aproximadamente al nivel del competidor medio, lo que marca la primera vez que un sistema de generación de código de IA alcanza un nivel competitivo de rendimiento en competencias de programación.

Para el entrenamiento aproximado del sistema de aprendizaje automático, se destaca que se utilizó el código base disponible en los repositorios públicos de GitHub. Tras preparar el modelo inicial, se realizó una fase de optimización a partir de una colección de código con ejemplos de problemas y soluciones ofrecidas a los participantes de los concursos Codeforces, CodeChef, HackerEarth, AtCoder y Aizu.

En total, para la formación de AlphaCode se utilizaron 715 GB de código de GitHub y más de un millón de ejemplos de soluciones a problemas típicos de la competencia. Antes de pasar a la generación de código, el texto de la tarea pasó por una fase de normalización, en la que se excluyó todo lo superfluo y solo quedaron las partes significativas.

Para probar el sistema, se seleccionaron 10 nuevos concursos de Codeforces con más de 5.000 participantes, realizados después de completar el entrenamiento del modelo de aprendizaje automático.

Puedo decir con seguridad que los resultados de AlphaCode superaron mis expectativas. Era escéptico porque incluso en problemas competitivos simples, a menudo se requiere no solo implementar el algoritmo, sino también (y esta es la parte más difícil) inventarlo. AlphaCode logró desempeñarse al nivel de un nuevo competidor prometedor. ¡No puedo esperar a ver lo que está por venir!

MIKE MIRZAYANOV

FUNDADOR DE CODEFORCES

Los resultados de las asignaciones permitieron que el sistema AlphaCode ingresara aproximadamente en la mitad de la calificación de estas competencias (54,3%). La calificación general prevista de AlphaCode fue de 1238 puntos, lo que garantiza la entrada en el Top 28% entre todos los participantes de Codeforces que participaron en competencias al menos una vez en los últimos 6 meses.

Cabe resaltar que se observa que el proyecto aún se encuentra en la etapa inicial de desarrollo y que en el futuro se planea mejorar la calidad del código generado, así como desarrollar AlphaСode hacia sistemas que ayuden a escribir código, o herramientas de desarrollo de aplicaciones que las personas sin habilidades de programación pueden utilizar.

Finalmente si estás interesado en poder conocer más al respecto, debes saber que una característica clave del desarrollo es la capacidad de generar código en Python o C++, tomando como entrada de texto con un enunciado del problema en inglés.

Puedes consultar los detalles en el siguiente enlace.


El contenido del artículo se adhiere a nuestros principios de ética editorial. Para notificar un error pincha aquí.

Sé el primero en comentar

Deja tu comentario

Tu dirección de correo electrónico no será publicada.

*

*

  1. Responsable de los datos: Miguel Ángel Gatón
  2. Finalidad de los datos: Controlar el SPAM, gestión de comentarios.
  3. Legitimación: Tu consentimiento
  4. Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal.
  5. Almacenamiento de los datos: Base de datos alojada en Occentus Networks (UE)
  6. Derechos: En cualquier momento puedes limitar, recuperar y borrar tu información.

bool(true)