La Inteligencia Artificial puede escribir código como los humanos: Hasta con sus errores

Algunos desarrolladores de software han comenzado a permitir que la inteligencia artificial les ayude a escribir su código y están descubriendo que la Inteligencia Artificial es tan defectuosa como los humanos.

GitHub, la reciente filial de Microsoft que proporciona herramientas para alojar y colaborar en código fuente, lanzó una versión beta de un programa que usa Inteligencia Artificial para ayudar a los programadores.

Al comenzar a escribir un comando, una consulta a una base de datos o una solicitud a una API; el programa, denominado Copiloto, adivinará la intención y escribirá el resto.

Algunas pruebas con Copiloto de Github

Alex Naka, un científico de datos de una empresa de biotecnología que se inscribió para probar Copilot, dice que el programa puede ser muy útil y ha cambiado la forma en que trabaja.

“Me permite pasar menos tiempo saltando al navegador para buscar documentos API o ejemplos en Stack Overflow”, dice.
“Se siente un poco como si mi trabajo hubiera pasado de ser un generador de código a ser un discriminador”.

Pero Naka ha descubierto que los errores pueden introducirse en el código de diferentes formas.

“Ha habido ocasiones en las que he perdido algún tipo de error sutil cuando acepto una de las propuestas”
“A posteriori, puede ser muy difícil rastrear esos fallos, sobre todo porque parece cometer errores diferentes a los que yo cometería”.

El problema de los errores de una Inteligencia Artificial

Los riesgos de que la IA genere un código defectuoso pueden ser sorprendentemente altos.

Investigadores de NYU analizaron recientemente el código generado por Copiloto y encontraron que, para ciertas tareas donde la seguridad es crucial, el código contiene fallas de seguridad alrededor de hasta un 40 por ciento de las veces.

La cifra “es un poco más alta de lo que se podría haber esperado”, dice Brendan Dolan-Gavitt, profesor de la Universidad de Nueva York que participó en el análisis.

“Pero la forma en que se entrenó a Copiloto no fue en realidad para escribir un buen código, sino solamente para producir el tipo de texto que seguiría una indicación determinada”.

A pesar de tales fallas, Copiloto y herramientas similares impulsadas por IA pueden presagiar un cambio radical en la forma en que los desarrolladores de software escriben el código.

Los posibles problemas de seguridad

Al analizar el código disponible para un complemento Copiloto, Dolan-Gavitt descubrió que incluía una lista de frases restringidas.

Aparentemente, se introdujeron para evitar que el sistema emitiera mensajes ofensivos o copiara un código conocido escrito por otra persona.

Oege de Moor, vicepresidente de investigación de GitHub y uno de los desarrolladores de Copilot, dice que la seguridad ha sido una preocupación desde el principio.

De Moor inventó CodeQL, una herramienta utilizada por los investigadores de la NYU que identifica automáticamente errores en el código.

GitHub recomienda que los desarrolladores usen Copiloto junto con CodeQL para garantizar que su trabajo sea más seguro.

El programa Copiloto

El programa de GitHub se basa en un modelo de inteligencia artificial desarrollado por OpenAI, una destacada empresa de inteligencia artificial que realiza un trabajo de vanguardia en el aprendizaje automático.

Ese modelo, llamado Codex, consiste en una gran red neuronal artificial entrenada para predecir los siguientes caracteres tanto en texto como en código de computadora.

El algoritmo ingirió miles de millones de líneas de código almacenadas en GitHub, no todas perfectas, para aprender a escribir código.

Herramienta de creación de código de OpenAI

OpenAI ha construido su propia herramienta de codificación de IA sobre Codex que puede realizar algunos trucos de codificación sorprendentes.

Por ejemplo, puede convertir una instrucción escrita como “Crear una matriz de variables aleatorias entre 1 y 100 y luego devolver la mayor de ellas” en código de trabajo en varios lenguajes de programación.

Otra versión del mismo programa de OpenAI, llamada GPT-3, puede generar texto coherente sobre un tema determinado; pero también puede regurgitar el lenguaje ofensivo o sesgado aprendido de los rincones más oscuros de la web.

Dudas sobre el funcionamiento independiente de la IA

Copilot y Codex han llevado a algunos desarrolladores a preguntarse si la IA podría automatizar el trabajo sin ayuda humana.

De hecho, como muestra la experiencia de Naka, los desarrolladores necesitan una habilidad considerable para usar el programa; ya que a menudo deben examinar y modificar las sugerencias.

Hammond Pearce, un investigador postdoctoral en NYU involucrado en el análisis del código Copiloto, declaró que el programa a veces produce código problemático porque no comprende completamente lo que intenta hacer un fragmento de código.

Los malos hábitos y peligros de la IA

A algunos desarrolladores les preocupa que la IA ya esté adquiriendo malos hábitos.

