LinuxParty
Los informáticos de Google han estado utilizando los LLM para agilizar las migraciones de código interno, logrando un ahorro de tiempo significativo de hasta el 89 % en algunos casos . Los hallazgos aparecen en un artículo preimpreso titulado "¿Cómo utiliza Google la IA para las migraciones de código interno?".
The Register informa: Su enfoque se centra en herramientas de IA a medida desarrolladas para áreas de productos específicas, como anuncios, búsqueda, espacio de trabajo y YouTube, en lugar de herramientas de IA genéricas que brindan servicios de amplia aplicación como finalización de código, revisión de código y respuesta a preguntas. Las migraciones de código de Google implicaron: cambiar los identificadores de 32 bits en la base de código de más de 500 millones de líneas para Google Ads a identificadores de 64 bits; convertir su antigua biblioteca de pruebas JUnit3 a JUnit4; y reemplazar la biblioteca de tiempo Joda con el paquete java.time estándar de Java. La migración de int32 a int64, explican los empleados de Google, no fue trivial ya que los identificadores a menudo se definían de manera genérica (int32_t en C++ o Integer en Java) y no se podían buscar fácilmente.
Existían en decenas de miles de ubicaciones de código en miles de archivos. Los cambios debían rastrearse en varios equipos y los cambios en las interfaces de clase debían considerarse en varios archivos. "Se esperaba que el esfuerzo completo, si se hacía manualmente, requiriera cientos de años de ingeniería de software y una compleja coordinación entre equipos", explican los autores.
Para su flujo de trabajo basado en LLM, los ingenieros de software de Google implementaron el siguiente proceso. Un ingeniero de Ads identificaba un ID que necesitaba migración mediante una combinación de búsqueda de código, Kythe y scripts personalizados. Luego, se ejecutaba un kit de herramientas de migración basado en LLM, activado por alguien con conocimientos en la materia, para generar cambios verificados que contenían código que pasaba las pruebas unitarias. El mismo ingeniero verificaba manualmente esos cambios y, potencialmente, los corregía. A continuación, los cambios de código se enviaban a varios revisores que son responsables de la parte de la base de código afectada por los cambios. El resultado fue que el 80 por ciento de las modificaciones de código en las listas de cambios (CL) eran puramente producto de la IA; el resto eran sugerencias de IA creadas o editadas por humanos.
"Descubrimos que, en la mayoría de los casos, el humano necesitaba revertir al menos algunos cambios que el modelo hizo que eran incorrectos o innecesarios", observan los autores. "Dada la complejidad y la naturaleza sensible del código modificado, se debe dedicar un esfuerzo a implementar cuidadosamente cada cambio para los usuarios". En base a esto, Google emprendió un trabajo adicional en la verificación impulsada por LLM para reducir la necesidad de una revisión detallada. Incluso con la necesidad de volver a verificar el trabajo de LLM, los autores estiman que el tiempo necesario para completar la migración se redujo en un 50 por ciento. Con la ayuda de LLM, tomó solo tres meses migrar 5,359 archivos y modificar 149,000 líneas de código para completar la transición de JUnit3 a JUnit4. Aproximadamente el 87 por ciento del código generado por IA terminó siendo enviado sin cambios. En cuanto al cambio de marco de tiempo de Joda a Java, los autores estiman un ahorro de tiempo del 89 por ciento en comparación con el tiempo de cambio manual proyectado, aunque no se proporcionaron detalles para respaldar esa afirmación.
-
Programación
- Google informa que el tiempo de migración de código se reduce a la mitad con ayuda de IA
- ELIZA, el primer chatbot con inteligencia artificial del mundo, resucita después de 60 años
- Programar y depurar en un IDE para PHP con Eclipse, plugins PDT, xdebug y Remote debug
- Tutorial de C/C++, programar paso a paso, para Linux, Windows y Mac
- Gracias a la IA, el nuevo lenguaje de programación más popular es...
- Cómo instalar y utilizar Scikit-Learn en Linux
- Thomas E. Kurtz, coinventor de BASIC, muere a los 96 años
- Profesor de informática del MIT prueba el impacto de la IA en la formación de programadores
- Lanzamiento del IDE de código abierto Qt Creator 14 con soporte para complementos basados en Lua
- Plantillas para Joomla - Episodio 1: Plantillas, marcos y clubes o no...
- Este es el mejor libro que he visto para aprender a programar en Python en castellano desde cero, gratis y online
- ¿Deberían los niños seguir aprendiendo a programar en la era de la IA?
- La 'obsolescencia' de VBScript confirmada por Microsoft y su eventual eliminación de Windows
- El Gran Debate: ¿Deberían los Modelos de Inteligencia Artificial Ser de Código Abierto?
- El lenguaje de programación BASIC cumple 60 años