LLMs: algunas herramientas (potencialmente) útiles

Artefactos de Claude

Uno de los aplicaciones derivadas de los LLMs que más satisfacciones me están dando son los artefactos de Claude (véase, por ejemplo, esto).

Es complicado en todo caso ejecutar aplicaciones web generadas por Claude (vía artefactos) por defecto sin haber configurado previamente un entorno en node con las dependencias adecuadas. Los artefactos están pensados para, por defecto, ser alojados por Claude directamente. Si uno quiere bajar el código y correrlos en su propia máquina, tiene que hacerlo en un entorno en el que existan las dependencias correspondientes.

La paradoja (de Simpson) detrás de ciertos argumentos en pro de una subida generalizada de salarios

Trae El Confidencial un artículo de Javier Jorrín —según Jesús Fernández-Villaverde, el mejor periodista económico ahora mismo en España—, titulado La mejora de la productividad permitirá a las empresas prolongar la subida de salarios. El artículo se resume en tres enunciados que, así, en frío, según se verá, son contradictorios:

  1. Ha aumentado la productividad (PIB por hora trabajadda) en España.
  2. Eso da margen para que suban los salarios.
  3. El incremento de la productividad se debe a que ganan peso los sectores económicos más productivos.

La problemática relación entre (1) y (2) se la dejo a los economistas. Se pueden elaborar experimentos mentales en los que (2) se sigue de (1) y otros en los que no. Evaluar su pertinencia no es materia de estas páginas.

k-means "2.0" y cuatro asuntos más

  1. Existe un blog muy raro y entretenido, Weierd Data Science, en el que hace años publicaron una serie de artículos realizando un análisis estadístico no enteramente trivial del manuscrito Voynich. Esta es la última entrega de la serie de cuatro entradas, que ilustra y entretiene más y mejor que esas actividades que alguien ha decidido que formen parte del canon cultural.
  2. Son estos tiempos de llave inglesa: una única herramienta para apretar y aflojar cualquier tipo de tuerca. Me refiero, obviamente, al deep learning y las redes neuronales. Sin embargo, fuera del foco mediático, la gente sigue construyendo y ajustando modelos con formas funcionales fuertes, como el modelo de Wiener en sicología.
  3. k-means 2.0
  4. He debido de comentar y enlazar el artículo Decision-making under uncertainty: heuristics vs models una docena de veces. Pero siempre encuentro un motivo nuevo para volver a él.
  5. En The likelihood principle in model check and model evaluation, se discute un asunto que no llega, pienso, a la categoría de problema: dos modelos generativos distintos pueden compartir verosimilitud.

¿A quién crees que van a votar tus vecinos?

La historia, telegráficamente, es así:

  1. Hubo unas elecciones hace unos pocos días en EEUU.
  2. Existieron las concomintantes encuestas, predicciones y… mercados de apuestas.
  3. De entre los últimos, Polymarket se destacó por asignar unas probabilidades de victoria a Trump muy superiores a las del bendito consenso.
  4. Hubo gente muy sabida que criticó mucho a Polymarket. El argumento principal era:
    1. En Polymarket se juega con dinero.
    2. La gente rica tiende a tener más querencia por Trump.
    3. La gente rica tiende a tener más querencia por los mercados, las apuestas, etc.
    4. La gente rica que apoya a Trump está sobrerrepresentada entre los usuarios de Polymarket —a diferencia de lo que ocurre, por ejemplo, en Metaculus— y eso sesga el mercado.
  5. Se supo que un solo inversor había realizado pujas muy elevadas en Polymarket.
  6. Incluso se especuló si ese inversor era realmente Elon Musk (y que intervenía en él para influir maliciosamente en el proceso electoral).
  7. Este inversor ha acabado ganando bastante dinero (unas cuantas decenas de millones de euros) con sus apuestas.

Se ha sabido, no obstante, que el inversor en cuestión es un tal Théo, de Francia.

