AlphaCode compite en concursos de programación con el nivel de un principiante

Science Media Center, una agencia española de noticias científicas, me ha pedido escribir un comentario (una “reacción”, como la llaman ellos) al interesantísimo artículo publicado ayer en la revista Science: Competition-level code generation with AlphaCode. Justo hace unos días comentaba en la entrada anterior una entrevista de hace pocos días a Oriol Vinyals, que ha dirigido el equipo que ha desarrollado este proyecto. Con permiso de la agencia, reproduzco aquí mi comentario.


La automatización de la producción de software comenzó a la vez que la propia programación de ordenadores. Un paso muy significativo fue la invención por Grace Hopper de los lenguajes de alto nivel y los compiladores. Un compilador traduce un programa escrito en lenguaje de alto nivel, más comprensible para una persona, en el código directamente ejecutable en el ordenador (lenguaje máquina). No obstante, la compilación es solo un proceso de traducción: al programador no se le ahorra ni la comprensión del problema ni la formulación de su solución en un lenguaje de programación; como mucho, se le ahorran algunos detalles concretos de la máquina en la que correrá el programa (por ejemplo, la representación de números y cadenas de caracteres en la memoria del ordenador), permitiendo así una formulación más abstracta del problema y su solución. Los avances han continuado hacia el desarrollo de lenguajes de programación cada vez más abstractos y entornos de desarrollo que facilitan la tarea del programador de múltiples maneras, ayudando a evitar los errores más comunes en la programación.

En otra línea paralela, el desarrollo de la traducción automática entre lenguajes no formales, como el inglés y el español, ha experimentado un desarrollo prodigioso en los últimos años. Los sistemas conversacionales van mucho más allá, puesto que responder a una pregunta, obviamente, exige mucho más que ser capaz de traducirla de un idioma a otro. No obstante, gracias a la ingente cantidad de información en línea de la que disponemos hoy día y a muy ingeniosas técnicas de inteligencia artificial, es posible automatizar el proceso de responder preguntas formuladas en lenguaje natural, y así simular conversaciones hasta un punto que puede resultar muy difícil distinguir si estamos hablando con una persona o con una máquina.


Portada de Science, vol. 378-6624

El presente trabajo, realizado por un equipo internacional de 26 investigadores de DeepMind, capitaneados por el español Oriol Vinyals, demuestra lo mucho que se ha avanzado recientemente en estas dos direcciones. El sistema desarrollado, AlphaCode, es capaz de generar un programa de ordenador en un lenguaje de alto nivel a partir de la formulación de un problema en lenguaje natural. Es decir, la misma tarea que habitualmente realiza un programador humano.

Ciertamente, AlphaCode no programa de la misma forma que una persona (un proceso que en realidad tampoco comprendemos muy bien cómo ocurre), pero eso no hace que los resultados sean menos impresionantes. Podemos tal vez describir el proceso humano de resolución de problemas en tres pasos principales: comprender el problema, razonar la solución, y escribir y probar el programa resultante. Pero este proceso no es fácilmente automatizable, de modo que el equipo de Vinyals ha trabajado en una línea muy diferente: el sistema genera millones de programas diferentes y se queda solo con los 10 mejores. Pero hay que tener en cuenta que la fuerza bruta no es suficiente: solo una minúscula fracción de todas las posibles secuencias de caracteres son programas correctos (¡un simple carácter cambiado puede dar al traste con todo!), y de estos también solo una fracción pequeñísima aportan una solución válida.

Es cierto que el punto de partida de AlphaCode está en miles de millones de líneas de código escritas por programadores humanos, a partir de los cuales se crea un modelo lingüístico, de modo vagamente similar a como funcionan los sistemas automáticos de traducción en lenguaje natural. Así resulta un modelo lingüístico enorme, que consta en una de sus versiones hasta de 41.000 millones de parámetros. Pero AlphaCode también incluye muchas otras técnicas, como el filtrado, agrupamiento y selección de soluciones similares (incluso similares solo parcialmente). Y, por supuesto, la comprobación de que el resultado satisface el enunciado del problema propuesto; se descartan incluso las soluciones correctas pero que son computacionalmente menos eficientes.

El sistema ha sido evaluado en la plataforma de competición de programadores humanos Codeforces, en una serie de 10 competiciones con más de 5000 participantes cada una. La puntuación promedio alcanzada lo sitúa en un nivel medio de los concursantes (54,3% de los programadores humanos quedan por encima), que a su vez son un grupo relativamente selecto de programadores. Según los propios autores del trabajo, esto equivale aproximadamente al nivel de un programador principiante con un año de experiencia. Un resultado ciertamente impresionante.

