Medido
Cada cifra, con su fecha, su máquina y el fichero del que sale
Esta página reúne las mediciones que cita el resto del sitio. Cada tabla dice el día en que se tomó y la máquina en que corrió, y un test vuelve a leer cada número del fichero que lo produjo: cuando ese fichero se mueve y la página no, la construcción se pone roja.
Lo que no está aquí es lo que nadie ha medido. Donde la fuente no registra la máquina, la página lo dice en vez de poner una; donde el corpus es sintético, la frase que lo dice viaja con el número.
El motor determinista, sobre el corpus adversarial
La capa con control por dígito de verificación: documentos de identidad, IBAN, tarjetas, claves y tokens. Dos pistas sobre el mismo generador — los valores escritos entre espacios, y los mismos valores escritos como los escribe la gente: pegados a un dígito suelto, con prefijo, en cifras arábigo-índicas, con una marca combinante dentro.
Corpus: 1.000 documentos en cuatro idiomas, 4.522 entidades etiquetadas, 443.724 caracteres. Máquina: Apple M4 Pro, macOS 15.7.4, CPython 3.13.7.
| Pista | Semilla | Precisión | Recall | Fuga residual | Superficie de fuga parcial | Ida y vuelta |
|---|---|---|---|---|---|---|
| Cooperativa | 1234 | 1,0000 | 1,0000 | 0,00 % | 0 | 1,000000 |
| Cooperativa | 42 | 1,0000 | 1,0000 | 0,00 % | 0 | 1,000000 |
| Cooperativa | 7 | 1,0000 | 1,0000 | 0,00 % | 0 | 1,000000 |
| Adversarial | 1234 | 0,9940 | 1,0000 | 0,00 % | 0 | 1,000000 |
| Adversarial | 42 | 0,9874 | 0,9989 | 0,00 % | 0 | 0,999641 |
| Adversarial | 7 | 0,9894 | 1,0000 | 0,00 % | 0 | 1,000000 |
Medido el 9 de agosto de 2026 · 1.000 documentos por pasada, tres semillas, las dos pistas.
Las tres filas adversariales se publican con las demás: dos quedan por debajo de los suelos que afirma la integración continua, porque allí se tira una sola semilla y esta tabla tira tres. Lo que se sostiene en las seis pasadas es el par por el que se juzga una frontera de fuga de datos: fuga residual en cero y superficie de fuga parcial en cero.
Documentos, en el gateway
Extracción y detección sobre el corpus de documentos, una petición cada vez. Son cifras de petición única: los dos pasos van de CPU y el intérprete los serializa, así que quien gobierna la concurrencia es el semáforo de documentos y la reserva de procesos, no esta tabla.
| Documento | Extracción | Detección | Total | Valores encontrados |
|---|---|---|---|---|
| PDF de una página con capa de texto | 1,3 ms | 1,9 ms | 3,2 ms | 6/6 |
| Documento de Word: cuerpo y propiedad de autor | 0,6 ms | 2,1 ms | 2,7 ms | 6/6 |
| Hoja de cálculo: celdas, nombre de hoja y propiedades | 1,4 ms | 1,1 ms | 2,5 ms | 6/6 |
Medido el 29 de agosto de 2026 en fernando · AMD EPYC-Genoa, 16 vCPU, 30 GB.
- El mismo trabajo en el navegador
- 92 ms de principio a fin para un PDF de una página de 3 MB
La ruta del navegador es otra implementación (pdf.js y pdf-lib) y el propio banco de pruebas dice que no es comparable con las filas de arriba, así que se publica en su propia línea y nunca dentro de esa tabla.
Determinista frente a NLP
La capa determinista no busca nombres de personas; de eso se ocupa la capa de NLP. Esto es lo que deja atrás cada pila sobre el mismo corpus: la proporción de valores PERSON y LOCATION del oro que siguen presentes en el texto que sale.
Corpus: 400 documentos, 800 entidades del oro, semilla 2026.
| Pila | Fuga residual | Valores | Tiempo de reloj |
|---|---|---|---|
| NER nulo (control) | 100,000 % | 800/800 | 0,1 s |
| Determinista + Presidio | 4,875 % | 39/800 | 3,3 s |
| Determinista + Presidio + GLiNER | 0,000 % | 0/800 | 7,1 s |
Medido el 12 de septiembre de 2026 · máquina: development laptop.
El cero no es una promesa de cero en producción: el corpus es sintético y sus entidades del oro son solo PERSON y LOCATION, así que no dice nada de la prosa real, ni de las direcciones, ni de las categorías especiales. La fila de control al cien por cien es la que hace legible el cero: sin ella, un cero no se distingue de una escala rota.
Las tres pilas de nombres
Lo que añade el modelo multilingüe sobre el corpus etiquetado del propio proyecto. Esta medición es la razón por la que se entrega apagado.
Corpus: 300 documentos, 50 por idioma, 6 idiomas.
| Pila | Por documento | Recall | Precisión | Recall en catalán |
|---|---|---|---|---|
| Presidio | 3 ms | 0,990 | 0,905 | 1,000 |
| Presidio + GLiNER | 13 ms | 1,000 | 0,830 | 1,000 |
| + GLiNER multilingüe | 72 ms | 1,000 | 0,787 | 1,000 |
Medido el 12 de septiembre de 2026.
El modelo multilingüe no encuentra ni un nombre que las otras dos capas no encuentren ya, tampoco en catalán —Presidio lleva su propio modelo catalán—. Tarda 5,5 veces más y marca 39 tramos de más que no son nombres: el mismo texto de 10.000 caracteres pasa de 1.118 ms a 3.081 ms.
La fuente registra la fecha y el corpus de esta comparación, no la máquina. Lo que se traslada de una caja a otra es la proporción entre las tres configuraciones, no los milisegundos.
Ese corpus es sintético, así que un recall de uno no es una afirmación sobre la escritura real. La fuga residual publicada de la capa de nombres es la de la tabla de arriba.
El plano de nombres: memoria y workers
Medido el 12 de septiembre de 2026 dentro de la imagen del plano en un CCX33 · Falkenstein. No se comparte nada entre procesos, así que el número de workers es una división y no una preferencia.
- Intérprete vacío
- 26 MB
- Modelos cargados
- 3.331 MB, en 13,9 s
- Tras un prompt de 10.000 caracteres
- 3.412 MB
- Workers
- 6 procesos, 20,5 GB. Ocho serían 27,3 GB, por encima del techo de 26 GB que fija el compose.
La tabla de latencia de este plano —p95 por tamaño de texto más la ida y vuelta medida— se publica en Cómo funciona y no se copia aquí.
Contra lo que guardaron los proveedores
Medido el 19 de septiembre de 2026 con la extensión 0.9.0, commit 225bcd18: 4 ficheros sintéticos probados contra 2 proveedores. Llegaron a enviarse 3; la extensión detuvo 1 antes de que saliera del navegador. Lo que guardó cada proveedor se leyó de su copia de la conversación, no de la pantalla, que rehidrata.
| Fichero | Proveedor | Marcadores guardados | Veredicto |
|---|---|---|---|
| Documento de Word con un IBAN en el texto y una foto de documento de identidad incrustada | ChatGPT | 1 | Sin fuga |
| PDF con capa de texto, documento de identidad e IBAN | ChatGPT | 2 | Sin fuga |
| PDF escaneado, solo imagen | ChatGPT | no se envió | Detenido |
| El mismo PDF con capa de texto | Claude | 2 | Sin fuga |
El fichero escaneado no llegó a enviarse: ninguna página tenía capa de texto y la extensión canceló el envío. No finge tapar lo que no puede leer, así que su fila no lleva marcadores ni veredicto de fuga, sino su propio estado.
Ficheros probados: 4 · Enviados: 3 · Detenidos antes de salir: 1 · Proveedores: 2 · Fugas sobre lo enviado: 0 · Hallazgos registrados: 7
Los marcadores, fichero a fichero, están en Cómo funciona. Ninguno de los hallazgos de aquel día es una fuga; el artefacto los nombra uno a uno.
El paquete que se publica
Dos artefactos, no uno. Lo que la Chrome Web Store sirve hoy es el fichero que instala quien lee esto; lo que este repositorio ha construido y todavía no ha subido es otro fichero distinto. Los dos están abajo, cada uno con el día en que se leyó o se construyó, junto con los permisos que Chrome le concede a la extensión y los sitios en los que puede correr.
Lo que sirve la tienda — el CRX firmado que instala quien lo lee:
- Versión que sirve la tienda
- 0.9.0
- Paquete que sirve la tienda
- 1.098.014 bytes, leídos del servicio de actualización de Chrome el 20 de septiembre de 2026
Lo que ha construido este repositorio — el zip que se sube, y las comprobaciones hechas sobre él:
- Preparado aquí, todavía sin subir
- Versión 0.9.2 — 1.119.692 bytes, construido el 21 de septiembre de 2026
- Comprobaciones del motor dentro del zip
- 63/63, ejecutadas contra el motor empaquetado y no contra el fuente
- Chrome mínimo
- 116
Las dos difieren siempre que hay una construcción esperando a subir, y ese hueco es lo normal. Lo que no era normal es lo que esta página hacía hasta hoy: imprimía la cifra preparada debajo de la palabra publicado, y así afirmaba una versión y un tamaño que la tienda no ha servido nunca.
Permisos (3):
storagescriptingalarms
Sitios (4):
https://chatgpt.com/*https://chat.openai.com/*https://claude.ai/*https://licensing.bivelio.com/*
Sitio opcional, que solo se pide si el lector lo enciende:
https://gemini.google.com/*
Un zip guarda fechas de modificación, así que dos construcciones de los mismos ficheros dan resúmenes distintos y un resumen no identifica nada. De este artefacto se publican sus bytes y el día en que se construyó; la comprobación que significa algo ejecuta el motor de dentro del paquete, no el del repositorio. La tienda sirve un CRX —los mismos ficheros más la cabecera de firma que añade la propia tienda al publicar—, así que su tamaño no es el del zip y esta página no resta el uno del otro.
De dónde salen estos números
Cada tabla de arriba cita su fichero. La página que recorre paso a paso qué hace el producto con ellos es «Cómo funciona»; el motor se puede ejecutar sobre tu propio texto en el banco de pruebas.