.

Ms Tech

Inteligencia Artificial

Esta IA ayuda a que los ordenadores se programen a sí mismos

1

Encontrar errores en el código resulta una labor cada vez más complicada para los humanos, por lo que algunos expertos pretenden que las máquinas se programen solas. Un nuevo sistema utiliza aprendizaje automático para ofrecer formas de escribir código más eficientes y proporcionando correcciones

  • por Will Douglas Heaven | traducido por Ana Milutinovic
  • 21 Agosto, 2020

Programar nunca ha sido fácil. Los primeros programadores escribían los programas a mano, garabateando símbolos en hojas de cuadrícula antes de convertirlos en grandes pilas de tarjetas perforadas que podían ser procesadas por el ordenador. Si había una marca fuera de lugar, todo tenía que rehacerse.

Hoy en día, los programadores utilizan una serie de herramientas potentes que automatizan gran parte del trabajo, desde detectar errores mientras escriben a probar el código antes de implementarlo. Pero en otros sentidos, poco ha cambiado. Un error insignificante aún puede bloquear una pieza completa de software. Y a medida que los sistemas se vuelven cada vez más complejos, encontrar estos errores resulta cada vez más difícil. "A veces los equipos de programadores pueden tardar días en corregir un solo error", asegura el director del grupo de investigación de programación de máquinas de Intel, Justin Gottschlich.

Es por eso que algunas personas creen que se debería intentar que las máquinas se programen solas. La generación automatizada de código ha sido un tema de investigación candente durante varios años. Microsoft está incorporando la generación de código básico en sus herramientas de desarrollo de software utilizadas ampliamente, Facebook ha creado un sistema llamado Aroma que autocompleta pequeños programas, y DeepMind ha desarrollado una red neuronal que puede generar versiones más eficientes de algoritmos simples que las creadas por humanos. Incluso el modelo de lenguaje GPT-3 de OpenAI puede producir piezas sencillas de código, como diseños de páginas web, a partir de indicaciones en lenguaje natural.

Gottschlich y sus colegas lo han denominado machine programming (programación de máquina). Trabajando con su equipo en Intel, MIT y el Instituto Tecnológico de Georgia en Atlanta (EE. UU.), ha desarrollado un sistema llamado Machine Inferred Code Similarity (MISM) que puede extraer el significado de una pieza de código (lo que el código le dice al ordenador que debe hacer), de la misma manera que los sistemas de procesamiento de lenguaje natural (PLN) pueden leer un párrafo escrito en inglés. 

MISIM puede sugerir otras formas de escribir el código, ofreciendo correcciones y maneras de llevarlo a cabo más rápido o más eficiente. La capacidad de la herramienta para comprender lo que intenta realizar un programa le permite identificar otros programas que realizan tareas similares. En teoría, este enfoque podría ser utilizado por máquinas para escribir su propio software basándose en un modelo de programas preexistentes con mínima supervisión humana o información de entrada.

MISIM funciona comparando fragmentos de código con millones de otros programas que ya ha visto, tomados de una gran cantidad de registros online. Primero, traduce el código de un modo que captura lo que hace, pero ignora cómo está escrito, porque dos programas escritos de maneras muy diferentes a veces hacen lo mismo. MISIM después usa una red neuronal para encontrar otro código que tenga un significado similar. En una publicación en preprint, Gottschlich y sus colegas afirman que MISIM es 40 veces más preciso que los sistemas anteriores que intentan realizar esa tarea, incluido Aroma.

MISIM es un fascinante paso adelante según el CTO de la compañía suiza DeepCode, Veselin Raychev, cuyas herramientas para detectar errores, que figuran entre las más avanzadas, utilizan redes neuronales entrenadas con millones de programas para sugerir mejoras a los programadores mientras escriben.

Pero el aprendizaje automático aún no es bueno en predecir si algo es un error, opina Raychev. Esto se debe a que resulta difícil enseñar a una red neuronal qué es o no es un error, a menos que un humano lo haya etiquetado como tal.

Se están realizando muchas investigaciones interesantes con redes neuronales profundas sobre la corrección de errores, "pero prácticamente no han llegado todavía a conseguirlo por un margen muy grande, y les falta bastante". En general, las herramientas de detección de errores de inteligencia artificial (IA) producen muchos falsos positivos, añade.

MISIM lo evita usando el aprendizaje automático para detectar similitudes entre programas en lugar de identificar directamente errores. Al comparar un nuevo programa con un software existente que se sabe qué es correcto, puede alertar al programador sobre las importantes diferencias que podrían ser errores.

Intel planea usar esta herramienta como un sistema de recomendación de código para los desarrolladores internos, sugiriendo alternativas más rápidas o más eficientes de escribir código. Pero como MISIM no está vinculado a la sintaxis de un programa específico, hay mucho más que podría hacer. Por ejemplo, se podría usar para traducir el código escrito en un lenguaje antiguo como COBOL a un lenguaje más moderno como Python. Esto es importante porque muchas instituciones, incluido el Gobierno de EE. UU., todavía dependen del software escrito en lenguajes que pocos programadores saben mantener o actualizar. 

Finalmente, Gottschlich cree que esta idea también podría aplicarse al lenguaje natural. En combinación con PLN, la capacidad de trabajar con el significado del código de forma separada a su representación textual podría algún día permitir que las personas escriban software solo describiendo lo que quieren hacer en palabras, explica. 

"Desarrollar pequeñas aplicaciones para el teléfono o cosas por el estilo que nos ayudarán en la vida diaria creo que no están muy lejos", concluye Gottschlich. "Me gustaría ver a 8.000 millones de personas programar software de la forma más natural para cada una".

Inteligencia Artificial

 

La inteligencia artificial y los robots están transformando nuestra forma de trabajar y nuestro estilo de vida.

  1. La IA generativa puede convertir tus recuerdos en fotos que nunca existieron

    El proyecto Synthetic Memories ayuda a familias de todo el mundo a recuperar un pasado que nunca se fotografió

    Una imagen en blanco y negro generada por ai de una mujer y un niño mirando por una ventana
  2. "La pregunta es cuánta participación humana se necesita para que algo sea arte"

    Alex Reben hace arte con (y sobre) IA. Hablé con él sobre lo que la nueva ola de modelos generativos significa para el futuro de la creatividad humana

    Detalle de un cuadro de una cabeza deformada en la que unas enormes orejas en la parte frontal de la cara tapan los ojos y una lengua brillante con textura de fresa sobresale de la boca abierta.
  3. Compensación y atribución para los creadores, la apuesta de Adobe por una IA generativa diferente

    La empresa afirma que es la prueba de que los modelos de IA de calidad no tienen por qué incluir polémicos contenidos protegidos por derechos de autor

    Imagen generada mediante IA de una mano que utiliza una cuchilla de precisión para cortar un dibujo de la realidad