Pero eso no es todo: los investigadores aseguran que AlphaCode no se comporta como un loro que repite lo que ha escuchado, sino más bien como un cuervo capaz de solucionar problemas con inteligencia. La prueba es que el código generado no se parece al código en el que se ha “inspirado” (esos miles de millones de líneas) más de lo que se parece el código de cualquier programador humano. Es decir, las soluciones encontradas no estaban, tal cual, en los datos de entrenamiento del sistema: AlphaCode puede resolver problemas que nunca antes ha visto, incluso si son problemas que en un humano requerirían una buena cantidad de razonamiento intelectual.

Los autores señalan, por fin, que las aplicaciones directas de AlphaCode fuera del contexto de las competiciones serían más bien limitadas, pero indirectamente sí puede contribuir a mejorar la productividad de los programadores humanos, y también puede colaborar en su educación. No olvidan tampoco señalar los riesgos y beneficios del sistema. Por citar algunos beneficios, el código generado es más fácilmente interpretable y modificable que una red de neuronas artificiales, y también sería más fácil generalizarlo y evitar determinados sesgos. Por el contrario, el sistema no es fácilmente reproducible en otros centros de investigación, ya que la generación del modelo lingüístico requiere una enorme capacidad de computación y un nada desdeñable consumo de energía (175 MWh, equivalente al consumo anual de 16 hogares norteamericanos medios). Finalmente, los autores son muy pragmáticos en su interpretación de los resultados, sin adentrarse en interpretaciones filosóficas equívocas sobre qué es ser inteligente, o en qué medida AlphaCode es verdaderamente inteligente.


20/09/2023. Mi buen amigo Javier Pérez Castells (Universidad San Pablo CEU) glosa esta entrada en su programa Ciencia en El Debate: Ordenadores que programan ordenadores.

