Athrun Data Intelligence



Imagine un futuro en el que la inteligencia fabricado asuma silenciosamente el trabajo pesado del crecimiento de software: refactorizar el código enredado, la migración de sistemas heredados y la caza de condiciones de carrera, para que los ingenieros humanos puedan dedicarse a la construcción, el diseño y los problemas genuinamente novedosos aún más allá del resonancia de una máquina. Los avances recientes parecen tener empujado que el futuro tentadoramente se cierra, pero un nuevo artículo de los investigadores del Laboratorio de Informática e Inteligencia Químico del MIT (CSAIL) y varias instituciones colaboradoras argumentan que esta posible ingenuidad futura exige una ojeada dura en los desafíos actuales.

Titulado «Desafíos y caminos en dirección a la IA para la ingeniería de software«, El trabajo asigna las muchas tareas de ingeniería de software más allá de la reproducción de código, identifica los cuellos de botella actuales y destaca las instrucciones de investigación para superarlas, con el objetivo de permitir que los humanos se centren en el diseño de detención nivel mientras el trabajo de rutina se automatiza.

«Todos están hablando de cómo ya no necesitamos programadores, y ahora está toda esta automatización arreglado», dice Armando Solar -Lezama, profesor de Ingeniería Eléctrica e Informática, Investigador Principal de CSAIL y autor senior del estudio. «Por un flanco, el campo ha progresado enormemente. Tenemos herramientas que son mucho más poderosas que cualquiera que hayamos trillado antaño. Pero asimismo hay un amplio camino por recorrer para obtener la promesa completa de la automatización que esperaríamos».

Solar-Lezama argumenta que las narraciones populares a menudo reducen la ingeniería de software a «la parte de programación de pregrado: cierto le entrega una especie para una pequeña función y la implementa, o resuelve entrevistas de programación al estilo Leetcode». La habilidad positivo es mucho más amplia. Incluye refactores cotidianos que pulen el diseño, encima de migraciones radicales que mueven millones de líneas de COBOL a Java y remodelan empresas enteras. Requiere pruebas y prospección sin detener (fuzzing, pruebas basadas en propiedades y otros métodos) para atrapar errores de concurrencia o fallas de día cero. E implica la rutina de mantenimiento: documentar el código de la término, resumir los historiales de cambios para los nuevos compañeros de equipo y revisar las solicitudes de ascendencia de estilo, rendimiento y seguridad.

La optimización del código a escalera de la industria, cree que retornar a ajustar los núcleos de GPU o los implacables refinamientos de varias capas detrás del motor V8 de Chrome, sigue siendo tercamente difícil de evaluar. Las métricas de titulares de hoy se diseñaron para problemas cortos y autónomos, y aunque las pruebas de opción múltiple aún dominan la investigación en lengua natural, nunca fueron la norma en el código AI para el código. El criterio de facto del campo, Swe-Bench, simplemente le pide a un maniquí que repare un problema de GitHub: útil, pero aún similar al muestra del «deporte de programación de pregrado». Toca solo unos pocos cientos de líneas de código, arriesga la fuga de datos de los repositorios públicos e ignora otros contextos del mundo positivo: refactores asistidos por AI, programación de pares humanos-AI o reescrituras críticas de rendimiento que abarcan millones de líneas. Hasta que los puntos de remisión se expandan para capturar esos escenarios de decano décimo, midir el progreso, y así acelerarlo, seguirá siendo un desafío destapado.

Si la medición es un obstáculo, la comunicación de la máquina humana es otra. El primer autor Alex Gu, estudiante licenciado del MIT en Ingeniería Eléctrica e Informática, ve la interacción de hoy como «una flaca ruta de comunicación». Cuando le pide a un sistema que genere código, a menudo recibe un archivo holgado y no estructurado e incluso un conjunto de pruebas unitarias, sin bloqueo, esas pruebas tienden a ser superficiales. Esta brecha se extiende a la capacidad de la IA para usar efectivamente el conjunto más amplio de herramientas de ingeniería de software, desde debuggers hasta analizadores estáticos, en los que los humanos confían para un control preciso y una comprensión más profunda. «Positivamente no tengo mucho control sobre lo que escribe el maniquí», dice. «Sin un canal para que la IA exponga su propia confianza:» esta parte es correcta … esta parte, tal vez doble cheque «, los desarrolladores corren el aventura de tener fe ciegamente en la método alucinada que compila, pero colapsa en la producción. Otro aspecto crítico es tener la IA asimilar cuándo postergar al legatario para aclarar».

