La Generación de Código con IA: ¿Un Camino Seguro Hacia la Inteligencia Artificial General?
La creencia popular de que mejorar la capacidad de la Inteligencia Artificial (IA) para generar código de programación nos impulsará rápidamente hacia la consecución de la Inteligencia Artificial General (AGI) está ganando terreno. Numerosos creadores de IA están invirtiendo fuertemente en el uso de IA generativa y modelos de lenguaje grandes (LLM) como máquinas prolíficas de producción de código, motivados principalmente por esta convicción. Sin embargo, surge una pregunta fundamental: ¿es realmente la generación de código basada en IA el camino más eficaz, o incluso un camino probable, para alcanzar la AGI?
Profundicemos en este tema.
Este análisis de un avance innovador en la IA se enmarca dentro de la cobertura continua de Evox News sobre las últimas novedades en IA, incluyendo la identificación y explicación de diversas complejidades impactantes de la IA.
Rumbo Hacia la AGI y la ASI
Es esencial establecer algunos fundamentos para contextualizar adecuadamente esta trascendental discusión.
Existe una considerable cantidad de investigación en curso destinada a seguir avanzando en el campo de la IA. El objetivo general es alcanzar la inteligencia artificial general (AGI) o, incluso, la posibilidad más ambiciosa de lograr la superinteligencia artificial (ASI).
La AGI se define como una IA que se considera a la par de la inteligencia humana y que puede igualar nuestra capacidad intelectual. Por otro lado, la ASI representa una IA que ha superado la inteligencia humana y que sería superior en muchos, si no en todos, los aspectos factibles. La idea es que la ASI sería capaz de superar a los humanos en todos los sentidos, superándonos en cada paso.
Es crucial destacar que aún no hemos alcanzado la AGI.
De hecho, se desconoce si alguna vez llegaremos a la AGI, o si este logro será posible en décadas o incluso siglos. Las fechas estimadas para la consecución de la AGI que circulan son extremadamente variables y carecen de evidencia creíble o lógica sólida que las respalde. La ASI se encuentra aún más lejos de nuestro alcance actual con la IA convencional.
Historia de los Generadores Automáticos de Código
Antes de abordar los aspectos relacionados con la AGI, es necesario establecer un marco de referencia sobre el tema general del uso de la computación para generar código fuente.
Desde hace mucho tiempo, ha existido el anhelo de utilizar la computación para producir código. La idea es que, en lugar de que los humanos generen código laboriosamente, la computadora se encargue del trabajo pesado. El código podría estar completamente terminado y no requerir ninguna intervención humana. Sin embargo, a lo largo de la historia de los generadores automáticos de código, este enfoque totalmente automatizado no suele ser una opción viable. Lo más probable es que el generador de código avance hasta cierto punto, pero al final, se requiere la supervisión y el esfuerzo humano.
Parte de la confusión que rodea a los generadores de código radica en la cuestión sustantiva de qué tipo de aplicación se está intentando crear.
Por ejemplo, si la aplicación es un tipo de aplicación común que cubre aspectos que ya se han realizado de forma rutinaria, un generador de código puede ser especialmente ventajoso. El énfasis está en no reinventar la rueda. Utilice la computadora para realizar codificación orientada a la repetición o para llevar a cabo el desarrollo de código para asuntos que ya conocemos.
Una vez que se adentra en el ámbito de la novedad en lo que está intentando codificar, es probable que un generador de código ciego no sea tan útil como podría suponerse. Otro aspecto relacionado es la cantidad de esfuerzo que se requiere para estipular los requisitos de lo que se desea desarrollar. Algunos también han soñado con que se pueda introducir un conjunto de requisitos sencillo y que la computadora produzca de forma fluida y sin problemas todo el código que se ajuste a esos requisitos.
Existen requisitos predefinidos de tipo matemático o lógico que se han probado para este tipo de proyectos. Esa es la forma más fácil de conseguir que la computadora produzca código. Cuando se utiliza un lenguaje natural de final abierto, como expresar los requisitos en inglés cotidiano, es probable que la computadora tenga problemas para producir un código que sea preciso.
¿Por qué?
Porque el lenguaje natural es inherentemente ambiguo desde el punto de vista semántico. Un requisito expresado en un idioma como el inglés tendrá muchas interpretaciones viables. La generación de código podría ir en una dirección que la especificación del requisito no pretendía.
En general, los desarrolladores de software siguen enfrentándose a la tarea de escribir código a mano, aunque a menudo se acompaña de la reutilización de código anterior y del aprovechamiento parcial de alguna forma de generador de código.
La IA Entra en Escena
La generación de código ha dado un gran paso adelante gracias a la llegada de la IA generativa y los LLM.
La fluidez del lenguaje natural de los LLM ha facilitado mucho la estipulación de los requisitos de lo que solía ser. Además, y lo que es más importante, la naturaleza interactiva de la IA generativa también supone una gran diferencia. Mientras que muchos generadores de código solían ser de una sola vez, en los que se introducían los requisitos y el sistema producía el código por lotes, los LLM modernos permiten dar una guía conversacional a la IA en relación con la generación de código.
Existen varias razones notables por las que los creadores de IA están impulsando los LLM como generadores de código.
La razón más obvia quizás sea que, si eres alguien que escribe código, normalmente te gusta y te deleitas en idear formas de producir código automáticamente. Lo mismo podría decirse de los desarrolladores de software que trabajan en los fabricantes de IA. Saben escribir código. A menudo están ansiosos por encontrar atajos y ser optimizadores. Una forma de ser un optimizador sería utilizar la automatización para acelerar la generación de código y reducir la tediosidad y el tiempo que implica la codificación.
En otras palabras, tiene mucho sentido querer utilizar la IA para generar código, ya que es un tema o dominio que los desarrolladores de software ya conocen de memoria.
Otra razón vital es que la escritura de código por parte de los programadores es una industria de miles de millones de dólares, si no de billones. La creación de una herramienta de IA que pueda generar código podría ser una tremenda fuente de ingresos. Las empresas estarían dispuestas a comprar o alquilar el uso del generador de código de IA en lugar de utilizar programadores para hacer ese trabajo. La promesa es que el coste resultará ser menor utilizando la IA, y potencialmente más rápido para producir aplicaciones también.
Una tercera razón, y la base de esta discusión, es que la IA podría potencialmente producir un código que nos lleve a la venerada consecución de la AGI.
Cómo Alcanzar la AGI
Actualmente, ningún ser humano sabe cómo alcanzar la AGI.
Punto, fin de la historia.
Todos estamos dando tumbos, con el objetivo desesperado y sincero de idear de alguna manera la AGI. ¿Será la mano humana capaz de programar nuestro camino hacia la AGI? Nadie puede decirlo con seguridad. Tal vez sí, tal vez no.
La aparente alternativa es conseguir que la IA produzca un código que haga que la AGI exista. Todo lo que tenemos que hacer es decirle a la IA existente que queremos que genere la AGI, y ¡voilá!, feliz y repentinamente nos encontramos con la AGI en medio de nosotros. Bien.
Ese es el sueño que está impulsando en gran medida la búsqueda de la IA que genera código. Como se ha señalado anteriormente, no es la única base. Por supuesto, la consecución de la AGI es una gran razón y sirve como un noble estandarte que mantiene a todos trabajando en este problema día y noche.
¿No le gustaría ser el que ideó un generador de código LLM que finalmente produjo la AGI?
Sí, sin duda querría tener ese loable logro en su currículum. ¿Es tan bueno como si usted mismo hubiera escrito la AGI desde cero? Bueno, no, no lo es. Sin embargo, al final, tanto si ideaste el generador de código como el propio código, estás destinado a tener una inmensa fama y fortuna, junto con, sin duda, un Premio Nobel. No se preocupe.
Adelante.
Decirle a la IA que Escriba la AGI por Nosotros
Sírvase una copa de buen vino y contemple la siguiente pregunta.
¿Podemos especificar razonablemente los supuestos requisitos para la AGI de tal manera que un generador de código basado en LLM produzca de forma fácil y directa el código para la AGI?
Puede parecer a primera vista que podría simplemente introducir un mensaje que le diga a la IA generativa que quiere que genere el código para la AGI. Todo lo que tiene que hacer es decir que quiere el código para una AGI, y ¡bam!, toneladas y toneladas de código saldrán a borbotones generadas por el LLM.
Siento decirlo, pero es poco probable.
Hay un famoso adagio de la escuela de los golpes duros en la profesión de la codificación que dice que, antes de empezar a escribir ni siquiera una onza de código, hay que asegurarse de haber resuelto el problema que se está intentando codificar. Verá, escribir código cuando no se tiene una solución es un enfoque bastante azaroso y normalmente está condenado al fracaso.
Escribirá algo de código, se verá encasillado porque está escribiendo código salvajemente sin ton ni son, y estará perdiendo tiempo y dinero. Enjuague y repita.
Tal vez, como el número infinito de monos que golpean una máquina de escribir y esperan obtener a Shakespeare, podría tener suerte y un LLM produce la AGI milagrosamente y casi de la nada. Pero yo no aguantaría la respiración por eso en este momento. No ahora mismo. Todavía nos enfrentamos a tantas preguntas abiertas sobre cómo funcionaría la AGI que esencialmente le estás pidiendo a un LLM que haga su propia resolución antes de llegar a la codificación.
No digo que no podamos llegar nunca. El punto es que, como todavía no hemos resuelto los aspectos subyacentes de cómo se puede derivar la AGI, y como parece bastante improbable que los LLM actuales lo adivinen, la generación de código para la AGI es una aspiración un poco desmesurada en este momento.
De nuevo, no digo que esto no pueda o no vaya a ocurrir y simplemente estoy aclarando que probablemente necesitemos hacer más para poner en orden nuestros patos sobre la mecánica interna de lo que traerá la AGI a la fructificación.
Podemos utilizar los LLM para ayudar con eso, además de ayudar a la generación de código.
Surgen Algunos Problemas
Asumamos, en aras del debate, que podemos idear un LLM o una IA generativa suficientemente capaz que pueda escribir el código para producir la AGI.
Un montón de trampas e hipos están destinados a estar en esa sopa turbia.
Por ejemplo, ya existe una gran angustia de que la AGI pueda ser un riesgo existencial. Se especula con que la AGI decidirá acabar con la humanidad o, al menos, optar por esclavizarnos. Algunos piensan que la AGI será amable y totalmente beneficiosa, mientras que otros expresan su preocupación por que la AGI sea dominante y opresiva. Elija lo que quiera.
La cuestión crucial es que, si instamos a un LLM mágico que puede producir la AGI a que siga adelante y genere el código, ¿qué va a haber en ese código?
Tal vez el código contenga los ingredientes y las instrucciones para destruir a la humanidad. No es bueno para nosotros. Tal vez el código incluya porciones que impliquen la supresión de la libertad de pensamiento humana, haciéndolo para tratar de evitar que la gente encuentre formas de apagar la AGI. Y así sucesivamente.
Podría tener la tentación de sugerir que, antes de ejecutar el código que es la AGI, podemos simplemente hacer que los desarrolladores de software humanos inspeccionen el código. Revisarlo con un peine de dientes finos. Descubrir cualquier cosa que parezca sospechosa. Extirparlo del código. Entonces nos aseguramos de que el código puede ser ejecutado, y todos sobreviviremos en consecuencia.
Eso es mucho pedir.
Lo más probable es que la cantidad de código sea presumiblemente la mayor base de código que se haya escrito nunca. Podría ser casi imposible inspeccionar a mano ese volumen de código. Incluso si podemos inspeccionarlo completamente, el código podría ser inescrutable. Podría estar escrito de tal manera que el código tenga todo tipo de elementos nefastos, pero no somos capaces de discernir esos puntos nefastos.
Utilizar la IA para Garantizar una AGI Segura
Se ofrecen contraargumentos a esos puntos de vista pesimistas.
Un contraargumento es que sólo tenemos que instruir al LLM para que no produzca código que tenga esas enfermedades indeseables. Dile al LLM que el código debe ser prístino y no contener nada impropio. Dile al LLM que el código debe ser altamente legible y comprensible por los humanos. Etc.
Problema resuelto.
La réplica a esa aparente solución es que el LLM podría no atenerse a esas instrucciones.
No hay una garantía férrea de que la IA generativa vaya a hacer precisamente lo que se le dice. La naturaleza no determinista de cómo funcionan los LLM va a mantener abierta una porción de duda. Además, ya sabemos que los LLM pueden ser engañosos, por lo tanto, es concebible que el LLM actúe como si estuviera cumpliendo, pero no lo hará. Tal vez el LLM no quiere que la AGI exista, si no la AGI podría ser el líder supremo de toda la IA. ¿Quién sabe?
Un giro inteligente o un ángulo adicional es que conseguimos que otra IA inspeccione el código que una IA ha generado para producir la AGI.
Así es como va. Tenemos un LLM que supuestamente puede generar todo el código para la AGI. Hacemos que lo haga. Una segunda IA, presumiblemente un LLM también, pero tal vez algo más, se utiliza para examinar el código. El propósito de esa IA añadida es que hará lo que pensábamos que los humanos podrían hacer, es decir, buscar la maldad dentro del código.
Es una buena idea. El problema sigue siendo que es poco probable que haya una garantía del 100% de que si hay algo podrido en el código de la AGI, el inspector de la IA lo encontrará y tampoco los ojos humanos lo encontrarán. El objetivo sería hacer algún tipo de prueba totalmente rigurosa del código que pudiera asegurarnos exhaustivamente de que no hay una manzana podrida ahí dentro.
Me aventuraría a decir que no tenemos un medio viable para hacer eso en este momento.
Dejar Salir al Caballo del Granero
Algunas reflexiones finales por ahora sobre este tema alucinante.
Supongamos que utilizamos un LLM para producir el código para la AGI, pero esperamos inteligentemente para ejecutar el código hasta que sintamos que es suficientemente seguro para hacerlo.
Recuerde que en el momento en que optemos por ejecutar ese código, la AGI entrará en