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

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!

Universo Github 2021

Un año más Github realiza el evento Universo de Github en el que presentan novedades y lanzan algunos webinar en los que impulsar y mejorar el uso de la plataforma. Si quieres acceder a todo el contenido, se requiere una cuenta de Github y el registro tanto en el Evento como en las sesiones y talleres que más te interesen. ?‍? ACCEDER AL UNIVERSO GITHUB 2021 ¡SEGUIR LEYENDO!

Un token de GitHub mal Gestionado expuso el Código fuente de Mercedes-Benz

El 29 de septiembre de 2023, ocurrió un importante incidente de seguridad en Mercedes-Benz, un reconocido fabricante de automóviles alemán. Un incidente de mal manejo de un token de GitHub resultó en un acceso no restringido al servidor interno de GitHub de la empresa, exponiendo código fuente crítico al público. Este artículo profundiza en los detalles del incidente, sus posibles consecuencias y las acciones posteriores tomadas ¡SEGUIR LEYENDO!

Scripting con GitHub CLI

Ha pasado un año desde que lanzamos la primera versión pública de GitHub CLI. Desde entonces, hemos agregado funcionalidad para administrar repositorios, comentar problemas, habilitar la fusión automática para solicitudes de extracción, configurar de forma segura valores secretos para acciones de GitHub y más. Sin embargo, donde las herramientas de línea de comandos realmente brillan es en su capacidad para combinarse con otras utilidades e integrarse ¡SEGUIR LEYENDO!

Presentación del Nuevo Director de Seguridad de GitHub

El mundo funciona con software, y una gran parte de él, especialmente el software de código abierto que es parte de todo lo que experimentamos, lo crean millones de desarrolladores en GitHub todos los días. GitHub está fuertemente invertido tanto en la seguridad de la plataforma como en ayudar a los desarrolladores a cambiar sus inversiones de seguridad en la creación de software seguro. La seguridad ¡SEGUIR LEYENDO!

Salir de la versión móvil