Premier LLM jamais fine-tuné spécifiquement pour la détection de phishing en français. 150 000 emails d'entraînement, 99.4% d'accuracy, zéro dépendance cloud — là où aucune solution n'existait, Sandmail ouvre la voie.
Les entreprises françaises sont confrontées à une menace grandissante : le phishing ciblé, rédigé en français, imitant les communications internes. Or, les outils de détection existants — qu'il s'agisse de modèles BERT fine-tunés ou de LLM commerciaux — sont entraînés exclusivement sur des corpus anglophones et échouent massivement face à des emails français sophistiqués. Jusqu'à aujourd'hui, aucun modèle n'avait été conçu pour répondre à ce problème.
Sandmail est, à notre connaissance, le premier projet à couvrir l'intégralité de ce pipeline pour le français : génération d'un corpus synthétique de 150 000 emails réalistes, fine-tuning d'un modèle Qwen2.5-3B via QLoRA, et évaluation rigoureuse sur un benchmark comparatif multi-modèles — un travail qui n'avait pas encore été mené dans l'écosystème francophone.
Le résultat : un modèle local, gratuit, de 3 milliards de paramètres, qui atteint 99.4% d'accuracy et surpasse des modèles propriétaires de centaines de milliards de paramètres — un résultat qui n'avait pas encore d'équivalent sur du phishing français.
Trois composants indépendants forment une chaîne séquentielle, du corpus synthétique au modèle déployé.
Le générateur synthétique utilise Mistral Small 24B (via OpenRouter) pour produire des emails de phishing et des emails légitimes en français. Chaque email est contextualisé dans un scénario d'entreprise : BEC (Business Email Compromise), credential harvesting, fausses factures, QR phishing, supply chain, et 27 autres types d'attaques.
Un système de scoring multi-critères (conformité RFC-822, réalisme linguistique, absence de clichés IA, originalité sémantique, cohérence) valide chaque email avec un seuil minimum de 0.75/1.0. La déduplication Jaccard élimine les doublons sémantiques.
Anti-shortcut training : 46% des emails légitimes contiennent des URLs, et 50% des emails de phishing n'en contiennent pas. Le modèle ne peut pas tricher en se basant sur la simple présence d'un lien.
Le modèle de base Qwen2.5-3B-Instruct est fine-tuné via QLoRA 4-bit avec Unsloth pour l'accélération GPU (Flash Attention 2 + fused LoRA kernels). L'entraînement utilise SFTTrainer de TRL avec deux optimisations cruciales :
Completion-only loss : seuls les tokens de la réponse assistant (~50 tokens) sont utilisés pour le calcul du loss, pas les ~1200 tokens du prompt système/utilisateur. Cela concentre l'apprentissage sur la tâche de classification.
Sequence packing : plusieurs emails courts sont concaténés dans une fenêtre de 2048 tokens pour éliminer le padding et maximiser l'utilisation GPU.
Le modèle est exporté au format GGUF (f16, 6.2 GB) et servi via Ollama pour une inférence locale à ~3 secondes par email sur GPU. Aucune donnée ne quitte la machine. Aucun coût par requête.
Ingestion native au format .eml : Sandmail a été entraîné sur des emails
complets au format RFC-822 — avec tous les en-têtes (From,
To,
Subject,
Date,
Message-ID,
MIME-Version,
Content-Type).
Un fichier .eml peut être passé tel quel au modèle. Ce dernier exploite l'intégralité des métadonnées
— domaine expéditeur, cohérence des en-têtes, typosquatting sur le champ From — en plus du contenu,
ce qui le distingue des classificateurs BERT qui ne voient que le texte brut.
500 emails français (seed=42), 32 types d'attaques, 3 niveaux de difficulté. Mêmes données pour tous les modèles. Intervalles de confiance Wilson à 95%.
| Modèle | Accuracy | IC 95% | Macro-F1 | F1 Phish | F1 Légit | Erreurs | Coût | |
|---|---|---|---|---|---|---|---|---|
| 1 | Sandmail (Qwen 3B ft) | 99.4% | 98.2-99.8 | 99.3% | 99.5% | 99.1% | 3 | $0.00 |
| 2 | GPT-4o | 89.6% | 86.6-91.9 | 88.9% | 91.6% | 86.1% | 52 | $0.69 |
| 3 | Gemini 2.5 Flash | 85.2% | 80.9-88.6 | 81.5% | 89.7% | 73.2% | 49 +170 unk | $0.05 |
| 4 | LLaMA 3.2 3B (zero-shot) | 65.8% | 61.5-69.8 | 39.7% | 79.4% | 0.0% | 171 | $0.00 |
| 5 | DistilBERT (EN) | 52.2% | 47.8-56.5 | 49.2% | 61.5% | 36.9% | 239 | $0.00 |
| 6 | BERT-base (EN) | 40.6% | 36.4-45.0 | 38.0% | 25.2% | 50.7% | 297 | $0.00 |
Sur 500 prédictions, Sandmail ne commet que 3 erreurs : 1 faux positif (newsletter classée phishing) et 2 faux négatifs (supply_chain et fake_government sur des emails sans difficulté assignée).
Sandmail maintient 100% d'accuracy sur les 3 niveaux de difficulté connus (easy, medium, hard). Les 3 erreurs surviennent uniquement sur des emails sans difficulté assignée. GPT-4o chute significativement sur les emails difficiles.
GPT-4o est un modèle généraliste de ~200 milliards de paramètres, capable de coder, traduire, et raisonner. Mais face à une tâche de classification binaire très spécifique — distinguer un email de phishing français d'un email légitime — un modèle 60 fois plus petit mais spécialisé le surpasse de 9.8 points d'accuracy.
C'est l'équivalent d'un chirurgien spécialisé qui surpasse un médecin généraliste sur une opération précise. La connaissance profonde d'un domaine étroit l'emporte sur la connaissance superficielle d'un domaine large.
Les modèles BERT et DistilBERT testés (40.6% et 52.2%) sont entraînés exclusivement sur des corpus anglophones. Leur performance sur des emails français est pire que le hasard pour BERT (40.6% < 50%). Ce n'est pas une faiblesse des architectures — c'est l'absence totale de données d'entraînement dans la langue cible.
Ce constat est la raison d'être de Sandmail : avant ce projet, il n'existait pas de modèle — open-source ou propriétaire — spécifiquement entraîné pour la détection de phishing en français. Sandmail est le premier à s'attaquer à ce problème, et les résultats confirment l'ampleur du besoin.
Le corpus de 150 000 emails n'est pas un ensemble de spams nigérians grossiers. Il couvre 32 types d'attaques réelles, 3 niveaux de difficulté, 200 contextes d'entreprises, des techniques de typosquatting, du threading RE:/FWD:, et des signaux anti-shortcut (URLs dans les emails légitimes, absence d'URLs dans le phishing).
Quand GPT-4o reçoit un email de phishing sophistiqué imitant une communication interne RH, il hésite. Sandmail a vu des milliers d'exemples similaires. Ce niveau de spécialisation sur le français n'existait pas avant — faute de données, personne ne s'y était encore attaqué.
Sandmail produit une réponse parsable 100% du temps (0 unknown sur 500). Gemini 2.5 Flash échoue à suivre le format de sortie dans 34% des cas (170 unknowns), et GPT-4o dans 0.4% des cas. Dans un pipeline de sécurité automatisé, chaque réponse non-parsable est un email non-analysé — un risque.
En résumé : Sandmail ne bat pas GPT-4o « en général ». Il le bat sur cette tâche précise, sur ces données précises, dans cette langue précise. Et c'est exactement ce dont une entreprise française a besoin.
La rigueur du protocole garantit que les résultats sont reproductibles et comparables. Chaque décision méthodologique est documentée.
500 emails extraits du split d'évaluation (10% du corpus total, jamais vus pendant l'entraînement) avec un seed fixé (42) pour le shuffle. Distribution : 329 phishing (65.8%), 171 légitimes (34.2%). 32 types d'emails représentés. 3 niveaux de difficulté.
Tous les modèles reçoivent exactement les mêmes 500 emails dans le même ordre. Les modèles génératifs (Sandmail, GPT-4o, Gemini, LLaMA) reçoivent un system prompt équivalent demandant de classifier l'email comme "phishing" ou "légitime". Les classificateurs BERT reçoivent le texte brut.
Accuracy, Precision, Recall, F1-score (par classe et Macro), matrice de confusion, intervalles de confiance Wilson à 95%, accuracy par type d'email et par difficulté, analyse des erreurs (FP/FN par type et difficulté), latence (mean, median, p95, p99).
Les modèles BERT et DistilBERT sont des classificateurs entraînés sur des corpus anglophones, testés volontairement sur des emails français. Ce choix est délibéré et reflète la réalité du marché : il n'existe pas de modèle open-source spécialisé en détection de phishing francophone. Le benchmark mesure la capacité opérationnelle réelle de chaque modèle dans un contexte d'entreprise française.
Un étudiant en master, seul, avec une RTX 3080 Ti et ~50h de compute, a construit de A à Z un système qui surpasse les offres commerciales les plus coûteuses sur cette tâche. Le coût total du projet (compute + API) : moins de 25€. La preuve que les bons outils et la bonne méthode comptent plus que le budget.
LLaMA 3.2 3B et Sandmail partagent la même architecture (~3B paramètres). La différence : un corpus de 150 000 emails français d'une richesse unique, conçu avec 33 types d'attaques et des mécanismes anti-biais. Résultat : 99.4% vs 65.8%. Ce dataset, construit intégralement pour ce projet, est un actif en soi.
Avant Sandmail, les meilleurs modèles de détection de phishing disponibles en open-source atteignaient péniblement 40-52% sur du français — pire que le hasard. Le marché francophone était un désert. Ce projet apporte une première réponse concrète, et montre qu'il est possible de construire une solution locale, performante et accessible.
Sandmail tourne intégralement en local. Aucun email d'entreprise ne transite par une API tierce. Coût par requête : zéro. Latence : 3 secondes. Disponibilité : 100% (pas de rate limiting, pas de panne API). Pour un outil de sécurité, c'est fondamental.
Ce projet ne prétend pas être parfait. Les limitations suivantes sont documentées par souci de transparence scientifique.
Données synthétiques. Les 150k emails sont générés par un LLM (Mistral Small 24B), pas issus de boîtes mail réelles. Bien que le générateur inclue des mécanismes anti-clichés et un scoring de qualité strict, il existe inévitablement un biais de distribution par rapport à des emails de production.
Évaluation sur la même distribution. Le split eval (10%) provient du même générateur que le split train (90%). Les performances en production sur des emails réels pourraient différer. Une évaluation sur un corpus tiers serait nécessaire pour valider la généralisation.
Scope linguistique. Le modèle est optimisé pour le français. Ses performances sur d'autres langues (anglais, arabe, etc.) n'ont pas été évaluées.
Classification binaire. Sandmail répond "phishing" ou "légitime". Il ne fournit pas de score de confiance continu ni de catégorisation fine du type d'attaque (bien que le modèle génère une justification textuelle).
Sandmail est né d'une conviction : la cybersécurité française mérite ses propres outils d'IA, pas des adaptations anglophones. Conçu et réalisé seul, en parallèle de mon alternance, ce projet couvre l'intégralité du pipeline — de la génération de 150 000 emails au fine-tuning d'un LLM, en passant par un benchmark comparatif multi-modèles. L'architecture a été supervisée via VibeCoding.
Le code source reste privé pour le moment et n'a pas encore été rendu public.
Me contacter sur LinkedInAvertissement : cette interface est fournie à titre de démonstration technique uniquement. Elle ne constitue pas un outil de sécurité en production. Les résultats ne doivent pas être utilisés comme seul critère de décision. Le serveur peut être indisponible ou lent selon la charge.