El 2 de agosto se anunció que hay una nueva regulación (en Europa y California) mediante la cual los textos que generen los modelos de lenguaje, como Anthropic u otros, tienen que tener una “marca de agua”: eso significa que en principio se va a poder detectar si un texto fue generado por IA.
Y me pareció un tema importante porque creo que es sorprendente que de hecho se pueda hacer tal cosa como una marca de agua en un texto.
Hay ejemplos obvios: existe la idea de que los textos de IA son fáciles de identificar porque ocupan em dash. Pero lo interesante acá es que los sistemas de watermarking que se están haciendo ahora dejan, al menos nominalmente, el texto generado sin ninguna alteración, respecto a lo que se hubiese obtenido sin hacer el watermarking. Eso significa que, en principio, ponerles esta marca de agua a los textos no los corrompe de ninguna manera, y eso es lo que me parece interesante.
Hay un matiz importante, que es la indistinguibilidad es en un sentido distribucional, y esa es la clave de por qué funciona: los LLMs usan el principio de generar el siguiente token t+1 con base en lo que se ha observado hasta t. Por ejemplo, si tengo la oración “Hoy en la noche voy a” entonces hay múltiples continuaciones, como “cenar” o “ir al cine”. Los LLMs eligen una u la otra tirando una moneda. El principio bajo el que opera la marca de agua es poniéndole una marca al lanzamiento de la moneda, de manera que se pueda rastrear para atrás. Al hacerlo así el texto se vuelve indistinguible, por definición, del que se hubiera generado sin la marca de agua: en cualquier caso se está muestreando la misma distribución sobre posibilidades de la palabra siguiente. Por eso mismo, el método tampoco depende de qué versión del LLM se usó, sólo depende de que quien quiere descifrar el mensaje tenga la llave (el generador de lanzamientos de monedas).
La idea detrás es la misma que está detrás de los generadores de números pseudoaleatorios, que es cómo los computadores generan aleatoriedad. Debido a que los computadores ejecutan procedimientos deterministas pero carecen de acceso a aleatoriedad genuina, la manera en que, en la práctica, simulan el azar es mediante una función muy complicada o “ergódica”, que está muy desasociada de su estado original. Los simuladores pseudoaleatorios nos permiten trazar y auditar todo el proceso en una predicción que involucra muestreo, por ejemplo, en la predicción de cuál va a ser la temperatura mañana. Volviendo a los LLMs, la marca de agua es la semilla del generador de números aleatorios.
Para ilustrarlo de otra manera: en el post de Anthropic sobre este procedimiento se da el ejemplo del número pi. Una conjetura matemática es que la secuencia de decimales de pi es aleatoria; si uno hace una distribución de los decimales, cada dígito tendría el mismo peso, 1/10. Además, la secuencia de decimales es estadísticamente impredecible: si uno trata de adivinar el siguiente decimal dada la secuencia parcial, probablemente lo haría muy mal, incluso usando algoritmos avanzados de inteligencia artificial. Sin embargo, si uno sabe la receta algorítmica para construir pi el problema se vuelve trivial: calcula el área de una circunferencia de radio 1 y multiplícala por cuatro. Esa disociación entre predictibilidad algorítmica y predictiva es lo que hace posible la generación de números aleatorios en primer lugar, y la implementación de marcas de agua como consecuencia.
Hasta ahora he explicado la mitad del procedimiento: de que se puede inyectar una marca en el generador de manera que el cambio sea, por definición, imperceptible. La parte más importante, sin embargo, es cómo se puede detectar la marca. Esta también es la parte menos obvia y eso es lo que hace que el método en sí mismo sea un breakthrough (originalmente publicado en el 2024 en un paper en Nature por un equipo de DeepMind).
¿Cómo se puede entender esto? La observación principal es que, si yo tengo la clave, eso me da información privilegiada: si yo sé la receta para calcular pi, puedo testear si, al ver el número 3,141592…, es factible que ese número haya sido generado por mi clave o no. Y en ese caso, que me hayan aparecido justo esos números sería una coincidencia. El problema real es sin embargo, más sutil: los LLMs no están simplemente generando decimales, sino usando los decimales para generar palabras. Entonces hay un salto intermedio, que es el de resolver un problema inverso, o de deconvolución, que es la parte no obvia y hace que el método sea sorprendente: a pesar de que las palabras no son las secuencias del decimal en sí mismo, el mecanismo de muestreo va dejando pequeñas señales de evidencia que, si se acumulan lo suficiente, me van a permitir detectar la marca de agua. Se dice entonces que el método tiene poder estadístico, porque un test de hipótesis (el de independencia entre la llave y el texto generado) permite distinguir los textos con marca de los que no la tienen, al menos si el texto es lo suficientemente grande.
A pesar de todas las ventajas y beneficios que supuestamente tiene el método, está basado en supuestos matemáticos que no siempre son verificables. Además, las nociones de distinguibilidad estadística que se estudian no corresponden, uno a uno, a la de identificación de un texto único como generado por IA en el sentido usual. Finalmente, la evaluación empírica presentada oficialmente por sus creadores podría estar sesgada. Queda lugar entonces para que, como se ha mencionado en internet, los textos alterados por una marca de agua sean genuinamente distintos de los que no, o para que el método carezca del poder que se promociona tener. Por último, para una implementación efectiva se requiere el testeo con todos los generadores posibles, cada uno otorgando una clave distinta. Por todos esos matices es difícil saber cómo evolucionará la implementación, pero tiene sentido estar atentos.