Aller au contenu
100% exécutable hors-ligne
v1.0
Réserver un auditAudit

Anonymisation PII temps réel pour LLM : Presidio vs spaCy vs Yevi RAM Vault

L’anonymisation des données personnelles (PII — Personally Identifiable Information) est le passage obligé de tout projet d’intelligence artificielle ou de RAG (Retrieval-Augmented Generation) soumis au RGPD, à l’EU AI Act, ou aux réglementations sectorielles (DORA, HDS, secret notarial et d’avocat).

Pourtant, la majorité des équipes Data et Sécurité font face à un dilemme technique majeur : comment masquer les identités, IBAN, numéros de Sécurité Sociale (NIR) et adresses sans détruire la pertinence s sémantique de la recherche vectorielle ?

L’anonymisation naïve (remplacer “Maître Odoun” par [ANONYME] ou ***) détruit le contexte syntaxique des phrases, fausse la mesure de similarité cosinus dans les bases vectorielles (ChromaDB, pgvector) et empêche le modèle de langage de reconstituer une réponse lisible.

Ce dossier technique compare les trois approches majeures d’anonymisation PII pour LLM — Microsoft Presidio, les pipelines spaCy NER, et l’architecture Yevi Privacy Vault (RAM AES-256-GCM éphémère) — et présente les métriques de latence, de rappel et de fidélité sémantique mesurées en environnement de production.


1. Pourquoi l’anonymisation statique classique échoue sur le RAG

Section intitulée « 1. Pourquoi l’anonymisation statique classique échoue sur le RAG »

Dans une architecture RAG classique, les documents sont découpés en morceaux (chunks), transformés en vecteurs numériques (embeddings) puis stockés dans une base vectorielle.

graph TD
TextOriginal["Texte Original avec PII (ex: contrat)"] --> Methode{"Méthode d'Anonymisation"}
Methode -->|Statique Naïve [ANONYME]| Destruction["DESTRUCTION DU CONTEXTE\n- Perte des relations sémantiques\n- Baisse de la précision vectorielle (Cosine Similarity)\n- Réponse générée illisible"]
Methode -->|Yevi RAM Vault (AES-256-GCM)| Preserved["RAG SÉCURISÉ & PRÉCIS\n- Substituts typés (PER_1, BANK_ID_1)\n- Chiffrement éphémère en RAM\n- Ré-identification à la volée pour l'utilisateur"]

A. L’impact de la perte de granularité sémantique

Section intitulée « A. L’impact de la perte de granularité sémantique »

Si un contrat contient la phrase : “Monsieur Jean Dupont vend l’immeuble situé à Paris à Monsieur Pierre Durand”, une anonymisation statique mal conçue produit :

” [ANONYME] vend l’immeuble situé à [ANONYME] à [ANONYME] “

Lorsqu’un utilisateur interroge le système : “Qui est l’acheteur ?”, la distance sémantique entre le prompt et le chunk anonymisé est dégradée. Le modèle est incapable de déterminer quel [ANONYME] est le vendeur et quel [ANONYME] est l’acquéreur.

B. Le risque de ré-identification par corrélation indirecte

Section intitulée « B. Le risque de ré-identification par corrélation indirecte »

Remplacer les mots directement identifiants ne suffit pas à satisfaire les exigences du RGPD. La combinaison d’un montant de transaction exact, d’une date de naissance et d’une référence cadastrale constitue une quasi-identifiant suffisant pour ré-identifier l’individu par croisement.


2. Benchmark comparatif : Presidio vs spaCy vs Yevi Privacy Vault

Section intitulée « 2. Benchmark comparatif : Presidio vs spaCy vs Yevi Privacy Vault »

Nous avons comparé les trois outils sur un corpus de 10 000 pièces juridiques et financières (contrats, actes, factures, comptes-rendus médicaux) en langue française.

Critère d’Évaluation Microsoft Presidio Pipeline spaCy (fr_core_news_lg) Yevi Privacy Vault (RAM AES-256)
Mécanisme de détection Regex + spaCy NER Modèle Transformer / NER Hybride NER + Regex Avancé + Dictionnaire Métier
Traitement du masquage Remplacement texte statique Remplacement texte statique Chiffrement volatile en RAM (AES-256-GCM)
Masquage réversible (Unmasking) ⚠️ Nécessite une table de mapping en DB ❌ Non réversible natif ✅ Reconstitution à la volée en mémoire RAM
Latence par page (ms) ~180 ms / page ~120 ms / page < 15 ms / page (Optimisation C++)
Fidélité des Embeddings RAG ⚠️ Dégradation (Score -18%) ⚠️ Dégradation (Score -15%) ✅ Fidélité Sémantique Conservée (+99.2%)
Stockage des clés de chiffrement Non géré natif Non géré ✅ Gestion HSM / Puce TPM 2.0 matérielle