Un argumento en contra del redondeo y cuatro breves asuntos más

  1. Ahora se pueden correr Stan en el navegador (vía WebAssembly) aquí.
  2. En este artículo relacionado se preguntan sobre la problemática relación entre MCMC y las GPUs. La respuesta es, esencialmente, que no: el MCMC es iterativo y no se presta al paradigma SIMD (single instruction, multiple data). Los únicos casos en los que he visto alguna ganancia son esos —rarísimos— en los que el modelo involucra algún tipo de red neuronal que sí que puede aprovechar el paralelismo.
  3. En este artículo, John D. Cook se suma los críticos del BMI —que no es novedad— y sugiere reemplazarlo —esto sí— por algún tipo de índice de redondez (del cuerpo del sujeto).
  4. Un problema de los LEFTs es que la volatilidad diaria socava gravemente su rentabilidad. Para evitar ese problema, se han lanzado LEFTs que cierran semanal o mensualmente.
  5. Una recomendación habitual es evitar la sobreprecisión en los números publicados (p.e., $p = 0.0421942). Sin embargo, en Please, show lots of digits argumenta en contra: esos números no redondeados aportan información adicional que puede permitir realizar ingeniería inversa y revelar cifras y procedimientos no explícitamente mostrados en los artículos.

Los estadísticos, hasta cierto momento, no hicieron más que interpretar de diversos modos el mundo; luego, cuando quisieron transformarlo, se encontraron con una serie de problemas que no anticiparon

A veces los estadísticos analizan datos. Desde afuera de mundo, dan su visión sobre hechos pasados. Fin de la historia.

Desde cierto tiempo para acá, a los estadísticos (y colegas de profesiones anejas) se les piden no solo interpretaciones sobre el mundo sino, también, predicciones, consejos, ingredientes para la toma de ciertas decisiones, etc. Eso los inserta hasta las zancas en el mundo. Esas predicciones que hacen, operan sobre el mundo del que se extrajeron los datos y, al hacerlo, lo alteran. Como consecuencia, esas predicciones contienen un germen de contradicción; alguien puede querer leer esto al respecto.

Más allá del "software" libre y algunos asuntos más

  1. Últimamente, casi siempre que se usan las palabras tecnología y enseñanza en una misma frase es para denunciar los perniciosos efectos de la primera en la segunda. No obstante, aquí_ se señala una de sus potenciales atractivos: adecuadamente usada, podría permitir gestionar la varianza (por no usar el término tabú, desigualdad), en el desempeño escolar.
  2. En Stan’s autodiff is 4x faster than JAX on CPU but 5x slower on GPU (in one eval) se ponen en cuestión “leyes de la naturaleza/informática” que no son otra cosa que generalizaciones. Va por casos. Doy fe.
  3. Uno de los problemas de las licencias de abiertas es que, por diseño, olvidan una dimensión muy importante del desarrollo de código: hay gente que vive de eso (véase, por ejemplo, Free as in Do as Your Told). Un nuevo tipo de licencia, la fair source, quiere remediar el problema. En resumen, es un tipo de licencia privativa que deviene automáticamente abierta al cabo de un tiempo razonable.
  4. Otro de los problemas que ocurren (a veces) al desarrollar software libre: que tus dependencias pueden quedar huérfanas, como aquí
  5. Xata ofrece alojamiento para instancias de Postgres que cuenta con un segmento gratuito (free tier). Aquí describen la solución tecnológica y el impacto económico de ese servicio (en concreto, de cómo usan lo uno para minimizar lo otro).

El bee-bot vía "artefactos" de Claude

El “bee-bot” es un juego infantil educativo no particularmente barato. Así que he construido una versión web de la cosa en poco rato. En particular, le he dicho a Claude:

I want to create a webpage to play a version of the bee-bot game for children. In the main canvas there is a grid. In two random squares of the grid, there are a bee and a flower. The interface are four buttons with numbers 1-4, four arrows and a go button. The child needs to type the sequence of numbers and arrows and when the go button is pressed, the bee will move. Say, if the sequence is 2, up, 4, right, 2, the bee will move two squares, then turn up, advance 4 squares, turn right, and move two squares.

Cinco asuntos breves sobre modelización estadística

