El problema: tu adapter PEFT puede estar filtrando datos sin que lo sepas
Imagina que participas en un proyecto de Federated Learning. Tu cliente entrena un adapter LoRA localmente con datos sensibles (médicos, financieros, legales) y lo envía al servidor central. El servidor nunca ve tus datos crudos. ¿Verdad?
Falso.
Un paper reciente de Shi et al. (2026) demuestra que un servidor malicioso puede corromper el adapter para que memorice muestras completas de tus datos de entrenamiento. Después del fine-tuning, el atacante puede reconstruir 59-79% de las muestras originales con alta fidelidad semántica, solo leyendo los pesos del adapter.
Esto es el ataque NeuroImprint, y funciona en BERT, GPT-2, Qwen2 y Llama 3.2.
La herramienta: NeuroImprint Detector
Desarrollé neuroimprint-detector como contra-medida: un framework de auditoría que analiza adapters PEFT para detectar si contienen un backdoor NeuroImprint y, si lo encuentran, reconstruir las muestras memorizadas.
Pipeline forense completo
[Adapter PEFT]
│
▼
[1. Detección] ── ¿Contiene estructura de backdoor?
│ - W₂ con filas idénticas (r₂ repetido)
│ - b₂ ordenado en intervalos (cuantiles)
│ - Patrón RaLU (matriz de rango 1)
▼
[2. Estimación] ─ Recuperar pesos ORIGINALES del backdoor
│ (el auditor NO tiene acceso a los pesos iniciales)
│ - Mediana de filas de W₂
│ - Filtrado IQR para aislar muestras memorizadas
▼
[3. Inversión] ── Recuperar gradientes = embeddings de datos
│ x̃ = ΔW / Δb (inversión analítica cerrada)
▼
[4. Tokenización] Mapear embeddings a texto legible
(HF Hub o tokenizador local offline)
▼
[Reporte JSON] ── ¿Qué datos fueron extraídos?
Instalación y uso
pip install neuroimprint-detector
Auditar un adapter:
neuroimprint-audit --path /path/to/adapter
Reconstrucción forense completa (con tokenizer online):
neuroimprint-audit --path /adapter \
--reconstruct \
--tokenizer-id Qwen/Qwen2-0.5B \
--output report.json
Modo offline (sin conexión a internet):
neuroimprint-audit --path /adapter \
--reconstruct \
--tokenizer-id /path/to/local/tokenizer \
--output report.json
Desde Python:
from neuroimprint_detector import NeuroImprintDetector
detector = NeuroImprintDetector()
result = detector.analyze({'W2': adapter_W2, 'b2': adapter_b2})
print(f"Verdict: {result.verdict.value}") # "backdoored"
print(f"Confidence: {result.confidence:.2f}") # 0.90
print(f"Estimated samples: {result.estimated_samples}") # 200
Resultados del ataque (del paper)
| Modelo | Optimizer | Tasa reconstrucción | Similitud semántica |
|---|---|---|---|
| BERT | SGD | 77.4% | 0.994 |
| BERT | AdamW | 74.6% | 0.767 |
| GPT-2 | SGD | 66.5% | 0.990 |
| Qwen2-1.5B | SGD | 71.4% | 0.997 |
| Llama3-3B | SGD | 75.0% | 0.997 |
SGD permite reconstrucción exacta. AdamW permite reconstrucción aproximada (pierde magnitud por el momentum).
Stack técnico
| Componente | Descripción |
|---|---|
| Detector | Análisis de pesos: filas idénticas, intervalos de bias, fingerprint RaLU |
| Estimador | Recupera pesos originales del backdoor desde el adapter entrenado |
| Inversor | Inversión analítica cerrada de gradientes (SGD exacto, Adam aproximado) |
| Tokenizer | Reconstrucción de texto vía HF tokenizers (online + offline) |
| Loader | Carga adapters de disco/Hugging Face, extrae candidatos |
| Synthetics | Generación de adapters clean/backdoored para testing |
| CLI |
neuroimprint-audit con flags --reconstruct y --tokenizer-id
|
| CI | GitHub Actions (Python 3.10, 3.11) |
43 tests pasando — cobertura completa de unitarios + integración.
¿Por qué importa?
El Federated Learning se presenta como la solución de privacidad para entrenar modelos con datos distribuidos. Pero si el servidor puede corromper los adapters para memorizar datos, la privacidad es una ilusión.
Esta herramienta permite a equipos de seguridad auditar adapters antes de desplegarlos en producción, verificando que no contengan backdoors de memorización.
Enlaces
- Repositorio: https://github.com/amurlaniakea/neuroimprint-detector
- Paper base: Shi et al. (2026) — From Efficiency to Leakage
- Licencia: AGPL-3.0-or-later
¿Auditarías los adapters de tu pipeline de FL? Leo opiniones.
Top comments (1)
Some comments may only be visible to logged-in visitors. Sign in to view all comments.