30

Así funciona AlphaCode: una AI con la capacidad para programar

15438Puntos

hace 2 años

Si te gusta la inteligencia artificial y el desarrollo de software este blog es para ti. Algunas plataformas como codeforces nacen para crear retos de programación, donde la idea principal es resolver un reto expresado con un texto en determinado lenguaje de programación.

En estos retos se espera que, además de resolverlos, haya un un tiempo de ejecución determinado para cuidar los recursos del sistema, y la verdad es que es más complicado de lo que suena 💆‍♂️. Lo interesante acá es que AlphaCode del equipo de DeepMind lo logra en segundos.

¿En qué consiste AlphaCode?

AlphaCode es una inteligencia artificial que utiliza el procesamiento de lenguaje natural para entender el enunciado del problema y también los pares de input/output de ejemplo de dicho problema, con el fin de entender el contexto de lo que se requiere.

Supongamos que tenemos el siguiente reto:

Untitled(1).png

Imagina que todo esto lo puede procesar directamente AlphaCode, para generar una solución escrita en un lenguaje de programación, ya sea Python o C++ (solo estos dos lenguajes hasta el momento).

Acá viene un dato aún más asombroso 🤯: AlphaCode no solo genera una única solución para el problema, genera múltiples soluciones y las evalúa para elegir la mejor.

Untitled(2).png

¿Como funciona este algoritmo?

Te lo explico en 4 pasos:

  1. El modelo es entrenado con una basta cantidad de repositorios de GitHub con el fin de aprender la sintaxis del código. Este repositorio tiene al menos 700GB de información.
  2. Al no tener una basta cantidad de datasets competitivos, el equipo de DeepMind creó un dataset competitivo para especializar al modelo y mejorar el performance en cuanto a competencias. A este dataset se le llamó CodeContests.
  3. El modelo genera múltiples soluciones al problema.
  4. Las soluciones son evaluadas con las salidas del reto y descartadas para aquellas que no cumplan con el objetivo hasta seleccionar los candidatos de código ideales.
Untitled(3).png

¿Cuáles fueron los resultados de AlphaCode en las competencias de desarrollo?

El modo de evaluar el performance de AlphaCode se hizo con 10 distintas competencias y 10 candidatos por cada competencia, de los cuales se obtiene su promedio. El candidato con mejor resultado y el candidato con el peor, tal como se ve en la tabla.

Para estas soluciones se probaron distintas versiones de AlphaCode a distintas cantidades de parámetros para testear el escalamiento. En promedio, AlphaCode se encuentra entre el top 54.3 % de las competencias, lo que es bastante bueno, recordemos que entre menor el número, mejor el performance del modelo.

Untitled(4).png
Untitled(5).png

¿Puede AlphaCode poner fin al desarrollo como profesión?

De los primeros pensamientos que llegan a la cabeza al ver modelos como AlphaCode, Codex del equipo de OpenAI, GPT3, Github Copilot y un largo etcétera es: “ohh no, es el fin de los desarrolladores”.

Esta es una discusión extensa y de muchos matices, pero en lo personal solo la veo como una herramienta que puede llevar el desarrollo de software a otro nivel sin atentar contra la profesión. El desarrollo sigue siendo un arte cuyo motor es la creatividad y es muy difícil que sea reemplazado por completo. Por supuesto, estos modelos de AI pueden ayudarnos con tareas repetitivas y no cae nada mal.

Te invito a dejar tus opiniones en el sistema de comentarios o mis redes sociales, pues es una conversación muy interesante en la industria 🙂

Si te interesa conocer más acerca de este tema, te recomiendo leer estos contenidos.

En caso de que quieras descubrir qué son las redes neuronales artificiales, te invito a tomar el Curso de redes Neuronales de Python y Keras, donde explico sus fundamentos.

¡Sígueme en Instagram/Twitter como @alarcon7a, hasta una próxima!

Alarcon7a
Alarcon7a
alarcon7a

15438Puntos

hace 2 años

Todas sus entradas
Escribe tu comentario
+ 2
Ordenar por:
1

dame el codigo para hacer un super mario bros