Escalera compensa estas dificultades. Los modelos actuales de IA luchan profundamente con grandes bases de código, a menudo abarcando millones de líneas. Los modelos de colchoneta aprenden de GitHub notorio, pero «la colchoneta de código de cada compañía es poco diferente y única», dice GU, haciendo convenciones de codificación propietarios y requisitos de observación fundamentalmente fuera de la distribución. El resultado es un código que parece plausible pero fuego funciones no existentes, viola las reglas de estilo interno o falta las tuberías de integración continua. Esto a menudo conduce a un código generado por IA que «alucina», lo que significa que crea contenido que parece plausible pero que no se alinea con las convenciones internas específicas, las funciones de ayuda o los patrones arquitectónicos de una compañía determinada.

Los modelos asimismo a menudo se recuperarán incorrectamente, ya que recupera el código con un nombre similar (sintaxis) en ocasión de funcionalidad y método, que es lo que un maniquí podría escasear asimilar cómo escribir la función. «Las técnicas de recuperación normalizado se engañan muy fácilmente por piezas de código que están haciendo lo mismo pero que se ven diferentes», dice Solar -Lzama.

Los autores mencionan que, cedido que no hay una bala de plata en estos problemas, están llamando a los esfuerzos a escalera de la comunidad: más rico, con datos que capturan el proceso de los desarrolladores que escriben el código (por ejemplo, que los desarrolladores de código mantienen frente a tirar, cómo se refactora el código a lo amplio del tiempo, etc.), los suites de evaluación compartida que miden el progreso en la calidad del refactor, la persistencia de los errores y la largo de la migración; y herramientas transparentes que permiten que los modelos expongan la incertidumbre e inviten a la dirección humana en ocasión de la admisión pasiva. GU enmarca la memorándum como un «llamado a la batalla» para colaboraciones más grandes de origen destapado que ningún laboratorio solo podría reunir solo. Solar -Lzama imagina los avances incrementales: «los resultados de la investigación que eliminan las picaduras de cada uno de estos desafíos por separado», que vuelven a las herramientas comerciales y mueven gradualmente la IA de la compinche autocompletada en dirección a un socio de ingeniería puro.

“¿Por qué importa? El software ya sustenta las finanzas, el transporte, la atención médica y las minucias de la vida diaria, y el esfuerzo humano requerido para construirlo y mantenerlo de modo segura se convierte en un cuello de botella. Una IA que puede aceptar el trabajo graznido, y hacerlo sin introducir fallas ocultas, los desarrolladores libres para centrarse en la creatividad, la táctica y la ética», dice la capitán «. «Pero ese futuro depende de cachear que la finalización del código es la parte casquivana; la parte difícil es todo lo demás. Nuestro objetivo no es reemplazar a los programadores. Es para amplificarlos. Cuando la IA puede carear a los tediosos y terroríficos ingenieros humanos finalmente pueden suceder su tiempo en lo que solo los humanos pueden hacer».

«Con tantos trabajos nuevos que surgen en la IA para la codificación, y la comunidad a menudo persigue las últimas tendencias, puede ser difícil dar un paso antes y reflexionar sobre qué problemas son más importantes para invadir», dice Baptiste Rozière, un irrefutable de IA de la IA Mistral, que no estaba involucrado en el documento. «Disfruté leyendo este documento porque ofrece una visión genérico clara de las tareas y desafíos esencia en la IA para la ingeniería de software. Todavía describe direcciones prometedoras para futuras investigaciones en el campo».

GU y Solar-Lezama escribieron el documento con la Universidad de California en el profesor de Berkeley Koushik Sen y los estudiantes de doctorado Naman Jain y Manish Shetty, el profesor asistente de la Universidad de Cornell Kevin Ellis y el estudiante de doctorado Wen-Ding Li, el profesor asistente de la Universidad de Stanford, Diyi Yang, y estudiante de doctorado, Yijia Shao, e incomparaciones de la incompleta de la Universidad de la Universidad de la Universidad Ziyang Li. Su trabajo fue apoyado, en parte, por la National Science Foundation (NSF), los patrocinadores y afiliados industriales de Sky Lab, Intel Corp. a través de una subvención de NSF y la Oficina de Investigación Naval.

Los investigadores están presentando su trabajo en la Conferencia Internacional sobre Educación Autor (ICML).

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *