By · Last updated 2026-06-05

Volver al BlogGDPR y Cumplimiento

Por qué las herramientas de PII autoalojadas fallan...

spaCy 3.4.4 produce diferentes resultados de NER que spaCy 3.5.1. Una firma de servicios financieros descubre que el 3% de los documentos fueron...

June 5, 20266 min de lectura
compliance auditenvironment consistencyspaCy versionsself-hosted PIIreproducible anonymization

Por qué las herramientas PII auto-alojadas fallan en las auditorías de cumplimiento

El RGPD exige pruebas. Debe demostrar que la eliminación de datos personales se realizó de la misma manera cada vez. Los auditores de la APD lo verifican directamente. Quieren ver un método claro y coherente aplicado a todos los datos.

Presidio auto-alojado tiene un problema real aquí. No es un problema de configuración. Es una limitación fundamental de las herramientas NLP auto-alojadas.

¿Qué es la deriva de entorno?

Presidio auto-alojado funciona en dev, staging y producción. Cada uno de estos entornos puede comportarse de forma diferente. Por tanto, la misma entrada puede producir resultados distintos en cada uno.

Esto se llama deriva de entorno. Tiene cuatro causas principales.

Deriva de versión de modelo

Los modelos de spaCy están versionados. El modelo en_core_web_lg 3.4.4 y en_core_web_lg 3.5.1 fueron entrenados con datos diferentes. También usan arquitecturas distintas. Por eso el mismo documento puede dar resultados NER diferentes con cada versión.

Una configuración habitual tiene este aspecto:

  • Dev: en_core_web_lg 3.4.4 — instalado al inicio del proyecto
  • Staging: en_core_web_lg 3.5.0 — actualizado durante mantenimiento rutinario
  • Producción: en_core_web_lg 3.5.1 — actualizado durante un parche de seguridad

Eso son tres configuraciones. Tres versiones de modelo. Tres comportamientos de detección distintos. Los tests pasan en staging. Pero producción usa un modelo diferente. Por eso la brecha permanece oculta.

Deriva de dependencia

spaCy 3.4.x y 3.5.x difieren en cómo segmentan las frases. Ese cambio afecta a cómo se detectan los nombres cerca de los límites de oración. Estos cambios aparecen en las notas de versión de spaCy. Pero la mayoría de los equipos no los revisan para ver su impacto en la detección de datos personales.

Deriva de configuración

Los umbrales de puntuación definidos en dev pueden no trasladarse a producción. Las listas de palabras personalizadas también pueden diferir entre configuraciones. Estas brechas son frecuentes. Rara vez se rastrean. Consulte nuestra guía de cumplimiento RGPD para saber qué buscan los auditores.

Diferencias de hardware

Los cálculos en los modelos NLP no son idénticos en todos los CPU y GPU. Un portátil y un servidor pueden dar puntuaciones ligeramente diferentes. Por eso algunos nombres pueden detectarse en una máquina pero no en otra.

Un hallazgo real de auditoría

Un banco probó su configuración auto-alojada de Presidio.

Configuración de prueba: Presidio con spaCy 3.4.4 en el clúster de staging. Configuración en producción: Presidio con spaCy 3.5.1 en el clúster de producción.

Procesaron los mismos documentos en ambos sistemas. Luego compararon los resultados. El hallazgo: el 3 % de los documentos tenían resultados de eliminación de datos personales diferentes. Algunos nombres se detectaron en staging pero no en producción. Otros tenían diferentes intervalos de texto.

El hallazgo de auditoría fue directo: «La organización no puede demostrar una aplicación coherente de las medidas técnicas de eliminación de datos personales debido a variaciones específicas de la configuración en la salida de detección.»

El artículo 32 del RGPD exige medidas técnicas adecuadas. Las normas del CEPD sobre eliminación de datos personales exigen coherencia y reproducibilidad. Una tasa del 3 % en 100.000 documentos al mes significa 3.000 documentos con resultados inconsistentes cada mes. Algunos son falsos negativos. Los datos personales que staging habría detectado permanecen en la salida de producción. Eso es un fallo de cumplimiento.

El banco migró entonces a SaaS gestionado. El hallazgo de auditoría fue cerrado. Consulte nuestra página de seguridad y cumplimiento para obtener más información.

Por qué los servicios gestionados son diferentes

Un servicio gestionado ejecuta una sola versión del motor. Todos los usuarios usan la misma versión al mismo tiempo. Las actualizaciones de modelo se aplican desde un único lugar. La configuración también se gestiona centralmente con un historial completo de cambios. El hardware del usuario no afecta a los resultados.

Por tanto, el mismo documento procesado hoy da el mismo resultado el mes siguiente. Si la versión del motor cambia, ese cambio queda registrado y versionado.

La diferencia en el registro de auditoría es clave.

Registro de auditoría auto-alojado:

  • «Usado: Presidio 2.2.35 con spaCy en_core_web_lg 3.5.1 en Ubuntu 22.04.»
  • ¿Era la misma versión que en staging? Desconocido.
  • ¿Ha cambiado el modelo desde que se procesó este documento? Desconocido a menos que se rastree.
  • ¿Es el umbral de puntuación el mismo que en las pruebas? Depende de la gestión de la configuración.