1
Preocupa un poco que digan que “el desarrollo es un arte basado en la creatividad” como si esto fuera una limitante de la inteligencia artificial. Esta tecnología crece a pasos agigantado si y cada vez el sesgo se va reduciendo más, sino veamos el caso de Dall-e 2 donde los resultados puedes confundirse con un trabajo profesión de cualquier diseñador, fotógrafo o ilustrador. A un artista cuesta un poco creer que una ia puede entregar resultados aceptables en un abrir y cerrar de ojos algo que a este le puede tomar horas de diseño, lo mismo pasará con la programación, no es desquiciado imaginarlo. Lo que pasará en este caso es que la programación como la conocemos no sería la misma, pero vamos, que cambios sí habrá. Refiriéndome, claro, a mediano plazo. En el corto plazo es cierto que es una herramienta útil para nosotros.
1
70885Puntos
un año

La mayoría de estas IA solo replican información que ya se les ha dado para entrenar su modelo. Cuando comiencen a crear desde la nada, aprender desde cero como un niño lo hace ahí si hay que preocuparse. Por ahora son solo herramientas para quien las pueda pagar.

1
1036Puntos
Buen artículo, no conocía la tecnología, me parece que han utilizado código escrito por nosotros los desarrolladores que nos ha tomando mucho tiempo y de buena voluntad alojado en repositorios públicos como git, o docker hub y ahora vienen con tecnologías utilizando IA y utilizar nuestro código de forma gratuita y posteriormente vendernos lo que ya hemos echo anteriormente es una injusticia es momento de que estas tecnologías sean gratuitas ya que existen en base a nuestro código
1
70885Puntos
un año

Triste pero cierto

1
6192Puntos

A quiénes les pueda generar cierto miedo el “Perder su profesión” por lo leído en este artículo, les dejaré algo que capaz les levante el ánimo, cómo hizo conmigo:

"El que piense que el código va a desaparecer es como el matemático que espera que un día las matemáticas no sean formales. Esperan descubrir una forma de crear máquinas que hagan lo que queramos en lugar de lo que digamos. Estas máquinas tendrían que entendernos de tal forma que puedan traducir necesidades ambiguas en programas perfectamente ejecutados que satisfagan dichas necesidades a la perfección.

Esto nunca sucedera. Ni siquiera los humanos, con toda su intuición y creatividad, han sido capaces de crear sistemas satisfactorios a partir de las sensaciones de sus clientes. En realidad, si la disciplina de la especificación de requisitos nos ha enseñado algo, es que los requisitos bien especificados son tan formales como el código y que pueden actuar como pruebas ejecutables de dicho código"

  • Robert C. Martin, extraído de Código Límpio

Básicamente, aún teniendo inteligencias artificiales capaces de codificar, la precisión de los requisitos de nuestros programas tendría que ser tan formal y no ambigua, que terminaríamos escribiendo código (Pero en lenguaje natural). Es decir, prácticamente, seguiríamos programando. Por ello, el código nunca desaparecera.

1
5744Puntos

Interesante conocer de estos temas, en mi humilde opinión que estoy empezando el camino de la programación, lo veo como el hecho de cómo funcionan muchas cosas, es decir, el poder lo tiene quién posee el conocimiento, pueda que existan las herramientas pero sino se las sabe usar no sirven, necesitará de alguien que si, y para eso nos preparamos.

1
3967Puntos

Yo recien estoy aprendiendo programacion y me encuentro con esto😟
Al parecer esta AI va a dejar sin a trabajos a los programadores junior

1
41905Puntos
2 años

No creo, en realidad creo que los hara más avidos de conocimiento y deseo constante de superación. Pero hará que sea más difícil emplearse a aquellos que no se actualicen.

1
22848Puntos

Es fascinante como se desarrollan herramientas como éstas para facilitar la ejecución de tareas. En este caso la escritura de código. Sin embargo concuerdo contigo en cuanto a que no es “el fin del desarrollo”, sino más bien una herramienta que lo puede facilitar.
.
Esto me recuerda a una entrevista que le hicieron a un científico de la computación, el cual le preguntaron si algún día las AI podrían replicar el funcionamiento de la mente humana.
.
Este científico declaró: “… No podemos replicar algo que no sabemos todavía como funciona en su totalidad.”

1
25621Puntos

Siento que AlphaCode, GATO, Dall-E y otras herramientas son muestras de poder previas a la explosión de la tecnología a un nuevo nivel; se muestran como utilidades y curiosidades para los usuarios finales pero reflejan el potencial de la tecnología en su estado del arte, solo es cuestión de un par de años para que la todas estas “curiosidades” se implementen corporativamente y veamos una nueva revolución en el software.