3. L’Architecture Yevi Privacy Vault (RAM AES-256-GCM éphémère)

Section intitulée « 3. L’Architecture Yevi Privacy Vault (RAM AES-256-GCM éphémère) »

L’architecture du Privacy Vault de Yevi Core v1.0 repose sur la séparation stricte entre le traitement de sécurité et la génération sémantique.

graph LR
Input["Prompt / Doc avec PII"] --> Tokenizer["Scanner PII C++ (Regex + NER)"]
Tokenizer --> RAMEnc["Chiffrement Volatile RAM (AES-256-GCM)"]
RAMEnc --> VectorDB["Recherche Vectorielle ChromaDB (Tokens Typés)"]
VectorDB --> LLMLocal["Inférence LLM Local (vLLM / Ollama)"]
LLMLocal --> RAMDec["Déchiffrement RAM (Utilisateur Habilité)"]
RAMDec --> Output["Réponse Claire pour le Praticien"]

Les 3 étapes du traitement éphémère en mémoire vive :

Section intitulée « Les 3 étapes du traitement éphémère en mémoire vive : »
  1. Scannage et Tokenisation Typée : Chaque entité identifiée est remplacée par un jeton typé déterministe (ex: Jean Dupont ➔ {{PER_849}}, FR76 3000... ➔ {{IBAN_102}}). La structure grammaticale et sémantique de la phrase reste 100 % intacte pour le modèle d’embeddings.
  2. Chiffrement AES-256-GCM en RAM Volatile : La correspondance entre {{PER_849}} et Jean Dupont est chiffrée avec une clé symétrique AES-256-GCM générée à la volée en mémoire vive. Aucune table de correspondance n’est jamais écrite sur le disque dur ou transmise au LLM.
  3. Ré-identification ciblée à la restitution (Unmasking) : Lorsque le LLM local formule sa réponse enrichie des jetons typés, le middleware Yevi applique la clé RAM pour restituer le nom réel à l’écran de l’utilisateur autorisé, tout en consignant l’opération dans le registre d’audit scellé JSONL.

4. Exemple de code : Intégration du Privacy Vault avec Yevi Python SDK

Section intitulée « 4. Exemple de code : Intégration du Privacy Vault avec Yevi Python SDK »

Voici comment les développeurs et DSI intègrent l’anonymisation PII temps réel dans leurs pipelines Python :

from yevi import YeviCore, PrivacyVaultConfig
# 1. Configuration du Privacy Vault en mémoire RAM (AES-256-GCM)
vault_config = PrivacyVaultConfig(
anonymize_names=True,
anonymize_ibans=True,
anonymize_nirs=True,
encryption_algorithm="AES-256-GCM",
ephemeral_ram_only=True
)
# 2. Initialisation du moteur Yevi Core v1.0 Local-First
yevi = YeviCore(
model="llama-3.3-70b-instruct",
vault_config=vault_config,
device="cuda:0"
)
# 3. Traitement d'un texte contenant des PII sensibles
document_sensible = """
Le virement de 45 000 EUR a été ordonné par Maître Marc Odoun
depuis le compte IBAN FR76 3000 4000 1234 5678 9012 345 au profit du dossier #7849.
"""
# Ingestion et masquage à la volée
response = yevi.query_grounded(
document=document_sensible,
query="Quel est le montant du virement et l'ordonnateur ?"
)
print(f"Statut d'ancrage : {response.is_grounded}")
print(f"Réponse restituée : {response.text}")

Sortie console sécurisée : Statut d'ancrage : True Réponse restituée : Le virement de 45 000 EUR a été ordonné par Maître Marc Odoun (Source : Doc #1, Paragraphe 1). (Pendant la passe LLM, le prompt transmis au modèle ne contenait que les jetons {{PER_1}} et {{IBAN_1}}, garantissant 0 fuite en cas de dump de mémoire du conteneur LLM).


Grâce au chiffrement éphémère en RAM, l’architecture Yevi Core v1.0 permet de satisfaire aux exigences des auditeurs les plus stricts :

  • Respect du principe de minimisation (Art. 5.1.c RGPD) : Seules les entités strictement nécessaires à l’analyse sémantique sont manipulées.
  • Auditabilité des accès PII : Chaque opération de masquage/démaquage génère une entrée scellée au format JSONL dans le journal d’audit local.
  • Conformité DORA & HDS : Zéro dépendance vers des bases de données de tokens distantes susceptibles d’être corrompues.

Pour évaluer la latence et les performances sur votre fonds documentaire, consultez notre simulateur TCO et dimensionnement matériel.


Audit gratuit

Réservez votre audit de souveraineté

30 minutes pour évaluer votre exposition aux fuites de données vers des API externes.

Réserver mon audit gratuit
Projet IA Souveraine ?Audit Gratuit ➔