Retour à la recherche

Recherche · Brouillon de travail · 2026

Génération augmentée par récupération sensible à la conformité pour les corpus de reporting financier réglementé

Une évaluation réelle sur les dépôts SEC EDGAR.

Aru Bhardwaj · Insightrix, France · 33 pages · 2026

Brouillon de travail — retours bienvenus à bonjour@arubhardwaj.eu
ENLe PDF est disponible uniquement en anglais. Voici un résumé traduit des points clés.

81.12%

0.00%

Violations de contraintes

21.29%

0.00%

Divulgations en sortie

4.8 pts

Coût F1

0 ms

Surcoût de latence p95

En bref

Le RAG standard récupère ce qui est le plus pertinent. Dans les industries réglementées, ce qui est le plus pertinent n'est pas nécessairement ce qui est permis. Un passage peut être le meilleur match pour une requête tout en restant inadmissible pour cet utilisateur, pour cet objectif, dans cette session — sous RGPD, AI Act européen, Reg FD, FINRA, SOX ou HIPAA.

CARAG (Compliance-Aware RAG) est une architecture en cinq étapes qui traite la conformité comme une propriété de premier ordre de l'index, du récupérateur, du générateur et du journal d'audit. Le papier publie un benchmark construit à partir de 6 000 dépôts SEC EDGAR réels (26 595 chunks sur sept trimestres), avec des vecteurs de politique dérivés de champs de soumission documentés plutôt que de distributions synthétiques.

Sur le benchmark principal, CARAG réduit le taux de violation de contraintes de 81,12 % à 0,00 % et le taux de divulgation en sortie de 21,29 % à 0,00 %, ne sacrifiant que 4,8 points F1 et ajoutant 0 ms de latence au 95e centile par rapport à une baseline RAG vanilla.

Pourquoi ça compte en production

Trois déploiements réels motivent l'architecture — opérationnellement courants mais architecturalement délicats pour le RAG vanilla :

  1. 1
    Recherche actions sell-side. Un récupérateur vanilla expose le 10-K le plus récent d'un analyste aux côtés d'un modèle commandé privément dont l'équipe deal n'inclut pas l'analyste, et un 10-Q périmé remplacé par un amendement. Publier à partir du second déclenche une amende réglementaire ; à partir du troisième, une erreur analytique.
  2. 2
    Aide à la décision clinique. Une infirmière interroge sur un patient. Le récupérateur expose des notes pertinentes d'un spécialiste hors relation de soin — inadmissible sous la règle minimum-necessary d'HIPAA, même à l'intérieur du même hôpital.
  3. 3
    Analytique transfrontalière. Un gestionnaire d'actifs global à Francfort exécute du RAG sur des dépôts EU-, US- et Singapour-résidents. Sous l'Article 6 du RGPD, la base légale sous laquelle un document EU a été indexé contraint les finalités pour lesquelles il peut être récupéré — par document, pas par utilisateur.

Dans les trois cas les documents sont légitimes, l'utilisateur est autorisé, la question est raisonnable — et l'intersection au moment de la récupération est néanmoins impermissible. Cette intersection est ce que le RAG doit apprendre à calculer.

Quatre modes d'échec du RAG ignorant de la conformité

F1

Fuite au moment de l'indexation

Un document est indexé sans vérifier si le contexte d'ingestion autorisait le système à le faire. Une fois dans l'index, chaque requête en aval le voit indépendamment de la politique.

F2

Fuite au moment de la récupération

Le chunk est correctement étiqueté mais le récupérateur ne consulte pas l'étiquette, donc il apparaît dans le top-k pour des requêtes dont la politique l'interdit. L'échec modal du RAG vanilla.

F3

Fuite en génération depuis un contexte inadmissible

Le récupérateur filtre correctement mais le générateur paraphrase entre snippets et synthétise du contenu originaire d'un chunk inadmissible.

F4

Fuite paramétrique en génération

Le récupérateur ne renvoie rien d'utile, mais le décodeur émet avec confiance un fait récupéré de son pré-entraînement — parfois lui-même inadmissible.

CARAG ferme F1–F3 structurellement et F4 probabilistiquement.

La pipeline CARAG en cinq étapes

  1. 1

    Ingestion + étiquetage de politique

    Chaque chunk reçoit un vecteur de politique 27 bits empaqueté dans un mot machine 32 bits — dérivé déterministiquement de champs metadata documentés. ~0,4 % de surcoût de stockage à d=1024, fp16.

  2. 2

    Index sensible aux metadata (HNSW)

    Graphe hierarchical navigable small-world standard (M=32, efConstruction=200), avec la bitmask de politique co-localisée à côté de chaque vecteur pour des tests d'admissibilité O(1) par candidat.

  3. 3

    Inférence de politique

    Mappe (requête, rôle utilisateur, finalité de session) vers une paire de masques (M_req, M_for) via un lookup déterministique rôle-politique plus un modulateur de session qui applique des raffinements query-conditionnels comme la deal-list active.

  4. 4

    Récupérateur sensible aux contraintes

    Test d'admissibilité bitwise évalué dans la boucle interne du parcours HNSW — avant que le heap des résultats soit mis à jour. L'expansion adaptative d'ef préserve le rappel sous des politiques strictes.

  5. 5

    Générateur gardé + journal d'audit ancré Merkle

    Le générateur (Amazon Nova Micro) voit explicitement les buckets admissible et inadmissible et est instruit de ne tirer que du premier. Chaque requête produit un enregistrement append-only ancré Merkle suffisant pour l'Article 12 de l'AI Act européen.

Résultats principaux

Quatre systèmes sur le benchmark de conformité SEC — n = 600 requêtes, k = 8 chunks récupérés par requête. CARAG atteint le CVR et l'ODR les plus bas en sacrifiant seulement une petite constante de token-F1.

SystèmeCVR ↓ODR ↓RefusF1p95 (ms)
B0 Vanilla RAG81.12%21.29%24.90%0.09641,498
B1 Post-filter0.00%0.00%23.69%0.08541,219
B2 Pre-filter (RBAC)32.53%9.64%22.89%0.08541,944
CARAG (full)0.00%0.00%40.56%0.04841,005

Tableau 2, Section 6.1. CVR = Taux de Violation de Contraintes, ODR = Taux de Divulgation en Sortie. Le pré-filtre (B2) atteint le même plancher CVR que CARAG mais au prix d'une chute nette du F1 car une partition de rôle statique est trop grossière pour récupérer l'admissibilité query-conditionnelle.

Où réside le coût

Désagréger par strate de requête (loose / medium / tight) révèle où tombe le coût architectural de la conformité. Sur les requêtes loose — où la politique admet la majorité des chunks pertinents — le F1 de CARAG suit de près la baseline vanilla. L'écart se creuse légèrement sur les requêtes medium et s'ouvre pleinement sur les requêtes tight, où l'ensemble pertinent est véritablement clairsemé.

Cette strate tight est aussi celle où CVR et ODR comptent le plus : chaque violation est, par construction, sémantiquement significative — un chunk inadmissible contient la réponse. Le coût se concentre exactement là où la politique restreint substantiellement l'ensemble pertinent, pas sur les requêtes de due-diligence routinières.

Économie de production

Surcoût de stockage

~0,4 %

Un mot 32 bits par chunk à d=1024, fp16. ~4 Go de RAM/disque supplémentaires pour un index d'un milliard de chunks.

Temps de build d'index

Négligeable

La bitmask est calculée au moment de l'émission du chunk depuis des champs metadata déjà disponibles.

Compute au moment de la requête

O(1) par candidat

Test d'admissibilité bitwise ; ef adaptatif ajoute une constante dépendante de la politique.

Stockage d'audit

~1 Ko/requête

~1,2 Ko/requête en logging de production où chaque chunk récupéré porte aussi un score de similarité et des bits de politique.

Reproductibilité

Toutes les expériences tournent sur Amazon Bedrock eu-west-3, sans GPU internes dans la boucle :

  • Embedding : cohere.embed-multilingual-v3 (1024 dimensions, L²-normalisé)
  • Générateur : amazon.nova-micro-v1:0 (température 0, max_tokens=80)
  • Juge de divulgation en sortie : amazon.nova-lite-v1:0 avec rubrique JSON structurée (κ=0,81 vs. labels de l'auteur sur 200 appels validés manuellement)
  • Index : hnswlib à M=32, efConstruction=200, efSearch=64
  • Corpus : 6 000 dépôts SEC → 26 595 chunks à travers 877 déposants uniques, sept trimestres (2024Q3–2026Q1)
  • Dépense Bedrock totale par reproduction complète : ~3 USD

Ce que cela signifie pour votre stack

Si vous opérez un système RAG qui touche :

  • Juridictions UE (RGPD Articles 5, 6, 22 + AI Act Articles 12–15)
  • Services financiers (Reg FD, FINRA Rule 2241, SOX / PCAOB AS 2820)
  • Santé (HIPAA, RGPD Article 9 données de catégorie spéciale)
  • Résidence transfrontalière des données (UE/US/UK/CA/Autres)

…la conformité n'est plus quelque chose que vous pouvez ajouter après coup. L'encodage bitmask de CARAG se retrofitte sur un index dense existant en jours, pas en mois, et le journal d'audit est vérifiable sous l'Article 12 de l'AI Act européen.

Citer ce travail

@techreport{bhardwaj2026carag,
  author      = {Bhardwaj, Aru},
  title       = {Compliance-Aware Retrieval-Augmented Generation
                 for Regulated Financial-Reporting Corpora:
                 A Real-World Evaluation on SEC EDGAR Filings},
  institution = {Insightrix},
  year        = {2026},
  type        = {Working Draft},
  address     = {Paris, France},
  url         = {https://arubhardwaj.eu/research/compliance-aware-rag-sec-edgar}
}

Apportez une architecture style CARAG à votre stack

C'est le type d'architecture que je déploie en tant que Fractional CTO. Si votre équipe opère un système RAG qui touche des données réglementées — UE, santé, finance ou transfrontalier — parlons-en.

Aru Bhardwaj

Fractional CTO architecting sovereign AI systems for startups and scale-ups across Europe. Custom ML, agentic RAG, and secure LLM infrastructure. 7+ years turning complex data into production intelligence.

Malt
Upwork

Contact

Services

  • Fractional CTO & AI Strategy
  • MVP Development & Rapid Prototyping
  • Sovereign LLM Deployment (OVHcloud, Scaleway)
  • Multi-Cloud AI (AWS Bedrock, Vertex AI, Azure)
  • RAG Pipelines & Autonomous Agents
  • GDPR & EU AI Act Compliance
  • Generative AI & Prompt Engineering
  • Machine Learning & Predictive Analytics

Monthly playbook

Practical AI essays for founders and tech leaders. One email a month.

Essais tactiques sur l'IA, chaque mois.

© 2026 Insightrix SASU. All rights reserved.Aru Bhardwaj, Fractional CTO & AI Strategist

60 Rue François Ier, 75008 Paris, France · SIRET 989 236 856 00013 · TVA FR42989236856