En su conferencia re:Mars, Amazon anunció hoy el lanzamiento de CodeWhisperer, una herramienta de programación de pares de IA similar a Copilot de GitHub que puede autocompletar funciones completas basadas en solo un comentario o unas pocas pulsaciones de teclas. La compañía capacitó al sistema, que actualmente es compatible con Java, JavaScript y Python, en miles de millones de líneas de código abierto disponible públicamente y su propia base de código, así como documentación y código disponibles públicamente en foros públicos.
Ahora está disponible en versión preliminar como parte del aws IDE Toolkit, lo que significa que los desarrolladores pueden usarlo inmediatamente dentro de sus IDE preferidos, incluidos Visual Studio Code, IntelliJ IDEA, PyCharm, WebStorm y la propia AWS Cloud 9 de Amazon. La compatibilidad con la consola de AWS Lambda también llegará pronto.
Antes del anuncio de hoy, Vasi Philomin, vicepresidente de Amazon a cargo de sus servicios de IA, enfatizó que la compañía no simplemente creó esto para ofrecer una copia de Copilot. Señaló que con CodeGuru, su revisor de código de IA y perfilador de rendimiento, y DevOps Guru, su herramienta para encontrar problemas de operación, la compañía sentó las bases para el lanzamiento de hoy hace bastantes años.
“Creo que la tecnología está en un punto en el que pensamos que era el momento adecuado para hacerlo”, dijo Philomin. “Y encaja muy bien con las otras piezas que tienen. Ha sido un viaje y hemos hecho diferentes partes en diferentes momentos”.
Internamente, Amazon ha estado probando el servicio con solo un pequeño número de desarrolladores, principalmente para mantener el anuncio en secreto.
La compañía señala que el sistema examina continuamente su código y comentarios e incluso tiene en cuenta su propio estilo de codificación y nombres de variables. Usando esta información contextual, y dónde está su cursor, generará sus propios fragmentos de código personalizados.
Vale la pena señalar que CodeWhisperer hace algunas cosas diferentes de las de Copilot. Por un lado, si bien la mayor parte del código que genera el sistema es novedoso, cada vez que genera código que está cerca de un fragmento existente en sus datos de entrenamiento, lo notará y resaltará la licencia de esa función original. Entonces depende del desarrollador decidir si usarlo o no. Esto debería aliviar algunas (aunque tal vez no todas) las preocupaciones de derechos de autor que tal vez vienen con el uso de una herramienta como esta.
Otro factor que Philomin enfatizó es la seguridad. Basado en la propia experiencia de Amazon en la gestión de grandes bases de código y la realización de informes después de que las cosas salen mal (utilizando su proceso formalizado de “corrección de errores“), así como su experiencia con CodeGuru, CodeWhisperer escaneará el código en busca de posibles problemas de seguridad.
“La seguridad siempre es importante en AWS y, por lo tanto, queremos asegurarnos de que el código que generamos sea seguro”, dijo Philomin. “Ahora, obviamente, hemos generado el código y el desarrollador puede cambiarlo, por lo que CodeWhisperer tiene la capacidad de decir: ejecute un escaneo en el archivo fuente actual. Será … escanear y … le indicará cualquier problema y vulnerabilidad de seguridad, ya sea en el código generado o modificado”.
Philomin también enfatizó que el equipo trabajó arduamente para garantizar que el código que genera CodeWhisperer tampoco genere ningún código sesgado. Sin embargo, cuando lo hace, el equipo ha implementado filtros para eliminar automáticamente ese código.
La experiencia real del usuario / desarrollador es bastante sencilla. Los desarrolladores pueden elegir entre diferentes sugerencias de código (en la demostración que vi, generalmente había al menos dos opciones). Puede autocompletar comentarios y solo en función de esos comentarios, sugerirá funciones. Un ejemplo simple para esto sería algo así como #See si un número es primo.
Si bien el sistema funcionará bien para los desarrolladores fuera del ecosistema de AWS, Philomin señaló que el equipo tuvo mucho cuidado de garantizar que funcione muy bien para los desarrolladores que desean usarlo para acceder a los servicios de AWS (piense #Create un bucket de S3).
“Cuando decimos que tiene soporte de primera clase para la API de AWS, son solo cosas adicionales. En términos de todas nuestras mediciones y todas nuestras pruebas, encontramos que funciona notablemente bien y será de última generación”, dijo. Dado que los desarrolladores ahora pueden probar el servicio, es probable que pronto escuchemos lo bien que funciona y cómo se compara con proyectos como Copilot. Sin embargo, en todo caso, tener más opciones en este espacio es genial (y alguien seguramente va a hackear un proyecto que proporcionará automáticamente sugerencias de múltiples IA de programación de pares).