Hoy, cinco breves comentarios sobre dos temas distintos relacionados con la modelización estadística. Sobre el primero, técnicas alternativas de modelización, tres enlaces:

  1. What is elastic weight consolidation?, una técnica para afinar el entrenamiento de modelos profundos. Imagínese que a un LLM ya existente le queremos enseñar, por ejemplo, legislación penal española. En tanto que lo reentrenamos con el código penal, no queremos que olvide todo lo demás que aprendió penosamente. Una ténica que se emplea es la llamada elastic weight consolidation, donde, como en elastic-net, se penaliza el que los pesos se desvíen de un valor de referencia. En elastic-net, ese valor de referencia es el cero. En elastic weight consolidation, son los pesos del modelo inicial. Porque queremos pesos, obviamente, distintos de los iniciales pero no demasiado lejos de ellos. (Queda como eljercicio para el lector la reinterpretación bayesiana del párrafo precedente).
  2. Universal estimation with Maximum Mean Discrepancy (MMD) habla de cómo se puede usar MMD como función de pérdida al ajustar modelos. El MMD es el método de los momentos de toda la vida, pero a lo bestia, es decir, aproximándolos todos ellos a la vez. Se puede ver una aplicación —ya obsoleta por las nuevas IA generadoras de imágenes— aquí.
  3. No tengo ninguna opinión particular sobre el uso de números complejos en el suavizado exponencial. No tengo claro qué se gana (¿algún grado de libertad?), pero dejo constancia de que alguien, en algún lugar, parece estar usándolo.

El segundo, sobre dos aspectos importantes de la modelización estadística:

Interpretación de modelos: el elefante en el salón

Hay mucha teoría sobre interpretación de modelos (estadísticos, de machine learning y, ahora, de deep learning). Hay muchos métodos y herramientas para ello; de algunas he hablado en el pasado por aquí. Hay también, mucha demanda de ello, en gran medida por motivos legales y regulatorios. Pero en toda la literatura al respecto apenas nadie se toma la molestia de advertir que hay un elefante en el salón.

Este elefante tiene que ver con la imposibilidad material de la tarea en cuestión. Todo lo que se hace, como se discutirá a continuación, es aplicar meros paños calientes, hacer como que se hace, pero evadiendo el meollo (de cuatro toneladas, grandes orejas y trompa descomunal).

Cómo exprimir la prueba de Kolmogorov-Smirnov y unos cuantos asuntos más

Suponía que era de conocimiento universal. Pero si John D. Cook siente la necesidad de recordarnos que las probabilidades pequeñas se suman pero las grandes no, será por algo.

Lo raro es que no ocurra nunca nada altamente improbable, edición número 6210.

En los extremos, la varianza importa más que la media. (Se refiere a dos poblaciones con medias y varianzas distintas. Si una observación es extrema, es casi seguro que viene de la población con mayor varianza que la de mayor media, para casi todas las definiciones razonables y compatibles de razonables de mayor y extremo).

SVI, ELBO y todas esas cosas: un ejemplo básico

I.

Va por delante que esta entrada está basada en esto. Se trata, de hecho, de las notas que he extraído mientras profundizaba en la implementación que hace NumPyro de la inferencia variacional, el ELBO, etc.

Antes de nada, nos quitamos los requisitios de en medio:

import jax.numpy as jnp
import matplotlib.pyplot as plt
import numpyro

import numpyro.distributions as dist
import numpyro.distributions.constraints as constraints

from jax import random
from numpyro.infer import SVI, Predictive, Trace_ELBO, MCMC, NUTS

rng_key = random.PRNGKey(seed=42)

Definimos un consabidísimo modelo —tiradas de moneda con una priori $\text{Beta}(10,10)$— y unos datos —sesenta caras y cuarenta cruces—:

Algunos apuntes sueltos sobre causalidad

Bajo cierto punto de vista, el estudio estadístico de la causalidad viene a consistir en la estimación de modelos incompletos. Un modelo completo es uno que contiene todas las ecuaciones / relaciones causales que afectan a un fenómeno. En uno incompleto, las variables y ecuaciones faltantes introducen sesgos de distinta naturaleza. Uno de los sitios donde mejor lo he visto contar es en Simulating confounders, colliders and mediators, de donde extraigo, además, el siguiente gráfico: