Transcripción: ¿Por qué los grandes modelos de lenguaje no pueden construir software realmente? Autor: Conrad Irwin Una de las cosas en las que he pasado mucho tiempo es en entrevistar a ingenieros de software. Esto es, evidentemente, una tarea ardua, y no me atrevería a decir que tengo algún truco especial; pero esta experiencia me ha dado tiempo para reflexionar sobre lo que realmente hace un ingeniero de software eficiente. El ciclo central de la ingeniería de software Cuando observas a un verdadero experto, te das cuenta de que siempre están ejecutando un ciclo de los siguientes pasos: * Construir un modelo mental sobre los requisitos. * Escribir (¡espero!) código que cumpla con los requisitos. * Construir un modelo mental sobre el comportamiento real del código. * Identificar las diferencias entre ambos y luego actualizar el código (o los requisitos). Hay muchas maneras de completar estos pasos, pero la habilidad sobresaliente de los ingenieros eficientes radica en que pueden construir y mantener modelos mentales claros. ¿Cómo se desempeñan los grandes modelos de lenguaje? A decir verdad, los grandes modelos de lenguaje son bastante buenos escribiendo código. Cuando señalas un problema, también son bastante buenos actualizando el código. Pueden hacer todo lo que un ingeniero humano haría: leer código, escribir y ejecutar pruebas, agregar registros y (supongo) usar un depurador. Pero lo que no pueden hacer es mantener un modelo mental claro. Los grandes modelos de lenguaje caen en una confusión interminable: asumen que el código que escriben realmente funciona; cuando las pruebas fallan, solo pueden adivinar si deben arreglar el código o arreglar las pruebas; cuando se sienten frustrados, simplemente eliminan todo y comienzan de nuevo. Esto es exactamente lo opuesto a las cualidades que espero de un ingeniero. Los ingenieros de software trabajan y prueban al mismo tiempo. Cuando las pruebas fallan, pueden consultar su modelo mental para decidir si deben arreglar el código o las pruebas, o si deben recopilar más información antes de tomar una decisión. Cuando se sienten frustrados, pueden buscar ayuda hablando con otros. Aunque a veces también eliminan todo y comienzan de nuevo, eso es una elección que hacen después de tener una comprensión más clara del problema. Pero pronto estará bien, ¿verdad? ¿Cambiará esto a medida que los modelos se vuelvan más capaces? Tal vez, ¿¿pero?? Creo que eso requeriría un cambio fundamental en la forma en que los modelos construyen y optimizan. El modelo que necesita la ingeniería de software no es simplemente uno que pueda generar código....