Registro de auditoría del servicio gestionado:

  • «Usado: API de anonym.legal, versión del motor 4.22.1, el 2025-03-15T14:22:31Z.»
  • ¿Misma versión para todos los usuarios? Sí.
  • ¿Ha cambiado? Las versiones del motor están fijadas. La versión 4.22.1 siempre significa el mismo motor.
  • ¿Es la configuración reproducible? Sí. El ID de preset está registrado. La configuración en esa versión es recuperable.

El registro gestionado es claro. El registro auto-alojado requiere un seguimiento cuidadoso que la mayoría de los equipos omite.

Cómo mejorar la coherencia en configuraciones auto-alojadas

Si el auto-alojamiento es necesario, puede reducir la deriva con cuatro pasos.

Primero, fije las versiones de modelo. Bloquee las versiones exactas en todos los archivos de despliegue. Bloquee las actualizaciones automáticas. Rastree las versiones en control de código fuente.

Luego, congele las imágenes de contenedor. Cree imágenes Docker con las versiones exactas de modelo incluidas. Etiquete cada imagen con la versión del modelo, la versión de Presidio y la fecha. No actualice las imágenes base sin probar primero.

También, mantenga la configuración en código. Almacene todos los ajustes de Presidio en archivos con control de versiones. Esto incluye detectores, umbrales de puntuación e idiomas activos. Despliegue la configuración con la aplicación.

Finalmente, pruebe entre configuraciones. Después de cualquier actualización, pase un conjunto fijo de documentos de prueba por la nueva configuración. Compare los resultados con una referencia almacenada. Automatice esta verificación. Consulte la FAQ para preguntas frecuentes sobre pruebas de regresión PII automatizadas.

Estos pasos ayudan. Pero también añaden trabajo. Un servicio gestionado ofrece la misma coherencia sin el esfuerzo adicional.

Conclusión

La eliminación coherente de datos personales no aparece en las fichas de producto. Pero se vuelve crítica cuando los auditores piden pruebas.

Sin un mantenimiento activo, las herramientas PII auto-alojadas derivan. Los cambios de versión añaden brechas silenciosas. Esas brechas aparecen como hallazgos de auditoría.

Los servicios gestionados ofrecen coherencia por defecto. El motor funciona desde un único lugar. Las configuraciones de los usuarios no afectan a los resultados. Para los equipos centrados en el cumplimiento, esto es una ventaja directa.

Fuentes

¿Listo para proteger sus datos?

Comience a anonimizar PII con más de 285 tipos de entidades en 48 idiomas.

About this page

We update this page when our platform or the law changes.

Read our founder note for how we work.

Each change shows up in the timestamp at the top.

Related reading

We follow these rules

  • GDPR (EU 2016/679).
  • ISO/IEC 27001:2022.
  • NIS2 (EU 2022/2555).
  • HIPAA safe harbor under 45 CFR § 164.514(b)(2).

Our promise

We do not sell your data.

We do not train models on your text.

We store your files in Germany.

You can delete your account at any time.

You own your work.

Where we run

Our servers live in Falkenstein, Germany.

We use Hetzner. They hold ISO 27001 certification.

All data stays in the EU.

Backups run every day.

Need help?

Email support@anonym.legal.

We reply within one business day.

How we test

We run a full check suite on every release.

Each surface gets its own sweep script and report.

Human reviewers spot-check the output each week.

We track recall and precision on a labelled set.

Bad runs block the deploy.

What we never do

  • We never sell your information to third parties.
  • We never train models on what you upload.
  • We never keep your work after you delete it.
  • We never share keys with any outside firm.
  • We never run ads inside the product.

Plans in plain words

We sell credits, not seats.

One credit covers one short job.

Long jobs use a few credits each.

You can top up at any time.

Unused credits roll over each month.

Read the plans page for current rates.

Who built this

A small team of engineers and lawyers built this.

We ship from Europe and work in the open.

Our founder note spells out why we started.

Where to start

How the parts fit

A browser add-on cleans text inside Chrome.

A Word plug-in handles drafts in Office.

A small desktop tool works on whole folders.

An agent protocol link feeds large models safely.

All four share one core engine and one rule set.

Words from our team

We started this work after a lunch about cookies.

One friend kept getting odd ads on her phone.

We asked why a court file leaked through a draft.

We sketched the first build on a napkin that week.

By month three we had a tiny demo for a friend.

She used it on her first case the next day.

Common questions we hear

Can the tool read scanned PDFs? Yes, with OCR.

Does it work on long files? Yes, in small chunks.

Can I roll my own rule set? Yes, save it as a preset.

Does it run offline? The desktop build runs offline.

Do you keep my files? No, the cloud build wipes after each run.

Will it learn from my work? No, we never train on inputs.

A short tour of the workflow

Upload a file or paste a snippet of prose.

Pick the entities you want gone from the draft.

Choose a method: replace, mask, hash, encrypt, or redact.

Press run and watch the side panel show each hit.

Skim the result and tweak any rule that misfired.

Save the cleaned file or send it to a teammate.