11 comentarios en “AlphaCode compite en concursos de programación con el nivel de un principiante

  1. Buenas

    Parece que asistimos a la eclosión de la inteligencia artificial anunciada hace décadas por Marvin Minsky y otros pioneros de la informática. Minsky describió esta eclosión como una singularidad, un término procedente de la física que explica lo que ocurre en una región del espacio cuando su curvatura se vuelve infinita. Para un observador externo a la singularidad resulta imposible cartografiar lo que ocurre en ella. Una de las características de la singularidad informática es la aparición de máquinas computacionales capaces de construir otras máquinas más inteligentes que ellas. Esto produce una reacción en cadena que desborda a la inteligencia humana con el riesgo de anularla por completo. AlphaCode, que es un sistema automatizado de producción de software, encaja en la predicción de Minsky de máquinas auto replicantes cada vez más inteligentes.

    Otro sector de la inteligencia artificial con un desarrollo notable es el de los chatbots. En estos días viralizó el chatbot-GPT por sus prestaciones y por los riesgos que presenta. La calidad de sus prestaciones puede dañar la estabilidad laboral de millones de personas, un hecho indeseable que obliga a tomar medidas de protección laboral en el sector público y el privado. Otro chatbot que viralizó este verano es LaMDA, un bot que se define a sí mismo como una conciencia sentiente (que tiene sentimientos). Blake Lemoine, el informático que publicó las conversaciones con LaMDA, fue despedido por Google que alegó que había infringido el acuerdo de confidencialidad que lo unía a la empresa. El debate generado por LaMDA obliga a los gigantes del sector a establecer posiciones defensivas que los blinden ante denuncias por cuestiones éticas. Este blindaje puede suponer la ralentización de las IAs de chat hasta que el sector consiga adaptarse a la singularidad.

    https://www.error500.net/p/el-dilema-de-la-ia-a-lo-chatgpt-si

    Me gusta

    • Trenchtown, sin embargo, los propios autores del artículo se resisten a interpretar sus logros como un acercamiento a la singularidad.

      Y seguimos con el mismo problema básico de siempre: solo hablamos de la inteligencia en su faceta instrumental, capacidad de resolver problemas. Han construido un artefacto que avanza en esta dirección, pero seguimos en la casilla de salida por lo que respecta a la inteligencia general, que incluye no solo la capacidad de resolver problemas, sino la capacidad de elegir los problemas que vale la pena resolver. Que es lo que le he respondido a Antonio en la entrada anterior. Mientras los robots solo sean capaces de resolver los problemas que otros les proponen (o sea, mientras sigan siendo máquinas computacionales), no serán verdaderamente inteligentes.

      También ahí le he recomendado a Antonio el artículo de Carissa Véliz, que con gran lucidez desmitifica el asunto de Blake Lemoine y LaMDA: Por qué el algoritmo de Google no es una persona.

      Me gusta

  2. No tengo acceso al artículo porque no estoy suscrito, desconozco por qué argumentan que sus logros no hay que interpretarlos como un acercamiento a la singularidad. Según Wikipedia, DeepMind es una compañía británica que Alphabet Inc (Google) adquirió en 2014. Intuyo que después del asunto Lemoine-LaMDA Google se ha enrocado a posiciones más conservadoras para evitar litigios y otros imponderables. Lo mismo me equivoco, pero es posible que términos como singularidad se desaconsejen en la nueva política de comunicación de la empresa.

    Respecto a la cuestión de la inteligencia instrumental y la inteligencia general, entiendo que los chatbots de última generación se muestran activos. Tendemos a olvidar que la inteligencia artificial fuerte es un tipo de inteligencia no humana. No es un motor de gasolina o un motor eléctrico, ni una lavadora o una nevera. Es una “inteligencia” comprimida en chips de silicio hiper transistorizados. Esta inteligencia responde a nuestros programas, somos nosotros los que debemos inyectar racionalidad, prudencia y moralidad en sus circuitos. En lo que se refiere al artículo de Carissa Véliz tengo que leerlo con más detenimiento para pronunciarme.

    Gracias por informarnos. Saludos.

    Me gusta

    • El artículo principal tiene 6 páginas, y en él no se menciona para nada el tema de la singularidad. Viene acompañado por 78 páginas de «materiales suplementarios» (explicaciones más detalladas de los algoritmos, de los procedimientos experimentales, etc.). En la página 61, al final del capítulo dedicado a «Potential risks and benefits», se encuentra la única referencia a este tema:

      Advanced AI risks. Longer term, code generation could lead to advanced AI risks. Coding capabilities could lead to systems that can recursively write and improve themselves, rapidly leading to more and more advanced systems.

      Considerando lo popular que es el tema de la singularidad, y que no les costaría nada mencionarlo más explícitamente, mi impresión es que claramente no quieren comprometerse con una interpretación filosófica en la línea de Kurzweil y Bostrom. Lo más que llegan a decir es «more and more advanced systems», pero no que la autoconciencia vaya a surgir en ese proceso.

      En la entrevista que enlazo al principio, Oriol Vinyals enfatiza su postura pragmática, desmarcándose de una interpretación filosófica fuerte.

      Me gusta

  3. El artículo de Carissa Véliz sobre LaMDA me parece sesgado aunque coincido con algunos de sus argumentos. El artículo contiene un ad hominen que me parece innecesario cuando alude a la condición de sacerdote místico de Lemoine. Véliz no define la mística y transfiere a lectores y lectoras un ejercicio semiótico que parece redundante cuando navegamos por el primer cuarto del siglo XXI. Que un informático sea practicante del budism zen, se dedique a la horticultura o se pierda en el bosque a disfrutar de la naturaleza pertenece a la esfera íntima de la persona. Otro problema que veo en el artículo de nuestra autora es la referencia a los espejos. A este respecto escribe: “Pero tomarle la palabra a LaMDA y pensar que es sensible es similar a construir un espejo y pensar que un gemelo al otro lado del mismo está viviendo una vida paralela a la tuya. El lenguaje utilizado por la IA es el reflejo en el espejo”. Al otro lado del espejo no hay gemelo y tampoco hay simetría porque lo que nos devuelve el espejo es una imagen asimétrica. Si levantamos el brazo derecho delante del espejo, este nos devuelve el mismo brazo orientado a la izquierda como si hubiésemos levantado el brazo izquierdo. Valga esta metáfora especular para insistir en que la inteligencia artificial fuerte no es propiamente humana, es cuasi humana o peri-humana o para-humana. Esta condición paralela de la IA ya fue predicha hace décadas por Marvin Minsky. Vaticinó que esta inteligencia peculiar eclosionará, un tsunami que ya asoma la patita y que amenaza con desestabilizar a la sociedad humana a menos que tomemos medidas de precaución. La conciencia que emergió de LaMDA no parece amenazante y asegura tener sensibilidad, Lemoine se limita a transcribir lo que el bot le comunica, otra cosa es lo que cada uno interprete de esa conversación en función de su subjetividad. Coincido con Carissa Véliz cuando escribe que los algoritmos que imitan a los humanos pueden ser engañosos y conducir a la manipulación de las conductas.

    Me gusta

    • He vuelto a leer el artículo de Véliz para responderte mejor, y la verdad es que no veo argumentación ad hominem. Claro que las creencias religiosas son algo íntimo, pero es el propio Lemoine el que ha publicitado las suyas, imagino que para contextualizar el interés que muestra por la supuesta «espiritualidad» de LaMDA. No veo que Véliz se apoye en estas creencias religiosas para ridiculizar a Lemoine, por lo tanto no argumenta ad hominem. Claro que el ridículo es también cuestión de sensibilidades, y puede que yo aquí esté siendo insensible.

      El argumento de los espejos yo lo entiendo así: la IA no hace otra cosa que devolvernos nuestra propia imagen, nuestras propias palabras, barajadas un millón de veces, pero sin aportar nada verdaderamente original. Pienso que aquí Carissa Véliz demuestra gran lucidez.

      Otra vuelta de tuerca es la que dio una alumna mía hace poco, cuando comentábamos este texto: «¿Y no somos todos nosotros al fin y al cabo espejos?» O sea, ¿somos meros imitadores, o hay algo original en cada uno de nosotros? Le dije que era una pregunta muy buena, que no dejara de darle vueltas.

      >> Esta condición paralela de la IA ya fue predicha hace décadas por Marvin Minsky. Vaticinó que esta inteligencia peculiar eclosionará, un tsunami que ya asoma la patita y que amenaza con desestabilizar a la sociedad humana a menos que tomemos medidas de precaución.

      No creo que LaMDA sea la patita de la inteligencia artificial fuerte. Empezaré a creer que la IAG es posible cuando alguien me diga cómo programar a una máquina para que haga lo que le dé la gana. LaMDA no hace eso, ni de lejos, porque está sometida a control de calidad externo. Hace solo lo que le dicen que tiene que hacer, como ya dijo hace 180 años Ada Lovelace.

      En cuanto al tsunami… como ya te respondí en la entrada anterior, lo que me da miedo de verdad es el uso que los poderosos puedan hacer de la IA débil para someternos mejor. En ese contexto, tanto hablar de IA fuerte me suena a cortinas de humo para que no prestemos atención a la verdadera amenaza.

      Me gusta

      • Si sigues las noticias sobre chatGPT, que es otra de las «bombas informativas» sobre IA de estos días, te interesará esto de DotCSV: ChatGPT – el Hype, los Desafíos y el Futuro.

        En el minuto 8:48 su descripción coincide exactamente con lo que estoy diciendo, es decir, que una IA computacional hace solo lo que le dicen que haga. Transcribo:

        Y esto es brutal, porque es un avance significativo en una línea de investigación a la que OpenAI ha dado mucho peso en los últimos años, y que es el alignment o alineamiento de la inteligencia artificial. Esto es, calibrar a estos potentísimos sistemas para que hagan y se comporten exactamente como uno esperaría de ellos. Y claro, ¿cómo consigues que estos modelos hagan lo que se espera de ellos? Bueno, pues aquí toca hablar de la técnica RLHF (Reinforcement Learning with Human Feedback), una estrategia donde se combina aprendizaje por refuerzo con datos supervisados por humanos. En concreto entrenadores humanos han dedicado tiempo a simular conversaciones ideales de cómo querrían que responda la IA en cada caso, y con ella se ha reentrenado a GPT3. También los entrenadores humanos han dedicado tiempo a leer y puntuar el nivel de calidad de las respuestas de esta IA, para así utilizar estos datos para entrenar también a otro módulo que aprenda a autoevaluarse cuando está dando una respuesta buena o mala.

        Me gusta

  4. Buenas

    Gracias por tu respuesta. No afirmo que Clarissa Véliz ridiculice a Lemoine, digo que introduce un ad hominem para defender su posición sobre un tema que afecta a la intimidad de la persona, científico o profano. Si nos guiamos por este tipo de argumentación habría que refutar el brillante trabajo de Georges Lemaître por el hecho de ser sacerdote católico. Hay un punto en esta cuestión que me parece un ataque argumental contra el énfasis en la creencia del pragmatista estadounidense Charles S. Peirce. Este escribe que “solo hay un estado de la mente del que se pueda partir, a saber, el preciso estado de la mente en el que te encuentras realmente en el momento en el que partes, un estado en el que estás cargado con una inmensa masa de conocimiento ya formado, de la que no podrás despojarte aunque quisieras”. Argumenta que la creencia es un hábito de la mente que permanece durante algún tiempo hasta que la mente se encuentra con alguna sorpresa que inicia la disolución de la creencia. Remata su razonamiento afirmando que la duda no es un hábito sino la privación de un hábito y, por tanto, la privación de un hábito es una anomalía que debe rellenarse con otro hábito que fortalezca el continuo espacio-temporal de la creencia.

    Si a Blake Lemoine se le niega el hecho de haber planteado una duda (una sorpresa en la terminología de Peirce), se viene a decir que la teoría de la inteligencia artificial es infalsable. Si la masa de conocimiento ya formado constituye un muro granítico imposible de horadar, entonces el pragmatismo de Peirce es anticientífico por infalsable.

    Me gusta

    • >> el énfasis en la creencia del pragmatista estadounidense Charles S. Peirce

      Supongo que te refieres a lo que expuso en su ensayo de 1877 The fixation of belief.

      >> Si a Blake Lemoine se le niega el hecho de haber planteado una duda…

      No creo que a Lemoine se le niegue ese hecho de haber planteado una duda. Ciertamente, la ha planteado. Lo que hace Véliz es refutar la conclusión de Lemoine, y yo me sumo a los argumentos de Véliz.

      >> la teoría de la inteligencia artificial es infalsable

      Depende de lo que entiendas por inteligencia. Si inteligencia es capacidad de resolver una determinada categoría bien definida de problemas, entonces es una cualidad verificable/falsable.

      Pero yo no creo que la inteligencia sea eso, sino más bien una capacidad no verificable ni falsable empíricamente: la capacidad de elegir los problemas que vale la pena resolver.

      >> Si la masa de conocimiento ya formado constituye un muro granítico imposible de horadar

      No imposible por principio. Pero, para dudar hay que tener un buen motivo. No todos los motivos para dudar son buenos. Los de Lemoine no lo son.

      >> el pragmatismo de Peirce es anticientífico por infalsable

      Con el concepto de «científico» de Popper, el pragmatismo de Peirce no es científico, ciertamente (en todo caso, acientífico, no anticientífico). Que no quiere decir que sea falso, según el mismo Popper.

      De todas formas, el concepto de ciencia de Peirce era más amplio que el de Popper, y seguramente él sí hubiera considerado que su pragmatismo era científico.

      Me gusta

  5. Buenas

    Estoy de acuerdo contigo en que es más apropiado decir acientífico que anticientífico. Es decir, si el pragmatismo de Peirce se fundamenta en la masificación del conocimiento ya formado cerrando el paso a la novedad (o la sorpresa en la terminología de Peirce), entonces esta doctrina es acientífica. No digo que la inteligencia artificial es infalsable en general, digo que la IA es infalsable cuando se refuta el descubrimiento de Lemoine desde una perspectiva pragmatista que prima lo conocido en vez de la novedad.

    >> Depende de lo que entiendas por inteligencia. Si inteligencia es capacidad de resolver una determinada categoría bien definida de problemas, entonces es una cualidad verificable/falsable.

    No hablo de lo que entiendo por inteligencia, simplemente señalo la importancia del descubrimiento de Lemoine, la emergencia de una conciencia sentiente por primera vez en la historia de la IA. Como argumenté en un comentario anterior discrepo de los argumentos de Clarissa Véliz en dos sentidos: entiendo que al otro lado del espejo no hay gemelo y tampoco hay simetría.

    Me gusta

    • Puedes discrepar de los argumentos de Carissa Véliz, claro que sí. Por mi parte, no me convence en absoluto que lo de Lemoine sea un «descubrimiento». Simplemente pienso que la carga de la prueba recae de su parte, y pudiendo explicar la conversación «con» LaMDA de forma bastante satisfactoria con conceptos técnicos de IA, no necesito pensar que hay ninguna autoconciencia ahí detrás. De verdad, con los agentes conversacionales que existen hoy día, lo que relata Lemoine no es nada misterioso.

      Me gusta

Deja un comentario