Datarooms : une data room M&A souveraine
Les DAF et directions juridiques qui pilotent une due diligence passent des semaines à alimenter manuellement une data room : triage de documents Excel, arborescences Dropbox partagées, Q&A interminables par email. Les leaders du marché comme Intralinks ou Datasite facturent 20 à 50k€ par deal. Et la classification des documents reste en grande partie manuelle.
Datarooms est l’alternative qu’on a développée pour les cabinets de conseil M&A, les DAF et les directions juridiques. Un SaaS qui classe automatiquement les documents dans une arborescence métier et permet d’interroger la base documentaire en langage naturel.
Deux contraintes non négociables dès le départ : les données M&A ne sortent pas des frontières françaises, et la latence doit être acceptable en production. On a hébergé un serveur GPU en France, dans un datacenter certifié ISO 27001/SOC2. Plus cher qu’un appel API cloud. Incontournable sur ce marché.
Ce retour d’expérience couvre les deux briques IA du produit et les arbitrages qu’on a faits en production, pas en POC.
Deux briques IA, deux problèmes
La classification a besoin d’un signal fort sur l’ensemble du document pour prendre une décision de routage. Le RAG (système de recherche documentaire assisté par IA) a besoin de retrouver des fragments précis dans une base indexée. Mutualiser les traitements dégrade les deux.
Classification automatique
Classer 89 documents en 5 minutes. Routing automatique dans l'arborescence métier par scoring LLM structuré.
RAG conversationnel
Interroger Datarooms en langage naturel. Réponses factuelles uniquement, zéro tolérance à l'hallucination.
Classification : du passage intelligent au sandbox
~90% de documents correctement classés sans fine-tuning. Le chemin pour y arriver est instructif.
Le pipeline de classification suit quatre étapes séquentielles. D’abord l’extraction du texte brut, ensuite la construction d’un passage synthétique optimisé pour le classifieur, puis le scoring par un LLM, et enfin une vérification post-classification indépendante.
Extraction pymupdf4llm + Tesseract (OCR)
Les data rooms M&A contiennent beaucoup de PDF scannés : contrats signés, bilans comptables, liasses fiscales. On extrait le texte avec pymupdf4llm. Pour les documents dont la couche texte est absente ou dégradée, on bascule automatiquement sur Tesseract, un moteur de reconnaissance optique de caractères. L'extraction précède toute classification.
Passage intelligent (synthèse du document)
On ne donne pas tout le document au LLM. Pour les documents longs, on construit un passage intelligent : les 8 000 premiers caractères, les titres et sous-titres extraits, des échantillons de contenu, et les 2 000 derniers caractères. Ce passage concentre les signaux de classification sans dépasser le contexte utile du modèle.
Scoring sémantique top 3 + fallback
Le LLM (vLLM + Qwen3.5-27B-AWQ) analyse ce passage et produit un scoring sémantique (mesure de proximité de sens entre le document et chaque catégorie) : les 3 meilleures catégories candidates avec un score de 0 à 100, plus des scores de blacklist pour les documents hors périmètre. Seuil de confiance à 0.8. Première passe sur le sous-dossier précis. Si le score est insuffisant, fallback sur la catégorie parente.
Double vérification + sandbox pour les cas ambigus
Un second appel LLM vérifie si le type de document est explicitement mentionné dans la description de la catégorie retenue -- ça évite les faux positifs sur des catégories qui se ressemblent sémantiquement. Si le score de la deuxième catégorie dépasse 90% du score de la première, le document est ambigu. Les documents tombent en sandbox pour revue manuelle pour six raisons : score de confiance trop bas, ambiguïté entre deux catégories proches, document détecté hors périmètre par la blacklist, vérification post-classification échouée (le type ne correspond pas à la catégorie), format de fichier non supporté, ou contenu texte insuffisant (document vide ou image sans OCR). C'est préférable à un faux classement silencieux.
RAG : retrouver les bons passages
Le chat RAG permet à l’utilisateur de poser une question en langage naturel sur sa data room. “Quels sont les engagements hors bilan dans les comptes 2023 ?” Le système retrouve les passages pertinents dans la base indexée.
Le pipeline de recherche repose sur quatre étapes, de l’indexation des documents à la réponse diffusée en temps réel :
Indexation par découpage structuré
Le découpage en passages (chunking) n'est pas arbitraire. Pour les PDF et DOCX, on utilise HybridChunker (Docling) qui respecte la structure logique du document. Pour les TXT et MD, SentenceSplitter. Taille des passages : 1 024 tokens, chevauchement : 128 tokens. Chaque passage est préfixé avec le nom et les titres du document source. Environ 3h pour indexer 800 documents.
Expansion de requête + document hypothétique
Deux opérations en parallèle au moment de la requête : expansion vers 10 à 15 termes en français, et génération d'un document hypothétique (HyDE -- génération d'un document fictif pour améliorer la recherche). Ça enrichit la requête avant d'interroger l'index.
Recherche hybride + re-classement
Recherche par sens (vecteurs denses avec Qwen3-Embedding-4B, top_k=30) et par mots-clés (BM25 via fastembed, top_k=30) en parallèle. Les résultats sont filtrés, dédupliqués par document (5 passages max par document), puis reclassés par un modèle de re-classement qui compare chaque résultat à la question (cross-encoder BAAI/bge-reranker-v2-m3, top 10).
Synthèse factuelle + réponse en temps réel
La synthèse est diffusée en réponse en temps réel, mot par mot (streaming SSE). Pas de mémoire conversationnelle en V1 -- choix délibéré. La mémoire améliore le confort, mais elle crée un risque de dérive contextuelle : le LLM commence à répondre à partir du fil de conversation plutôt que des documents. Sur des données aussi critiques, on a sacrifié l'ergonomie à la fiabilité.
LLM + Embedding
vLLM + Qwen3.5-27B-AWQ pour la génération. TEI + Qwen3-Embedding-4B pour les vecteurs denses.
Recherche vectorielle
Qdrant v1.16. Recherche par mots-clés BM25 via fastembed. Re-classeur : BAAI/bge-reranker-v2-m3.
Infrastructure
Redis pour les files (BRPOP, 6 workers). LlamaIndex pour l'orchestration. Next.js en frontend.
Les arbitrages de production
Chaque arbitrage correspond à une contrainte réelle du projet : souveraineté des données, qualité de classification, adoption utilisateur. Voici les cinq décisions structurantes qu’on a prises en production.
MeiliSearch plutôt que PostgreSQL tsVector
On a choisi MeiliSearch pour la recherche full-text. PostgreSQL tsVector aurait évité une brique infra supplémentaire, mais les performances full-text de MeiliSearch sur des documents métier hétérogènes justifient le composant dédié.
GPU dédié vs cloud
Serveur GPU hébergé en France, dans un datacenter certifié ISO 27001/SOC2. Plus cher qu'un appel API cloud, mais la souveraineté des données M&A n'est pas négociable pour nos clients. Ce n'est pas un argument marketing : c'est une contrainte juridique et contractuelle.
Passage intelligent vs passages RAG
Deux traitements séparés pour le même document. Le passage intelligent sert la classification, les passages découpés servent le RAG. Mutualiser aurait dégradé les deux : un passage optimisé pour le classifieur n'a pas la même granularité qu'un passage optimisé pour la recherche sémantique.
Arborescence libre vs préconfigurée
On a commencé avec un questionnaire sectoriel préconfigurable. Trop rigide : les utilisateurs s'y perdaient et contournaient la structure. Passage à une arborescence libre avec coche/décoche. Plus simple, mieux adopté, sans dégradation de la qualité de classification.
Scoring sémantique vs regex pour la blacklist
Le scoring sémantique (mesure de proximité de sens) permet d'exclure des documents par proximité de sens, pas par mots-clés exacts. Sur des documents métier hétérogènes, la recherche par mots-clés aurait généré trop de faux négatifs.
Questions fréquentes
Ce projet en détail
Classification documentaire IA pour data rooms M&A
SaaS de data room avec classification documentaire automatique par IA et chat RAG, sur infrastructure souveraine française.
Découvrir nos études de cas
Contexte, décisions, résultats : le détail de nos réalisations
Vous avez une masse documentaire métier à exploiter ?
Classification, recherche, interrogation : les architectures RAG et classification documentaire ont des contraintes très différentes selon le contexte. Si vous développez un produit SaaS avec une brique IA documentaire, on peut regarder ensemble ce qui a du sens dans votre cas.
Décrire votre contexte