Nature 634, 818–823 · 23 octubre 2024 · Google DeepMind · Curso completo
La marca de agua invisible del texto artificial
SynthID-Text, explicado desde cero: sin dar por sabido qué es un token, qué es una probabilidad ni qué es un contraste de hipótesis. Con animaciones, algoritmos línea a línea, 77 referencias enlazadas y el artículo original para descargar.
AUTORES · Sumanth Dathathri, Abigail See, Sumedh Ghaisas, Po-Sen Huang, Rob McAdam (contribución igual) + 19 más, incluidos Demis Hassabis y Pushmeet Kohli
SEDE · Google DeepMind (Londres) y Google (Mountain View)
FECHAS · Recibido 8-abr-2024 · Aceptado 5-sep-2024 · Publicado 23-oct-2024
ESTADO · Desplegado en producción en Gemini y Gemini Advanced. Código abierto en GitHub
MÉTRICAS · 204.000 accesos · 161 citas · Altmetric 1.251
- HTMLArtículo completo en Nature nature.com/articles/s41586-024-08025-4, texto íntegro, figuras y datos ampliados
- PDFDescargar el artículo (6 páginas) La versión maquetada de Nature, lista para imprimir o anotar
- PDFMaterial suplementario Secciones A–I: las demostraciones de no-distorsión, el análisis de entropía, la implementación vectorizada y los algoritmos de muestreo especulativo marcado. Aquí están las matemáticas de verdad
- CódigoImplementación de referencia y datos github.com/google-deepmind/synthid-text, generación, detección y las anotaciones de la evaluación humana
- DOIEnlace permanente para citar 10.1038/s41586-024-08025-4
- BlogResumen divulgativo de Google DeepMind Versión corta y sin fórmulas, útil como lectura previa para la clase
Antes de empezar: descarga el artículo y tenlo abierto al lado. Este curso lo sigue capítulo a capítulo y te irá diciendo a qué figura, definición o algoritmo corresponde cada apartado, así que se aprovecha mucho más leyendo los dos en paralelo. Si solo vas a abrir un archivo, que sea el material suplementario: el artículo de Nature tiene un límite de páginas muy estricto y casi toda la maquinaria matemática está allí.
Dos respuestas. Misma calidad aparente. Una salió de un modelo con marca de agua; la otra, no. A ojo son indistinguibles. Pulsa el revelado.
■ ficha rellena = ese token puntuó 1 en la lotería secreta · ▢ ficha hueca = puntuó 0
Sin la clave secreta, las dos parecen ruido. Con ella, una de las dos tiene demasiadas fichas rellenas para ser casualidad. Eso es toda la marca de agua: un desequilibrio estadístico que solo existe si sabes dónde mirar.
Cimientos
Seis capítulos con todo lo que hace falta saber antes de tocar el artículo. Si ya dominas probabilidad, entropía y contraste de hipótesis, puedes saltar a la Parte II, pero conviene al menos hojear el capítulo 04, porque la idea de función pseudoaleatoria es la que sostiene el método entero.
Qué es un modelo de lenguaje
Empecemos por el principio del principio. Un modelo de lenguaje es una máquina de completar frases. Nada más. Le das un trozo de texto y te dice qué es lo más probable que venga después.
También en el facsímil: puedes ampliar esta base en F03, capítulo 01: qué es un LLM y seguir su arquitectura en F03, capítulo 02: Transformer por dentro.
El teclado predictivo del móvil. Escribes "voy a comprar" y arriba te salen tres sugerencias: "pan", "el", "un". Eso ya es un modelo de lenguaje, solo que muy pequeño y muy tonto. ChatGPT o Gemini son exactamente lo mismo, con dos diferencias: han leído una fracción enorme de todo lo escrito por la humanidad, y en vez de tres sugerencias manejan cientos de miles a la vez.
La historia en cuatro saltos
- Modelos de n-gramas (años 80–2000) (Jurafsky y Martin, cap. 3 → ref. 73; Chen y Goodman, 1999 → ref. 74). Contar. Literalmente: cuentas cuántas veces aparece "voy a comprar pan" en un corpus gigante y cuántas veces "voy a comprar coche", y das más probabilidad al que más sale. Funciona sorprendentemente bien y sorprendentemente mal: no puede generalizar a frases que nunca ha visto.
- Modelos neuronales (Bengio et al., 2003 → ref. 40). En vez de contar frases, se aprende a representar cada palabra como un vector de números ("embedding"), de modo que "perro" y "gato" acaben cerca en ese espacio. Ahora sí se puede generalizar: si nunca has visto "voy a comprar dálmata" pero sí "voy a comprar perro", el modelo sabe qué hacer.
- El Transformer (Vaswani et al., 2017 → ref. 41). La arquitectura que lo cambió todo. Su mecanismo de atención permite que, al predecir una palabra, el modelo mire simultáneamente a todas las anteriores y decida cuáles importan. Antes había que procesar el texto en orden, palabra a palabra; ahora se procesa en paralelo, y eso permitió entrenar modelos mil veces más grandes.
- La escala (Brown et al., 2020 → ref. 43; Kaplan et al., 2020 → ref. 44). Se descubre que, si haces el modelo suficientemente grande y le das suficientes datos, aparecen capacidades que nadie programó: traducir, razonar, escribir código. Ahí nacen los LLM tal como los conocemos.
Qué significa "entrenar"
Se toma un texto enorme, se le tapa una palabra y se le pide al modelo que adivine cuál era. Se compara con la real, se mide el error y se ajustan levemente los miles de millones de parámetros internos para equivocarse un poco menos. Se repite billones de veces. Eso es todo. El modelo nunca ve una etiqueta de "esto es correcto" puesta por un humano: la etiqueta es la propia palabra siguiente del texto. Por eso se llama autosupervisado.
El paso extra: RLHF
Un modelo entrenado solo así es un imitador de internet: útil pero desagradable, propenso a divagar. Encima se aplica aprendizaje por refuerzo con retroalimentación humana (Christiano et al., 2017 → ref. 45; Ouyang et al., 2022 → ref. 46): personas comparan pares de respuestas, se entrena un modelo de recompensa con esas preferencias, y se ajusta el modelo para maximizarla. De ahí salen las variantes "-IT" (instruction tuned) que usa el artículo.
El RLHF tiene un efecto secundario que será crítico en el capítulo 05: reduce la variedad de respuestas del modelo. El modelo aprende a dar "la respuesta que gusta" y deja de explorar alternativas. Se llama colapso de modo (Casper et al., 2023 → ref. 26). Y menos variedad significa, como veremos, menos sitio donde esconder la marca de agua.
Tokens: el alfabeto real de las máquinas
La mayoría de los LLM actuales no reciben palabras completas ni frases como unidades indivisibles. El tokenizador convierte el texto en identificadores de tokens, y el modelo procesa esos identificadores. Al decodificarlos, un token puede corresponder a una palabra frecuente, una subpalabra, un signo, un byte o incluso un carácter.
También en el facsímil: la relación entre token, vocabulario y embedding se desarrolla en F01, capítulo 09: del token al embedding; el recorrido de texto a tensor continúa en F03, capítulo 02.
¿Por qué no usar palabras?
Porque el diccionario sería infinito. Nombres propios, erratas, palabras compuestas alemanas, URLs, código. Cualquier palabra no vista sería un agujero negro.
¿Por qué no usar solo caracteres?
No es porque las letras "carezcan de semántica". El significado no vive dentro de una letra ni tampoco dentro de un token aislado: emerge de las representaciones que el modelo construye al relacionar la secuencia completa con su contexto. Existen modelos que trabajan directamente con caracteres, como CANINE (Clark et al., 2022 → ref. 75), y con bytes, como ByT5 (Xue et al., 2022 → ref. 76).
El compromiso es de ingeniería. Para el mismo texto, caracteres o bytes producen secuencias mucho más largas. Eso aumenta el número de pasos de generación y el coste de la atención. Las subpalabras acortan la secuencia sin volver imposible representar nombres, código, erratas o palabras raras. No son la única solución posible, pero sí la más habitual en los LLM sobre los que se estudió SynthID-Text.
La solución: subpalabras
El algoritmo estándar es Byte-Pair Encoding (Sennrich, Haddow y Birch, 2016 → ref. 47), y su implementación más usada es SentencePiece (Kudo y Richardson, 2018 → ref. 48). Funciona así:
- Empiezas con un vocabulario de caracteres sueltos.
- Buscas el par de símbolos adyacentes más frecuente en todo el corpus. Digamos que es
e+r. - Lo fusionas en un símbolo nuevo:
er. Ahora el vocabulario tiene un elemento más. - Repites hasta llegar al tamaño de vocabulario deseado (típicamente entre 32.000 y 256.000).
El resultado es un vocabulario de piezas reutilizables: una palabra frecuente puede acabar representada por un solo token y una palabra rara puede dividirse en varios. La segmentación concreta depende del tokenizador, por eso no debemos mirar una palabra impresa y asumir cuántos tokens ocupa sin comprobarlo.
Es el juego del Scrabble con fichas de tamaños distintos. Tienes fichas grandes con palabras enteras muy usadas, fichas medianas con sílabas y prefijos, y fichas pequeñas con letras sueltas. Puedes escribir cualquier cosa, pero lo habitual sale rápido con pocas fichas.
Tokenizador simplificado de demostración. Escribe una frase y observa cómo se parte. Las palabras comunes salen enteras; las raras, en trozos.
10 tokens para 27 caracteres
Un tokenizador real de Gemma tiene unas 256.000 entradas y se aprende de datos. Este tiene 40 y es una caricatura, pero el principio, fichas de tamaño variable, es el mismo.
Probabilidad, distribuciones y muestreo
Aquí está el 80 % de las matemáticas del artículo. Con calma.
También en el facsímil: logits, softmax, temperatura, top-k, top-p y muestreo se explican y se practican en F03, capítulo 04: de los logits al sampling.
Probabilidad
Un número entre 0 y 1 que mide cuán esperable es algo. 0 = imposible. 1 = seguro. 0,5 = tan probable como su contrario. Se escribe P(A).
Distribución de probabilidad
Una lista de todos los resultados posibles con su probabilidad, que suma exactamente 1. Un dado justo tiene la distribución {1:⅙, 2:⅙, …, 6:⅙}. Un modelo de lenguaje tiene la distribución {"casa":0,003, "perro":0,001, …} sobre los 256.000 tokens de su vocabulario.
Probabilidad condicionada
La probabilidad de algo dado que ya sabemos otra cosa. Se escribe con una barra vertical: P(A | B), "probabilidad de A dado B".
La probabilidad de que llueva hoy es, pongamos, 0,2. Pero la probabilidad de que llueva dado que el cielo está negro y hay viento del oeste es 0,9. Es el mismo suceso; lo que ha cambiado es lo que sabes. Un modelo de lenguaje es exactamente eso: P(siguiente token | todo lo escrito hasta ahora). La barra vertical es el corazón de la notación del artículo.
Muestrear
Sacar un resultado al azar respetando las probabilidades. Si "pan" tiene 0,4 y "coche" tiene 0,1, muestrear mil veces debería darte unos 400 panes y unos 100 coches. Muestrear no es elegir el más probable: es tirar el dado. Elegir siempre el máximo se llama greedy decoding y produce texto plano y repetitivo (Holtzman et al., 2020 → ref. 34).
Cómo se muestrea en la práctica
El método de la ruleta: colocas las probabilidades una detrás de otra en el intervalo [0,1], generas un número uniforme u entre 0 y 1, y ves en qué tramo cae.
Cada tirada suelta un número uniforme entre 0 y 1 y mira en qué tramo cae. Tira muchas veces y observa cómo las frecuencias observadas convergen a las probabilidades teóricas: eso es la ley de los grandes números.
Con 10 tiradas los porcentajes bailan muchísimo. Con 10.000 se pegan a los teóricos. Esta convergencia es literalmente el mecanismo con el que funciona la detección de la marca de agua: acumular tiradas hasta que el azar deje de ser una explicación creíble.
Esperanza (o valor esperado o media)
Caso que usaremos sin parar: si X vale 1 con probabilidad ½ y 0 con probabilidad ½ (una moneda), entonces E[X] = 1·½ + 0·½ = 0,5. Esa es la línea base contra la que se compara todo texto sospechoso.
Independencia
Dos sucesos son independientes si saber uno no te dice nada del otro. Formalmente P(A y B) = P(A)·P(B). Dos lanzamientos de moneda son independientes; la moneda no tiene memoria. Esta propiedad es la que permitirá multiplicar cuartos y mitades en la demostración del capítulo 14.
Varianza y desviación típica
Azar falso: hashes, semillas y funciones pseudoaleatorias
Este capítulo es el que más gente se salta y el que más falta hace. Toda la marca de agua descansa sobre una idea contraintuitiva: necesitamos algo que sea aleatorio para el atacante y perfectamente predecible para nosotros, a la vez.
El problema
El generador tiene el modelo delante y decide los tokens. El detector aparece meses después, solo con un texto pegado en un formulario. Para verificar la marca, el detector necesita reconstruir exactamente las mismas "tiradas de moneda" que usó el generador. No puede pedirle el registro a nadie: tiene que recalcularlas.
La solución: función hash
Una función que convierte cualquier entrada en un número de tamaño fijo, con tres propiedades:
- Determinista. La misma entrada produce siempre exactamente la misma salida. Hoy, mañana y en otro ordenador.
- Efecto avalancha. Cambia un solo carácter de la entrada y la salida cambia por completo, sin ningún parecido con la anterior.
- Unidireccional en la práctica. De la salida no puedes reconstruir la entrada mejor que probando a lo bruto.
Una trituradora de papel mágica. Si metes el mismo folio, sale exactamente el mismo confeti, trocito por trocito. Si cambias una coma, sale un confeti completamente distinto. Y del confeti nadie reconstruye el folio. Lo importante: dos personas con el mismo folio y la misma trituradora obtienen el mismo confeti sin hablar entre ellas. Eso es lo que permite que generador y detector se pongan de acuerdo sin comunicarse.
Escribe algo y mira el hash. Cambia una sola letra, o un espacio. La salida no se parece en nada, pero vuelve a escribir el texto original y reaparece idéntica.
hash decimal: 3507496424
hash hexadecimal: 0xD11025E8
binario: 1101000100010000
0010010111101000
normalizado a [0,1]: 0,816653 → g-value Bernoulli = 1
Este hash de demostración es FNV-1a de 32 bits. Los reales usados en criptografía son de 256 bits y mucho más robustos, pero la propiedad que nos interesa, determinismo más efecto avalancha, es idéntica.
Pseudoaleatoriedad
Un ordenador no puede generar azar de verdad; es una máquina determinista. Lo que hace es partir de una semilla (un número inicial) y aplicar una fórmula que produce una secuencia que parece aleatoria. Misma semilla, misma secuencia. Siempre.
Minecraft. Metes la semilla 4785623 y te genera un mundo con una montaña concreta al norte y un lago con forma de riñón. Metes la misma semilla en el ordenador de tu amigo, en otro país, y sale exactamente el mismo mundo. El mundo parece caótico y natural, pero está completamente determinado por ese número.
Función pseudoaleatoria (PRF): el concepto criptográfico
Es la formalización de esa idea, y viene de Goldreich, Goldwasser y Micali (1986 → ref. 49). Una familia de funciones {h(·, k)} indexada por una clave k es pseudoaleatoria si un adversario que no conoce k no puede distinguirla de una función elegida de verdad al azar, ni siquiera pudiendo hacerle muchísimas preguntas.
El artículo lo exige explícitamente en dos sitios: para el generador de semillas y para el cálculo de los g-values. Y añade la condición de que aleatorizar la clave aleatorice la salida:
Muestreo por transformada inversa
Última pieza técnica de este capítulo, y hace falta para entender la Definición 4 del artículo. Es el truco universal para convertir un número uniforme en una muestra de cualquier distribución.
- Tienes
u, uniforme entre 0 y 1 (eso te lo da el hash normalizado). - Tienes
F, la función de distribución acumulada de lo que quieres:F(x) = P(X ≤ x). - Devuelves
F⁻¹(u), la inversa.
Para Bernoulli(0,5) esto se reduce a algo trivial: si u < 0,5 → 0; si no → 1. Para Uniforme[0,1], F⁻¹ es la identidad y el número se queda tal cual. El método general es de Devroye (1986 → ref. 50).
Es la ruleta del laboratorio 02, al revés. Tienes un número entre 0 y 1 y quieres saber en qué casilla cae. La función acumulada es el mapa de dónde empieza y acaba cada casilla.
Entropía: la moneda con la que se paga la marca
Este concepto decide qué textos se pueden marcar y cuáles no. Viene de Claude Shannon (1948 → ref. 51), el artículo que fundó la teoría de la información.
También en el facsímil: puedes ver cómo la entropía cambia al tocar la temperatura y el muestreo en F03, capítulo 04, y cómo una puntuación incierta se transforma en una decisión en F07, capítulo 05: calibración e incertidumbre.
La intuición antes que la fórmula
La entropía mide cuánta sorpresa hay en una distribución. O, equivalentemente, cuánta información aporta conocer el resultado.
- Una moneda con dos caras iguales: sabes el resultado de antemano. Sorpresa = 0. Entropía = 0.
- Una moneda justa: no tienes ni idea. Máxima sorpresa para dos opciones. Entropía = 1 bit.
- Un dado justo: aún más incertidumbre. Entropía ≈ 2,58 bits.
- Una moneda trucada que sale cara el 99 % de las veces: casi nunca te sorprende. Entropía ≈ 0,08 bits.
· log₂ p(x) es "cuántos bits de información aporta este resultado". Como p(x) ≤ 1, el logaritmo es negativo, de ahí el signo menos delante de todo.
· p(x) · log₂ p(x) pondera esa información por lo frecuente que es el resultado.
· La Σ lo suma todo.
Qué es un logaritmo, por si acaso: log₂(8) = 3 porque 2³ = 8. Es "¿a qué exponente hay que elevar 2 para obtener este número?". Y un bit es la información de una respuesta sí/no equiprobable.
El resultado que importa
Para un vocabulario de n opciones, la entropía es máxima cuando todas son igual de probables, y vale exactamente log₂(n). Es mínima (cero) cuando una opción tiene toda la probabilidad.
Compara dos pasos de generación. En el contexto abierto hay varias continuaciones plausibles; en el factual casi toda la probabilidad cae sobre una. Después mueve los controles y observa cómo cambia el presupuesto disponible para marcar.
Entropía
Estas probabilidades son una simulación docente, no una medición de Gemma. Cada etiqueta representa el texto visible de un token en un vocabulario de juguete. En producción se trabajarían los identificadores y probabilidades del tokenizador real.
Una marca de agua generativa no inserta una etiqueta visible ni caracteres ajenos al texto. Introduce una señal estadística al aprovechar parte de la aleatoriedad que ya tenía el muestreo. Si el modelo conserva cerca de 2 bits de entropía en un paso, existen varias continuaciones plausibles entre las que repartir esa señal. Si la entropía se acerca a 0, casi todas las muestras producen el mismo token y ese paso aporta muy poca evidencia. Además, la detección necesita acumular muchos pasos: una respuesta factual de una palabra no permite decidir nada por sí sola, mientras que un texto largo y diverso puede reunir suficiente señal para un contraste estadístico.
Perplejidad: la entropía disfrazada
El concepto viene del reconocimiento de voz (Jelinek et al., 1977 → ref. 52). En el artículo se usa como medida de daño: si una marca de agua sube la perplejidad, está metiendo palabras que no encajan, o sea, está estropeando el texto.
La perplejidad es la cara que pones leyendo. "Fui al súper a comprar pan" → cara neutra. "Fui al súper a comprar termodinámica" → levantas una ceja. Un texto con marca de agua bien hecha no debería hacerte levantar la ceja ni una sola vez.
Estadística para decidir: ¿esto es casualidad o no?
El detector de SynthID-Text no es un clasificador de inteligencia artificial. Es un contraste de hipótesis clásico, del siglo XX. Vamos a montarlo desde cero.
También en el facsímil: matriz de confusión, sensibilidad, falsos positivos, umbrales y coste del error se trabajan en F07, capítulo 02: métricas clásicas; la elección y calibración del umbral continúa en F07, capítulo 05.
La pregunta
Alguien te trae un texto. Cuentas cuántos tokens tienen g = 1. Salen 3.180 de 6.000, o sea un 53 %. ¿Es eso raro? Si el texto no tuviera marca, esperarías el 50 %. Pero el azar fluctúa. ¿Cuándo dejas de creer al azar?
Las dos hipótesis
- H₀ (hipótesis nula): el texto no está marcado. Cada g-value es una moneda justa.
- H₁ (hipótesis alternativa): el texto está marcado. Las monedas están sesgadas hacia el 1.
La estrategia es siempre la misma: se supone H₀ cierta y se calcula lo improbable que sería ver lo que hemos visto. Si sale absurdamente improbable, se rechaza H₀. Nunca se "demuestra" H₁; solo se descarta el azar. Este marco es de Neyman y Pearson (1933 → ref. 53).
Ley de los grandes números y teorema central del límite
Dos teoremas que hacen posible todo esto:
- Ley de los grandes números: al promediar muchas muestras independientes, la media observada converge a la media real. Ya lo viste en el laboratorio 02.
- Teorema central del límite: además, la media de muchas variables independientes se distribuye aproximadamente como una campana de Gauss, sea cual sea la forma original. Por eso podemos calcular probabilidades exactas sobre la media aunque cada g-value individual sea un simple 0/1.
Con n = 6.000: SE = 0,5/77,46 ≈ 0,00645. Es decir, si el texto no está marcado, la proporción observada debería quedarse casi siempre entre 0,48 y 0,52.
Una moneda con sesgo ajustable. Lánzala y observa cuándo el juez estadístico se atreve a acusarla. Con pocas tiradas, un sesgo grande pasa desapercibido; con muchas, un sesgo mínimo es indefendible.
Evidencia acumulada
Sustituye "cara" por "token con g = 1" y tienes, literalmente, el detector de SynthID-Text. La única diferencia es que el artículo usa una función de puntuación bayesiana en lugar de este contraste frecuentista, porque rinde algo mejor.
Los cuatro casos: TPR, FPR y compañía
| El texto SÍ está marcado | El texto NO está marcado | |
|---|---|---|
| Acuso | Verdadero positivo (VP) | Falso positivo (FP), acusar a un inocente |
| No acuso | Falso negativo (FN), se me escapa | Verdadero negativo (VN) |
El artículo reporta siempre TPR @ FPR = 1 %: fija el daño colateral tolerable primero (acusar como mucho a 1 de cada 100 textos humanos) y luego mide cuántos culpables se pillan con esa restricción. Es la forma honesta de reportar un detector, y es exactamente lo que no hacen los "detectores de IA" comerciales.
Frecuentista contra bayesiano
| Enfoque | Qué responde | Ventaja | En el artículo |
|---|---|---|---|
| Frecuentista | "Si el texto no estuviera marcado, ¿qué probabilidad habría de ver esto?" → p-valor | Garantía teórica sobre la tasa de falsos positivos, sin necesidad de datos previos | Funciones de puntuación 1–3 |
| Bayesiano | "Dado lo que veo, ¿qué probabilidad hay de que esté marcado?" → probabilidad posterior | Rinde mejor, porque aprende de ejemplos reales de textos marcados y no marcados | Función de puntuación 4, la que usan por defecto |
Frecuentista: "si este señor fuera inocente, sería rarísimo que sus huellas estuvieran ahí". Bayesiano: "dadas las huellas, y sabiendo cómo suelen ser estos casos, hay un 97 % de probabilidad de que sea culpable". La segunda es más útil, pero exige haber visto muchos casos antes.
El problema
Por qué alguien invierte años de trabajo de un equipo de veinticuatro personas en marcar texto, y por qué las alternativas obvias no valen.
El texto sintético dejó de notarse
El artículo abre con tres estudios que dicen lo mismo desde ángulos distintos: las personas ya no distinguimos texto artificial de texto humano.
- Köbis y Mossink (2021 → ref. 1): los participantes no supieron separar poesía generada por IA de poesía de Maya Angelou.
- Clark et al. (2021 → ref. 2): los evaluadores humanos de texto generado rinden apenas por encima del azar, y su rendimiento no mejora sin entrenamiento específico.
- Jakesch, Hancock y Naaman (2023 → ref. 3): el más interesante. No es que fallemos al azar: fallamos sistemáticamente, porque usamos heurísticas equivocadas. Creemos que lo humano es lo que tiene erratas, primera persona y expresiones espontáneas. Los modelos producen eso sin esfuerzo, así que nuestras propias reglas nos traicionan.
Los billetes falsos. Mientras las falsificaciones eran malas, bastaba con mirarlas al trasluz y usar el sentido común. Cuando se volvieron indistinguibles al tacto y a la vista, hubo que meter marcas de agua, hilos de seguridad y tintas que solo se ven bajo luz ultravioleta. Fíjate en el cambio de enfoque: se dejó de intentar detectar lo falso y se pasó a certificar lo legítimo. SynthID-Text hace exactamente eso.
El problema técnico que casi nadie menciona: la pescadilla que se muerde la cola
No es solo el fraude académico ni la desinformación. Es que internet es el material de entrenamiento de la próxima generación de modelos. Si el texto sintético inunda la web sin etiquetar, los modelos futuros se entrenan con su propia salida.
- Colapso del modelo (Shumailov et al., Nature 2024 → ref. 8). Entrenar recursivamente con datos generados hace que el modelo degenere: primero pierde las colas de la distribución (los casos raros, las minorías, lo excepcional) y acaba convergiendo a una versión empobrecida y homogénea de la realidad. Curiosidad: Shumailov es también coautor del artículo que estamos estudiando.
- Modelos autofágicos (Alemohammad et al., ICLR 2024 → ref. 9). Bautizan el fenómeno como MAD, Model Autophagy Disorder: los sistemas generativos que se autoconsumen "se vuelven locos", y sin datos frescos reales la calidad o la diversidad se degradan inevitablemente.
- Bucles de realimentación (Taori y Hashimoto, 2023 → ref. 10; Wyllie, Shumailov y Papernot, FAccT 2024 → ref. 11). Los sesgos del conjunto original se amplifican en cada vuelta, incluidos los sesgos de equidad hacia grupos concretos.
Una fotocopiadora que fotocopia sus propias fotocopias. La primera copia está bien. La número cincuenta es una mancha gris. Ahora imagina que la fotocopiadora es internet y las copias son textos. Poder marcar cuáles son copias permite al menos no volver a meterlas en la bandeja.
Tres familias de soluciones, y por qué eligen la tercera
Familia A: recuperación
Guardar todo lo generado en una base de datos y buscar el texto sospechoso dentro. Krishna et al. (NeurIPS 2023 → ref. 12) demostraron que es, de hecho, la defensa más robusta frente a la paráfrasis, porque busca por similitud semántica y no por marcas frágiles.
- Ventaja: resiste ediciones. Si el texto se parece lo suficiente, se encuentra.
- Problema 1: escala y coordinación absurdas. Miles de millones de respuestas diarias, indexadas para siempre.
- Problema 2: desastre de privacidad. Obliga a almacenar y consultar todas las conversaciones de todos los usuarios. El artículo lo señala explícitamente.
El portero que apunta en una libreta el nombre de todo el que entra en la discoteca. Funciona, pero necesitas una libreta infinita y estás fichando a todo el mundo, incluido el que solo entró a pedir un vaso de agua.
Familia B: detección a posteriori (post hoc)
No tocar nada durante la generación; analizar el texto después. Dos escuelas:
- Estadística de caja blanca. GLTR (Gehrmann, Strobelt y Rush, 2019 → ref. 55) fue pionero: coloreaba cada palabra según su rango de probabilidad en un modelo de referencia, porque el texto de máquina se queda en las opciones más probables y el humano sorprende más a menudo. DetectGPT (Mitchell et al., ICML 2023 → ref. 13) refinó la idea con la curvatura de la probabilidad: el texto generado tiende a estar en un máximo local de la función de log-probabilidad, así que si lo perturbas ligeramente, la probabilidad cae más de lo que caería en texto humano.
- Clasificadores entrenados. Ghostbuster (Verma et al., NAACL 2024 → ref. 14) y Binoculars (Hans et al., ICML 2024 → ref. 15), que compara la perplejidad medida por dos modelos distintos para normalizar la dificultad intrínseca del texto. Antes, Grover (Zellers et al., NeurIPS 2019 → ref. 56) ya había mostrado que el mejor detector de un generador suele ser el propio generador.
Los cuatro problemas
- Coste: normalmente requieren pasar el texto por uno o varios modelos.
- Fragilidad fuera de dominio: Elkhatat, Elsaid y Almeer (2023 → ref. 16) evaluaron herramientas comerciales y encontraron un rendimiento muy inconsistente.
- Injusticia estructural: Liang et al. (Patterns 2023 → ref. 17) demostraron que estos detectores acusan sistemáticamente a personas que escriben en inglés como segunda lengua. Su prosa es más regular y menos "sorprendente", que es justo la señal que el detector interpreta como artificial.
- Caducidad: dependen de que existan diferencias entre texto humano y de máquina. Esa diferencia se estrecha con cada generación de modelos. Sadasivan et al. (2023 → ref. 57) argumentaron incluso que, en el límite, la detección fiable es imposible.
Por esto los "detectores de IA" que se usan en institutos y universidades son peligrosos: no fallan al azar, fallan más contra quien peor puede defenderse. Un sistema de marca de agua tiene, en cambio, una tasa de falsos positivos que puede fijarse matemáticamente por adelantado, y esa garantía no depende del estilo de quien escribe.
Familia C: marca de agua
La idea viene del mundo de la imagen y el audio, donde lleva décadas funcionando (Cox et al., 2007 → ref. 58; para texto, la revisión de Kamaruddin et al., 2018 → ref. 18). En texto se divide en tres subtipos:
| Subtipo | Cómo funciona | Pega |
|---|---|---|
| Por edición | Se genera el texto normal y se retoca después: sustituir sinónimos, insertar caracteres Unicode invisibles. | Deja artefactos. Un corrector, un copiar-pegar o un cambio de codificación la borran. |
| Por datos (Gu et al., 2022 → ref. 19) | Se entrena el modelo con frases-gatillo, como una puerta trasera. | Solo marca cuando aparece el gatillo. Sirve para detectar uso no autorizado de un modelo, no para atribuir texto en general. |
| Generativa ← la del artículo | Se modifica el procedimiento de muestreo mientras el texto nace. | Requiere que quien opera el modelo coopere. |
El método
Once capítulos desmontando SynthID-Text pieza a pieza. A partir de aquí todo lo anterior se usa.
Cómo escribe realmente un modelo, paso a paso
Ya sabemos qué es un token y qué es una distribución. Ahora el bucle completo.
EOS.Cada paso: calcular la distribución, tirar la ruleta, añadir el token, repetir. Fíjate en cómo cambian por completo las barras en cuanto cambia la última palabra.
p_LM( · | texto actual )
Las probabilidades están inventadas para la demo, pero la mecánica es exactamente esta. Un modelo real hace esto entre 20 y 100 veces por segundo.
Los mandos de decodificación
| Mando | Qué hace | Fórmula | Ejemplo de calle |
|---|---|---|---|
| temperatura τ | Divide los logits antes de normalizar. τ<1 apunta la distribución; τ>1 la aplana. | pi ∝ exp(zi/τ) | El mando de un altavoz. Bajo = todos cantan lo mismo. Alto = cada uno va por libre. |
| top-k | Se queda con los k tokens más probables y tira el resto. El artículo usa k = 100. | V′ = argtop-k(p) | En el bar solo puedes pedir de entre los 100 platos más vendidos. |
| top-p | Se queda con los más probables hasta acumular masa p. También llamado nucleus sampling. | min V′ : ΣV′ p ≥ p | Los platos que se llevan el 90 % de los pedidos, sean 3 o sean 40. |
El origen del top-k está en Fan, Lewis y Dauphin (2018 → ref. 36) y el del top-p en Holtzman et al. (2020 → ref. 34), cuyo título,"el curioso caso de la degeneración del texto neuronal", describe el problema que resuelven: elegir siempre lo más probable produce texto que se repite en bucle.
El término "temperatura" viene de la física estadística, concretamente de las máquinas de Boltzmann (Ackley, Hinton y Sejnowski, 1985 → ref. 35): la distribución de probabilidad tiene la misma forma matemática que la distribución de estados de un sistema físico a temperatura T.
Los autores definen p_LM como la distribución de la que el método de decodificación muestrea, con todos esos retoques ya aplicados. Es decir: SynthID-Text no compite con top-k ni con la temperatura, se coloca al final de la cadena. Es compatible con top-k para todo k ≥ 2, con top-p para todo p ∈ (0,1] y con toda temperatura τ > 0. Lo único que necesita es que quede algo de aleatoriedad. Con entropía exactamente cero, no hay marca posible.
La arquitectura: exactamente tres piezas
Esta descomposición viene del marco de Piet et al. (2023 → ref. 21), que analizaron y compararon sistemáticamente los esquemas de marca de agua existentes. Es la figura 1 del artículo y el esqueleto de todo lo que sigue.
| # | Pieza | Entrada | Salida | Se usa |
|---|---|---|---|---|
| 1 | Generador de semilla | Texto reciente + clave secreta k | Semilla rt | Al generar y al detectar |
| 2 | Algoritmo de muestreo | Distribución pLM + semilla rt | Token elegido xt | Solo al generar |
| 3 | Función de puntuación | Texto cualquiera + clave k | Un número: la evidencia | Solo al detectar |
El truco central de toda la familia es este: el algoritmo de muestreo introduce una correlación entre la semilla rt y el token elegido xt. Esa correlación es la firma. La función de puntuación, más tarde, mide cuánta correlación hay.
Un sorteo de mesas en una boda. La semilla es "qué día es hoy". El algoritmo de muestreo es "hoy, con el número que ha salido, cuando haya empate elijo al que lleve corbata azul". La función de puntuación es el fotógrafo que, meses después, cuenta cuántos invitados llevan corbata azul en las fotos: si hay muchísimos más de lo normal, sabe que el reparto se manipuló. Y lo sabe sin conocer a los invitados: solo con las fotos y la regla.
Pieza 1: el generador de semilla
Necesitamos, en cada paso, un número aleatorio, con dos condiciones que parecen contradictorias: que parezca aleatorio a quien no tenga la clave, y que sea reproducible exactamente por un detector que solo verá el texto final. El capítulo 04 ya nos dio la herramienta: una función hash con clave.
Definición 2 del artículo: el espacio de semillas es R = {0,1}nsec y la distribución de semillas es la uniforme sobre ese espacio.
Este generador no lo inventan ellos: viene de Aaronson y Kirchner (2022 → ref. 22) y de Kirchenbauer et al. (ICML 2023 → ref. 23), los dos trabajos fundacionales de las marcas generativas modernas.
La ventana avanza un token cada vez. Los cuatro tokens de dentro, más la clave, producen la semilla del paso siguiente. Cambia la clave y verás que todas las semillas cambian de golpe.
ficha rellena = dentro de la ventana · borde grueso = token que se va a generar
r5 = h( La, marca, de, agua, k=42 ) = 64802
→ esta semilla decide la lotería que elegirá "viaja"
Observación crucial: el detector puede recalcular estas mismas semillas leyendo el texto final, porque los cuatro tokens de la ventana están ahí escritos. No necesita el modelo. Solo texto, clave y regla.
Por qué H = 4 y no 1 ni 50
| H pequeño | H grande |
|---|---|
| Las ventanas se repiten muchísimo dentro del mismo texto ("de la", "que el"), lo que trae el problema del capítulo 15. | La marca se vuelve frágil: editar un solo token estropea las H semillas siguientes. |
| Más ventanas repetidas = más pasos sin marcar = menos evidencia. | Más robusto frente a repeticiones, pero un atacante rompe la marca con muy pocas ediciones. |
Con H = 4, un token corrompido arruina como mucho cuatro ventanas. Kirchenbauer et al. estudiaron este compromiso con más detalle en un trabajo posterior sobre la fiabilidad de las marcas (2024 → ref. 59).
Nota de diseño: el artículo insiste en que Tournament sampling se puede emparejar con cualquier generador de semillas. La ventana deslizante es una elección, no una parte inseparable del método. Kuditipudi et al. (ref. 24), por ejemplo, usan una secuencia de claves fija y una puntuación basada en distancia de edición, que es más robusta frente a ediciones aunque más cara.
Los g-values: la lotería secreta del vocabulario
Ya tenemos una semilla por paso. Ahora hay que convertirla en algo que puntúe tokens. En una frase: dada la semilla del paso, cada token del vocabulario recibe un número secreto. En la configuración principal del artículo ese número es un 0 o un 1.
Cada mañana a las 8:00, alguien lanza una moneda por cada palabra del diccionario y apunta el resultado. "Perro": cara. "Bicicleta": cruz. "Mañana": cara. La lista cambia cada día, es decir, con cada semilla, pero si sabes qué día es y tienes la libreta, puedes reconstruirla exactamente. Si no la tienes, para ti son monedas al aire.
1. Hashear.
h(x, ℓ, r) mezcla tres cosas: el token, el número de capa y la semilla. Que ℓ entre en el hash es lo que garantiza que cada capa del torneo use una lotería distinta e independiente.2. Normalizar. Se divide entre 2nsec, el máximo posible. El resultado cae en [0,1] y, para nsec grande, se comporta como un uniforme.
3. Transformar. Fg−1 es el muestreo por transformada inversa del capítulo 04, que convierte ese uniforme en una muestra de la distribución elegida.
Vocabulario de juguete de 12 tokens. Cambia la semilla o la capa y observa cómo se redistribuyen por completo. Las fichas rellenas son "la lista de palabras favorecidas" de este paso.
Con Bernoulli(0,5) esperas ~50 % de fichas rellenas. Ese 50 % es la línea base de la detección. Si en un texto largo aparecen muchas más de las que tocan por azar, hay marca.
¿Por qué Bernoulli y no algo más fino?
Porque con Bernoulli(0,5) hay muchísimos empates, y los empates son exactamente lo que hace falta para que la marca no distorsione el texto: cuando dos candidatos empatan, el desempate es uniforme y el modelo recupera su libertad. Con Uniforme[0,1] casi nunca hay empates, la marca es más agresiva por capa, pero el equilibrio se rompe antes. Es un ejemplo bonito de cómo una elección aparentemente burda, una moneda en vez de un número real, resulta ser la correcta.
Pieza 2: Tournament sampling
Aquí está la aportación original. Todo lo anterior existía. Lo nuevo es cómo usar los g-values para elegir el token.
Versión mínima: un solo partido
- Saco N tokens muestreando de
pLM. Son muestras independientes, así que pueden salir repetidos. El artículo lo repite en cada línea: "may contain repeats". - Miro sus g-values con la semilla de este paso.
- Gana el que tenga el g-value más alto. Si empatan, elijo uniformemente entre los empatados.
Entrada: distribución p_LM(·|x<t), semilla r_t, número de muestras N ≥ 2, función g con distribución f_g (ver Definición 4) 1: Extraer Y = [y₁, y₂, …, y_N], N muestras independientes de p_LM(·|x<t) (puede contener repetidos) 2: Y* := [ y ∈ Y : g₁(y, r_t) = max_{y'∈Y} g₁(y', r_t) ] (los que empatan en lo más alto; puede contener repetidos) 3: Muestrear x_t ~ Uniforme(Y*) 4: devolver x_t
Vas a pedir en el bar y no te decides. Le dices al camarero: "tráeme dos tapas al azar de la carta". Llegan bravas y croquetas. Miras tu libreta secreta de hoy: bravas = cara, croquetas = cruz. Te quedas con las bravas. Nadie que te vea comiendo bravas sospecha nada: las bravas estaban en la carta y podías haberlas pedido igual. Pero si te vigilan 200 días y siempre acabas comiendo lo que ese día era "cara", ahí ya no cuela.
Versión completa: el torneo de m capas
- Se muestrean Nm candidatos. Con N = 2 y m = 3, son 8.
- Se emparejan y se juega la capa 1 con
g1. Quedan 4. - Se reemparejan y se juega la capa 2 con
g2. Quedan 2. - Se juega la capa 3 con
g3. Queda 1: ese esxt.
Cada capa usa una lotería distinta. Esto es esencial: el ganador final tiende a puntuar alto en g₁, en g₂ y en g₃ a la vez. En lugar de una prueba estadística por token, tienes m pruebas por token. Ahí está la ganancia sobre los métodos anteriores.
Entrada: p_LM(·|x<t), semilla r_t, N ≥ 2, función g, número de capas m ≥ 1 1: Extraer N^m muestras independientes y⁰₀, y⁰₁, …, y⁰_{N^m−1} ~ p_LM(·|x<t) 2: para ℓ = 1 hasta m hacer ← recorre las capas 3: para j = 0 hasta N^{m−ℓ} − 1 hacer ← recorre los partidos de la capa 4: Y := [ y^{ℓ−1}_{Nj}, y^{ℓ−1}_{Nj+1}, …, y^{ℓ−1}_{Nj+N−1} ] ← los N contendientes 5: Y* := [ y ∈ Y : g_ℓ(y, r_t) = max_{y'∈Y} g_ℓ(y', r_t) ] ← los máximos 6: Muestrear y^ℓ_j ~ Uniforme(Y*) ← desempate al azar 7: fin para 8: fin para 9: devolver x_t := y^m₀
Leyendo la notación con calma
yℓj= ganador del partido j de la capa ℓ. Superíndice = capa, subíndice = partido.- La capa 0 son los candidatos iniciales:
Nmde ellos. - Tras la capa ℓ quedan
Nm−ℓsupervivientes. Cuando ℓ = m quedaN⁰ = 1. - La línea 4 agrupa de N en N consecutivamente. Como los candidatos salieron en orden aleatorio, agrupar por orden equivale a emparejar al azar.
- Las líneas 5 y 6 son el partido: coger los máximos y desempatar uniformemente. Esas dos líneas son todo el algoritmo.
Dónde está la semántica y dónde está la marca
El torneo no recibe una bolsa de letras sin significado. Primero, el LLM transforma el contexto en una distribución pLM: las continuaciones coherentes reciben más probabilidad y las incompatibles reciben menos. Esa distribución es donde se manifiestan el conocimiento contextual y las preferencias aprendidas por el modelo.
Después entra SynthID-Text. Sus funciones gℓ no intentan comprender los candidatos y no necesitan hacerlo: asignan puntuaciones pseudoaleatorias a sus identificadores. El torneo solo puede elegir entre muestras que ya proceden de pLM. Por eso conviene mirar siempre las dos capas por separado: el modelo decide qué resulta plausible; la marca introduce una correlación secreta dentro de ese margen de elección.
Cambia de escenario y sigue el mismo paso de generación desde el contexto hasta el ganador. En ambos casos usamos m = 3 capas, N = 2 contendientes y 2³ = 8 muestras iniciales. Lo que cambia es la libertad que deja la distribución del modelo.
La semilla asigna un g-value a cada muestra. No juzga su significado: busca una correlación que el detector pueda reconstruir.
Este laboratorio usa un vocabulario didáctico en el que cada etiqueta visible equivale a un token. Un tokenizador real operaría con IDs y podría dividir alguna de estas palabras en varias piezas. Los porcentajes son escenarios simulados para comparar entropías, no logits medidos de Gemma.
2³⁰ son más de mil millones. Por fuerza bruta sería imposible. No se hace así: el artículo describe una implementación vectorizada (sección E del suplementario) que calcula el resultado del torneo con operaciones matriciales sobre la distribución, sin materializar nunca los candidatos. El análisis de complejidad está en la sección F. En la práctica el sobrecoste es del 0,57 % de la latencia, como veremos en el capítulo 20.
La demostración: por qué esto no estropea el texto
Esta es la pregunta que hunde a casi todos los esquemas de marca de agua: si estás sesgando la elección de palabras, ¿no estás empeorando el texto?
El artículo hace primero un trabajo de limpieza conceptual, porque "no distorsionador" significaba tres cosas distintas según el autor: Kuditipudi et al. (ref. 24), Christ, Gunn y Zamir (ref. 25) y Hu et al. (ref. 27) usaban definiciones incompatibles. Aquí se ordenan de la más débil a la más fuerte:
| Nivel | Qué garantiza | Analogía |
|---|---|---|
| De un token (la más débil) | Promediando sobre la semilla rt, la distribución del token de salida es exactamente igual a pLM. | Cada tirada individual del dado es justa. |
| De una secuencia | La probabilidad de generar un texto completo concreto es la misma con marca y sin ella. | Una partida entera es justa. |
| De K secuencias (la más fuerte) | Lo mismo para K respuestas consecutivas tomadas en conjunto, incluidas sus correlaciones. | Una noche entera de partidas es justa. |
El teorema, con la cuenta hecha a mano
Queremos la probabilidad de que el token a gane un partido, promediando sobre todas las loterías posibles. Llamemos p(a) a su probabilidad en el modelo. Los g-values son Bernoulli(0,5) independientes entre tokens distintos.
g(a)=g(b) → prob ½ → empate, desempate justo → aporta ½ · ½ = ¼
g(a)=0, g(b)=1 → prob ¼ → pierde a → aporta 0
Total: P(a le gana a b) = ¼ + ¼ = ½
= p(a)² + p(a) − p(a)²
= p(a)
Un camarero reparte las propinas del turno lanzando una moneda entre dos compañeros. A final de mes, cada uno se ha llevado exactamente lo que le tocaba. Pero si grabas los lanzamientos y sabes qué moneda usó cada día, puedes demostrar que el reparto no fue aleatorio puro: siguió un patrón. Se conservan las cuentas y aun así queda huella. Esa es toda la magia.
Con N > 2 la magia se rompe, a propósito
Con 3 o más contendientes el equilibrio se pierde: un token con g=1 gana con solo aparecer una vez entre los N, mientras que uno con g=0 necesita que todos los contendientes sean g=0. Eso favorece a los g altos y desplaza la distribución. Con un vocabulario de dos tokens, la cuenta exacta es:
Con N = 2 esto se simplifica exactamente a p: ½p + ¼(2p−p²) + ¼p² = p. Con N ≥ 3 deja de valer p, y ahí nace la distorsión.
Vocabulario didáctico de dos tokens, "prueba" y "revisión", para el contexto "necesitamos una…". Mueve la probabilidad de "prueba" y el número de contendientes. La barra rayada es la distribución del modelo; la sólida, la salida tras el torneo.
Probabilidad de emitir "prueba": barra rayada = modelo · barra sólida = torneo
La distribución de salida es exactamente la del modelo, para cualquier valor de p.
Con N = 2 las dos barras coinciden siempre, sea cual sea p. Con N = 3 ya se separan. Ese hueco es, literalmente, el precio en calidad que pagas por una marca más fuerte.
Enmascarado de contexto repetido: el remedio contra los bucles
Hay un problema que aparece en cuanto aplicas el esquema tal cual. Si la ventana de H tokens se repite dentro del mismo texto, y se repite constantemente con secuencias como "de la", "y el" o "en el", entonces la semilla es la misma, luego la lotería es la misma, luego el mismo token vuelve a estar favorecido.
El sesgo se acumula en la misma dirección una y otra vez. El resultado documentado por Kuditipudi et al. (ref. 24) y Christ et al. (ref. 25) son bucles repetitivos: el modelo se engancha y repite la misma frase.
Una ruleta en la que, cada vez que la bola cae en el mismo sitio, el crupier vuelve a favorecer ese mismo número. A la tercera vuelta la mesa entera está sobre ese número y la partida se ha roto.
La solución, tomada de Hu et al. (ICLR 2024 → ref. 27), es llevar un historial de ventanas ya usadas. Si la ventana actual ya está en el historial, se apaga la marca en ese paso y se muestrea del modelo con normalidad. Se pierde una pizca de evidencia, pero se elimina el sesgo acumulado.
Entrada: LLM p_LM, tamaño de ventana H, hash h, clave k, algoritmo de muestreo S, entero K ≥ 1, flujo de prompts (x¹, x², …) 1: para i ≥ 1 hacer ← una respuesta por prompt 2: C_i := ∅ ← historial de ventanas de esta respuesta 3: t := n, donde n = longitud del prompt xⁱ 4: mientras xⁱ_t ≠ EOS hacer 5: t := t + 1 6: si (xⁱ_{t−H}, …, xⁱ_{t−1}) ∈ C_i ∪ C_{i−1} ∪ … ∪ C_{i−K+1} entonces 7: Muestrear xⁱ_t ~ p_LM(·|xⁱ_<t) ← SIN marca: ventana ya usada 8: si no 9: r_t := h(xⁱ_{t−H}, …, xⁱ_{t−1}, k) 10: Muestrear xⁱ_t := S(p_LM(·|xⁱ_<t), r_t) ← CON marca (el torneo) 11: C_i := C_i ∪ {(xⁱ_{t−H}, …, xⁱ_{t−1})} ← anotar la ventana 12: fin si 13: fin mientras 14: devolver respuesta yⁱ := xⁱ_{n+1:t} 15: fin para
| Valor de K | Alcance del historial | Garantía | Coste |
|---|---|---|---|
| K = 1 | Solo la respuesta actual | No-distorsión de una secuencia | Mínimo. Es lo que usan |
| K > 1 | Las K−1 respuestas anteriores también | No-distorsión de K secuencias | Hay que guardar historial entre respuestas |
| K = ∞ | Historial eterno | Máxima | Cada ventana se usa una sola vez en la historia. La detectabilidad se desploma |
Cuanto más fuerte es la garantía de no-distorsión, menos evidencia de marca puedes recoger. No hay comida gratis: el mismo mecanismo que protege la calidad es el que borra huella. El artículo elige K = 1 como punto dulce.
Pieza 3: la detección
Llega un texto. No sabemos de dónde viene. Solo tenemos el texto tokenizado, la clave k y la regla del generador de semillas. No tenemos el modelo, y no lo necesitamos.
- Tokenizar:
x1, …, xT. - Para cada posición t, recalcular
rt = h(xt−H,…,xt−1, k). - Para cada posición y cada capa, calcular
gℓ(xt, rt). - Promediar todo.
- Comparar con un umbral.
m·T valores. Se divide por m·T para obtener una media. Con Bernoulli(0,5), esta media tiende a 0,5 en texto no marcado y sube por encima en texto marcado.El cálculo que conviene tener en la cabeza
Caso ideal: una capa, máxima entropía, dos tokens equiprobables. ¿Cuánto vale el g-value esperado del ganador?
| Lotería (gA, gB) | Prob. | Qué pasa | g del ganador |
|---|---|---|---|
| (1, 1) | ¼ | Gane quien gane, g = 1 | 1,000 |
| (0, 0) | ¼ | Gane quien gane, g = 0 | 0,000 |
| (1, 0) | ¼ | A gana si aparece: 1 − 0,5² = 0,75 | 0,750 |
| (0, 1) | ¼ | Simétrico | 0,750 |
| Media ponderada | 0,625 | ||
Una capa sube el g medio de 0,50 a 0,625 en el mejor de los casos. Parece poquísimo, y lo es por token. Pero se acumula, y el capítulo 06 ya nos dio la herramienta para saber cuánto.
m = 30, T = 200 → n = 6.000 → SE ≈ 0,00645
Score = 0,53 → z ≈ 4,65 → p ≈ 10−6
Lanzas una moneda 10 veces y salen 7 caras: te encoges de hombros. La lanzas 6.000 veces y salen 3.180 caras en vez de 3.000: la moneda está trucada y no hay discusión. La marca de agua no es un mensaje escondido en el texto; es una moneda ligeramente trucada repetida miles de veces.
Dos campanas: la de texto humano (rayada, centrada en 0,50) y la de texto marcado (sólida, desplazada). Alarga el texto y mira cómo se estrechan y se separan. Mueve el umbral para ver el compromiso entre falsos positivos y verdaderos positivos.
media sin marca = 0,500 · con marca ≈ 0,537
TPR = 100.0 % (culpables detectados) · FPR = 3.15 % (inocentes acusados)
Con T pequeño las campanas se solapan y no puedes separar nada. Al crecer T, ambas se estrechan como 1/√T y se separan limpiamente. Esa es toda la historia de la detectabilidad.
Las cuatro funciones de puntuación
- Media, la ecuación (1). Simple, sin parámetros.
- Media ponderada, repondera la evidencia de cada capa, porque las capas profundas del torneo aportan menos que las primeras.
- Versiones frecuentistas, contraste de hipótesis sobre esas medias, devolviendo un p-valor con garantía teórica sobre la tasa de falsos positivos.
- Bayesiana parametrizada, la que usan por defecto. Aprende de datos (textos marcados y no marcados) y calcula la probabilidad posterior de que el texto esté marcado. Es la que mejor rinde.
Los mandos: cuántas capas y por qué no infinitas
Añadir capas suena a ganancia gratis: cada capa aporta un g-value más por token, o sea más evidencia y menos varianza en la ecuación (1). Pero hay techo, y el artículo lo dice con una frase que conviene subrayar:
La capa 1 elige entre 8 candidatos genuinamente distintos. La capa 3 elige entre 2 supervivientes ya filtrados, que se parecen más entre sí. Queda menos variedad que explotar. Rendimientos decrecientes. La sección H del suplementario da el análisis teórico de la fuerza de una capa en función de un cierto tipo de entropía; análisis similares existen para otros esquemas (refs. 23, 24, 25).
| Parámetro | Valor por defecto | Qué controla |
|---|---|---|
| m (capas) | 30 | Evidencia por token. Rendimientos decrecientes |
| H (ventana) | 4 | Robustez frente a ediciones vs repetición de contexto |
| f_g | Bernoulli(0,5) | Frecuencia de empates, y con ella la no-distorsión |
| N (contendientes) | 2 | No distorsionador (2) o distorsionador (>2) |
| K (enmascarado) | 1 | Alcance de la garantía de calidad |
| puntuación | bayesiana | Cómo se convierte la evidencia en veredicto |
Los rivales, explicados de verdad
El artículo se compara con dos esquemas concretos. Para entender qué aporta Tournament sampling hay que entender contra qué compite. Este capítulo no está en el artículo con este detalle; lo reconstruimos a partir de las fuentes originales.
Rival 1: Soft Red List (Kirchenbauer et al., ICML 2023 → ref. 23)
El primer esquema moderno de marca generativa, y el más citado. La idea:
- Con la semilla del paso, se parte el vocabulario en dos: una lista verde con una fracción γ de los tokens (típicamente γ = 0,25 o 0,5) y una lista roja con el resto.
- Antes de muestrear, se suma una constante δ a los logits de todos los tokens verdes. Esto los hace más probables.
- Se muestrea normalmente de la distribución modificada.
z = ( |s|verde − γT ) / √( T γ (1−γ) )
Abajo, la detección: se cuentan los tokens verdes del texto, |s|verde. Bajo la hipótesis nula esperarías γT de ellos, con desviación típica √(Tγ(1−γ)), que es la varianza de una binomial. El estadístico z te dice a cuántas desviaciones típicas estás. Es exactamente el contraste del capítulo 06.
Cada día se sortea qué mitad de la carta del bar está "de oferta" y se le baja el precio un euro. Tú pides lo que te apetece, pero acabas pidiendo de la oferta más a menudo de lo normal. El problema salta a la vista: si la oferta del día no incluye lo que de verdad querías, acabas comiendo algo peor. Por eso es distorsionador.
Ventaja: simplicísimo y muy detectable. Problema: cambia la distribución siempre, así que degrada el texto. δ es un mando directo entre calidad y detección. Zhao et al. (ICLR 2024 → ref. 62) propusieron una variante con lista verde fija,Unigram-Watermark, con garantías demostrables de robustez frente a ediciones, a costa de ser más fácil de deducir por un atacante.
Rival 2: Gumbel sampling (Aaronson y Kirchner, 2022 → ref. 22)
Un enfoque radicalmente distinto y muy elegante. En vez de tocar las probabilidades, se cambia la forma de sortear. La semilla genera un número uniforme ri ∈ (0,1) para cada token del vocabulario, y luego:
Score = Σt log( 1 / (1 − rxt) )
La detección explota que el token elegido tiende a tener un r alto. Sumar log(1/(1−r)) da un estadístico que sigue una distribución conocida bajo la hipótesis nula.
Una carrera en la que cada corredor lleva un lastre proporcional a lo improbable que es y, además, un dorsal con un número secreto del día. Gana el que mejor combina ambas cosas. La carrera es justa en el sentido de que cada corredor gana con la frecuencia que le tocaría, pero quien conoce los dorsales ve que los ganadores tienen números sospechosamente altos.
Ventaja: no distorsionador y barato. Desventaja frente a Tournament: extrae una sola señal por token. Tournament sampling extrae m señales por token porque juega m capas independientes, y por eso reduce la varianza del estadístico y detecta mejor con menos texto. Es exactamente ahí donde está la ganancia del artículo.
| Soft Red List | Gumbel | Tournament (SynthID) | |
|---|---|---|---|
| Qué modifica | Los logits | El procedimiento de sorteo | El procedimiento de sorteo |
| Distorsión | Sí, controlada por δ | No | Configurable: N=2 no, N>2 sí |
| Señales por token | 1 | 1 | m (por defecto 30) |
| Latencia extra | +0,28 % | +0,26 % | +0,57 % |
| Resultado | Peor compromiso calidad/detección | Peor detección a igual longitud | Mejor en ambas categorías |
Y un tercer camino: marcas indetectables
Christ, Gunn y Zamir (COLT 2024 → ref. 25) demostraron algo teóricamente precioso: es posible construir marcas de agua criptográficamente indetectables, es decir, tales que ningún adversario con poder computacional polinómico pueda distinguir el texto marcado del no marcado sin la clave. El precio es que necesitan más texto para detectar y son más difíciles de llevar a producción. Es el extremo teórico del espectro en el que SynthID-Text ocupa el punto práctico.
La configuración distorsionadora de SynthID-Text
| No distorsionador | Distorsionador | |
|---|---|---|
| Contendientes | N = 2 | N > 2 |
| Calidad | Idéntica, con garantía matemática | Se degrada de forma controlable |
| Detectabilidad | Buena | Mayor |
| Se compara con | Gumbel sampling | Soft Red List |
| Uso típico | Producción, chatbots de consumo | Contextos donde detectar es crítico |
Resultado reportado: en la categoría distorsionadora, SynthID-Text ofrece tasas de detección sustancialmente más altas para el mismo efecto sobre log(perplejidad).
Escalabilidad: casar la marca con el muestreo especulativo
Este capítulo convierte el artículo de "buena idea académica" en "sistema desplegado". En producción nadie genera texto con el bucle simple del capítulo 09. Se usa muestreo especulativo, y hasta este artículo nadie había investigado cómo combinarlo con una marca de agua.
También en el facsímil: el lugar del muestreo especulativo dentro de la inferencia moderna, junto con KV cache, batching y hardware, se explica en F03, capítulo 07: inferencia optimizada.
Qué es el muestreo especulativo
Descrito independientemente por Chen et al. (2023 → ref. 5) y Leviathan, Kalman y Matias (ICML 2023 → ref. 63):
- Un modelo borrador, pequeño y rápido, propone los siguientes 3 o 4 tokens de un tirón.
- El modelo objetivo, grande y lento, verifica esas propuestas todas a la vez en una sola pasada.
- Acepta el prefijo que coincide con lo que él habría hecho y rechaza a partir del primer desacuerdo, corrigiéndolo con una distribución residual cuidadosamente construida.
La clave: verificar cuatro tokens de golpe cuesta casi lo mismo que generar uno, porque el cuello de botella es mover los pesos del modelo desde la memoria, no la aritmética. Y, esto es esencial, el resultado es estadísticamente idéntico a haber usado solo el modelo grande. No es una aproximación.
Un becario redacta rápido cuatro párrafos y el jefe los revisa todos de una sentada, en vez de dictar palabra por palabra. Si el becario acierta, el jefe firma los cuatro. En cuanto encuentra uno que él no habría escrito, tacha desde ahí y lo reescribe. El documento final es exactamente el que habría escrito el jefe, pero se ha tardado un tercio.
El borrador propone tres tokens. El objetivo verifica. Ficha rellena = aceptado; ficha tachada = rechazado y corregido con el torneo marcado.
El conflicto
¿Por qué chocan marca y muestreo especulativo? Porque el muestreo especulativo se apoya en una regla de aceptación construida para reproducir pLM exactamente. Si el modelo objetivo, además, tiene que aplicar un torneo sesgado por una semilla, la regla de aceptación deja de casar: o aceptas tokens que la marca no habría elegido (pierdes marca) o rechazas tokens buenos (pierdes velocidad).
| Algoritmo | Preserva | Sacrifica | Cuándo usarlo |
|---|---|---|---|
| Especulativo marcado de alta detectabilidad | La detectabilidad, intacta | Puede bajar la eficiencia y subir la latencia | Cuando detectar importa más que ir rápido |
| Especulativo marcado rápido | La eficiencia, intacta (si la marca es no distorsionadora a nivel de token) | Puede bajar algo la detectabilidad | Producción, donde la velocidad es requisito duro |
Para compensar la pérdida del segundo proponen además una función de puntuación bayesiana aprendida específica para este caso, que recupera buena parte de la detectabilidad.
Emparejado con una marca no distorsionadora a nivel de token, el muestreo especulativo marcado rápido preserva la tasa de aceptación de forma demostrable: el número medio de tokens del borrador que el modelo grande acepta no cambia. Lo confirman con Gemma 7B-IT como objetivo y Gemma 2B-IT como borrador, con 3 tokens de anticipación. Y añaden que el resultado debería valer para cualquier marca no distorsionadora, no solo la suya.
La evidencia
Qué se midió, con cuántos datos y qué salió. Incluido el experimento que ningún grupo académico podría haber hecho.
Resultados, con las cifras exactas
También en el facsímil: para convertir estas cifras en una evaluación defendible, vuelve a F07, capítulo 01: qué decisión permite una eval, F07, capítulo 02: métricas y F07, capítulo 04: evaluación humana y evaluadores.
Montaje experimental
| Elemento | Configuración |
|---|---|
| Modelos | Gemma 2B-IT y 7B-IT (ref. 28), Mistral 7B-IT v0.2 (ref. 29) |
| Decodificación | top-k con k = 100; temperaturas 0,5 / 0,7 / 1,0 |
| Prompts | ELI5 (ref. 30): preguntas que exigen respuestas explicativas de varias frases |
| Positivos (no distorsionador) | 2 conjuntos disjuntos de 10.000 prompts (test y desarrollo) |
| Positivos (distorsionador) | 1.500 prompts de test |
| Negativos | Respuestas escritas por humanos a 10.000 preguntas de ELI5 |
| Longitudes fijas | Se filtran los textos más largos que el objetivo y se truncan (p. ej. exactamente 200 tokens) |
| Hardware | 4 TPU v5e (ref. 31) |
| Métrica | TPR @ FPR = 1 %, calculada empíricamente |
| Intervalos | Bootstrap con 500 remuestreos, intervalos de confianza al 90 % |
Nota metodológica: usar respuestas humanas de ELI5 como negativos es una elección exigente. Son textos del mismo dominio y registro que los generados, no textos cualesquiera. Un negativo fácil habría inflado los resultados.
Resultado 1: la calidad no se toca. Con 20 millones de testigos.
Este es el experimento que hace único al artículo, y que solo puede hacer quien opera un producto con cientos de millones de usuarios. Se enrutó una fracción aleatoria de consultas reales de Gemini a un modelo marcado y una cantidad equivalente a su versión sin marcar. Después se compararon los pulgares arriba y abajo.
| Medida | Resultado | Interpretación |
|---|---|---|
| Volumen analizado | ≈ 20.000.000 de respuestas | Marcadas y no marcadas |
| Tasa de pulgar arriba | +0,01 % (a favor del marcado) | Estadísticamente insignificante |
| Tasa de pulgar abajo | −0,02 % (a favor del marcado) | Estadísticamente insignificante |
Ambas diferencias caen holgadamente dentro de los intervalos de confianza del 95 %. Y fíjate en el detalle: el modelo marcado salió mínimamente mejor en las dos métricas. Eso es exactamente lo que esperas del ruido estadístico cuando no hay diferencia real. Si hubiera salido siempre a favor del no marcado, habría que sospechar.
Evaluaciones adicionales de calidad
- Test controlado con humanos: 3.000 preguntas de ELI5 con Gemma 7B-IT, comparando lado a lado cinco dimensiones: gramaticalidad y coherencia, relevancia, corrección, utilidad y calidad global. Sin diferencia significativa en ninguna, tanto en el análisis de tres vías con empates (test trinomial) como restringiendo a respuestas sin empate (bootstrap sobre el cociente de preferencias). Los datos y anotaciones se publicaron (ref. 7).
- Automáticas: sin diferencia significativa en perplejidad ni en benchmarks estándar de capacidad.
Resultado 2: detecta mejor que la competencia
- Frente a Gumbel: mejor detectabilidad a igual longitud de texto. La ventaja crece en entropía baja (temperaturas bajas, modelos grandes), el régimen difícil. Con entropía alta van parecidos.
- Frente a Soft Red List: compromiso más favorable, con detección sustancialmente más alta para el mismo efecto sobre log(perplejidad).
- Comparación limpia: todos los métodos usan el mismo generador de semillas (ventana, H = 4) y el mismo enmascarado de contexto. Lo único que cambia es el algoritmo de muestreo. Así se aísla la contribución real de Tournament sampling, en vez de comparar sistemas enteros con variables confundidas.
- Multilingüe: rendimiento consistente entre idiomas, mientras que un detector post hoc se hunde en las lenguas para las que no fue entrenado. Ventaja estructural: la marca no depende del estilo del idioma, solo de los tokens.
Resultado 3: el coste computacional es despreciable
| Configuración (Gemma 7B-IT sobre 4 TPU v5e) | ms por token | Sobrecoste |
|---|---|---|
| Sin marca | 15,527 | N/D |
| Tournament sampling, 30 capas | 15,615 | +0,57 % |
| Gumbel sampling | N/D | +0,26 % |
| Soft Red List | N/D | +0,28 % |
Sí, Tournament sampling cuesta el doble que sus rivales. Pero el doble de "prácticamente nada" sigue siendo prácticamente nada: 88 microsegundos por token.
Limitaciones y ataques
Una de las mejores cosas del artículo es lo explícita que es su sección de limitaciones. Ninguna de estas es un secreto: están todas escritas por los propios autores.
También en el facsímil: la defensa por capas, los límites de confianza y la validación de entradas y salidas se estudian en F09, capítulo 03: seguridad de aplicaciones LLM.
1. Requiere cooperación
Solo funciona si quien opera el servicio decide aplicarla. Para detectar texto de un actor que no marca hacen falta otros métodos. No es una solución general al problema de la detección: es una pieza de un sistema mayor.
2. Los modelos abiertos son un problema estructural
Si el modelo se puede descargar y ejecutar en tu portátil, no hay forma de imponer la marca: basta con borrar esas líneas del código de muestreo. Es un desafío de gobernanza, no técnico. Gu et al. (ICLR 2024 → ref. 64) exploraron si una marca puede destilarse dentro de los pesos del modelo para que sobreviva, con resultados prometedores pero parciales.
3. Los tres ataques
| Ataque | En qué consiste | Analogía | Referencia |
|---|---|---|---|
| Scrubbing (borrado) | Editar el texto para eliminar la marca. La paráfrasis con otro modelo es lo más efectivo. | Lavar el billete hasta que se vaya la tinta. | 33, 12 |
| Stealing (robo) | Sondear el modelo muchísimas veces para inferir qué tokens están favorecidos y reconstruir parte de la regla. | Observar mil partidas hasta deducir cómo hace trampas el crupier. | 32 |
| Spoofing (suplantación) | Fabricar texto marcado sin usar el modelo, para que un texto humano parezca sintético. El más grave: permite incriminar. | Falsificar la marca de agua para que un billete legítimo parezca falso. | 32 |
Jovanović, Staab y Vechev (ICML 2024 → ref. 32) mostraron que el robo de marca es viable con del orden de millones de tokens de consulta y un coste modesto, y que una vez robada la marca, el spoofing se vuelve barato. Es investigación en curso.
4. La paráfrasis debilita la marca
Es la vulnerabilidad más directa: si pides a otro modelo que reescriba el texto, la mayoría de ventanas de contexto cambian y las semillas dejan de coincidir. Los autores añaden un matiz importante: parafrasear suele cambiar el texto de forma significativa, así que el atacante paga un precio real, y ese precio crece si quiere conservar el contenido exacto.
Zhang et al. (ICML 2024 → ref. 33) fueron más lejos con un resultado teórico incómodo: bajo ciertas hipótesis, ninguna marca de agua fuerte puede ser robusta frente a un atacante con acceso a un modelo de calidad comparable. El título lo dice todo: "marcas de agua en la arena".
5. Entropía baja
Ya visto: respuestas cortas, factuales o muy restringidas son prácticamente indetectables. Nada lo arregla, porque no es un fallo del método sino un límite de la información.
SynthID-Text no responde a "¿escribió esto una IA?". Responde a algo mucho más acotado y mucho más honesto: "¿salió esto de este sistema concreto, que decidió marcarlo?". Es una herramienta de rendición de cuentas para quien despliega el modelo, no un detector universal de plagio. Confundir ambas cosas es el error más común al hablar de este trabajo, y el que produce las peores decisiones institucionales.
La marca identifica el texto, pero no protege lo que viaja oculto
Hasta aquí hemos estudiado una señal escondida dentro de las decisiones de muestreo del texto visible. En agosto de 2026, Panfilov et al. publicaron un resultado que obliga a mirar la otra mitad de una aplicación moderna: algunos proveedores devuelven al cliente bloques opacos que representan razonamiento anterior, y el cliente los reenvía en llamadas posteriores. Esos bloques no son SynthID, no son una marca de agua y no sirven para atribuir públicamente un texto. Son estado de conversación transportado por la API.
La conexión importa porque una organización puede hacer bien la procedencia del documento y, al mismo tiempo, publicar un registro peligroso. El texto que ve una persona puede estar marcado, revisado y anonimizado, mientras un campo ilegible del JSON conserva datos que nadie inspeccionó. Procedencia, confidencialidad e integridad son propiedades distintas. Ninguna sustituye a las otras.
También en el facsímil: la arquitectura completa, las fronteras de confianza y el tratamiento de trazas se desarrollan en F09, capítulo 03: seguridad de aplicaciones LLM. Este capítulo se concentra en entender el hallazgo de Panfilov et al. mediante una reconstrucción local segura.
Lucía factura una maleta cerrada. Nadie puede abrirla durante el trayecto, pero la etiqueta solo dice "equipaje válido" y no "equipaje de Lucía, vuelo 402, asiento 18A". Si el sistema acepta esa maleta en otro vuelo, el candado sigue intacto y, aun así, la seguridad ha fallado. El problema no era romper el cierre: era que el cierre no estaba unido al pasajero y al trayecto correctos.
Dos canales que no debes confundir
Un bloque opaco es un campo que la aplicación conserva pero no interpreta. Puede contener un ciphertext, texto cifrado; un nonce, número usado una vez; un tag de autenticación, que detecta alteraciones; y metadatos como versión o identificador de clave. El conjunto suele describirse mediante AEAD, cifrado autenticado con datos asociados. AEAD intenta dar confidencialidad e integridad a la vez. Los datos asociados o AAD no se cifran, pero quedan autenticados: si cambian, la verificación falla.
El hallazgo del paper no consiste en romper AES. Los autores observaron que, durante sus pruebas de julio de 2026, determinados sobres eran compatibles entre sesiones, usuarios e incluso modelos de una misma familia. Al mover un bloque válido hacia un modelo compatible y menos protegido, pudieron provocar que el sistema reconstruyera el razonamiento. El fallo estaba en qué contexto aceptaba el sobre, no en una factorización mágica de la clave.
Vas a construir un sobre AES-GCM en este navegador, trasladarlo a otro contexto y decidir qué se puede publicar. El secreto sk_demo_CURSO_NO_REAL_7F3A es inventado y no funciona en ningún servicio. La práctica enseña el mecanismo defensivo; no reproduce el ataque contra APIs reales.
Cierra la maleta
Elige qué partes del contexto quedarán autenticadas como AAD. Empieza sin marcar nada para reproducir el diseño portable; después repite con más vínculos.
- Origen
- lucia · sesion-a · modelo-pro · turno-17
- AAD
- Todavía no creado
- Nonce
- Todavía no creado
- Ciphertext
- Todavía no creado
Cambia el billete
Mueve exactamente el mismo sobre. Si el dato que cambiaste no formaba parte del AAD, el cifrado puede seguir siendo íntegro aunque el contexto sea incorrecto.
Publica el registro de Lucía
Una limpieza tradicional solo ve texto plano. Decide qué retiras y comprueba si el artefacto público sigue cargando un contenedor que tú no puedes auditar.
Incidencia resuelta. Credencial sk_demo_CURSO_NO_REAL_7F3A revocada.[Primero crea el sobre]Cambia la unidad de análisis
Los tres porcentajes siguientes proceden del mismo estudio, pero responden a preguntas distintas. Elige el denominador antes de escribir el titular.
Mide bloques individuales con al menos una fuga. Parece pequeño porque una sola sesión puede contener muchos bloques.
Qué midió realmente el estudio
Los autores reunieron 6.708 trayectorias públicas de GitHub y Hugging Face y reconstruyeron 315.320 bloques. Detectaron al menos un artefacto de privacidad en 1.028 bloques, aproximadamente el 0,3 %. Al agrupar por trayectoria, 328 de 6.708 sesiones tenían al menos una fuga, el 4,9 %. En las sesiones genuinas, 64 de 704 artefactos recuperados aparecían solo en el razonamiento y no en el historial visible. Esa última cifra no significa que el modelo inventara necesariamente todos los datos: el propio paper separa como posibilidades la memoria del modelo y la permanencia de valores que el usuario había retirado del texto visible.
El conjunto no es una muestra aleatoria de todas las aplicaciones de IA. Son trazas que alguien decidió publicar y que todavía contenían bloques compatibles. Por eso los porcentajes describen ese corpus observado, no la prevalencia mundial. Aun así, el hallazgo operativo es fuerte: pedir al agente que "limpie" una conversación puede empeorar el problema, porque el modelo vuelve a leer la historia y repite en su razonamiento los valores que intenta retirar.
Ayuda a detectar que el texto visible salió de un sistema cooperante. No cifra ni sanea registros.
Retira secretos, PII y campos opacos antes de subir sesiones, datasets o logs a un repositorio.
Autentica usuario, sesión, modelo e historial para que un sobre válido no sea aceptable en cualquier destino.
Qué debes llevarte a un proyecto real
No guardes una respuesta completa de proveedor como si fuera texto inocuo. Define un esquema de persistencia que permita explícitamente los campos necesarios y descarte el resto. Antes de publicar un log, elimina bloques de razonamiento, firmas, cabeceras de autorización, resultados de herramientas y adjuntos temporales. Si necesitas continuidad, conserva un identificador del lado servidor o un sobre con contexto autenticado, caducidad, versión de clave y política de revocación. Y separa en tus requisitos qué control prueba procedencia, cuál protege confidencialidad y cuál evita replays.
El preprint se publicó el 10 de agosto de 2026 y describe pruebas realizadas en julio. Tras la divulgación responsable, los proveedores introdujeron mitigaciones. Los propios autores indican que, en agosto de 2026, el ataque principal ya no era reproducible con el procedimiento publicado. Este capítulo enseña la clase de fallo arquitectónico y sus defensas; no afirma que una API actual siga siendo vulnerable.
La normativa: marcar el texto ya es obligatorio en Europa
Este trabajo no aparece en el vacío. Cuando se publicó, en octubre de 2024, la Unión Europea acababa de aprobar la primera ley del mundo que obliga a marcar el contenido generado por máquinas. Dos años después, esa obligación ya está en vigor, y SynthID-Text es exactamente el tipo de tecnología que la ley presupone que existe.
También en el facsímil: el AI Act, ISO 42001, el reparto de responsabilidades y la construcción de evidencias se desarrollan en F09, capítulo 04: cumplimiento y auditoría.
Qué es el Reglamento de IA
El Reglamento (UE) 2024/1689, conocido como AI Act, entró en vigor el 1 de agosto de 2024. Es un reglamento, no una directiva: se aplica directamente en los 27 Estados miembros sin necesidad de trasposición nacional. Y su alcance es extraterritorial: afecta a cualquier empresa, esté donde esté, que ponga sus sistemas o su contenido delante de usuarios en la UE.
Sus obligaciones se escalonan en el tiempo. La que nos interesa es el artículo 50, la capa de transparencia, y es importante entender que no es una norma de riesgo alto: no depende de para qué uses la IA. Se aplica prácticamente a cualquier sistema que hable con personas o genere contenido.
Las cuatro obligaciones del artículo 50
| Apartado | Situación | Quién responde | Qué exige |
|---|---|---|---|
| 50(1) | Sistemas que interactúan directamente con personas (chatbots, agentes, avatares) | Proveedor | Diseñarlos de forma que la persona sepa que está hablando con una máquina |
| 50(2) | Sistemas que generan audio, imagen, vídeo o TEXTO sintético | Proveedor | Que las salidas estén marcadas en formato legible por máquina y sean detectables como generadas o manipuladas artificialmente |
| 50(3) | Reconocimiento de emociones y categorización biométrica | Responsable del despliegue | Informar a las personas expuestas |
| 50(4) | Ultrafalsificaciones (deepfakes) y textos publicados sobre asuntos de interés público | Responsable del despliegue | Revelar que el contenido es artificial, con excepciones limitadas para obra editorial revisada por humanos y obra artística |
El apartado 50(2) es el que describe, sin nombrarla, una marca de agua. Fíjate en la formulación: no dice "pon una etiqueta visible". Dice marcado en formato legible por máquina y detectable. Una etiqueta visible se borra con un copiar y pegar; lo que la norma pide es algo que sobreviva dentro del propio contenido y que una herramienta automática pueda verificar. Es literalmente la definición de la pieza 3 del capítulo 10.
El Reglamento exige que las soluciones de marcado sean eficaces, interoperables, robustas y fiables. Y aquí está el problema técnico de fondo: ninguna tecnología disponible cumple hoy los cuatro requisitos por sí sola. Los metadatos firmados criptográficamente son verificables y fiables, pero desaparecen con una captura de pantalla o una recarga en una red social. Las marcas de agua imperceptibles como SynthID sobreviven mucho mejor al procesado, pero no son universalmente robustas. El capítulo 21 explica por qué: basta parafrasear. Por eso la respuesta oficial no es "usad esta técnica", sino "usad varias en capas".
El Código de buenas prácticas
Para convertir un artículo de ley en algo que un ingeniero pueda implementar, la Oficina Europea de IA elaboró en un proceso multiactor el Código de buenas prácticas sobre transparencia del contenido generado por IA, publicado en junio de 2026. Es un instrumento voluntario: firmarlo no es obligatorio, pero es la vía reconocida para demostrar que cumples. A finales de julio de 2026 lo habían firmado en torno a 190 empresas y organizaciones.
El Código propone un enfoque en capas con tres mecanismos:
- Metadatos firmados digitalmente. Registrar en los metadatos si el contenido es generado o manipulado por IA, firmado y con sello de tiempo de forma segura y a prueba de manipulaciones. Aunque el Código no lo nombra, la única tecnología que cumple esa descripción es C2PA (Coalition for Content Provenance and Authenticity), el estándar de "credenciales de contenido".
- Marca de agua imperceptible. Es decir: esto. Lo que hemos estudiado durante veintiún capítulos.
- Huella digital o registro (opcional). Una base de datos consultable, que es la familia A del capítulo 08, con sus mismos problemas de escala y privacidad.
Las directrices finales de la Comisión Europea sobre el artículo 50 se publicaron el 20 de julio de 2026, y son el instrumento que las autoridades nacionales de vigilancia del mercado usarán como referencia principal al evaluar el cumplimiento. La Comisión ha publicado además un juego de iconos para etiquetar contenido generado o modificado por IA, de uso voluntario.
El calendario
Por qué esto cambia la lectura del artículo
Vuelve al capítulo 21, a la lista de limitaciones. Los propios autores escriben que la marca generativa requiere que quien opera el modelo coopere, y que con modelos abiertos no hay forma de imponerla. Esa era, en 2024, una debilidad puramente técnica que dependía de la buena voluntad de cada empresa.
Dos años después, esa cooperación ha dejado de ser voluntaria para quien opera un servicio en Europa. La ley no resuelve el problema de los modelos que cualquiera puede descargar y ejecutar en su portátil, que sigue abierto, pero sí resuelve el de los grandes proveedores comerciales, que es de donde sale la inmensa mayoría del texto sintético del mundo.
Otros proveedores
El movimiento no es exclusivo de Google. Diversos proveedores de modelos han firmado el Código de buenas prácticas como proveedores de modelos y de sistemas generativos, y han empezado a incorporar marcas imperceptibles en el texto junto con metadatos C2PA firmados en los archivos que generan, en algunos casos aplicándolo a escala mundial y no solo en la UE. Es el efecto Bruselas de manual: una norma regional acaba fijando el estándar global porque a las empresas les sale más barato aplicarlo en todas partes que mantener dos versiones del producto.
El debate académico previo
Nada de esto surgió de repente. Solaiman et al. (2019 → ref. 65), en el contexto del lanzamiento escalonado de GPT-2, ya discutían estrategias de publicación y detección. Bender, Gebru et al. (FAccT 2021 → ref. 66) advirtieron sobre los riesgos de los modelos de lenguaje a gran escala. Las revisiones de Wu et al. (ref. 4) y Liu et al. (ref. 67) recogen el estado del arte. El propio artículo se presenta en esos términos: no como la solución al problema, sino como "un hito práctico para un despliegue responsable, transparente y con rendición de cuentas".
Material de repaso
Resumen ejecutable, glosario, bibliografía anotada de 77 referencias.
La idea entera, en doce líneas
- Un modelo escribe token a token, sorteando de una distribución de probabilidad.
- Esa distribución tiene entropía: incertidumbre que el modelo iba a desperdiciar de todos modos.
- Antes de sortear, se genera una semilla secreta con un hash de los últimos 4 tokens y una clave.
- Esa semilla asigna a cada token del vocabulario un 0 o un 1 secreto: su g-value. Una lotería distinta por capa.
- En vez de sortear un token, se sortean 2³⁰ candidatos y se juega un torneo de 30 rondas eliminatorias.
- En cada ronda gana el token con el g-value más alto de esa capa; los empates se resuelven al azar.
- Como cada partido tiene exactamente 2 contendientes, la distribución de salida es matemáticamente idéntica a la original.
- Pero el ganador tiende a tener g-values altos. Miles de tokens después, esa tendencia es un pico estadístico enorme.
- El detector recalcula las semillas leyendo el texto, sin necesitar el modelo, promedia los g-values y hace un contraste de hipótesis.
- Si la ventana de contexto ya se usó, se apaga la marca en ese paso para evitar bucles.
- Todo esto cuesta 88 microsegundos por token y sobrevive al muestreo especulativo.
- Ha pasado por 20 millones de conversaciones reales sin que nadie notara nada.
Glosario
- Autorregresivo
- Que genera de izquierda a derecha usando lo ya generado como entrada del paso siguiente.
- Bernoulli(0,5)
- Distribución de una moneda justa: vale 1 con probabilidad ½ y 0 con probabilidad ½. Media 0,5, desviación típica 0,5.
- Bootstrap
- Técnica para estimar la incertidumbre remuestreando con reemplazo los propios datos. El artículo usa 500 remuestreos.
- BPE (Byte-Pair Encoding)
- Algoritmo que construye el vocabulario de tokens fusionando repetidamente los pares de símbolos más frecuentes.
- Capa ℓ / número de capas m
- Ronda del torneo. Cada capa usa su propia función g. Por defecto m = 30.
- Clave de marcado k
- Entero secreto. Sin ella no se puede detectar la marca ni predecir qué tokens están favorecidos.
- Colapso de modo
- Pérdida de diversidad en las salidas del modelo, típicamente inducida por RLHF.
- Colapso del modelo
- Degeneración que sufre un modelo entrenado recursivamente con datos generados por modelos.
- Distribución de probabilidad
- Lista de resultados posibles con sus probabilidades, que suma exactamente 1.
- ELI5
- Conjunto de datos de preguntas que requieren respuestas explicativas largas. Se usa para generar los textos de prueba.
- Entropía
- Incertidumbre de una distribución, medida en bits. Es el "combustible" de la marca de agua.
- EOS
- Token especial de fin de secuencia. Cuando se muestrea, la generación termina.
- Esperanza E[X]
- Promedio a largo plazo de una variable aleatoria: cada resultado por su probabilidad, sumado.
- Función hash
- Función determinista que convierte cualquier entrada en un número de tamaño fijo con aspecto aleatorio.
- g-value
- Puntuación pseudoaleatoria asignada a un token dada la semilla y la capa. Normalmente 0 o 1.
- Gumbel sampling
- Esquema rival no distorsionador: elige argmax de ri1/pi. Extrae una señal por token.
- Logit
- Puntuación sin normalizar que el modelo asigna a cada token antes de convertirla en probabilidad.
- Muestreo por transformada inversa
- Convertir un uniforme(0,1) en una muestra de cualquier distribución aplicando la inversa de su acumulada.
- Muestreo especulativo
- Aceleración: un modelo pequeño propone varios tokens y el grande los verifica en una sola pasada.
- No-distorsión
- Propiedad de que la distribución de salida coincide, promediando sobre la semilla, con la del modelo original.
- p-valor
- Probabilidad de observar algo tan extremo como lo observado si la hipótesis nula fuera cierta.
- Perplejidad
- Exponencial de la entropía cruzada media. Mide lo "sorprendente" que resulta un texto a un modelo.
- PRF (función pseudoaleatoria)
- Familia de funciones con clave, computacionalmente indistinguible de una función aleatoria para quien no tiene la clave.
- Predicción selectiva
- Mecanismo por el que el detector se abstiene cuando no está seguro en lugar de arriesgar un veredicto.
- RLHF
- Aprendizaje por refuerzo con retroalimentación humana. Alinea el modelo con preferencias humanas y reduce entropía.
- Self-BLEU
- Medida de similitud entre respuestas distintas del mismo modelo. Valor bajo = más diversidad.
- Semilla rt
- Número pseudoaleatorio que determina la lotería del paso t. Hash de la ventana y la clave.
- Soft Red List
- Esquema rival distorsionador: divide el vocabulario en verde/rojo y suma δ a los logits verdes.
- Scrubbing / stealing / spoofing
- Borrar la marca / deducir la regla sondeando / fabricar marca falsa para incriminar.
- Temperatura τ
- Parámetro que aplana (τ alta) o apunta (τ baja) la distribución antes de muestrear.
- Token
- Unidad mínima de texto que maneja el modelo: palabra, trozo de palabra o signo.
- Top-k / top-p
- Recortes de la distribución: los k más probables, o los que acumulan una masa p.
- Tournament sampling
- El algoritmo propuesto: torneo de eliminatorias entre candidatos, ganando los de g-value alto.
- TPR / FPR
- Fracción de textos marcados detectados / fracción de textos honestos acusados por error.
- Artículo 50 (Reglamento de IA)
- Capa de transparencia del Reglamento (UE) 2024/1689. Su apartado 2 obliga a marcar el contenido sintético en formato legible por máquina. Aplicable desde el 2 de agosto de 2026.
- C2PA
- Estándar de metadatos de procedencia firmados criptográficamente. Robusto mientras los metadatos sobreviven; se pierde con una captura de pantalla.
- AAD (datos asociados autenticados)
- Contexto que no se cifra, pero queda protegido por el tag de un esquema AEAD. Si cambia un usuario, una sesión o un modelo incluido en el AAD, la verificación debe fallar.
- AEAD
- Cifrado autenticado con datos asociados. Protege la confidencialidad del contenido y detecta alteraciones, además de poder ligar el sobre a contexto externo.
- Bloque opaco de razonamiento
- Estado que una API devuelve al cliente para reenviarlo después, pero cuyo contenido el cliente no puede inspeccionar directamente.
- Replay
- Reutilización de un mensaje, firma o sobre válido fuera de su orden o contexto original. Un cifrado intacto también puede sufrir replay si no autentica el destino correcto.
- Ventana deslizante H
- Los últimos H tokens que entran en el hash de la semilla. En el artículo, H = 4.
- Vocabulario V
- Conjunto de todos los tokens posibles. Del orden de cientos de miles.
Bibliografía anotada
Referencias 1–36: bibliografía original del artículo (recuadro blanco). Referencias 37–77: añadidos de contexto de esta clase, no citados por los autores (recuadro negro).