miércoles, 28 de enero de 2026

El eventual libre albedrío de los modelos generativos y el resquicio de la aleatoriedad algorítmica

Publico un nuevo artículo, en este caso casi más una 'reflexión en voz alta' que una argumentación profunda, sobre esa especie de serie de posts que estoy dedicando al determinismo (o aleatoriedad) de los algoritmos de la inteligencia artificial, muy especialmente los modelos generativos, y a la posibilidad (o no) de que un algoritmo o un modelo y, por tanto, una máquina, pudiese tener libre albedrío.

Aunque, en principio pensaba que este artículo iba a ser el último de esta serie, creo que no va a ser así, por algo que explicaré mas abajo, hacia el final del post.

En esta ocasión, quiero hacer una reflexión sobre si una eventual aleatoriedad de los algoritmos, abre o no la puerta para el libre albedrío.


Recapitulando: algoritmos deterministas... o casi


Intento resumir lo visto hasta ahora en artículos anteriores.

En general, he defendido que los algoritmos de inteligencia artificial en general, y los modelos generativos en particular, son, en el fondo, deterministas

Sin embargo, he hecho una distinción que creo muy importante y he hablado de una especie de comportamiento dual.

Vistos desde fuera, vistos como usuarios, como ingenieros, como desarrolladores, como empresas, los modelos generativos se comportan como probabilistas, es decir, proporcionando resultados diferentes ante las, aparentemente, mismas entradas. Es decir, se comportan como si no fueran deterministas.

Sin embargo, si entramos al detalle, a un nivel muy fino y casi 'íntimo' del algoritmo, el funcionamiento realmente es determinista. ¿Por qué? Pues porque la aparente aleatoriedad se basa también el algoritmos que, aunque simulan muy bien la aleatoriedad, en realidad siguen un funcionamiento determinista. Para lograrlo usan funciones (como los generadores de números seudo-aleatorios) que suelen incluir alguna entrada, que el usuario 'no ve', que puede ser, por ejemplo, una semilla consistente en la fecha y hora exacta en que se invoca el algoritmo (hasta milisegundos, microsegundos o aún más precisión). Si, como usuarios, invocamos dos veces seguidas el algoritmo aportando los mismos datos, el resultado será diferente (porque la hora exacta de invocación es diferente), pero, en el fondo, si tuviéramos realmente todos los datos de entrada, incluyendo la hora exactísima de invocación, el resultado estaría completamente determinado.

Por ello, mi tesis básica es que los algoritmos, aunque por fuera se comporten claramente como probabilistas, por dentro son deterministas.

De hecho, y como vimos en otro post, existen mecanismos de gobierno del nivel de aleatoriedad de los algoritmos generativos, que permitirían, incluso, 'congelar' estos modelos y que se comportasen, también externamente, como deterministas, algo que, más allá de razonamientos teóricos, es bueno para poder probar y validar los modelos.

En el post anterior de esta serie, sin embargo, y con base en los estudios de Thinking Machines  introdujimos algunas posibles 'grietas' en este razonamiento. Veíamos que esta compañía ha encontrado y demostrado la existencia de aleatoriedades basadas en cosas como problemas de redondeo en operaciones con números en coma flotante, diferencias en el comportamiento de los núcleos de las GPUs y, sobre todo, en la generación de los 'batches' que entran en los modelos generativos.

Aunque es más difícil de demostrar, creo que esas situaciones lo que reflejan son unas 'apariencias de aleatoriedad', desde luego ciertas vistas con visión externa y, además, en este caso no buscadas y no gobernadas explícitamente sino un poco 'fuera de control', por decirlo de alguna manera. Sin embargo, creo que un análisis muy detallado nos mostraría que, aunque, en efecto, no gobernadas, y aunque, también en efecto, con manifestación externa aleatoria, en su funcionamiento más íntimo siguen siendo deterministas.

Los autores del estudio, además, han encontrado la forma de eliminar esas 'grietas', devolviendo los algoritmos al redil del determinismo.

Pero, y si al final hay elementos de autentica aleatoriedad, ¿Qué sucede?

Veamos


Importancia de la aleatoriedad de los algoritmos para el libre albedrío


¿Por qué tanto empeño en ver la aleatoriedad o no de los modelos generativos? ¿Por qué darle tantas vueltas cuando, además, se reconoce que, en su comportamiento externo, sí que son probabilistas?

Pues, como decía al hablar de esa especie de dualidad entre la visión externa e interna, porque el determinismo o la aleatoriedad tienen una importancia casi filosófica o ética si queremos hablar de libre albedrío.

Si demostramos que un algoritmo es plenamente determinista, no queda lugar para el libre albedrío de las máquinas, para que éstas tengan alguna forma de voluntad propia, o al menos una voluntad consciente y autónoma, como la que entendemos tenemos los humanos. Al menos a mí no se me ocurre cómo un ente, natural o artificial, puede tener libre albedrío si su comportamiento es plenamente determinista.

Sin embargo, si el comportamiento no es plenamente determinista, no se demuestra, ni mucho menos, que exista libre albedrío, pero se abre un poco la puerta. 

Entonces, si los algoritmos fuesen realmente probabilistas, con dosis de aleatoriedad ¿supone que pueden tener libre albedrío?

No, no necesariamente, pero al menos deja algún pequeño resquicio, alguna posibilidad, y la necesidad de seguirlo analizando.


Aleatoriedad frente a deliberación


De hecho, probablemente, la aleatoriedad o, más bien, el no determinismo, sea una condición, puede que necesaria, pero desde luego no suficiente, ni de lejos, para hablar de libre albedrío.

Probablemente, como tantas otras capacidades humanas, no tengamos una idea clara, científicamente clara quiero decir, de lo que es el libre albedrío y, sobre todo, cómo 'se implementa' en el ser humano, algo sobre lo que quiero seguir investigando. En cualquier caso, sí parece claro que, para hablar de libre albedríos, necesitamos bastantes más ingredientes que la mera indeterminación.

Casualmente, o no tan casualmente, me encuentro precisamente leyendo el documento 'Reclaiming human agency in the age of artificial intelligence' publicado por el Dicasterio para la cultura y la educación de la Santa Sede, en que razona sobre el concepto de agencia humana, frente a la agencia de que se habla en inteligencia artificial. Y hay un párrafo que creo esclarecedor. Dice: 


Such deliberation is presupposed in free choice; it is what “specifies”our free choice. Free acts are not random; they are not the mere indeterminacy of chance events or the result of random generators, as in some machine simulations of agency


Nos habla de deliberación y explícitamente indica que la libertad de elección no es mera aleatoriedad. Sin entrar en análisis más académicos o sesudos, esa deliberación de que nos habla creo que incluye un análisis consciente del contexto y las opciones, y una toma de decisión también consciente.

Aunque este documento está generado por la Iglesia Católica, creo que la argumentación es general y perfectamente asumible por cualquier pensador y por cualquier persona. 

Demos por válido, pues, que el libre albedrío incluye esa capacidad de deliberación. Sin entrar en el complejo tema de la 'consciencia' sí que parece claro que la mera aleatoriedad no incluye por sí misma ninguna forma de deliberación.

¿Excluimos, pues, ya del todo, la posibilidad del libre albedrío en máquinas?


Deliberación y modelos razonadores


Pues quizá todavía sea un poco precipitado y convenga analizar algo más.

Los modelos generativos más modernos, son del tipo denominado 'razonador': modelos que analizan el objetivo que se les pone, elaboran un plan de acción para conseguir ese objetivo, ejecutan las acciones del plan, evalúan los resultados que van obteniendo y, según sean éstos, cambian el plan o deciden 'cómo' seguir.

¿Es eso deliberación? ¿Abre eso otra puerta a un libre albedrío de las máquinas?

Bueno, este era el punto que no tenía en mi agenda de posts hasta el momento, pero que creo muy interesante y al que, casi seguro, le dedique otro artículo. Eso sí, ese artículo a lo mejor se demora algo, porque para aportar una argumentación seria, querría conocer el detalle de cómo funcionan estos modelos razonadores. Aunque he leído muchas descripciones, son someras y si profundidad técnica. Y, sinceramente, no sé si está publicada la arquitectura y algoritmia de este tipo de modelos (a lo mejor los fabricantes lo consideran confidencial y estratégico), pero, en cualquier caso, yo no he tenido la ocasión de estudiarla.

En cualquier caso confío, antes o después, en poder realizar algún análisis en esa línea.

La serie de posts dedicados al determinismo o no, y al libre albedrío o no, de los modelos generativos, queda, pues, aún abierta a la espera, como poco, de ese posts sobre deliberación y modelos razonadores.. 


Conclusiones


Aunque con una manifestación práctica externa los modelos generativos se comportan claramente como probabilistas, por dentro, su funcionamiento detallado es esencialmente determinista. Existen, eso sí, algunas pequeñas grietas por donde, quizá, se podría 'colar' alguna aleatoriedad.

Si hubiese aleatoriedad, ¿eso implicaría libre albedríos? Ni de lejos, lo que pasa es que si el algoritmo es determinista entonces sí que queda excluido el libre albedrío. Si existe aleatoriedad, existe alguna posibilidad, aunque sea remota.  

Y, para que exista el libre albedrío, parece necesaria la capacidad de deliberación y decisión consciente, autónoma y libre. La aleatoriedad no garantiza, ni mucho menos, esa capacidad de deliberación pero ¿Qué pasa con los modelos razonadores? ¿Deliberan? ¿Ejercen o pueden ejercer alguna forma de libre albedrío?

Espero encontrar la información necesaria para argumentarlo en algún futuro post.


Artículos de este blog relacionados


lunes, 26 de enero de 2026

Inteligencia artificial: la burbuja y la implantación

Confieso que, para estas reflexiones sobre la eventual burbuja de la inteligencia artificial,  pensé en utilizar el título "¡Es la implantación estúpido!", una frase inicialmente articulada como "¡Es la economía, estúpido!" ('is the economy, stupid!') acuñada por el equipo de campaña de Bill Clinton allá por 1992, y que se ha utilizado con mucha frecuencia, realizando variaciones en que, en lugar de 'economía', se utiliza cualquier otro término que se quiera destacar.

Al final lo he desechado, primero, porque no me gusta el tono insultante que respira, segundo, porque tiendo a rechazar, cada vez más, las frases hechas y, finalmente, y en el fondo más importante, porque no refleja del todo lo que este post quiere transmitir, aunque si en parte: la importancia de la adopción de la inteligencia artificial, de la implantación real de soluciones, por parte fundamentalmente de empresas como factor fundamental para hablar o no de burbuja de la inteligencia artificial.

Pero, 'vayamos al lío'.


El significado de la burbuja


En esencia, hablar de 'burbuja' implica hablar de unas expectativas infladas, excesivas, bajo un punto de vista esencialmente económico aunque quizá con algún reflejo técnico.

El reflejo técnico, que creo no es el más relevante en este caso, implicaría que la inteligencia artificial no es (y no va a ser en breve) capaz de hacer todas las cosas que se le atribuyen. Y ese exceso de expectativas técnicas, podría desenfocar las expectativas económicas y de negocio, que son las que realmente importan cuando hablamos de burbuja.

Y en esa visión económica, una 'burbuja' nos habla de que las inversiones que se están realizando en inteligencia artificial no están respaldadas por el retorno que de ellas se puede esperar de forma realista en un plazo razonable. Y eso incluye, por ejemplo, empresas como la propia OpenAI que, de momento, lo que dan son unas pérdidas millonarias.

Si eso fuese cierto, si existiese realmente una burbuja, cuando empresas y gobiernos adquieran conciencia de que esas inversiones son irracionales y no recuperables, se puede parar la inversión, provocando con ello desaparición de empresas, deudas sin pagar, paro, etc, Y si esas consecuencias son de gran volumen, pueden conducir a una crisis económica global, en el sentido de no afectar sólo a alguna empresa, sino a estados completos e incluso a nivel mundial.


Dos declaraciones preliminares


Antes de seguir con lo que es el núcleo de este artículo, quisiera hacer dos declaraciones.

La primera es un humilde reconocimiento que no tengo información suficiente, ni una opinión formada, sobre si, desde el punto de vista económico, realmente estamos en riesgo de una burbuja en el caso de la inteligencia artificial. Sí creo que estamos en un mercado en ebullición y casi diría que en formación, que estamos en una frenética cascada de acontecimientos y que eso lleva a incertidumbre en las decisiones, unas decisiones que, ante la falta de un panorama claro, pero con la expectativa de un negocio billonario en el que no se puede dejar de estar, probablemente conduzca a decisiones financieras y de inversión más arriesgadas de lo que nos gustaría. Y también creo que, precisamente por tratarse de un mercado en formación, es normal la aparición de muchas propuestas y muchas empresas y que una dinámica normal conducirá, en los próximos años, a una estabilización y consolidación, en la que habrá ganadores y perdedores, quizá algunos muy sonados. Sí me parecen previsibles por ello movimientos y acontecimientos empresariales y económicos, algunos de los cuales, podrían ser 'catastróficos' para alguna entidad. Pero no necesariamente tiene que existir una burbuja 'en toda regla', una burbuja mundial, por decirlo de alguna manera.

La segunda declaración, de la que sí que estoy muy convencido, y que he expresado en más de un medio, es que 'no existe burbuja técnica'. Lo que con ello quiero decir es que las capacidades técnicas y operativas de la inteligencia artificial son reales y ya están aquí, que sólo con aquello de que disponemos actualmente, empresas y administraciones, incluso particulares, pueden dar grandes saltos de productividad, eficiencia e innovación. Eso no quiere decir que no exista 'hype', que lo hay, o que no existan partes de la inteligencia artificial, como, en mi opinión, son los agentes, los robots humanoides o los vehículos autónomos, que tengan aún que demostrar su viabilidad generalizada tanto técnica como de negocio. Pero, insisto, sólo con lo que ya hay, lo que de verdad hay, y sin esperar a que mejore (cosa que sucederá seguro), las aplicaciones y el impacto económico son enormes.  


La importancia de la implantación


Y esta última consideración me lleva a la implantación, a la adopción real de soluciones de inteligencia artificial por parte de empresas y administraciones.

Una condición fundamental para que no exista burbuja es que las empresas que apuestan por la inteligencia artificial obtengan un suficiente retorno económico, tanto las empresas creadoras de tecnología, como las organizaciones que, 'simplemente', la usan.

Y, para ello, es condición imprescindible que las empresas, administraciones y, en este caso, incluso los particulares, adopten las soluciones de inteligencia artificial. Porque esas empresas, administraciones y particulares sólo obtendrán beneficios económicos de la inteligencia artificial si realmente la usan y la usan de manera exitosa, de forma que les resulte interesante o rentable hacerlo y que, además, claro, estén dispuestos a pagar por la tecnología y por los servicios asociados.

Y es imprescindible la adopción masiva y exitosa para que esas empresas, administraciones y particulares paguen a las empresas creadores de la tecnología o prestadoras de los servicios asociados, de forma que éstas obtengan un retorno que las haga rentables y que justifique su inversión.   


Algunas barreras para la implantación


Pero se me ocurre, de una forma que confieso no del todo sistemática, pensar en barreras a esa adopción tan importante para evitar la eventual burbuja.

La primera sería, casi paradójicamente, la rapidez del cambio. Surgen de manera frenética nuevas evoluciones, nuevas herramientas, nuevas posibilidades. Y esa rapidez, que desde el punto de vista de la tecnología y la innovación es maravillosa, curiosamente creo que corre en contra de la adopción. Y eso porque organizaciones y personas, se encuentran perplejas, perdidas ante tantas posibilidades que no asimilan del todo. Eso, además, dificulta la adopción de estrategias y toma de decisiones de adopción, porque es muy difícil saber qué casos de uso son viables y más importantes o qué producto o solución usar y tener una cierta seguridad de que las decisiones van a mostrarse como correctas pasadas unos meses. A eso añadir que esa velocidad también dificulta la disponibilidad de personas y talento, tanto interno como externo, preparado como para hacer una implantación.

