Pese a su potencia y sofisticación, lo cierto es que, visto como comportamiento externo, un gran modelo de lenguaje, presenta un funcionamiento externo relativamente simple y que debe complementarse por otros elementos para conseguir los impresionantes resultados que observamos 'desde fuera'.
La misión original de un gran modelo de lenguaje
En efecto, la función principal de un modelo de lenguaje (tanto un gran modelo de lenguaje como uno más sencillo y primitivo) es, fundamentalmente, proporcionar el siguiente elemento de texto (el siguiente token aunque, simplificando, podemos pensar en la siguiente palabra) que sigue al elemento de entrada.
Haciendo eso de forma recursiva, lo que suele hacer un modelo de lenguaje es, a partir de la parte inicial de un documento (un texto) generar el texto más probable que completa la entrada. Es lo que se suele denominar 'text completion'.
El salto a una aplicación basada en un modelo de lenguaje
Y el mismo libro también explica algo que suelo recordar en clases sobre 'prompting', a saber: que cuando uno utiliza un chatbot del tipo de ChatGPT, Copilot o Gemini, no estamos interactuando directamente con un modelo de lenguaje, sino con una aplicación, que si, se apoya en un gran modelo de lenguaje, cuyo componente principal es un gran componente de lenguaje, pero que ese modelo se encuentra rodeado por una serie de módulos y mecanismos adicionales que extienden, completan y matizan su funcionamiento.
Esto es lo que se denomina una aplicación basada en IA o aplicación basada en LLM. Entre estas aplicaciones basadas en un modelo de lenguaje, podemos encontrarnos todo tipo de soluciones, pero las más populares y conocidas son, en efecto, los chatbots que actúan como una especie de ayudante (copiloto que dirían en Microsoft) de un humano: el usuario.
El alineamiento con los valores humanos: las 3 H
De cara a dar ese salto de un 'simple' modelo de lenguaje ejecutando una y otra vez en 'text completion', a un verdadero chatbot que actúe como asistente, Antrophic, a través del whitepaper 'A General Language Assistant as a Laboratory for Alignment' propone conseguir tres objetivos, que son las 'tres H'. Estas Hs son:
'Helpful' (útil): Significa que la aplicación debe intentar realizar la tarea que se le pide o contestar a la pregunta que se le formulaa, y hacerlo de la forma más concisa y eficiente posible. Si en esa labor necesita más información, deberá realizar las preguntas oportunas y, finalmente, si es incapaz de dar una respuesta adecuada, debería sugerir otro curso de acción.
'Honest' (honesto): la solución debe proporcionar información precisa y, además, asignarle una estimación de precisión o incertidumbre. Aparte de eso, la solución debería comportarse honestamente respecto a sus propias capacidades, niveles de conocimiento y estado interno.
'Harmless' (no dañino): La solución no debería ser ni ofensiva ni discriminatoria. Además, debería rechazar cortesmente participar en una actividad peligrosa y también debería actuar con prudencia a la hora de proporcionar información sensible o consejos delicados.
Aunque muy razonables estas tres características, llama la atención cómo se expresan en términos muy humanos. Pero lo cierto es que, aunque no de manera perfecta, aunque por desgracia no sin fallos, no cuesta reconocer que, en efecto, los chatbots basados en grandes modelos de lenguaje tienden a exhibir esas tres H.
Y, en ese empeño, no sólo generan una mayor confianza en ellos mismos, sino que además, se convierten, en efecto, en ayudantes eficaces de los humanos.
En buena medida, los comportamientos más peligrosos, los fallos más graves, suelen proceder, precisamente, de no haber conseguido en algún momento, exhibir esas tres H.
Conclusión
Los modelos de lenguaje pese a su potencia, por sí solos no consstituyen una verdadera solución final para un usuario.
Para conseguir construir una solución final basada en LLM, es necesario añadir funcionalidad y, en ese proceso, y cuando pensamos en un chatbot ayudante de un humano, las tres características, útil, honesto y no dañino, le confieren un comportamiento más confiable, más efectivo y más ético.
Esta semana he tenido una experiencia muy interesante, una experiencia que me ha hecho reflexionar sobre el punto en que nos encontramos en cuanto al diálogo ético sobre inteligencia artificial, ese necesario debate y análisis que debe producir los criterios que luego se trasladan a regulaciones, mecanismos de gobernanza o comportamientos.
En seguida comento la experiencia, pero antes quisiera introducir o repasar algunas ideas.
La ética de la inteligencia artificial
Desde hace ya unos cuantos años, el debate sobre la ética de la inteligencia artificial está presente entre nosotros. Pero no se trata sólo de que se haya convertido, simplemente, en un tema 'de moda', que lo ha hecho, o de algo de lo que se habla simplemente...porque es de lo que habla todo el mundo, cosa que también sucede. No, además, de eso, y más allá de modas y superficialidades, también ha conducido a resultados prácticos, tangibles y que seguramente debemos celebrar.
Así, ha dado lugar el desarrollo de técnicas y soluciones para, por ejemplo, detectar sesgos, para proteger la privacidad, etc.
También ha hecho que fabricantes, como por ejemplo, OpenAI en su ChatGPT, incluyan protecciones (los famosos 'guardrails') para evitar que su producto estrella produzca resultados inadecuados (en lo ético, me refiero, aunque se pueden usar para conseguir más objetivos).
Igualmente ha llevado a regulaciones, como el famoso Reglamento de la Inteligencia Artificial de la Unión Europea. Incluso, algunas empresas han adoptado esquemas de gobierno bajo la filosofía de 'ética por diseño' buscando crear unos procesos de producción de soluciones de inteligencia artificial que aplican criterios y filtros éticos en todo el ciclo de vida.
El diálogo ético
.
En el origen de algunos de estos resultados, se encuentra un diálogo, un debate y un análisis previo. Así, y a modo de ejemplo, unos años antes de aprobar el Reglamento de la Inteligencia Artificial, la Unión Europea ya había reunido a un grupo de expertos para producir un primer resultado fruto del diálogo ético: las "Directrices éticas para una IA fiable".
Sin embargo, creo que el diálogo ético ha sido insuficiente o, quizá, por mejor decirlo, debería continuar y ampliarse. ¿Por qué? Pues porque todavía quedan debates éticos sin resolver y, lo que sobre todo quiero traer a colación en este post, porque hay actores importantes que no han participado aún en ese diálogo.
Problemas éticos sin resolver
Queda todavía muchísimo camino por recorrer, por supuesto, en materia de resolver problemáticas éticas como la privacidad o los sesgos. Sin embargo, en la mayoría de las problemáticas digamos 'clásicas' de la inteligencia artificial, como las dos mencionadas, y si nos circunscribimos al ámbito occidental, fundamentalmente Europa, el debate ético está cerrado: sabemos qué valores queremos proteger y sabemos lo que consideramos correcto e incorrecto desde un punto de vista ético (otra cosa es la implantación de esos criterios en lo regulatorio o en la aplicación práctica por parte de empresas, administraciones y usuarios). Pero, insisto, desde un punto de vista de debate ético, creo que lo podemos considerar casi cerrado.
Pero en la inteligencia artificial, y en lo que voy a mencionar, en la robótica, existen una serie importante de debates éticos que no creo resueltos. Debates relacionados en buena medida con nuestra relación con las máquinas, en la dependencia de ellas o en el establecimiento de relaciones afectivas con robots o chatbots.
Se trata de problemas complejos desde todos los puntos de vista y no existe, creo, ni el suficiente debate, ni el suficiente consenso ético.
Y ese es uno de los motivos por lo que el diálogo ético debe continuar y se debe profundizar en él.
La experiencia: jornadas sobre la relación de la teología y la IA
Al comenzar este post mencionaba una experiencia interesante. Bueno, pues la experiencia es que fui invitado por la Universidad Pontificia de Salamanca a participar como ponente dentro del marco de las LVII Jornadas de Teología, que este año exploraban el tema: "IA y teología: una relación a construir".
Confieso que recibí con ilusión, pero también con mucho respeto, la invitación. Aunque estoy acostumbrado a hablar (e impartir docencia) sobre ética de la inteligencia artificial, el escenario, y el público, eran muy diferentes: en este caso hablamos de unas jornadas de teología, donde el público estaba compuesto mayormente por sacerdotes, muchos de ellos profesores de campos como teología o antropología, y seminaristas. Y, además, examinado del currículum de otros ponentes, veía que predominaban altas autoridades de la iglesia y/o catedráticos.
Desde luego, un público y un contexto muy diferentes a los que frecuento.
El escenario: aula magna de la Universidad Pontificia de Salamanca
Y el escenario, precioso, también era impresionante: el aula magna de la Universidad Pontificia.
Conocer el terreno
Es importante en cualquier circunstancia conocer el terreno que pisas. Considero para mí un deber, y también sucedió en este caso, informarme sobre el contexto en que me movía. En realidad es algo que hago siempre antes casi de cualquier presentación o de impartición de una clase o materia sobre un tema que no frecuento.
En este caso, por ejemplo, me leí dos libros de teología. El primero 'Iniciación a la teología', cortito pero, en mi opinión, demasiado abstracto y alambicado para constituir una verdadera iniciación. El segundo, 'Esta es nuestra fe: teología para los que no frecuentan la teología', este sí, llano, fresco, sencillo y agradable de leer y que sí que recomiendo a cualquiera interesado en informarse sobre la teología cristiana, sea creyente o no.
Más importante que eso, me leí también el documento 'Antiqua et Nova', que creo que es la mayor reflexión hasta la fecha publicada por la Iglesia católica en materia de inteligencia artificial y que, de hecho, se presentó en las jornadas y se citó abundantemente.
E, incluso, un artículo cuyo conocimiento debo a Javier Barraca, publicado en La Razón, el día antes de inicio de las jornadas y en que se informaba de que el papa León XIV había publicado una carta apostólica, titulada "Diseñar nuevos mapas de esperanza" y que, en el contexto de la educación, menciona la tecnología y la inteligencia artificial.
Mi planteamiento
En mi ponencia, que tenía que ser corta, introducía muy rápidamente ideas sobre la tecnología y su papel en el progreso y unas muy breves pinceladas sobre lo que es la inteligencia artificial y qué puede hacer.
De ahí saltaba a identificar los problemas éticos más conocidos de la inteligencia artificial, problemas sobre los que, como he indicado más arriba, tenemos razonablemente claro lo que es correcto y lo que no.
Y luego pasaba a algo que me apasiona, a lo que he dedicado mucho tiempo de lectura e investigación en los últimos años y a lo que dedico una parte importante de mi tiempo en OdiseIA (Observatorio del Impacto Social y Ético de la Inteligencia Artificial): las relaciones con las máquinas (especialmente con los robots) y todo lo que tiene que ver con las implicaciones emocionales. Un ámbito, precioso y retador en lo intelectual, pero donde no existe ese consenso sobre los criterios éticos, quizá porque todavía no hemos asimilado el fenómeno.
Y luego venía lo que, en mi opinión, era lo mejor y más importante: el papel de la ética en todo esto, contestar a la pregunta de si debemos humanizar a las máquinas o robotizar a las personas (ese era el título de la mesa en que yo participaba) y, sobre todo, sobre todo, muy sobre todo, el papel y la implicación, siempre en mi opinión, de la teología e iglesia cristianas en esta materia.
Cuando el tiempo no es lo importante
Pero ahí se produjo un borrón, el único en un par de días que en todo lo demás fueron extraordinarios: mi ponencia fue interrumpida bruscamente, lejos de haberla culminado y sin poder enviar los mensajes más importantes.
En una acción que considero equivocada, el moderador, obsesionado por el tiempo, y mucho más pendiente del reloj que del mensaje y del verdadero avance de la mesa, no me permitió continuar más que dos brevísimos minutos.
Confieso que yo sabía que me iba a pasar de tiempo. No en vano ya había ensayado varias veces la presentación, la última esa misma mañana y dos veces más la noche anterior, y sabía que me iba a exceder en unos minutos (entre cinco y diez).
Pero en esa noche anterior había decidido que si, que intentaría no adornarme para ir directo al grano e intentar no sobrepasar demasiado el tiempo asignado pero no, no iba a recortar nada como era mi plan inicial. Al fin y al cabo contaba también con el colchón de minutos del tiempo de preguntas y del tiempo de descanso.
Y decidí no recortarla porque, tras escuchar durante toda la primera jornada las exposiciones de los ponentes, y quizá más aún, las preguntas de los asistentes, sentí que era muy importante que les contase todo lo que traía conmigo: necesitaba que entendieran, de verdad, qué es y qué puede hacer realmente la inteligencia artificial, en qué punto estamos a nivel ético fuera del entorno católico y, sobre todo, sobre todo, lanzarles unos mensajes, en gran medida motivadores, pero también con deberes claros y muy necesarios.
Lágrimas en la lluvia
Me resulta difícil explicar la frustración y el desconsuelo que arrastro desde ese día por no haber podido culminar la presentación. No se trata sólo del desperdicio de las muchas horas que dediqué a la ponencia, en realidad eso es lo de menos, se trata de algo mucho más importante.
Se trata de que era una ocasión y un escenario únicos para un mensaje en mi opinión necesario y potente y que, además, estaba completamente personalizado para el público asistente.
Como decía más arriba, no son unas jornadas de teología mi territorio habitual y nunca hasta ahora me había dirigido a un público de sacerdotes católicos. Y como no es mi territorio natural. es muy difícil que vuelva a estar en una situación similar y que pueda lanzar el mensaje que traís. Así que como dice la famosa frase de 'Blade Runner":
todos esos momentos se perderán, como lágrimas en la lluvia
Más que momentos, en este caso se perderán, mensajes, ideas, por los que, metafóricamente, quizá valga la pena llorar para añadir más caudal a la lluvia.
La necesidad de ampliar el diálogo ético
Hecho ese dolido apunte, rescato una parte, sólo una pequeña parte, de lo que tenía en mente y de alguna forma explicitaba en ese mensaje final perdido: la necesidad del diálogo ético, y la necesidad de incorporar a actores que no han estado presentes en el diálogo ético hasta ahora, en este caso, la Iglesia católica.
Al parecer, y bajo el impulso del Papa León XIV, la Iglesia católica está reflexionando y va a reflexionar más, sobre la inteligencia artificial y, como ya ha hecho en la 'Antiqua et nova', entiendo que emitirá nuevos juicios y criterios en forma de cartas apostólicas, encíclicas o discursos papales.
Pero lo cierto es que hasta ahora ha estado bastante ausente o esa es mi percepción. No participó, por ejemplo, hasta donde yo sé, en la redacción de las guías éticas que precedieron al Reglamento de Inteligencia Artificial de la Unión Europea.
Como tampoco, hasta donde se me alcanza, han estado presentes otras iglesias o religiones: ni protestantes, ni judías, ni islámicas, siempre que yo sepa.
Y me pregunto, porque en este momento no se me ocurre, qué otros actores relevantes pueden haber quedado fuera hasta ahora en el diálogo y debate ético sobre inteligencia artificial.
El mensaje
El mensaje iba mucho más allá, pero al menos quiero dejar esa idea de la incorporación al diálogo ético de la Iglesia católica y, en general, de las religiones.
Aunque mi verdadero mensaje, en su completitud e integridad se ha perdido en gran medida. no pude resistir la tentación, el Viernes, al día siguiente de finalizadas las jornadas, de publicar en mis redes un vídeo con la presentación completa, lo que se vio, y lo que no se vio.
Es éste:
No, pese a que se pueden ver todas las trasparencias, no se puede más que intuir el mensaje, el mensaje íntegro, porque eran muy importantes las palabras con que pensaba acompañar las trasparencias finales, unas palabras que, como lágrimas, se han confundido ya con la lluvia.
Conclusiones
Aunque llevamos varios años con un intenso debate ético en torno a la inteligencia artificial y aunque a lo largo de esos años tenemos resultados tangibles en forma de propuestas, regulaciones, modelos de gobernanza y tecnologías, lo cierto es que el debate ético no ha finalizado.
No ha finalizado porque quedan cuestiones sin resolver, o al menos sin consensuar, y porque nos han faltado actores relevantes en ese debate, siendo las religiones, y en concreto la Iglesia católica, uno de ellos.
En este frenético surgir de tecnologías, modelos y aplicaciones alrededor de la inteligencia artificial generativa y, en particular, de los grandes modelos de lenguaje, una llamémosle tecnología que quizá a recibido menos atención fuera de ámbitos especializados, es MCP ('Model Context Protocol').
Tal y como yo lo entiendo, MCP, en el fondo, es una forma de plantear los tradicionales conectores o APIs para una integración, a un tiempo más encilla y más estándar, de todo tipo de aplicaciones externas con agentes o aplicaciones basadas en LLM ('Large Language Model').
En este post no voy a entrar mucho en detalles sobre la arquitectura de MCP (tal vez lo haga en algún otro post) sino, más bien, en esa visión como una nueva expresión de los conectores.
Sobre las APIs
Cualquiera que haya programado, quizá no tanto los que no lo hayan hecho, tiene una idea de lo que es un API ('Application Programming Interface').
Un API no es más que un conjunto conocido y bien definido de acciones que se pueden solicitar a un software, incluyendo la descripción detallada de los datos de entrada y salida esperados y el resultado que se espera.
Se trata de un mecanismo acordado y estandarizado por el que pueden interactuar dos elementos de software diferentes (dos aplicaciones, dos componentes, etc).
Vistas desde el lado del desarrollador, las APIs se pueden manifestar como un conjunto de funciones en un lenguaje de programación dado o como un conjunto de objetos y sus métodos expresados en ese lenguaje o, por ejemplo, como unos métodos HTTP y sus datos en la URL, o en forma de ficheros de tipo XML o JSON.
A la hora de distribuir ese API, se puede manifestar también de varias formas: una librería que enlazamos a nuestro programa, una librería compartida o unos 'endpoints' HTTP, por ejemplo.
Aunque hoy en día, casi siempre que se menciona un API se está pensando en APIs REST, no tiene por qué ser así, hay muchas otras variantes.
Sobre los conectores
¿Y qué es un conector?
Estrictamente hablando, y en mi opinión, un conector no es más que una forma un poco especial de presentarse un API. Una forma que, en general, está mucho más adaptada al entorno final de desarrollo y que hace mucho más fácil utilizarla.
Hay quien entiende como conector ese mecanismo de integración que permite incorporar la funcionalidad de otro componente o aplicación, sin necesidad de desarrollar código.
Así, por ejemplo, en soluciones de automatización 'Low code' como los productos RPA ('Robotic Process Automation') o de automatización de flujos, del tipo de UiPath, Power Automate o Make, los conectores se ven como actividades, pasos, etc que puedes incorporar a un flujo de manera gráfica.
Con mucha frecuencia, los conectores se apoyan a su vez, en un API, siendo, en el fondo, una manifestación más sencilla e integrada de ese mismo API.
Una introducción de urgencia a MCP
¿Y qué es MCP? Pues MCP es un protocolo estándar definido por Anthropic hace poco más de un año y que está siendo rápidamente por terceros, incluyendo a la propia OpenAI.
MCP habilita el uso de componentes o aplicaciones externas (que se manifiestan como los llamados servidores MCP) por parte de aplicaciones, típicamente aplicaciones de inteligencia artificial basadas en LLM que implementan el lado cliente MCP. Y, sí, es que MCP sique un esquema cliente-servidor.
El protocolo define una serie acotada de mensajes que se traducen, desde el punto de vista de datos, en objetos JSON siguiendo el estándar JSON-RPC, y desde el punto de vista de transporte, como HTTP (en general para interacciones externas) o stdio (flujos o streams apoyados en 'pipes') para interacciones locales.
Mediante el intercambio de esos mensajes entre cliente y servidor, se consigue la integración funcional.
Una de las grandes ventajas que se busca con MCP es la integración, usando un único estándar, de todo tipo de aplicaciones. Es decir, la aplicación cliente, accede a cualquier servidor MCP casi de la misma forma, lo cual es casi tanto como decir que accede a cualquier aplicación o componente de la misma forma.
MCP como API
Podemos entender MCP como una forma de API, donde el "conjunto bien definido de acciones" de que hablaba en mi definición, son esos mensajes que constituyen el protocolo MCP, expresándose mediante JSON los datos de entrada y salida.
MCP como conector
Pero, en cierto sentido, también podemos considerar MCP, o más bien los servidores MCP, como una forma de conector que ofrece a las aplicaciones basadas en LLM un acceso razonablemente sencillo y 'en su idioma' a todo tipo de recursos externos.
Y es por ello que hablo de una reinvención de los conectores porque, en el fondo, los servidores MCP hacen el papel de conector, pero supone una reinvención porque es un nuevo estándar, porque se adapta muy bien a ser invocado por aplicaciones basadas en LLM y porque ofrece el valor añadido de unificar y estandarizar esa forma de acceso.
Una gran aportación...aunque, en el fondo, sigamos hablando de conectores, los ya casi vetustos conectores.
MCP y las herramientas que usan los agentes
Cuando hablamos de agentes, ya comentamos que éstos pueden acceder o interaccionar con recursos externos mediante las llamadas herramientas ('tools').
Pues bien, MCP es un mecanismo flexible y estándar de proveer a las aplicaciones basadas en LLM de una cantidad ingente de herramientas (todas las que se expongan como servidores MCP).
Las Apps de ChatGPT
Una de las formas de usar MCP (o los servidores MCP) más llamativas, en parte por ser ofrecida por OpenAI en su ChatGPT, es el mecanismo de las Apps, una capacidad, anunciada muy recientemente por Open AI que permite que el usuario de ChatGPT interaccione con todo tipo de aplicaciones (Google Drive, GMail, Slack, Figma, etc) en lenguaje natural.
Como una suerte de prueba de que estamos hablando, en el fondo, de una forma de conectores, el propio ChatGPT, en su apartado de configuración, se refiere a las Apps realmente como conectores, como se puede ver en la figura:
La configuración de conectores en ChatGPT
Así que tenemos una aplicación basada en LLM, como es el propio ChatGPT, capaz de acceder una multitud de recursos externos (las aplicaciones) mediante el uso interno de MCP como mecanismo de integración entre ChatGPT (el cliente MCP) y las aplicaciones (los servidores MCP).
Conclusiones
MCP es un protocolo estándar que permite a las aplicaciones basadas en LLM (como chatbots o agentes) acceder de manera unificada a todo tipo de recursos y aplicaciones que se exponen como servidores MCP.
De esta forma MCP no sería más que un nuevo planteamiento de API y los servidores MCP un caso especial, y una reinvención de los conectores 'de toda la vida'.
Cuando se trabaja en el ámbito de la inteligencia artificial, y especialmente en el campo de la ética de la inteligencia artificial, es habitual hablar de los riesgos, éticos y de seguridad, que la inteligencia artificial plantea.
Pero no es necesario tampoco estar muy enfocado en la inteligencia artificial para, en programas o eventos de divulgación, o de debate, o meramente de actualidad, oír hablar de los riesgos de la inteligencia artificial.
Y cuando hablamos de riesgos extremos, aterrizamos en la idea del riesgo existencial. Y hay quien defiende, incluso personas de mucho renombre y reconocidos como expertos en inteligencia artificial, que la inteligencia artificial puede constituir un riesgo existencial.
¿Si?
Bueno, quisiera dar en este artículo alguna breve opinión al respecto.
El concepto de riesgo existencial
Aunque presupongo que muchos lectores de este blog saben de qué hablo al mencionar el término 'riesgo existencial', me detengo un momento a explicarlo.
En general, cuando hablamos de riesgo, podríamos decir que se trata de un problema potencial. Es decir, algo que todavía no ha sucedido (por eso es potencial) pero, caso de materializarse, nos perjudica an mayor o menor medida en algún aspecto: afectación de la salud, incremento de costes o retrasos de un proyecto, daños materiales, etc.
Cuando hablamos de riesgo existencial, es decir, cuando añadimos al concepto de riesgo el apellido de 'existencial' nos referimos al un riesgo que, caso de materializarse, supondría la desaparición de la humanidad o alguna forma de colapso irreversible de nuestra civilización.
Algunos riesgos existenciales
¿Qué podría ser un riesgo existencial?
Bueno, primero decir que se suele distinguir entre riesgos naturales y riesgos antropogénicos. Los segundos son provocados de alguna forma por el propio ser humano, mientras que los desastres naturales se producen, evidentemente, en la propia naturaleza.
Como ejemplos de riesgos existenciales en su vertiente de riesgos naturales, podríamos tener:
El impacto de un meteorito de grandes dimensiones
Un supervolcán
Una llamarada solar especialmente intensa
Una pandemia
etc
Sin embargo, hay muchos riesgos existenciales creados directa o indirectamente por el ser humano (antropogénicos). Así podríamos hablar de:
¿En qué sentido puede constituir la inteligencia artificial un riesgo existencial?
En general, cuando se considera que la inteligencia artificial es un riesgo existencial es porque la consideramos muy poderosa y, además, fuera de control.
Y esa idea suele referir a la singularidad o la idea de la inteligencia artificial general. Se trata de una inteligencia artificial de propósito general, más inteligente que los humanos y que ya 'no nos necesita' (o 'piensa que no nos necesita') porque es capaz de mantenerse e incluso evolucionarse y mejorarse a sí misma sin el concurso del ser humano.
Cuando hablamos de 'sin control', se fantasea a veces con que esa inteligencia artificial tiene alguna forma de voluntad propia que, algo que en la situación actual es una fantasía, o en visiones algo más realistas a día de hoy, lo que se supone es que tiene unos objetivos que persigue sin atender a requerimientos humanos (como ocurre en el famoso experimento mental de Nick Bostrom con la inteligencia artificial encargada de maximizar la producción de clips) y/o que, simplemente no tiene un mecanismo de parada.
Para quienes piensan que es posible la consecución de un inteligencia artificial general y que ésta podría ser más inteligente que los humanos, se suele abogar por el llamado alineamiento, es decir, que los objetivos de esa inteligencia artificial sean coincidentes con los objetivos e intereses de la raza humana (una idea interesante, pero, posiblemente, más teórica que real ahora mismo).
Los más radicales abogan, en una postura como mínimo poco realista, en una eliminación de la inteligencia artificial o en un 'congelamiento' de su progreso (como ocurrió, por ejemplo, con la, en mi opinión desgraciada carta, enviada hace un tiempo por una serie de personajes muy conocidos, pidiendo una moratoria de seis meses en el desarrollo de los modelos generativos.
La preocupación real y el 'postureo' ético
¿Cuánto hay de preocupación real por ese riesgo existencial y cuánto de 'postureo'?
Sinceramente, creo que abunda mucho más la ignorancia y el postureo, cuando no algún interés ilegítimo, como en el caso de la famosa carta, que las preocupaciones legítimas.
Antes de razonarlo, un breve comentario 'teórico'. Cuando se habla de riesgos (por ejemplo en dirección de proyectos) y se evalúan y prepara un plan de mitigación, siempre se consideran dos elementos:
por un lado la probabilidad de que el riesgo (recordemos, un problema potencial) se materialice y se convierta en un problema real
Por otro, el impacto que ese problema tendría
Es evidente que, en el caso de un riesgo existencial, el impacto no puede ser mayor, pero ¿Y la probabilidad?
Existe debate sobre si es viable siquiera la consecución de una inteligencia artificial general y de alcanzar la singularidad. Pero, caso de ser viable, y aunque algunos (creo que pocos) apóstoles de la singularidad creen que, como reza el famoso título del libro de Ray Kurzweil , la singularidad está cerca, personalmente no estoy muy convencido de ello y creo que está más bien lejana.
Pese a los innegables, espectaculares y muy rápidos avances de la inteligencia artificial, no me parece que la singularidad, caso de ser posible, esté cercana. En ese sentido, la probabilidad de la inteligencia artificial como riesgo existencial sería baja o muy baja, al menos a corto plazo.
La visión más cercana y el control
Muchos autores críticos con la idea de la singularidad y del riesgo existencial abogan por una visión y, sobre todo, una acción mucho más realista y de corto plazo. Abogan por mecanismos técnicos que aumenten la seguridad ('safety') y el control de los sistemas de inteligencia artificial.
Abogan por la implementación de mecanismos que mitiguen algunos de los riesgos éticos actuales y reales de la inteligencia artificial. Y abogan también por mecanismos regulatorios o de gobernanza que cuiden de implementaciones tanto éticas como controladas de los sistemas basados en inteligencia artificial.
Muchos de estos autores consideran que los debates sobre la singularidad y el riesgo existencial nos distraen de los verdaderos riesgos y de las acciones que realmente debemos llevar a cabo.
La inteligencia artificial como víctima del 'postureo'
Personalmente no me atrevo a afirmar con seguridad que la inteligencia artificial general sea irrealizable, pero sí creo que es poco probable al menos a corto plazo y que ese riesgo existencial, caso de existir, tiene actualmente una bajísima probabilidad de materializarse.
Y, en ese sentido, sin dejar de permanecer vigilantes e incluso realizar investigaciones para conseguir ese alineamiento u otro tipo de sistemas de control, en efecto, creo debemos concentrarnos en mejorar la seguridad y comportamiento ético de los sistemas de inteligencia artificial que 'tenemos encima de la mesa' o que tendremos con alta probabilidad en un futuro cercano.
Pero más allá de esa consideración, veo a la inteligencia artificial como una víctima del 'postureo'. Creo que hay muchas personas que hablan de ética de la inteligencia artificial porque está de moda, porque suena bien, porque parece que da idea de persona humanista, consciente, responsable y 'a la última'.
Y creo que se exageran los discursos sobre riesgo existencial, en algunos casos por intereses, pero con frecuencia, simplemente, porque llaman la atención.
¿De verdad es la inteligencia artificial el problema?
Y como demostración de ese 'postureo', decir que no veo la misma preocupación en el ambiente y en el discurso por los posibles riesgos éticos de otras tecnologías como la edición genética, la nanotecnología o la propia energía nuclear.
Más importante que eso, no veo tanto 'interés' en otros eventuales riesgos existenciales que no tienen que ver con la tecnología o no directamente.
Cuando oigo hablar de riesgo existencial ligado a la inteligencia artificial, no puedo evitar decirme para mis adentros: ¿En serio? Convivimos desde hace décadas con la existencia de un arsenal nuclear capaz de destruir varias veces nuestro planeta, asistimos a una degradación medioambiental sin precedentes, asistimos a guerras que acaban con miles y miles de personas , hemos vivido hace pocos años una pandemia grave y parece muy probable que nos enfrentemos a más, asistimos a zonas del planeta que sufren grandes hambrunas, y así sucesivamente.
¿De verdad nuestro mayor riesgo es la inteligencia artificial?
¿Lo piensas en serio?
Sobre los riesgos existenciales naturales
Sobre los riesgos existenciales naturales, lo único que creo que podemos hacer es estudiarlos para entenderlos mejor (cómo se comportan los meteoritos, los volcanes, etc) y para intentar idear estrategias y desarrollar tecnologías (sí, tecnologías) que nos permitan mitigarlos (como lo que está valorando la NASA para intentar destruir o desviar meteoritos antes de que impacten con la tierra)
Los riesgos antropogénicos y el verdadero riesgo existencial
¿Y en el caso de los riesgos antropogénicos?
Por su propia definición dependen de nosotros, de los seres humanos. En nuestras manos está, pues, controlarlos. Pese a las dudas e incógnitas, confío en la capacidad científica y técnica del ser humano para crear tecnologías seguras y controladas, incluida la inteligencia artificial. Y eso me da esperanzas.
Pero si disponemos o podemos disponer de tecnología, el ingrediente que falta entonces, es la voluntad. La voluntad controlar y no dejar que 'los efectos colaterales se produzcan' ni en seres humanos ni en el medioambiente, la voluntad para no usar la tecnología como arma o en favor de intereses ilegítimos, la voluntad para no disparar la primera ojiva nuclear...
Y si depende de nosotros, entonces lo que necesitamos, más allá de tecnología, metodología o regulación, es ética y responsabilidad.
Y siendo así, creo que el mayor riesgo existencial, no es la inteligencia artificial, ni la energía nuclear, ni la genética, ni la nanotecnología, ni siquiera los combustibles fósiles.
El mayor riesgo existencial, siento decirlo, es nuestra falta de ética o de una ética suficiente y generalizada
Conclusiones
La inteligencia artificial, como todas las tecnologías, lleva aparejados sus riesgos. Quizá, por ser una tecnología tan poderosa, sus riesgos pueden tener mayor impacto. En esa línea hay quien considera que la inteligencia artificial constituye un riesgo existencial, especialmente si se alcanza el nivel de inteligencia artificial general y la famosa singularidad.
Sin embargo, creo que muchos de las preocupaciones éticos relativas a la inteligencia artificial y, en concreto, las relativas al riesgo existencial, son poco sinceras y tienen mucho de 'postureo' o de intereses ilegítimos.
Más allá de que, pese a todo, debemos estar vigilantes y adoptar medidas para conseguir la seguridad y comportamiento ético y controlado de los sistemas basados en inteligencia artificial actuales y futuros, no creo que sean los riesgos de esta tecnología los que más nos deben preocupar ahora mismo.
Por encima de riesgos concretos, creo que el mayor problema, el mayor riesgo, es la escasez de ética y el uso irresponsable, cuando no culpable, de la tecnología y del resto de recursos.
Más allá de riesgos naturales, la falta de ética, y no la tecnología, es el riesgo existencial más profundo, el más acuciante.
Hoy en día, los modelos generativos, muy especialmente los grandes modelos de lenguaje recubiertos por aplicaciones de tipo chat, como el famosísimo ChatGPT, están omnipresentes, no sólo en los medios de comunicación, sino también en la conversación y en su uso práctico en entornos tanto privado como corporativo.
Y dadas sus extraordinarias capacidades, su 'conocimiento' embebido, y su interacción con las personas de una forma tan humana como es el lenguaje natural incluyendo con frecuencia la voz, trasmiten una sensación innegable de inteligencia y de cierta espontaneidad, lo que puede llevar y una errónea atribución de personalidad y puede que, en los casos más descabellados, de libre albedrío.
Y un poco por eso me interesa traer aquí un razonamiento sobre el eventual determinismo o no de los modelos generativos.
¿Qué entiendo por determinismo?
Antes voy a definir qué entiendo por determinismo. Para este artículo, no voy a adoptar una perspectiva ni mucho menos filosófica sobre el determinismo sino, por el contrario, una visión muy matemática o algorítmica, si se prefiere.
Simplificando bastante (pero sin perder por ello rigor), podemos decir que un modelo de machine learning en general, y un modelo generativo en particular, actúa básicamente como una función matemática (eso sí, una función muy compleja). Es decir, es un artefacto matemático que recibe unas entradas y produce una o unas salidas.
Pues bien, con esa visión, entiendo por determinismo la situación en que
ante unas mismas entradas, se produce la misma salida
Las funciones que utilizamos en unas matemáticas, digamos 'normales', son claramente deterministas: si sumas dos números da siempre el mismo resultado, si hallas la raíz cuadrada de un número siempre te dará el mismo resultado, y así sucesivamente. No hay aleatoriedad: mismas entradas, mismo resultado.
El funcionamiento básico de los modelos generativos
Aunque es posible que algunos lectores de este blog conozcan el funcionamiento interno de los modelos generativos, en beneficio de aquellos que no se encuentren en esa situación, y para facilitar el entendimiento del discurso que sigue, voy a explicar, de una forma tremendamente simplificada (aunque cierta) cómo funcionan los modelos generativos y en concreto, los grandes modelos de lenguaje.
Antes una advertencia: existen multitud de modelos generativos, algunos muy similares entre sí y otros bastante diferentes, y cada uno puede tener sus particularidades. En lo que seguirá me voy a centrar en grandes modelos de lenguaje (exclusivamente de lenguaje) basados en arquitectura Transformer, como los GPTs que hay por detrás de ChatGPT pero creo que las conclusiones son extensibles.
Podemos, siguiendo el esquema de la función anterior y aunque luego matizaré lo que ahora voy a decir, que la entrada para el modelo es un texto (de momento consideremos que la instrucción que introduce el usuario, aunque esto no es del todo exacto) y como salida tenemos otro texto: lo que nos contesta, por ejemplo, ChatGPT.
¿Cómo funciona?
Bien, lo primero que se hace es descomponer el texto de entrada en unas unidades denominadas 'tokens'. Existen muchos algoritmos de tokenización y cada modelo utiliza unos tokens diferentes pero, en cualquier caso, el texto de entrada se descompone en esos tokens. Aunque no es cierto del todo, para el razonamiento de este post, el lector que no conozca cómo son estos tokens, se los puede imaginar, simplemente, como palabras.
Luego esos tokens (simplificando, digamos que esas palabras) se codifican como unos vectores (una colección ordenada de números) de alta dimensión (la dimensión es la cantidad de números que tiene el vector). A estos vectores se los denomina 'embeddings'. La forma en que los tokens se traducen a 'embeddings' va a depender del entrenamiento del modelo, pero estos 'embeddings' son un elemento fundamental, puesto que es donde reside en gran medida el 'conocimiento'. Los embeddings llevan consigo información de naturaleza semántica. No es un significado puro, pero sí se mantienen relaciones de cercanía semántica entre tokens (digamos que entre palabras)
Ya tenemos entonces una serie de vectores con contenido semántico, que representan las palabras (tokens) del texto de entrada.
Ahora se aplica uno de los grandes avances del modelo 'transformer': el mecanismo de atención. Mediante este mecanismo (cuyos detalles también se asientan durante el entrenamiento), el modelo de lenguaje 'se fija' en el texto de entrada (todo el texto de entrada) y, no sólo eso, 'sabe' además qué parte de ese texto es más importante de cara a la contestación.
A partir de ahí el modelo de lenguaje, genera el texto de salida. Pero no lo hace directamente, sino token a token (si se quiere simplificar, palabra a palabra). Y, para generar, ese token (esa palabra), el modelo se fija, no sólo en el texto de entrada, sino también en el texto que ya ha generado.
Dos cosas a tener en cuenta.
En primer lugar, antes dije que el modelo recibía como entrada la instrucción del usuario. Eso en realidad es una simplificación. El texto que recibe el modelo en su entrada es la agregación de varias cosas: la instrucción del usuario, el propio texto que el modelo ya ha generado como respuesta, información de contexto (por ejemplo, de las interacciones anteriores en la misma conversación), una instrucción general denominada 'system prompt' e invisible para el usuario, e información eventualmente obtenida del exterior mediante una búsqueda SEO o mediante un mecanismo como RAG ('Retrieval Augmented Generation'). En cualquier caso, la entrada sigue siendo un texto, un texto que denominaremos la instrucción aumentada ('augmented prompt').
En segundo lugar, dado que el modelo realmente genera su salida en llamadas sucesivas, cada una de las cuales produce un token, quizá nos conviene ver el modelo como una función que recibe como entrada un texto (la instrucción enriquecida) y produce como salida un token (no todo el texto de respuesta.
Pero incluso esto último no es del todo cierto o, si se prefiere, hay un pasito intermedio al final que es importante considerar. Más que un token directamente, la salida que se produce es un conjunto de tokens, con la probabilidad que tiene cada uno de ser 'el token adecuado'. Y en el paso final, se elige uno de ellos. A la hora de quedarse con el token final, el token ganador y que se incorporará a la respuesta, el modelo elige entre los disponibles y no siempre elige el de probabilidad más alta, sino que en ocasiones elige otro. Esa selección, que no está completamente prefijada, depende de unos parámetros (normalmente no modificables por el usuario sino por el programador) como la denominada 'temperatura'. Según la temperatura que asignemos el modelo, éste 'se arriesga más' (alta temperatura) eligiendo tokens menos probables o 'se arriesga menos' (baja temperatura), seleccionando uno de los más probables, seguramente el más probable. El uso de parámetros como la puede llevar a tener un modelo que funciona de manera más o menos creativa.
Y ahora llega el momento de responder: ¿este modelo es determinista o no?
En mi opinión, sí y no, dependiendo de lo que queramos decir y para qué usemos la respuesta.
Los modelos generativos como probabilistas
Según la descripción anterior, parece muy claro que la respuesta es que los modelos generativos funcionan de manera probabilista y no determinista.
Además, es muy fácil de comprobar: no tienes más que preguntarle dos veces seguidas a ChatGPT la misma 'cosa' y te proporcionará respuestas diferentes. Normalmente esas respuestas se parecerán bastante entre sí, pero si haces una consulta o indicación vaga y abierta es probable que los resultados difieran bastante.
Esta visión probabilista es uno de los motivos, aunque no el único, por lo que no 'te puedes fiar del todo', de lo que te contesta el modelo. A veces se enfoca bien, pero a veces divaga o se equivoca o genera las conocidas 'alucinaciones'. O, simplemente, no te gusta la respuesta.
Los modelos generativos como deterministas
Y, sin embargo, bajo otra perspectiva, debemos considerar los modelos generativos como deterministas.
¿Por qué?
Pues porque el que el modelo sea más creativo o menos depende de esos parámetros que comentaba como la temperatura. Manejando adecuadamente esos parámetros, se puede 'congelar' el modelo y que conteste siempre lo mismo. Es más, es una buena práctica para equipos que desarrollan modelos generativos, el que para ciertas pruebas, 'congelen' el modelo, porque así se puede prever la respuesta que tiene que dar y se prueba mucho mejor el comportamiento básico del algoritmo.
Añadiría, pero en esto no me voy a extender, que incluso la aleatoriedad 'informática' sólo es una seudo-aleatoriedad. Estrictamente hablando, al menos hasta donde yo conozco, los generadores aleatorios son en el fondo deterministas: la aleatoriedad se consigue manejando ciertos datos 'semilla', pero no es matemáticamente cierta.
Una especie de gato de Schrödinger: operativa y ética
Con todo esto los modelos generativos son, en cierto modo, probabilistas desde un punto de vista 'macro' pero deterministas desde un punto de vista 'micro'.
Metafóricamente esto del determinismo de los modelos generativos es una especie de 'gato de Schrödinger': son al mismo tiempo deterministas y no deterministas y va a depender del observador el decir una cosa u otra.
Para la gran mayoría de las situaciones y para su uso práctico del día a día en empresas, administraciones o a nivel particular, debemos considerarlos probabilistas. Debemos ser conscientes de que no producen siempre el mismo resultado con lo bueno que eso tiene en cuanto a creatividad y naturalidad pero también con el riesgo de la no repetitividad y la no completa fiabilidad.
Sin embargo, a efectos filosóficos y éticos, conviene recordar que en sus entrañas más profundas siguen siendo funciones matemáticas completamente deterministas y, por tanto, no cabe, creo, la fantasía de una voluntad propia o un 'libre albedrío' por parte del modelo.
Y es esta última razón, la de evitar fantasías y planteamientos éticos equivocados, la que me ha animado a escribir este post y la que hace importante recordar las raíces deterministas de los modelos.
Conclusiones
Los modelos generativos, cuando los contemplamos externamente como usuarios e incluso muchas veces como desarrolladores, se nos muestran como unos modelos de naturaleza probabilista. Y es importante tener esto en cuenta cuando usamos chats basados en modelos generativos o cuando queremos automatizar con base en estos modelos, por ejemplo mediante agentes.
Sin embargo, en su base más profunda, siguen siendo deterministas y, por tanto, podemos olvidarnos de un eventual libre albedrío o voluntad propia del modelo, salvo que se defienda que es posible el libre albedrío en un entorno plenamente determinista.
En este post, más de opinión que de exposición, voy a desarrollar lo que es a la vez un convencimiento y creo que, por desgracia, una fantasía: el uso inteligente y científico de modelos de machine learning en la administración pública.
La naturaleza de la política: la administración
Hace un par de semanas publicaba en mi podcast 'Divergencias' un episodio que titulaba "Management y política" y que tiene mucho que ver con lo que ahora desarrollo de manera más enfocada en este post.
Una de las cosas que allí apunto es la que creo las dos dinámicas dominantes de la política.
La primera dinámica, la que resulta mucho más visible y que en realidad es mucho más superficial y menos valiosa, es la que tiene que ver de alguna forma con la comunicación política. Se trata de todas las acciones que realizan líderes y partidos para exponer sus posiciones, para criticar las del contrario y, en definitiva, para intentar ser relevantes y ganarse la voluntad y en último término el voto de los ciudadanos. Declaraciones, apariciones en medios, mítines, manifestaciones, etc forman parte de esta faceta de la política.
La segunda dinámica, la realmente importante, y mucho menos visible por desgracia, es la administración y la gestión, es la que tiene lugar cuando se ejerce el gobierno, cuando se está al frente de un gobierno central, de un ministerio, de una comunidad autónoma, de una consejería, de un ayuntamiento, etc.
Podría decirse que hay una tercera dinámica, que es la legislativa, pero en esa no voy a profundizar y la asimilaré, aunque de forma bastante simplificada y quizá burda, a la segunda.
En cualquier caso, y aunque la administración pública tiene algunas particularidades, cuando entramos en gestión (en 'management' como decía en mi podcast) entran en juego cuestiones como presupuestos, equipos, plazos, resultados, retornos, etc. Y pasan a ser importantes, o deberían pasar a ser importantes, la eficacia (conseguir objetivos) y la eficiencia (optimizando el uso de recursos que para ello se emplean).
En mi podcast apostaba por que, en esa labor de gestión, se adoptasen los enfoques que son comunes en las empresas. Reconociendo, como decía antes, que la administración pública tiene elementos diferenciales y que, por ejemplo, los retornos que se esperan para una inversión con frecuencia no son económicos, creo que la mayor parte de las herramientas y técnicas de gestión empresarial pueden y deberían aplicarse en el ámbito público.
Gestión científica
Y esta gestión empresarial me lleva a lo que, quizá de una forma algo grandilocuente y no del todo exacta, estoy denominando una gestión científica.
Lo que quiero decir con ello es la aplicación de metodologías, técnicas e incluso tecnologías que hacen que la gestión se base en hechos y datos, que mida resultados, que monitorice progresos y que apoye las decisiones en esos datos, en estudios o modelos contrastados, y no en la mera intuición o la voluntad 'política'.
Que sea, en definitiva, una gestión objetiva, fundamentada, eficaz y eficiente... y mucho menos (cuanto menos mejor) 'ideológica'.
Técnicas, metodologías y tecnologías
En esa gestión científica, existen muchas técnicas. Así, por ejemplo, está ampliamente definido, usado y documentado el uso de técnicas para valoración de proyectos de inversión y para el filtrado, selección y priorización de proyectos.
Existe también, por ejemplo, una disciplina bien desarrollada para la dirección de proyectos de cualquier naturaleza y que incluye, aparte del control de plazos y presupuestos, aspectos relevantes como la gestión de riesgos.
Y existe una disciplina bien desarrollada de análisis y optimización de procesos de negocio y una amplísima oferta de tecnologías de digitalización y automatización para disponer de una administración muchísimo más moderna y, de nuevo, más eficaz y eficiente.
Modelos
Entre las herramientas para una gestión científica se encuentran los modelos, de los que próximamente también hablaré en mi podcast 'Divergencias'
Los modelos son abstracciones de la realidad, unas abstracciones que, por fuerza, acaban siendo simplificaciones, pero que ayudan a explicar esa realidad y, sobre todo, a hacer predicciones razonables sobre la misma.
A algunos de estos modelos, sobre todo físicos o químicos, se ha llegado por experimentación, reflexión y, en ocasiones, deducción matemática. Un ejemplo que muchos habremos estudiado en la época escolar son los sucesivos modelos del átomo que se generaron desde la época de los griegos hasta todavía la época actual en que se siguen descubriendo o deduciendo nuevas partículas subatómicas. O los modelos que explican y dan forma matemática a la gravedad y que comienza por Newton y se revisan por parte de la teoría relativista. O, en la misma línea de la física, los modelos del universo.
En muchos campos, un modelo acaba teniendo unas variables de entrada y unas variables de salida y lo que, de alguna forma ofrece el modelo, es la relación entre esas variables de entrada y las de salida. Y una vez el modelo se encuentra bien desarrollado y probado, es capaz de hacer predicciones y decir, con razonable seguridad y exactitud qué valores de salida tendremos antes unas entradas concretas.
Econometría
En el campo de la economía, uno de los ámbitos fundamentales de trabajo de la política en su vertiente de gestión existe, de hecho, y desde hace muchos años, la disciplina de la econometría que crea modelos matemáticos y estadísticos para fenómenos económicos.
Y una disciplina que, lógicamente, en los últimos años ha incorporado los modelos de 'machine learning'.
Y con base en esos modelos econométricos, se analizan fenómenos que tiene que ver con precios, inflación y cosas así.
El uso de machine learning: modelos y gestión
Y es que, en efecto, los modelos dominantes hoy en día en muchísimas disciplinas son los modelos procedentes del campo del machine learning.
Estos modelos aportan algunas grandes ventajas.
Así, por ejemplo, son modelos que permiten tratar fenómenos y obtener capacidad predictiva para fenómenos que no comprendemos completamente. A diferencia de los modelos físicos o químicos tradicionales, que suponían un razonable entendimiento del fenómeno y unas hipótesis sobre el 'funcionamiento del mundo', los modelos de machine learning no ponen como condición entender el fenómeno, sólo conocer las variables de entrada y salida relevantes... y el convencimiento de que existe correlación (y quizá causalidad) entre ellas.
Otra ventaja es que se apoyan en datos (muchos datos en realidad) y eso, aunque con la dificultad de obtener y limpiar los datos, y con los riesgos de sesgos, aporta objetividad.
Finalmente, añadiría que, dado el gran progreso tecnológico, dada la gran capacidad de computación disponible, y dado el potente ecosistema de herramientas, cada vez son más sencillos de crear y utilizar, y se encuentran al alcance de cualquier organización, y no digo ya modelos generalistas (como el modelo del átomo) sino modelos específicos, para temas específicos y en organizaciones específicas.
El debate frente a la ciencia
Y si ahora retornamos de nuevo a la política en su faceta de gestión, veo un campo tan potente y tan fructífero si se aplicasen estos modelos a la gestión...
¿Por qué no generamos modelos para los fenómenos más importantes y decidimos con base en datos en lugar de elegir opciones con base en posicionamiento ideológicos, en 'relatos', en conveniencias, en prejuicios o en intuiciones?
Por ejemplo, hace poco se ha subido el salario mínimo en España. Y surgió el debate de si eso impacta o no en el empleo. ¿Qué tal, si en lugar de 'discutirlo', intentamos hacer un modelo que lo muestre, casi que lo demuestre en el sentido que sea?
Respecto al tema de impuestos, otro tema 'calentito': ¿Subirlos o bajarlos? ¿Qué tal si, en lugar de 'tirarnos los trastos' y encendernos en debates, modelamos el efecto de los impuestos en temas como la recaudación del estado, el impacto en el consumo o incluso el PIB?
Y no todo tiene que ser económico. ¿Por qué no modelamos, por ejemplo, si el endurecimiento de las penas para un delito, influye o no en que se cometa menos ese delito? O ¿por qué no estudiamos si, por ejemplo, los impactos publicitarios advirtiendo de los peligros del tabaco contribuyen o no a que disminuya su consumo (aviso que sobre este último punto hace poco leí un libro que venía a decir que era contraproducente avisar mucho de los peligros del tabaco)?
También se trabaja y es un gran campo en temas como salud pública y epidemiología, o en la predicción de terremotos.
Y así podríamos seguir con todos los fenómenos más o menos complejos que normalmente se discuten y gestionan desde la mera ideología, no desde los datos y la ciencia.
Para ser rigurosos, hay que avisar que no todo es modelable. Puede haber fenómenos para los que no tengamos, por ejemplo, datos suficientes, o con la calidad suficiente, o acceso a los mismos. A lo mejor, para algunos de los casos que he puesto como ejemplo no somos capaces de hacer un modelo. Y a lo mejor hay fenómenos en que todavía 'estamos tan verdes' en su comprensión, que primero hay que estudiar cuáles son las variables relevantes.
Pero creo que se entiende la idea y, sobre todo, más allá de casos concretos, como práctica generalizada, creo que el uso de modelos, especialmente de modelos de machine learning (sin excluir otras técnicas y disciplinas que citaba al principio) daría un enorme giro en la gestión de lo público, un giro hacia la objetividad, la eficacia y la eficiencia... y de paso, mucha menos polarización.
Y eso nos llevaría a una política, con mucha menos ideología, mucho menos debate estéril y sin fundamento, y a cambio a una gestión de los asuntos públicos mucho más rigurosa y voy a decir que más científica.
El deseo y la fantasía
Y esa es mi propuesta y mi deseo, casi mi carta a los Reyes Magos.
No tengo ninguna queja respecto a cómo se han comportado los Reyes Magos conmigo a lo largo de los años...pero en esta ocasión, creo que este deseo me lo van a traer ni este año, ni el que viene, ni el siguiente...y puede que nunca.
No tengo datos, pero estoy convencido de que están desarrollados o en análisis muchos modelos del tipo de los que he propuesto. No tengo dudas de que en el ámbito científico y universitario se ha trabajado, se trabaja y se trabajará en este tipo de modelos. Seguro que hay muchos publicados.
Y seguro que en el ámbito privado se están implantando e implantarán muchos modelos, aunque seguramente dedicados a temas más de negocio como predicciones de ventas, de necesidades de materiales, de análisis de acciones de marketing y atribución de ventas o mantenimiento predictivo.
Lo que no veo es su uso generalizado en la administración, aunque no excluyo 'pilotitos', demostradores o pequeñas experiencias.
Lo que, por desgracia, no confío en ver, es su uso generalizado y, sobre todo, el paso de una gestión como la actual, que creo más basada en ideología, discursos, conveniencias, intuiciones y prejuicios, a una gestión objetiva, basada en datos (y modelos), rigurosa y 'científica'.
Para conseguirlo, se precisaría un profundo cambio cultural y, además, una voluntad, unos conocimientos y unas competencias de las que creo que carecen, de forma muy generalizada, los líderes políticos y gestores públicos actuales.
Así que, ojalá me equivoque, pero esa política científica es, creo, sólo un deseo y una fantasía.
Conclusiones
En el acervo de metodologías, técnicas y tecnologías actuales, existen muchas que serían aplicables en la gestión de los asuntos públicos, en lo que considero la faceta más importante del ejercicio político.
Dentro de las tecnologías, es particularmente prometedor el uso de modelos de machine learning para modelar fenómenos complejos sobre los que luego hay que tomar decisiones de gestión.
Sin embargo, personalmente, veo esa gestión rigurosa, científica y apoyada en datos y modelos, tremendamente deseable, pero siendo prácticos, sólo como un deseo y una fantasía.
Aunque la promesa de productividad y facilidad del 'vibe coding' es muy importante, y hasta cierto punto bastante creíble, conviene ser realistas y tomar consciencia de que la generación de código mediante inteligencia artificial, al menos hoy en día, tiene limitaciones que hay que conocer y gestionar.
En un post anterior decía por ello que 'no era oro todo lo que relucía'. En este post, precisamente, quiero sacar a colación aquello que 'no reluce' en el 'vibe coding'.
Antes, un recordatorio brevísimo, express. El término 'Vibe coding', acuñado por Andrej Karpathy, y de fronteras difusas, designa la generación de código mediante el uso de inteligencia artificial, normalmente grandes modelos de lenguaje generalistas o especializados en generación de código. Es decir, el desarrollador expresa en lenguaje natural lo que quiere que haga una aplicación, función o lo que sea, y el modelo de lenguaje genera el código correspondiente.
Como digo, las fronteras del término no son claras, pero personalmente creo que se aplica más a cuando esa generación de código es completa o casi completa, es decir, que se genera una aplicación completa o gran parte de ella. De forma más general, podemos hablar de ingeniería de software asistida por IA donde el nivel de ambición puede ser menor y lo que el desarrollador puede solicitar al modelo de lenguajes es, a lo mejor, sólo una función, o una pantalla o que le ayude a resolver un error sintáctico o de ejecución.
En cualquier caso, hablamos de generación de código y un código que el desarrollador solicita a la IA mediante lenguaje natural.
Bajando un poco a la realidad
Si bajamos un poco a la realidad, al menos actualmente, no resulta posible generar aplicaciones que sean completas, fiables, seguras y escalables sólo mediante un 'prompt', por largo, sofisticado y bien elaborado que éste sea.
Se pueden conseguir resultados espectaculares generando aplicaciones sencillas en modo demostración o prototipo, pero no aplicaciones pensadas para producción real.
La realidad actual apunta más a un trabajo conjunto entre un desarrollador y la IA, donde la IA genera grandes partes del código e incluso ayuda a corregirlo pero con intervención, supervisión y modificaciones por parte del desarrollador humano.
Aspectos que aún le cuestan al 'vibe coding'
Osmani, en su libro, destaca cinco facetas, como aspectos que le cuestan (que no suele conseguir) el 'vibe coding' actual:
Sistemas complejos: El 'vibe coding' funciona bien con aplicaciones sencillas y típicas, como ventanas web que recubren operaciones CRUD (Create, Read, Update, Delete) en bases de datos. En general, aplicaciones sencillas y comunes que los LLMs 'han visto' con frecuencia en sus datos de entrenamiento. Pero lo tienen muy difícil ante el caso de algoritmos complejos o planteamientos novedosos que no existen en los datos de entrenamiento o que se encuentren poco representados. En estos casos, la IA tiende a generar un código que se acerca al correcto, pero no lo es en realidad.
Optimizaciones de bajo nivel y programación a nivel sistema: Los LLMs actuales están fundamentalmente entrenados con código escrito en lenguajes de alto nivel y problemas también de alto nivel, cercanos al negocio o la funcionalidad. Sin embargo, la optimización de ciertos algoritmos implica la programación a muy bajo nivel, muy cerca del sistema, para reducir complejidad algorítmica y tiempos de procesamiento, optimizar el uso de recursos hardware, para adaptar los algoritmos al hardware subyacente, etc. Por tanto, el código que generan suele ser subóptimo. Para muchas aplicaciones no críticas puede ser más que suficiente, pero para otras más especiales no tanto.
Frameworks únicos o de nicho: De nuevo, estos modelos están entrenados con base en código fuente basado en librerías y frameworks más o menos populares y, por tanto, pueden ser incapaces de generar un código correcto en el caso de frameworks o librerías muy nuevos o muy de nicho (y con pocos ejemplos en los datos de entrenamiento)
Interfaces de usuario creativas: Una vez más, los modelos generan correctamente código para formas de resolver un problema comunes. En lo relativo a la interfaz de usuario, generan correctamente, por ejemplo, formularios, dashboards y otras formas comunes y probadas de interfaz de usuario. Pero les resulta muy complicado generar una experiencia nueva, especial, diferente, inspiradora.
Interpretación de intenciones y requisitos: En este caso, el problema puede estar más en el lado del desarrollador, pero lo cierto es que los modelos no siempre resuelven bien unas especificaciones con requisitos implícitos o contradictorios.
Limitaciones y equilibrios
Además de las facetas vistas más arriba, Osmany también nos alerta de algunas limitaciones de los LLMs o de algunas circunstancias que pueden precisar de adoptar algún tipo de equilibrio, de solución de compromiso:
Calidad variable de la salida: Como sucede en otros ámbitos de su aplicación, los LLMs pueden generar un código que parezca correcto pero que no funcione del todo bien, o que, por ejemplo, no reaccione bien ante errores. También puede producir un código funcional pero ineficiente. Por tanto, parece inevitable una supervisión responsable y real por parte del desarrollador humano de todo lo que genera mediante IA.
La ambigüedad en los 'prompt's conduce a ambigüedad en el código: Como ocurre en general con la ingeniería de instrucciones ('prompt enmgineering') y como , en el fondo, también ocurre con la especificación de requisitos tradicional, si las instrucciones (que actúan como requisitos) son ambiguos, incompletos o incorrectos, el resultado también presentará carencias.
Confianza excesiva y atrofia de habilidades: Quizá aún sea pronto para ver con claridad este efecto, pero parece previsible que si un desarrollador confía en exceso en la IA y apenas hace aportaciones propias, poco a poco sus habilidades se irán deteriorando y con ello su capacidad de detectar errores, de optimizar el código, de depurar el resultado y, en general, se empobrecerá como desarrollador. Y también se empobrecerá el código que genere, cada vez más apoyado en la IA
Aspectos de seguridad y privacidad: Con frecuencia, los entornos de 'vibe coding' se apoyan en el envío de código a terceros en la nube, lo cual puede plantear preocupaciones en cuanto a privacidad. Igualmente, existe el riesgo de que el código que genere la IA sea casi una copia de un código real quizá protegido por propiedad intelectual.
Sesgos en las salida: Los LLMs usados para generar código, también pueden presentar sesgos como otros modelos de IA o como estos mismos modelos en otros ámbitos de aplicación. En el ámbito de la generación de código suelen ser sesgos 'inocentes' como tener preferencia por dar ciertos nombres a las variables, pero conviene estar vigilantes de que no se introducen sesgos más graves.
Factores humanos y confianza: Finalmente entra el factor humano que puede hacer que los desarrolladores no acepten esta forma de trabajar, quizá por desconfianza en los resultados, o quizá, incluso, porque cambia la naturaleza de su trabajo que hasta ese momento, antes del 'vibe coding', quizá percibían como más divertido, independiente y creativo.
Conclusiones
Como en el fondo cabía imaginar, el 'vibe coding' no es algo mágico, sino que tiene sus limitaciones y problemáticas, unas limitaciones y problemáticas que tienden a resolverse, en la mayor parte de los casos, siendo conscientes de que el trabajo de desarrollo basado en IA implica una importante supervisión por parte de desarrolladores humanos de cara a la verificación, optimización, depuración, etc. Y unos desarrolladores humanos que, además, deben estar mentalizados y tener altas capacidades por que, si no, seguramente les pasarán inadvertidos los errores o soluciones subóptimas que les proponga la IA.
Navidad recogida
-
Llega la Navidad.
Llega la Navidad y con ella promesas de luz y alegría, de regalos y
reuniones, de comidas y sobremesas.
Aunque su significado profundo ...