Blog de Amazon Web Services (AWS)
Presentamos Amazon CodeWhisperer, el compañero de codificación basado en ML
Aunque la nube ha democratizado el desarrollo de aplicaciones al brindar acceso según demanda a cómputo, almacenamiento, base de datos, análisis y ML, el proceso tradicional de creación de aplicaciones de software aún requiere que los desarrolladores dediquen mucho tiempo a escribir secciones de código repetitivas que no están directamente relacionadas con el problema central que están tratando de resolver. Incluso a los desarrolladores más experimentados les resulta difícil mantenerse al día con múltiples lenguajes de programación, frameworks y bibliotecas de software, mientras se aseguran de seguir la sintaxis de programación correcta y las mejores prácticas de codificación. Como resultado, los desarrolladores dedican una gran cantidad de tiempo a buscar y personalizar fragmentos de código de la web. Con CodeWhisperer, los desarrolladores pueden concentrarse en el IDE y aprovechar las recomendaciones contextuales en tiempo real, que ya están personalizadas y listas para usar. Menos distracciones lejos del IDE y recomendaciones listas para usar en tiempo real lo ayudan a terminar sus tareas de codificación más rápido y brindan un aumento de la productividad.
En esta publicación, discutimos los beneficios de CodeWhisperer y cómo comenzar.
Llevando el poder de ML al alcance de la mano del desarrollador
CodeWhisperer está disponible como parte de la extensión AWS Toolkit para los principales IDE, incluidos JetBrains, Visual Studio Code y AWS Cloud9 . En la consola de AWS Lambda , CodeWhisperer está disponible como una función de sugerencia de código nativa. puede usar CodeWhisperer para generar recomendaciones de código para Python, Java y JavaScript. Puede instalar AWS Toolkit yendo a la pantalla de complemento o extensión de su IDE y buscando “AWS Toolkit”.
Una vez que CodeWhisperer está habilitado, automáticamente comienza a recibir recomendaciones de código en su IDE a medida que comienza a escribir su código o comentarios, estamos haciendo que CodeWhisperer sea fácil de usar y experimentar. Puede comenzar en unos minutos y comenzar a disfrutar de los beneficios de productividad de inmediato.
Mucho más que el autocompletado tradicional
Las herramientas de autocompletado tradicionales brindan completaciones de una sola palabra, por ejemplo, una lista de propiedades o métodos para un objeto. CodeWhisperer proporciona un impulso de productividad mucho mayor al generar funciones completas y bloques de código lógico a la vez. Además, CodeWhisperer comprende la intención del desarrollador expresada a través de comentarios en inglés sencillo. El siguiente ejemplo muestra cómo CodeWhisperer genera la función completa para convertir un archivo JSON en un archivo CSV, considerando la intención del desarrollador de usar las claves en el archivo JSON como encabezados del archivo CSV.
Crear aplicaciones en AWS ahora es más fácil
CodeWhisperer facilita a los desarrolladores el uso de los servicios de AWS al proporcionar recomendaciones de código para las interfaces de programación de aplicaciones (API) de AWS en los servicios más populares, incluidos Amazon Elastic Compute Cloud (Amazon EC2), Lambda y Amazon Simple Storage Service (Amazon S3). A medida que escribe código en su IDE, CodeWhisperer analiza automáticamente el comentario, ensambla el código utilizando los servicios en la nube relevantes y las bibliotecas de software público para la funcionalidad deseada, y recomienda fragmentos de código e incluso funciones completas directamente en el IDE que cumplen con las mejores prácticas. El siguiente ejemplo muestra cómo CodeWhisperer puede generar la función completa para cargar un archivo en Amazon S3 mediante el cifrado del lado del servidor.
Aprovechar el poder de la IA de manera responsable
Hemos entrenado el modelo CodeWhisperer usando grandes cantidades de código disponibles públicamente para mejorar la precisión de las recomendaciones. En pocas palabras, la precisión del modelo es directamente proporcional al tamaño de los datos de entrenamiento. Y si bien esto nos ha ayudado en el frente de la precisión, este tipo de modelos también pueden aprender algunos patrones no deseados. Creemos que, si bien la IA sin duda puede aumentar la productividad, debemos aprovechar este poder de manera responsable. Hay algunas capacidades destacadas que hacen que CodeWhisperer sea único en este espacio.
En AWS, nos gusta decir que la seguridad es el trabajo cero. Es por eso que CodeWhisperer también brinda la capacidad de ejecutar escaneos en su código (generado por CodeWhisperer y escrito por usted) para detectar vulnerabilidades de seguridad. La siguiente captura de pantalla ilustra la funcionalidad de escaneo de seguridad de CodeWhisperer. Hemos incluido un fragmento de código que puede provocar una fuga de recursos. Cuando elige “Ejecutar análisis de seguridad” , CodeWhisperer detecta esta vulnerabilidad y muestra el problema.
En segundo lugar, proporcionamos un rastreador de referencia que puede detectar cuándo los resultados generados pueden ser similares a datos de entrenamiento particulares. Aunque el modelo ha aprendido a escribir código y genera código completamente nuevo basado en el aprendizaje, en casos muy raros, una recomendación de código generada de forma independiente puede parecerse a un fragmento de código único en los datos de entrenamiento. CodeWhisperer le notifica cuando esto sucede y le proporciona la información sobre el repositorio y la licencia, lo que le facilita decidir si usar el código en su proyecto y hacer las atribuciones de código fuente relevantes como mejor le parezca.
CodeWhisperer le informa en tiempo real que la recomendación de código actual que está viendo puede ser similar a un código de referencia al mostrar una notificación en la ventana emergente de recomendaciones. En la siguiente captura de pantalla, se encuentra que el código generado es similar a un código de referencia que está bajo la licencia MIT. Si el desarrollador acepta la recomendación, CodeWhisperer registra la aceptación y la información de licencia correspondiente. A continuación, puede ver el registro de referencia eligiendo “Abrir panel de referencia” de CodeWhisperer en el nodo CodeWhisperer.
Por último, estamos implementando técnicas para detectar sesgos basados en estereotipos comunes. Hemos implementado filtros que detectan sesgos evidentes en el código generado y eliminan las recomendaciones de código que pueden considerarse sesgadas e injustas. Por ejemplo, imagine un software de reclutamiento que ayude a los gerentes de contratación al seleccionar automáticamente a los candidatos. En caso de empate, el software depende de una lógica de desempate. Al generar una recomendación para este escenario, es posible que un modelo de IA genere código que favorezca a los candidatos en función de parámetros inapropiados. CodeWhisperer puede detectar sesgos en sus recomendaciones y filtrarlos antes de mostrar recomendaciones al desarrollador.
Desbloqueo de ganancias de productividad con CodeWhisperer
“Las distracciones son un desafío constante durante la codificación, especialmente cuando es necesario cambiar de contexto para buscar muestras de código y documentación en la web. Amazon CodeWhisperer me mantiene enfocado en el código ofreciéndome automáticamente sugerencias útiles justo cuando las necesito, para que nunca tenga que dejar mi editor”.
– Ryan Grove, ingeniero de software del personal de SmugMug.
“Estamos entusiasmados de trabajar con AWS para llevar Amazon CodeWhisperer a la plataforma IntelliJ. En JetBrains, nuestro objetivo es hacer que el desarrollo de software sea una experiencia fluida y agradable. La disponibilidad del complemento para nuestras herramientas ayudará a los desarrolladores a mantenerse enfocados en su IDE y reducir la necesidad de buscar y personalizar fragmentos de código de la web. A partir de hoy, los usuarios de IntelliJ IDEA, PyCharm y WebStorm pueden comenzar a trabajar con Amazon CodeWhisperer directamente en su IDE, y se admitirán más IDE en un futuro cercano”.
– Max Shafirov, CEO de JetBrains.
Empezando
Durante el período de vista previa, CodeWhisperer está disponible para todos los desarrolladores de todo el mundo de forma gratuita. Para acceder al servicio en vista previa, únase a la lista de espera registrándose . Para obtener más información sobre el servicio, visite Amazon CodeWhisperer .
Este artículo fue traducido del Blog de AWS en Inglés
Acerca de los autores
Ankur Desai es Principal Product Manager en AWS AI Services team.
Atul Deo es Director of Product Management en AWS AI Services team.
Traductor
Sergio Beltrán es arquitecto de soluciones especialista en AI/ML en AWS. En su rol apoya a los clientes a encontrar la mejor solución y arquitectura para sus necesidades al igual que aprovechar los servicios de AI/ML para generar innovación y mejorar la productividad. Antes de AWS, trabajó como data scientist y gerente de business development en la industria de Telco.
Revisores
Luisa Vesga es arquitecta de soluciones especialista en Machine Learning en Amazon Web Services. En su puesto, ayuda a las compañías a superar los desafíos empresariales aprovechando la plataforma de AWS. Tiene más de 10 años de experiencia en el campo de la tecnología.
Edzon Sanchez es Arquitecto de Soluciones especializado en AI/ML en AWS.