Por otra parte, también hay que reconocer que existe 'hype', que existe multitud de promoción exagerada, promesas de capacidades aún no demostradas. Y para un decisor empresarial, si ya la abundancia de soluciones y velocidad de aparición dificulta la decisión, la conciencia de que, además, no todo lo que se publicita está realmente maduro como para una adopción, no hace sino reforzar la perplejidad, en este caso la desconfianza, y retrasar las implantaciones o hacerlas mediante pilotos limitados de bajo riesgo, pero también bajo alcance e impacto en el negocio.

Y no excluiría de la ecuación el miedo. No ya sólo el miedo a no tomar la decisión operativa o económicamente adecuada, sino miedo a los riesgos de naturaleza ética o regulatoria. En un, quiero pensar que bienintencionado, intento por evitar las consecuencias negativas desde un punto de vista ético del uso de la inteligencia artificial, y también de posibles incumplimientos legales y normativos, se pone muchas veces mucho énfasis en riesgos y problemas y por ello los decisores pueden andarse con 'pies de plomo' antes de arriesgarse a cometer un error en este terreno.

Algunas de las soluciones de inteligencia artificial son de naturaleza corporativa, como ocurre con muchos sistemas de información tradicionales. Pero en el caso de la inteligencia artificial generativa, muchas herramientas y posibilidades se producen a nivel individual. En este punto, lo que parece lógico y deseable es que las empresas pongan a disposición de sus empleados las herramientas que, en el fondo, esos mismos empleados usan en sus entornos domésticos, como los chatbots generativos (ChatGPT, Copilot, Gemini, Claude, etc), las integraciones de IA en herramientas ofimáticas como Office 365 o  Google Workspace, el uso de herramientas para generar contenidos o presentaciones (Canva, Gamma, etc) y así un largo etcétera. Sin embargo, creo que las empresas y administraciones tienen un poco echado el freno de mano en este apartado, por miedo, en esencia, a fugas de información (externas o internas) o, quizá, a la calidad de los resultados que produzcan sus empleados.

Es posible que exista alguna barrera más, incluida la tan traída y llevada falta de talento en estos campos, pero creo que, aunque no dejan de ser opiniones, las barreras anteriores son reales y frenan en parte el despliegue de soluciones de inteligencia artificial.

Y si se frenan los despliegues, si retardamos la obtención de retornos por parte de todos los actores, corremos el riesgo de hacer que esa burbuja sea cierta y posibilitar o acelerar su pinchazo.


Frente a la burbuja de las 'subprime'


Si quisiera dejar claro que, caso de existir, esta burbuja de la inteligencia artificial no es comparable a la burbuja y consecuente crisis de las 'subprime'. ¿Por qué? Porque aquella se produjo por la creación y gestión irresponsable, cuando no culpable, de unos activos financieros que no estaban respaldados, que no tenían, ni de lejos, el valor que se les asignaba en las transacciones. 

En el caso de la inteligencia artificial, como he dicho, sí existe un valor real, y un valor muy grande. El que sea una burbuja o no dependerá de si, aunque ese valor exista, que existe, se haya sobrevalorado o no se materialice por falta de adopción.


Enseñanzas de la burbuja de las puntocom


Si nos vamos algo más lejos, al caso del estallido de las puntocom allá por el año 2000, sí asistimos patrones más parecidos al caso de la inteligencia artificial actual. No sólo porque hablamos de una eventual burbuja de base tecnológica sino porque el valor era real.

El valor que tenía internet, las redes sociales, el comercio electrónico y todo lo que se dio en llamar 'la nueva economía' era real, y tan real era que pocos años después se comenzó a notar en despliegues reales y masivos y, de hecho, hoy vivimos plenamente inmersos, seamos conscientes o no, en esa 'nueva economía'.

La promesa de las puntocom falló no porque las posibilidades no fueran reales sino porque, seguramente, se vieron mas cercanas de lo que realmente eran y porque se tomaron muchas decisiones de inversión probablemente irracionales o con un exceso de riesgo.

Y esto es lo que hay que evitar en el caso de la eventual burbuja de la inteligencia artificial.

Y para ello, en primer lugar, y esto no es desde luego fácil en un entorno tan volátil, tan en ebullición como el de la inteligencia artificial, que empresas y administraciones inviertan de una manera racional, tanto en volumen como en soluciones con posibilidades reales.

Y por otra parte, que se produzca la adopción, la implantación generalizada de soluciones de inteligencia artificial que reporte beneficios tanto a las organizaciones clientes de esas tecnologías como a los fabricantes y prestadores de servicio.


Conclusiones


Existe un cierto 'runrún' acerca de si nos encontramos ante una burbuja de la inteligencia artificial, que supondría unas expectativas, y consiguientes inversiones, desmedidas y sin un retorno claro.

En este artículo expreso mi convencimiento de que, desde el punto de vista estrictamente técnico, no existe tal burbuja, pero que es posible que si sea real desde el punto de vista económico, que en el fondo es el que importa.

Y destaco cómo, para que esa burbuja no se produzca, es fundamental la implantación masiva de soluciones que generen los retornos esperados, para lo cual, sin embargo, existen algunas barreras. 


miércoles, 21 de enero de 2026

Grietas en el determinismo de los modelos generativos: limitaciones, errores e imprevistos

Ya he hablado en algunos post recientes sobre el carácter probabilista o determinista de los modelos generativos, en especial de los grandes modelos de lenguaje, LLM ('Large Language Models').

Mi conclusión hasta ahora, es que, aunque de comportamiento externamente probabilista, internamente tienen un funcionamiento plenamente determinista. Incluso, como veíamos en el último post de la serie hasta ahora, esa aleatoriedad externa se puede exacerbar y, lo que es más importante, eliminar, o congelar, usando parámetros de configuración.

Y esta conclusión momentánea, excluye, en mi opinión,  la posibilidad de un libre albedrío de las máquinas.

Sin embargo, hay experiencias prácticas y estudios científicos que desafían ese determinismo subyacente, y que muestran que, aunque los modelos 'se congelen' (es decir, se elimine el carácter probabilista mediante el ajuste de parámetros), se siguen produciendo resultados no deterministas.

¿Cómo es eso posible?

Según vamos a ver, creo que podemos considerar que esos efectos no deterministas se producen por limitaciones en el hardware y errores en el diseño o implementación de los modelos o, si preferimos no ser muy duros, por la aparición de fenómenos imprevistos, muy difíciles de haber anticipado a priori.

En este post, probablemente el más técnico de la serie, vamos a revisar algunos de esas limitaciones, errores o imprevistos que desafían el determinismo de los modelos.

Y para ello me baso en el muy interesante, pero también complejo, artículo 'Defeating Nondeterminism in LLM Inference' publicado por  Thinking Machines la startup de Mira Murati, quien fuera CTO ('Chief Technology Officer') de OpenAI.


Los números reales y la coma flotante


El primero de los problemas que se describe en el artículo, pero que ha sido tratado anteriormente por otros autores, aborda problemáticas derivadas del trabajo con números reales representados en el formato denominado 'coma flotante'.

Recordemos brevemente qué es eso de 'coma flotante'. Se trata de una estrategia de representación en formato digital (unos y ceros) de números reales (por entendernos, los que tienen decimales).