“Hemos trabajado duro como industria para alejarnos de las soluciones de copiar y pegar y ahora Copilot ha creado una versión supervitaminada de eso”, dice Maxim Khailo, un desarrollador de software que ha experimentado con el uso de IA para generar código, pero no ha probado Copilot.

Khailo dice que es posible que los piratas informáticos se metan con un programa como Copilot.

“Si fuera un pirata informático, lo que haría sería crear proyectos de código vulnerable en GitHub, aumentar artificialmente su popularidad comprando estrellas de GitHub en el mercado negro y esperar que se convierta en parte del corpus para la próxima ronda de capacitación de la IA”.

Tanto GitHub como OpenAI dicen que, por el contrario, es probable que sus herramientas de codificación de IA sean menos propensas a errores.

OpenAI dice que examina los proyectos y el código tanto manualmente como con herramientas automatizadas.

De Moor, de GitHub, dice que su equipo está explorando otras formas de mejorar la producción de Copiloto.

Una de ellas es eliminar los malos ejemplos de los que aprende el modelo de IA subyacente.

Otra, podría ser utilizar el aprendizaje por refuerzo, una técnica de inteligencia artificial que ha producido algunos resultados impresionantes en juegos y otras áreas.

El aprendizaje por refuerzo es capaz de detectar automáticamente los malos resultados, incluidos ejemplos nunca antes vistos.


Artículos Relacionados

Relacionado

21 Nuevos Cursos Gratuitos: Python, Google Cloud, CSS y Más (25 de Febrero 2021)

Como de costumbre, vamos con los cursos gratis, tenemos 3 cursos en español: Computación, Google Cloud y aplicaciones web; y 18 cursos gratuitos en inglés: Python, Flask, Ionic, PHP, Android, Github, CSS, Flexbox, Illustrator, Photoshop, Scrum y minado de Sugar. Recuerda, que puedes si quieres, puedes acceder a las Mejores Ofertas de Udemy ¡Alé, aprendamos gratis un ratico! Cursos en Español Computación ? Curso Gratuito de ¡SEGUIR LEYENDO!

4 Cosas que no sabías que podías hacer con las Acciones de GitHub

GitHub Actions es una plataforma poderosa que permite a un equipo pasar el código a la nube, todo desde la comodidad de los repositorios git. A continuación se analizan algunos ejemplos de cómo se pueden usar las acciones de GitHub para automatizar y orquestar un canal para DevOps a través de las acciones de Github. 1. Comprimir las imágenes para la web GitHub Marketplace es un ¡SEGUIR LEYENDO!

Conociendo las acciones de Github: Colección de Enlaces Awesome

Las acciones de GitHub facilitan la automatización de todos tus flujos de trabajo de software. Las acciones de Github permiten construir, probar e implementar el código directamente desde GitHub. Bien si deseas construir un contenedor, implementar un servicio web o automatizar la bienvenida de un nuevo usuario en tu proyecto de código abierto, es muy posible que exista una acción automatizada para ello. La forma más ¡SEGUIR LEYENDO!

Aprender a programar en Android con Google, desde principiantes hasta avanzado

El equipo de capacitación de desarrolladores de Google publicó recientemente una versión actualizada del curso Fundamentos de desarrollo para Android como una serie continua de tutoriales a través de Google Codelabs. Codelabs hizo su debut como sitio de tutoriales en Google I/O en 2015, y se ha disparado en popularidad como una de las mejores plataformas del mundo para aprender y estudiar absolutamente todo sobre Android. ¡SEGUIR LEYENDO!

Mejores Libros PDF de Programación y Tecnología GRATIS

Los Mejores Libros PDF Gratuitos de Informática. EL sitio perfecto para aprender a programar desde cero para principiantes con las mejores guías gratis. Esta es la mejor lista de libros de programación en PDF en español del mundo. Una completa biblioteca recopilada de cientos y cientos de libros en PDF que no encontrarás en ninguna parte más. Aquí, vas a encontrar libros enfocados hacía programadores. Sobre ¡SEGUIR LEYENDO!

Visual Studio integrado en Github: Codespaces, nuevo editor beta integrado en tus repositorios

Contribuir con código a una comunidad puede ser difícil. Cada repositorio tiene su propia forma de configurar un entorno de desarrollo, que a menudo requiere docenas de pasos antes de poder escribir cualquier código. Peor aún, a veces el entorno de dos proyectos en los que está trabajando entra en conflicto entre sí. Codespaces te brinda un entorno de desarrollo con todas las funciones alojado en ¡SEGUIR LEYENDO!

¿Cómo agregar un repositorio de GitHub a Jira?

Cuando Jira es tu solución de gestión de proyectos preferida, sabes que tienes un mundo de opciones al alcance de la mano. Si tus proyectos son de desarrollo de software, debes ser plenamente consciente de que tus equipos necesitarán tener algún tipo de conexión con repositorios de código como GitHub. Jira incluye una función que no solo te permite unirte a los repositorios específicos de GitHub, ¡SEGUIR LEYENDO!

Salir de la versión móvil