Zero PII: Privacidad por Diseño en el Pipeline de Datos Sintéticos
Cómo UNCASE logra cero información de identificación personal en datos conversacionales sintéticos mediante una arquitectura de privacidad multicapa.

El problema del PII en la IA conversacional
Toda conversación real es un campo minado de información de identificación personal. Una simple consulta médica puede contener:
- Nombre del paciente, fecha de nacimiento, domicilio
- Números de historia clínica e identificadores de seguro
- Diagnósticos, medicamentos, resultados de laboratorio
- Nombres y datos de contacto del médico derivante
- Historial médico familiar con parientes identificables
Las técnicas de anonimización tradicionales — reemplazar "Juan García" por "Paciente A" — son demostrablemente insuficientes. La investigación de Sweeney (2000) demostró que el 87% de la población de EE. UU. puede identificarse de forma única con solo tres atributos: código postal, fecha de nacimiento y sexo.
Privacidad por diseño: no un parche de último momento
UNCASE implementa la privacidad por diseño tal como la define ISO 31700 y exige el Artículo 25 del GDPR. Esto significa que las protecciones de privacidad están integradas en cada capa de la arquitectura, no añadidas a posteriori.
La arquitectura de privacidad multicapa
Conversación Real → [Capa 0: Eliminación de PII] → Seed Abstracto
→ [Capa 1: Validación] → Seed Conforme al Esquema
→ [Capa 2: Puntuación de Privacidad] → Seed Verificado (Privacidad = 0.00)
→ [Capa 3: Generación Sintética] → Nueva Conversación
→ [Capa 2: Revalidación] → Dato Certificado
→ [Capa 4: Entrenamiento DP-SGD] → Modelo con Garantía de Privacidad
Cada capa es un punto de control de privacidad independiente. Una filtración de PII en cualquier etapa dispara una detención inmediata del pipeline.
Capa 0: El Motor de Seeds
El Motor de Seeds es la primera y más crítica barrera de privacidad. Transforma conversaciones reales en plantillas de seeds abstractas mediante un proceso de dos etapas.
Etapa 1: Detección de entidades
UNCASE combina dos motores de detección de PII complementarios:
Microsoft Presidio gestiona los patrones de PII estructurado:
- Números de seguridad social, números de tarjeta de crédito
- Direcciones de correo electrónico, teléfonos, direcciones IP
- Números de historia clínica e identificadores de seguro
- Números de cuenta bancaria y de licencia de conducir
Modelos SpaCy NER gestionan las entidades dependientes del contexto:
- Nombres de personas (incluyendo apodos y nombres parciales)
- Organizaciones, ubicaciones, fechas
- Condiciones médicas y medicamentos
- Productos financieros y tipos de cuenta
from uncase.core.seed_engine import SeedEngine
engine = SeedEngine(
presidio_entities=["PERSON", "PHONE_NUMBER", "EMAIL_ADDRESS",
"CREDIT_CARD", "US_SSN", "MEDICAL_LICENSE"],
spacy_model="en_core_web_trf", # Transformer-based NER
confidence_threshold=0.75 # Conservative threshold
)
seed = engine.process(real_conversation)
# Returns abstract seed with all PII replaced by role markers
Etapa 2: Abstracción
Las entidades detectadas no se enmascaran simplemente — se abstraen en marcadores de rol que preservan la estructura conversacional:
| Original | Abstraído |
|---|---|
| "Hola, soy Juan García" | "[SALUDO_AGENTE]" |
| "Mi número de cuenta es 4532-1234" | "[REFERENCIA_CUENTA]" |
| "Me derivó el Dr. Martínez" | "[MENCION_DERIVACION]" |
| "Vivo en Av. Corrientes 1234, Buenos Aires" | "[CONTEXTO_UBICACION]" |
Esta abstracción garantiza que el seed capture el patrón conversacional (saludo → identificación → derivación → contexto) sin ninguna información identificable.
Capa 2: Puntuación de privacidad
Cada seed y cada conversación sintética pasa por el evaluador de calidad, que incluye una puntuación de privacidad obligatoria:
from uncase.core.evaluator import Evaluator
evaluator = Evaluator()
result = evaluator.evaluate(synthetic_conversation)
assert result.privacy_score == 0.00 # MUST be exactly zero
assert result.memorization_rate < 0.01 # Below 1% threshold
La puntuación de privacidad utiliza el mismo pipeline de Presidio + SpaCy que la Capa 0, aplicado ahora a los datos de salida. Este enfoque de defensa en profundidad detecta cualquier PII que pudiera haberse:
- Alucinado por el LLM durante la generación sintética
- Reconstruido inadvertidamente a partir de patrones de seeds
- Introducido mediante memorización del modelo
Privacidad diferencial en la Capa 4
Incluso con datos sintéticos de PII cero, el proceso de entrenamiento del modelo podría teóricamente memorizar y reproducir ejemplos de entrenamiento. UNCASE aborda esto con SGD Diferencial Privado (DP-SGD), formalizado por Abadi et al. (2016).
Los parámetros clave son:
- Épsilon (ε ≤ 8.0): El presupuesto de privacidad — a menor valor, mayores garantías de privacidad
- Delta (δ = 10⁻⁵): La probabilidad de fallo de privacidad
- Norma máxima de gradiente: Recorta los gradientes individuales para acotar su influencia
Estos parámetros satisfacen los requisitos del método Safe Harbor de HIPAA y el mandato de protección de datos por diseño del GDPR.
Mapeo de cumplimiento normativo
| Regulación | Requisito | Implementación en UNCASE |
|---|---|---|
| HIPAA Safe Harbor | 18 tipos de identificadores eliminados | Presidio detecta los 18 + tipos adicionales |
| GDPR Art. 25 | Protección de datos por diseño | Arquitectura de privacidad multicapa |
| GDPR Art. 26 | Exención de datos no identificables | Los datos sintéticos contienen cero PII |
| SOX Sección 404 | Auditoría de controles internos | Trazabilidad completa del pipeline |
| CCPA | Protección de datos del consumidor | Sin datos de consumidores en el pipeline de entrenamiento |
Verificación: ataques de extracción
UNCASE ejecuta ataques de extracción automatizados contra modelos fine-tuned para verificar que no sea posible recuperar datos de entrenamiento:
uncase evaluate --extraction-attacks \
--model ./adapters/medical-v1 \
--threshold 0.01
La suite de ataques de extracción incluye:
- Inferencia de membresía: ¿Puede el modelo determinar si un ejemplo específico estuvo en el conjunto de entrenamiento?
- Extracción de datos: ¿Pueden las técnicas de prompting recuperar ejemplos de entrenamiento de forma literal?
- Inferencia de atributos: ¿Puede el modelo inferir atributos sensibles a partir de información parcial?
Todos los ataques deben tener una tasa de éxito inferior al 1% para que el modelo supere la certificación.
Conclusiones clave
- La anonimización no es suficiente — los ataques de reidentificación hacen que el enmascaramiento simple sea insuficiente
- La privacidad debe ser arquitectónica — integrada en cada capa, no aplicada como un filtro
- La detección dual de PII (patrones + NER) captura tanto los identificadores estructurados como los contextuales
- La abstracción supera al enmascaramiento — convertir el PII en marcadores de rol preserva la utilidad y elimina el riesgo
- La defensa en profundidad con puntos de control de privacidad independientes en cada etapa del pipeline
- Las garantías matemáticas mediante privacidad diferencial proporcionan evidencia de cumplimiento auditable
Artículos relacionados
Posts Relacionados
Sigue explorando con estos análisis técnicos relacionados.

Differential Privacy in LLM Training: Theory and Practice
Understanding DP-SGD, privacy budgets, and how to train language models with mathematical privacy guarantees for healthcare and financial applications.

Multi-Format Data Parsing for Conversational AI Training
How UNCASE Layer 1 handles WhatsApp exports, CRM logs, JSON transcriptions, and more — unifying diverse conversation formats into a standardized schema.

Seed Engineering: From Real Conversations to Abstract Templates
How the SCSF Layer 0 Seed Engine transforms real-world conversations into privacy-safe, reusable seed templates for synthetic data generation.
Comienza a Construir IA Privacy-First Hoy
Despliega el pipeline completo, conecta tus fuentes de datos, enruta a cualquier proveedor LLM y produce adaptadores LoRA conformes — todo sin exponer un solo dato.