Supongamos que queremos representar números reales usando 4 bytes (es decir, 32 bits y, por lo tanto, la posibilidad, a priori, de representar 232 números diferentes). Si ahora queremos representar números decimales, podríamos decidir dedicar tres bytes a representar la parte entera del número y uno a representar la parte decimal. Con esto, tendríamos lo siguiente:


  • Un bit para indicar el signo (positivo o negativo)

  • 23 bits para indicar la parte entera, con lo cual, podríamos representar hasta el 223, es decir, hasta 8.388.608

  • 8 bits para la parte decimal, lo cual nos daría una precisión (incremento más pequeño, por decirlo de alguna manera, de 2-8, es decir 0,00390625


Esto es fácil de entender y gestionar, pero tiene dos problemas: un rango limitado (cantidad de números que puede representar) y una precisión limitada. Aparte de la opción de incrementar el numero de bits, la que se suele adoptar es usar el denominado formato de coma flotante, que es lo que estamos acostumbrados a visualizar como 'notación científica'.

En este caso, representamos un número real 'x', que 'pensamos' como


x = ± m×2e


donde m es lo que se denomina mantisa y que está constituido por las cifras significativas (aquellas que aportan información real sobre su valor, excluyendo, en esencia, los ceros que sirven solo como relleno de posición) y 'e' es el exponente (que puede ser positivo o negativo)

En el caso del formato se simple precisión IEEE 754, los bits se utilizarían de la siguiente forma:

  • un bit para el signo

  • 8 bits para el exponente, que es quien controla, en el fondo, la posición de 'la coma' en la representación binaria

  • 23 bits para la mantisa

No quiero, 'liarlo' ya mucho más, pero sí decir que los bits que utilizamos en la mantisa nos dan la precisión, que en esta caso son 24 bits (23 bits de la mantisa más uno).

Esta forma de representar los números reales, habituales en cálculos científicos y, desde luego, en machine learning, tiene ventajas de cubrir rangos muy amplios pero viene con alguna limitación o desventaja. Por un lado, necesita de un hardware y software más complejo y, sobre todo, y lo que nos interesa en este momento es que, no sólo no puede representar de manera exacta muchos números (por falta de precisión) y, lo más importante de todo: comete errores de redondeo.


Asociatividad y condiciones de carrera


Cuando usamos la representación en coma flotante cada representación concreta de un número tiene la misma precisión pero puede tener 'la coma' en un sitio diferente.

En el artículo se nos muestra con un ejemplo sencillo cómo si sumamos dos números en coma flotante con diferente posición de 'la coma', es decir, con diferente exponente, puede suceder que el numero resultante (la suma) necesite de una precisión superior a aquella de la que disponemos (digamos porque uno es muy grande y el otro muy pequeño). Representar correctamente el número resultante, un número 'muy grande' pero 'con muchos decimales',  implicaría disponer de más bits en la mantisa de los que tenemos.

Por tanto, en la operación es preciso hacer un redondeo que nos permita encajar el resultado en la precisión disponible. Y, en ese redondeo, perdemos información, generamos un cierto error.

En el artículo se nos explica que, en ese caso, el orden en que realizamos las operaciones entre números (los mismos números) impacta en el resultado. En concreto, nos muestra cómo la propiedad asociativa 


a + (b + c) = (a + b) + c


no se mantiene, realmente. Para, admitiendo que se puede producir un error de redondeo pero que, al menos, eso no llevase a resultados diferentes en ejecuciones diferentes, habría que garantizar que las operaciones se realizan exactamente en el mismo orden

Pero eso, ese mantenimiento del mismo orden, no sucede, y la explicación de por qué no sucede nos lleva al mundo del hardware, de los famosos GPU ('Grahical Processing Unit') y procesadores similares


El hardware y condiciones de carrera no deterministas


Los modernos procesadores, como los GPUs, están compuestos de muchos núcleos o 'cores' que pueden procesar en paralelo diferentes operaciones, siendo las operaciones que se paralelizan en una GPU para tratar muchos datos, lo que se conoce como 'kernels' (que, lamentablemente, en castellano se suele traducir también como núcleo). Estos 'cores' funcionan de manera concurrente y sin sincronización entre ellos.

Una hipótesis formulada en otros trabajos para explicar el no determinismo, supone que el problema del no determinismo nace de que los propios 'cores' funcionan de manera no determinista. Esto quiere decir que un algoritmo hace que se lancen concurrentemente varios cálculos cuyos resultados luego, digamos, que se van a ir por ejemplo sumando (acumulando) a medida que acaben. Pero no es determinista cuándo finaliza cada 'core su cálculo y, por tanto, no es podemos saber en qué orden se va a a sumar o acumular cada resultado parcial.

Como, por lo que hemos visto más arriba, en operaciones en coma flotante  se producen errores de redondeo diferentes según el orden de las operaciones, esto lleva a que el resultado final del algoritmo sea no determinista.

Sin embargo, aunque los autores del artículo explican esta hipótesis, afirman que en la práctica, los problemas reales y las implementaciones reales de las típicas librerías python involucradas, hacen que este problema no aparezca nunca o casi nunca.


Peticiones en paralelo


Los autores, sin embargo, aportan otro escenario.

Indican que los LLMs cuando se utilizan en inferencia ('forward pass') son, en efecto, deterministas. Ante una misma petición del usuario, responderán lo mismo (asumo que hemos eliminado el paso final de selección probabilista de token que expliqué en el post anterior).

El problema, según indican, es la concurrencia de diferentes peticiones  y la creación, por ello, de diferentes 'batches'. Es decir, mantienen que si, el 'forward pass' considerado individualmente es determinista, pero el sistema en su conjunto, no.

Antes de seguir, comentar que los 'batches' son las entradas que, efectivamente, se envían a un LLM. Por eficiencia de implementación, los batches que se envían pueden, en realidad, incluir textos de entradas de usuario diferentes. Aunque, en teoría, el tamaño de los batches y las entradas que combinan no debería afectar al resultado, los autores muestran que no es así, que sí que afectan

Y eso porque no existe en los 'kernels' la denominada 'batch-invariance', es decir, el procesamiento de las peticiones de un usuario no es completamente independiente de los batches que procesa y, por tanto, del procesamiento de las peticiones de otro usuario. 

Para explicarlo los autores se centran en las operaciones de multiplicación de matrices (que se utilizan profusamente en machine learning y deep learning y, por tanto, también en la inferencia de los LLMs).

Parece que, esas operaciones deben ser deterministas (y en teoría lo son) y que, además, no les debería afectar otras operaciones en paralelo. Bueno, pues esto último, no es del todo cierto.

¿Por qué?

.Pues porque la carga computacional a que se ve sometido un LLM (y, sobre todo, el hardware que lo soporta) se ve afectado por la cantidad y naturaleza de las peticiones a que se ve sometido. Es decir, el tamaño de los  'batches' que se van enviando al LLM se pueden modificar según la carga, o dicho de otra forma, la carga computacional determina el tamaño de batch. Y como los 'kernels' no son invariantes respecto al batch (no son 'batch-invariant') el resultado puede modificarse según sean las peticiones en paralelo.


En busca de la invariancia


Todo lo que he explicado hasta el momento, apenas ocupa la mitad, aproximadamente, del artículo en que me baso. En lo que resta, los autores, se centran en indicar (de forma muy técnica) cómo conseguir que los 'kernels' sean realmente 'batch-invariant'. Para ello, asumen que las operaciones más básicas son invariantes y entienden que basta con conseguir la invariancia en tres operaciones complejas y muy importantes, a saber:


  • La aplicación de la RMSNorm ('Root Mean Square Normalization'), operación de normalización (ajuste de los valores a un rango concreto)  usada en entrenamiento e inferencia

  • Multiplicación de matrices

  • Mecanismo de atención: elemento fundamental de las arquitecturas transformes y que aporta el nivel de importancia que se asigna cada elemento de la entrada


Los autores, además, afirman disponer de una implementación de esas soluciones y aportan datos de los experimentos realizados


Vuelta al determinismo


En sus conclusiones, los autores se posicionan a favor del determinismo de los algoritmos en el sentido de que, no debemos aceptar los errores que se han observado (y que hemos descrito) y que llevan a que los LLMs no sean completamente deterministas.

Dicen que, con un poco de trabajo, se pueden entender las causas raíces de ese determinismo y resolverlas. Y abogan por ello, claro.


Implicaciones de cara al libre albedrío de las máquinas


Si aplicamos las recetas de estos autores, está claro que volvemos a la situación que yo siempre había afirmado (y que aquí hemos visto algunas grietas) volveríamos a estar en el caso de algoritmos plenamente deterministas, al menos en su comportamiento interno, aunque así no en su manifestación externa. 

Y, en ese sentido, no habría lugar, al menos eso entiendo yo, para pensar en un libre albedrío ni voluntad propia de las máquinas, al menos las actuales.

Pero ¿Y qué pasa si no resolvemos eso? ¿Qué pasa si se siguen produciendo errores de redondeo y, sobre todo, si esos errores, ante condiciones de carrera o peticiones en paralelo de usuarios y unos 'kernels' no invariantes en batches, nos llevan a resultados no deterministas? 

¿Abre eso realmente la puerta a un libre albedrío de las máquinas?

Creo que esa reflexión la reservo para un siguiente post, algo menos técnico y más especulativo y filosófico y con el que, creo, cerraré de momento este pequeño grupo de artículos dedicados al determinismo de los modelos generativos.


Conclusiones


Aunque externamente los modelos generativos, y en concreto los LLMs, se manifiestan como probabilistas, en su funcionamiento interno siguen algoritmos muy claros (aunque complejos) y en que el comportamiento probabilista está también perfectamente delimitado mediante parámetros de configuración por lo que, internamente, y sobre todo para razonar sobre libres albedríos, podemos considerarlos, en principio, deterministas.

Sin embargo, según hemos visto en este artículo, hay algunas grietas no buscadas en ese determinismo, pequeñas dosis de aleatoriedad no controlada y achacables, podríamos decir, a errores de diseño o implementación debidos, seguramente, a imprevistos.

En el propio artículo hemos visto que hay alguna propuesta para 'devolver al redil' a esos LLMs y que vuelvan a ser, internamente, plenamente deterministas.

Lo que queda por razonar es si esas brechas en el determinismo, realmente abren alguna posibilidad al libre albedrío de las máquinas o no.

Pero eso queda ya para otro post.


Artículos de este blog relacionados

viernes, 16 de enero de 2026

Trabajo y empleabilidad en tiempos de Inteligencia Artificial. Una reseña de "De la EGB a la IA"

'De la EGB a la IA' es un libro coral que ofrece diferentes perspectivas sobre el impacto de la tecnología digital, especialmente la inteligencia artificial, en el ámbito laboral y la empleabilidad con especial foco en las personas jóvenes. En él, cada uno de sus trece autores ofrece, en un capítulo diferenciado, un reflexión en un campo específico que constituye su ámbito de interés y/o experiencia.

El libro se encuentra prologado por Juan Zafra con un inicio titulado 'El mundo será como queramos hacerlo' y, a partir de ahí, se estructura en doce capítulos cada uno de diferente autoría y temática, tal y como sigue:

  • 'Capítulo 1. Época de nuevos y mejores hombres (Félix Hernández de Rojas):' ofrece una mirada amplia, que incluye lo económico, lo cultural y lo ético, muy apoyada en datos e informes, y con toques de geoestrategia y geopolítica, acerca del impacto y los retos del mundo digital.

  • 'Capítulo 2. Empleabilidad en el s. XXI (Manuel García Gil):' a través de un diálogo padre-hijo, en apariencia ligero pero muy ilustrativo, reflexionamos sobre la empleabilidad y el desarrollo de capacidades.

  • 'Capítulo 3. La importancia de desarrollar una nueva mentalidad digital (Virginia Cabrera Nocito):' Una explicación de lo que es la mentalidad digital, qué habilidades y capacidades comprende y los ejes para el desarrollo de una mentalidad de crecimiento en este entorno digital.

  • 'Capítulo 4. Algo más que tecnología para tu plan digital personal (Pablo Pinillos):' identificación de las habilidades que, más allá del casi inevitable conocimiento STEM, deben adornar al profesional del presente y del futuro. Unas habilidades que incluyen, entre otras muchas, la comunicación verbal, no verbal y escrita, y unas habilidades que se pueden apoyar en el teatro como forma de entrenamiento. Y también una visión casi de marca personal que aboga por la gestión de la reputación digital y el establecimiento de un plan de marketing personal.

  • 'Capítulo 5. Guía para la supervivencia en el apocalipsis zombi laboral (Julio Jesús Sánchez):' Una reflexión que puede parecer jocosa pero que en realidad muestra muchas sombras para la perspectiva laboral que vienen de la mano, o como consecuencia, de la transformación digital y que la explosión de la inteligencia artificial no hace sino agravar. Se analiza ese impacto y se acaba proponiendo un recetario con ocho ingredientes para sobrevivir en ese 'apocalipsis zombi'.

  • 'Capítulo 6. Tu responsabilidad en un mundo robotizado (Ignacio G.R. Gavilán):' Una cerrada apuesta por la ética y la responsabilidad, institucional y corporativa, pero sobre todo individual, y para con los demás, pero también con uno mismo, ante los desafíos éticos y sociales que plantea lo digital y, muy especialmente, la inteligencia artificial y el auge de los robots.

  • 'Capítulo 7. Cómo manejar la no tan inteligente inteligencia artificial en el puesto de trabajo (Roberto García Esteban):' Parte de una cierta desmitificación de la inteligencia artificial para luego identificar sus tres principales impactos en el terreno laboral y ofrecer unas consideraciones sobre la sustitución o no del ser humano por la inteligencia artificial.

  • 'Capítulo 8. IA generativa, liderazgo y nuevos modelos de colaboración (Alejandro de Fuenmayor Rossell):' Una larga e ilustrada reflexión acerca del impacto de la revolución digital y cognitiva e, incluso, de la pandemia del COVID con foco en la automatización e incluso los paradigmas de desarrollo de software, finalizando con mirada al futuro en cuanto a tendencias tecnológicas y su impacto en el trabajo y culminando en una propuesta final de un nuevo modelo de trabajo.

  • 'Capítulo 9. Las plataformas de metaverso en el futuro del trabajo (José Carlos Martín Marco):' Ahora que parece que el metaverso ha perdido fuelle, aquí nos encontramos con una decidida y argumentada apuesta por los entornos de colaboración a través de avatares en entornos virtuales en 3D, una apuesta que se desarrolla siguiendo todo el desarrollo histórico de las tecnologías de comunicación, interacción y virtualización.

  • 'Capítulo 10. ¿Por que te digo que la productividad no asegura la creatividad? (Javier Lorente):' la importancia, la necesidad en realidad de la creatividad y la de su desarrollo, una importancia que se argumenta comenzando por un análisis de impactos de la digitalización en materias como remotización, escalabilidad, automatización y, finalmente, productividad, para luego analizar la afectación cognitiva de trabajar incorrectamente en entornos digitalizados y eficientes, lo que lleva como consecuencia a la importancia de desarrollar la creatividad para lo que se proporcionan diez consejos prácticos.

  • 'Capítulo 11. ¿Por qué estudiar desarrollo de software en la era del ChatGPT(Víctor Deutsch):' Pone foco en una actividad profesional, el desarrollo de software, cuyos ejecutores, los desarrolladores, han sido los grandes protagonistas de la revolución digital pero cuyo propio empleo puede parecer ahora amenazado por las capacidades que ofrece la inteligencia artificial. Tras un repaso histórico de esta actividad, el desarrollo de software, se defiende la necesidad y utilidad actual de estos perfiles, se identifican las nuevas habilidades que deben exhibir, se apuesta por disciplinas como DevOps o ciberseguridad, y se identifica un nuevo rol para el presente y futuro: el gestor de productos digitales.

  • 'Capítulo 12. El jefe de un cíborg no tiene por qué ser un ingeniero. Humanistas en la era de la IA (Carmen Menchero de los Ríos):' Se concentra en las oportunidades de los profesionales de disciplinas humanistas en este nuevo mundo inundado de inteligencia artificial, incluyendo un repaso por perfiles como psicólogos, pedagogos, antropólogos, documentalistas, periodistas, abogados, filósofos o historiadores.

El libro se cierra con un epílogo firmado por la decimotercera autora, Mercedes Núñez, que resalta la incertidumbre actual y futura, la falta de un suelo firme en que apoyarse lo que trae consigo exigencias en materia de formación constante, colaboración o las así llamadas 'habilidades blandas'. Y culmina con una llamada a dejar espacio también a la desconexión, la conciliación y el descanso.

'De la EGB a la IA' constituye una visión multidisciplinar, rica en perspectivas y apoyada en la larga experiencia profesional y vital de sus autores, sobre lo que nos ha traído y puede traer consigo este mundo cada vez más digital, más tecnológico y con una futuro para el trabajo y el empleo sobre el que existen, seguramente, más incertidumbres que certezas.


Mundos posibles

(Fuente: Elaboración propia a partir de la solapa del libro 'De la EGB a la IA en su edición de 2025 en Caligrama).

Equipo de 'Mundos Posibles'
'Mundos posibles' es un colectivo de profesionales de larga experiencia cuyos miembros tienen en común el haber pertenecido en algún momento de sus carreras a Telefónica y, en concreto, a la unidad Telefónica Empresas de Telefónica de España y haber colaborado en el mítico blog, ya desaparecido, denominado 'A un Clic de las TIC' de esta misma unidad.

Así se presentan:

Somos un colectivo multidisciplinar con largas y diversas trayectorias profesionales. Cada uno de nosotros vive, desde hace años y en primera persona, la transición a la era digital y podría decirse que ha tenido que mudar varias veces de piel. Todos pertenecemos, o lo hemos hecho, a empresas punteras del sector tecnológico, lo que nos ha permitido contemplar con cierta antelación este nuevo mundo. Apenas se abre paso, pero su complejidad ya nos abruma. En el terreno laboral los retos son enormes. Las posibilidades también.

Por eso queremos compartir nuestro aprendizaje con los jóvenes que van a desembarcar en él próximamente, con quienes se tendrán que reinventar y con aquellos que tienen la responsabilidad de seleccionar al talento correcto. No es que conozcamos el futuro, pero sí tenemos algunas claves. Cada uno, las suyas. Pensamos que una visión poliédrica y plantearse las preguntas adecuadas es la mejor estrategia en tiempos de incertidumbre. En este libro queremos compartir nuestras lecciones aprendidas.

Los componentes de este grupo son, en orden alfabético:
  • Virginia Cabrera Nocito
  • Víctor Deutsch
  • Alejandro de Fuenmayor Rossell
  • Roberto García Esteban
  • Manuel García Gil
  • Ignacio G.R. Gavilán
  • Félix Hernández de Rojas
  • Javier Lorente
  • José Carlos Martín Marco
  • Carmen Menchero de los Ríos
  • Mercedes Núñez Sánchez
  • Julio Jesús Sánchez
  • Pablo Pinillos Clemente

Puedes conocer más de 'Mundos posibles' visitando o siguiendo su su página en LinkedIn.

Vídeo de promoción


Tanto la personalidad y trayectoria como el planteamiento y contenido del libro se resumen en este vídeo de promoción lanzado por el equipo de 'Mundos posibles' .



Ficha técnica:


EDITORIAL: Caligrama
AÑO: 2025 
ISBN: 979-8341634756
PAGINAS: 350

miércoles, 14 de enero de 2026

Determinismo y el gobierno de la aleatoriedad en grandes modelos de lenguaje

Hace ya casi tres meses, publiqué en este mismo blog un artículo titulado 'Sobre el determinismo y los modelos generativos'. En él razonaba sobre el eventual determinismo o no de los modelos generativos, fundamentalmente los grandes modelos de lenguaje.

Pero, por un lado, siento que me han quedado cosas por decir (incluso por pensar) y, por otro, he conocido alguna información nueva que añadir, así que voy a retomar este asunto sobre el determinismo de los modelos generativos escribiendo, al menos, dos nuevos artículos (éste es el primero) y no me extrañaría que alguno más.


Entre un problema operativo y un problema ético


En el primer artículo en titulado 'Sobre el determinismo y los modelos generativos', hablaba de una doble visión o una casi doble conclusión. Así, concluía que, si miramos a los modelos de lenguaje (casi mejor habría que decir las aplicaciones basadas en ellos), como usuarios y desde un punto de vista práctico, claramente debemos considerar que ese tipo de modelos o aplicaciones son probabilistas, no deterministas.

Es importante tenerlo claro para no llevarnos sorpresas sobre sus resultados, para ser conscientes de que debemos aplicar criterio y juicio crítico a los resultados que nos ofrecen y a adoptar precauciones si los utilizamos en el campo de la automatización, asunto del que también hablé en otra serie de posts.

Sin embargo, si entramos a un nivel 'micro', entendiendo mejor cómo funcionan en detalle, mi conclusión, la que expresé en ese primer post, es que este tipo de modelos son deterministas. Curiosamente, aunque esa conclusión la obtengo con una análisis mucho más técnico y detallado, las consecuencias no tienen tanto que ver con lo operativo como con lo ético.

Ya hace bastante tiempo argumenté también el determinismo de la inteligencia artificial, especialmente de las redes neuronales en el post  'Los algoritmos de Inteligencia Artificial sí saben explicarse' y cómo eso arrojaba una perspectiva diferente sobre la explicabilidad de la inteligencia artificial, uno de los campos donde se produce mayor debate ético.

Pero adicionalmente, el determinismo importa para el debate sobre la eventualidad de un libre albedrío, de una voluntad propia por parte de algoritmos y máquinas. E importa porque, si hablamos de algoritmos deterministas, no se me ocurre cómo pueden tener nada que se parezca a un libre albedrío o una voluntad propia. Pero si no son deterministas 'la cosa' queda más abierta.


De dónde partimos


De forma muy, muy simplificada, recordar que los grandes modelos de lenguaje funcionan, de manera iterativa, generando su salida paso a paso, podríamos decir que palabra a palabra, aunque en realidad es 'token' a 'token', y que en cada paso toman como entrada un texto que incluye, simplificando, tres cosas: 

  • el 'prompt' que ha introducido el usuario
  • información de contexto 
  • el texto que ha generado hasta el momento como salida.

Y añadir un detalle más: aunque el resultado de final de cada iteración es un nuevo token que se añade a la salida, hay un paso anterior en que lo que realmente tenemos son un conjunto de 'tokens' posibles junto con un valor de probabilidad de ser el 'token' más adecuado. Y el algoritmo acaba eligiendo uno de esos 'tokens' posibles, como el token ganador y que finalmente se añade al texto de salida.

En mi post anterior sobre este tema argumentaba que, pese a que hablamos de probabilidad, todo el algoritmo está perfectamente definido y la aleatoriedad, en informática, se suele basar en una 'seudoaleatoriedad' en una funciones complejas con una semilla de entrada y que generan una salida que, aunque a efectos prácticos es perfectamente aleatoria, en su visión matemática interna está perfectamente determinada. 

Por todo ello, en mi post anterior afirmaba que estos algoritmos, estrictamente hablando son deterministas, aunque externamente no se manifiesten así.


El gobierno de la aleatoriedad de los grandes modelos de lenguaje y sus parámetros 


Y ya llegamos al tema a que quería dedicar este post: el gobierno de la aleatoriedad. Por 'gobierno de la aleatoriedad', un término quizá algo grandilocuente que me acabo de inventar para este artículo, me refiero, simplemente, a los parámetros que gobiernan el comportamiento de la aleatoriedad en grandes modelos de lenguaje

Se trata de unos parámetros que, como usuarios de herramientas basadas en modelos de lenguaje como ChatGPT o Gemini no percibimos, pero que sí que son utilizados (o pueden serlo) por desarrolladores que construyen aplicaciones basadas en modelos de lenguaje.

En ese sentido, se trata de unos parámetros que, aunque no son de conocimiento del público general, sí que son bastante conocidos para los perfiles más técnicos

Aunque estos parámetros están descritos en multitud de fuentes, para este post he consultado el libro 'LLMOps: Managing Large Language Models in Production' de Abi Aryan (simplemente porque recordaba que ahí hacía una buena pero concisa descripción). 

Veamos esos parámetros.


La temperatura


El parámetro más conocido, y seguramente el más importante, es el que se denomina 'temperatura' un nombre elegido dado el cierto paralelismo que guarda con la temperatura real en procesos termodinámicos de la naturaleza.

Sin entrar en la formulación matemática (que la fuente que utilizo no explica) lo que controla la temperatura es, precisamente, hasta qué punto el modelo es más o menos aleatorio, hasta qué punto, por decirlo de alguna manera es más capaz de aportar respuestas originales. Cuando presenta valores bajos, las respuestas son más conservadoras y, es lo que normalmente querríamos para un análisis técnico o científico o para una automatización. Cuando presenta valores altos el modelo es más 'atrevido', más original y es lo que querríamos, por ejemplo, para generar historias creativas o un 'storytelling'.

En teoría, si fijamos esa temperatura a cero, el modelo deja de ser probabilista para convertirse en determinista, sin aleatoriedad.


Parámetros para acotar opciones


Hay otros dos parámetros que acotan un poco las opciones finales del modelo o, si se prefiere, su diversidad ¿Qué quiere decir esto?

Como comentaba más arriba, hacia el final del proceso, el modelo ofrece varios 'tokens' candidatos con un nivel de probabilidad y elije como resultado final, uno de esos tokens candidatos.

Pues bien, existen dos parámetros que controlan el número de tokens candidatos entre los que se puede elegir al final. El parámetro denominado 'top-k' acota en 'k' los token finales candidatos. Por ejemplo, si top-k se ajusta a 5, se elegiría sólo entre los cinco tokens más probables

Con una filosofía parecida pero ligeramente diferente, tenemos el parámetro 'top-n' en que lo que se fija es un umbral de probabilidad acumulada, y al final se elige, el menor número de tokens, de entre los tokens de mayor probabilidad, tales que la suma de sus probabilidades supera el umbral establecido por el parámetro.

Ambos parámetros acotan el número de opciones posibles de cara a la elección final pero de forma tal que, cuanto mayor es su valor, mayor es la diversidad y la originalidad.


Parámetros para buscar la variedad


Finalmente, y quizá un poco menos conocidos, tenemos dos parámetros que actúan como penalizaciones pero que lo que buscan es fomentar la variedad. Es como cuando escribimos un texto literario y usamos sinónimos para evitar repetir constantemente la misma palabra. Aunque semántica y técnicamente, repetir constantemente la misma palabra es correcto, desde un punto de vista de discurso, queda poco elegante, poco artístico y, en casos extremos, poco natural.

Pues bien en esa línea, un primer parámetro es la penalización de frecuencia ('frequency penalty') que aplica una penalización a los tokens candidatos en función de la frecuencia con que han aparecido en el texto ya generado.

Otra estrategia parecida pero ligeramente diferente, se basa en el parámetro penalización de presencia ('presence penalty') que penaliza a los tokens que han aparecido una vez en el texto general, con independencia del número de veces que lo hayan hecho. 


Alguna 'pre-conclusión'


Estos parámetros que hemos visto, ilustran cómo se gobierna el nivel de aleatoriedad, digamos 'externa', de los modelos. Pero esa ilustración no altera mis conclusiones del post que mencionaba al principio: los modelos, aunque externamente presentan un comportamiento probabilista, internamente son, en el fondo, deterministas.


Pero la cosa no acaba aquí


Sin embargo, tras la publicación de ese primer post sobre el determinismo, han llegado a mi nuevos análisis y nuevas perspectivas que podrían poner en cuestión el determinismo. Así que se impone reflexionar sobre ello y comentar las conclusiones en algún post próximo.


Artículos de este blog relacionados


viernes, 9 de enero de 2026

Conociendo el Vibe coding y más con Addy Osmani

'Beyond Vibe coding' es un libro que, como el título sin duda expresa, nos habla del 'Vibe coding', es decir, de la generación de código software usando grandes modelos de lenguaje a los que se les aportan los requisitos y necesidades en lenguaje natural. Pero, como también el título expresa, no se queda ahí sino que, en realidad, nos habla de todo el campo de la ingeniería de software apoyada, en mayor o menor medida, en la inteligencia artificial (en esencia, en grandes modelos de lenguaje).

Se trata de un libro fundamentalmente dirigido a desarrolladores y arquitectos, pero que creo aporta valor a cualquiera implicado o familiarizado con la ingeniería de software.

El libro, de mediana, casi corta, extensión, se extructura en once capítulos agrupados en tres partes, como sigue:
  • 'I. FOUNDATIONS': Aporta los conceptos fundamentales sobre 'Vibe coding' pero también sobre el uso de lenguaje natural para relacionarse con los modelos de lenguaje en forma de 'prompts'. Incluye los dos primeros capítulos:

    • '1. Introduction: What is Vibe coding?': Comienza exponiendo el origen del término 'Vibe coding' (debido a Andrej Karpathy) y hace una distinción entre el, digamos, 'puro vibe coding', en que toda la interacción para la generación de código se hace mediante lenguaje natural y lo que denomina ingeniería asistida por IA ('AI-assisted engineering') en que la IA se integra dentro de los entornos de desarrollo o IDE ('Integrated Development Environment') como un apoyo. Luego habla de la intención ('intent') como aquello que el desarrollador quiere conseguir de su software y delinea el uso de los prompts para expresarlo. Además muestra un esquema de ciclo de vida o mecánica de trabajo y añade un vistazo a las principales herramientas y los principales modelos para finalizar cantando los beneficios del uso de la IA en el desarrollo software.

    • '2. The art of the prompt: communicating effectively with AI': Un capítulo dedicado a la ingeniería de instrucciones ('prompt engineering') aplicada al desarrollo de software. Habla de características fundamentales como la claridad y especificidad y propone un trabajo iterativo. Luego describe técnicas habituales de prompting tanto básicas como más avanzadas.

  • 'II: AI CODING IN PRACTICE': La parte nuclear del libro y que aborda los diferentes elementos de la ingeniería de software apoyada en IA. Esta compuesta por cinco capítulos, a saber:

    • '3. The 70% problem: AI-assisted workflows that actually work': Plantea el problema del 70% en el sentido de que esa es la proporción aproximada en que el trabajo con código es casi sencillo y que sigue patrones bien definidos, siendo por tanto objeto claro de la ayuda de la IA, mientras que el 30% restante necesita intervención humana. Tras repasar cómo los desarrolladores trabajan en la práctica con la IA, aporta unas 'reglas de oro'.

    • '4. Beyond the 70%: maximizing human contribution': Se centra en la parte de la aportación humana y lo hace distinguiendo tres niveles: ingenieros senior, ingenieros de nivel medio y desarrolladores junior.

    • '5. Understanding generated code: review, refine, own': Aborda la revisión y prueba del código generado por la IA. Nos advierte de que la IA tiende a generar un código basado en los patrones más habituales pero que no siempre resultan óptimos. Luego presenta estrategias para la depuración del código o para el denominado 'refactoring' (rediseño y construcción) para conseguir mejores características de explotación y mantenimiento. Y finaliza enfatizando la importancia de las pruebas en sus diferentes niveles: unitarias, de integración y extremo-a-extremo.

    • '6. AI-driven prototyping: tools and techniques': Se centra en el prototipado, quizá uno de los ámbitos donde mejor se puede aplicar el 'vibe coding'. Nos habla de herramientas incluyendo las que generan sólo el 'mockup' (ej. Vercel), las que generan aplicaciones completas (como Lovable o Bolt.new) o las más avanzadas que se integran en los IDEs, como Cursor, Windsurf o Cline. Y luego trata algunas mecánicas de trabajo que incluyen la iteración hasta conseguir el prototipo deseado, la forma de evolucionar un prototipo a un sistema en producción o como hacer frente a algunos desafíos en el prototipado.

    • '7. Building web applications with AI': Y finaliza esta parte dedicada al desarrollo en sí mismo con otro caso paradigmatico para el uso de 'vibe coding': las páginas web. Describe cómo trabajar tanto en el 'front-end', como en el 'back-end' (sobre todo uso de APIs), como integrar bases de datos, llegando a una integración 'full-stack'. Y no deja de aportar también sugerencias en cuanto a prueba y validación.

  • 'III. TRUST AND AUTONOMY': Por un lado aborda aspectos más propios de la operación (seguridad, despliege, mantenimeinto, etc), y por otro revisa consideraciones éticas y tendencias. Incluye los cuatro capítulos finales:

    • '8. Security, maintanability, and reliability': Comienza enfocándose en los aspectos de seguridad, identificando primero algunas vulnerabilidades comunes y describiendo luego elementos de auditoría de seguridad. Luego salta a elementos de mantenibilidad aportando consejos sobre cómo conseguir esa mantenibilidad y también sugiriendo y explicando cómo hacer revisiones de código. Finaliza con consejos sobre el despliegue ('deployment`) y cómo hacerlo más confiable.

    • '9. The ethical implications of vibe coding': Se centra en tres grandes problemáticas, a saber: propiedad intelectual, sesgos y equidad y trasparencia y atribución. Como guía para un desarrollo ético aporta, además, cinco reglas de oro.

    • '10. Autonomous background coding agents': Explora una línea emergente como es el salto de la IA como asistente o generador de código pero bajo petición humana a los agentes autónomos de codificación en que, siguiendo la filosofía de los agentes, se les marcan a éstos unos objetivos de alto nivel y los agentes se encargan del resto. Tras explicar el concepto, describe las líneas básicas de cómo funcionan estos agentes y finaliza comparando su comportamiento con el de un IDE.

    • '11. Beyond code generation: the future of AI-augmented development': Un capítulo de mirada al futuro con tendencias que estructura en varios apartados: prueba y depuración, diseño y experiencia de usuario, dirección de proyectos, agentes autónomos y lenguajes de programación. Remata el capítulo y el libro destacando cinco grandes ideas sobre cómo el 'vibe coding' está transformando la industria de la ingeniería software.
'Beyond Vibe coding' me ha parecido un gran libro porque describe de manera comprensible y muy correcta todos los conceptos, porque es abarcador en el sentido de no atacar sólo el puro desarrollo sino todo el contexto de la ingeniería de software y, sobre todo, porque, pese a tratar un tema de máxima actualidad y muy propicio para el 'hype', el tratamiento es muy realista, muy sensato y se nota que basado en experiencia real.

Sin duda, lo recomiendo.

Addy Osmani

(Fuente: traducción asistida con IA de su entrada en página oficial)

Addy Osmani
Addy Osmani es un ingeniero de software irlandés que actualmente trabaja en el navegador web Google Chrome y Gemini con Google DeepMind.

Desarrollador desde hace más de 25 años, lleva más de trece años trabajando en Google, centrado en hacer que la web sea más fluida para los usuarios y los desarrolladores web. Le apasionan la ingeniería asistida por IA y las herramientas de desarrollo. Anteriormente trabajó en sitios web de empresas de la lista Fortune 500.

Addy es autor de varios libros, entre los que se incluyen 'Learning JavaScript Design Patterns', 'Leading Effective Engineering Teams', 'Stoic Mind' e 'Image Optimization'.

Ha impartido más de 175 charlas en todo el mundo. También en su blog, Substack y LeadDev.

Puedes conocer más del autor visitando su página oficial, su perfil en LinkedIn o siguiéndole en X donde se identifica como @addyosmani.

jueves, 8 de enero de 2026

Tres formas de equidad algorítmica

Una de las problemáticas éticas más conocidas y de las que más se habla alrededor de la inteligencia artificial es la de los sesgos algorítmicos.

En este post, que pretende ser muy breve, voy a consignar una clasificación de estos sesgos. Bueno, estrictamente hablando, no de los sesgos, sino de la equidad o de problemáticas de equidad.

Antes, algún recordatorio y  aclaración. 


Del error a la ética: sesgo y equidad


Un sesgo, dicho en general y de forma simplificada, es una desviación consistente del valor correcto. Últimamente, hablamos de sesgos a propósito de los algoritmos de inteligencia artificial, pero en realidad, la temática de sesgos ocupa las matemáticas y sobre todo la ingeniería desde hace muchos años.

Así, por ejemplo, los sesgos son importantes cuando estamos hablando de instrumentación y equipos de medición. Y este ámbito nos permite de forma muy simplificada ilustrar qué entendemos por un error consistente. 

Vamos a imaginar el caso de una báscula, una báscula casera para pesarnos. Hablamos de un error cuando esa bascula da un valor incorrecto de nuestro peso (ya sea más o menos). Y hablamos de consistente para querer decir que siempre se produce en el mismo sentido (y en muchos casos diríamos que en la misma magnitud). Así, por ejemplo, una báscula que comete errores aleatorios (algo raro, la verdad)  produce valores incorrectos pero no tiene sesgo. Sin embargo, si siempre nos añade medio Kg de más, entonces está siendo consistente: siempre añade ese medio kilo. Y eso es, precisamente, un sesgo: un error consistente.

Para eliminar este tipo de errores en instrumentación se suele recurrir a lo que se denomina la 'calibración', que en el caso sencillo de la báscula se reduce a ajustar el cero, eliminando en este caso sencillo el error y el sesgo.

En este sentido, y con esta visión ingenieril del sesgo, suelo decir en mis clases que un sesgo es un error siempre. Sin embargo, ese error técnico u operativo, no siempre es un problema ético. Se convierte en problema ético cuando ese sesgo nos hace tratar de manera diferente (lo que denominamos discriminar) a personas o colectivos, entendiendo que ese tratamiento diferencial es injusto y que perjudica a esas personas y colectivos.


Tres formas de equidad


En general no distinguimos, al menos yo no me lo he encontrado a menudo, una distinción entre tipos de equidades. Sin embargo, de manera algo inesperada, inesperada porque la fuente es un libro fundamentalmente técnico, me he encontrado en 'Azure AI Services at Scale for Cloud, Mobile, and Edge' de  Simon Bisson, Mary Branscombe, Chris Hoder y Anand Raman, una identificación y descripción breve de tres formas de equidad.

Antes de mencionarlas, avisar, dadas las dificultades terminológicas en traducción, que lo que aquí estoy denominando 'equidad' se corresponde con la palabra 'fairness' en el libro.

Advertido esto, veamos ya esas tres formas o variantes de equidad. Son las siguientes:


  • Equidad de calidad de servicio ('quality of service fairness') que tiene que ver con que los resultados sean igual de correctos para todos los colectivos. Así, se mencionan las aplicaciones de reconocimiento facial que, por problemas de muestreo para el entrenamiento, tienden a dar peores resultados en personas de color y aún peor en mujeres de color.

  • Equidad de asignación ('allocation fairness') que habla de que el algoritmo ofrezca las mismas oportunidades y recursos a todas las personas y colectivos, por ejemplo, tratar a todas las personas igual en una aplicación de filtrado de currícula en un procesos de selección. . Esta es, me parece, el tipo de equidad en la que solemos pensar.

  • Aunque de manera menos nítida también nos habla de una equidad de representación, que busca que los colectivos estén justamente representados en profesiones, situaciones, etc (por ejemplo, cuando pensamos en quién puede ser CEO).
No me parece que esta propuesta sea una clasificación muy trabajada, ni me consta que se corresponda con una clasificación de la equidad más ampliamente admitida, pero me ha parecido interesante y no quería dejar de mencionarla.


Conclusiones


Simplemente, recordar que un sesgo es un error técnico u operativo y que se convierte en un problema ético cuando ese error conduce a tratar de manera diferente, discriminar y perjudicar, a personas o colectivos concretos. Y, dentro de esto, hemos revisado, muy brevemente, tres variantes.