CamemBERT Spam Detector - French Developer Communities

Modèle de détection de spam/promotion pour les communautés de développeurs francophones, basé sur CamemBERT.

Installation

⚠️ Important : Ce modèle nécessite une version spécifique de transformers pour fonctionner correctement.

pip install 'transformers>=4.40.0,<4.46.0' torch sentencepiece protobuf

Requirements

Package Version
transformers >=4.40.0,<4.46.0
torch >=2.0.0
sentencepiece >=0.1.99
protobuf >=3.20.0

⚠️ Attention : Les versions transformers>=4.46.0 (notamment 5.x) peuvent causer des faux positifs sur les contenus techniques formatés. Utilisez impérativement une version <4.46.0.

Performance

Métrique Valeur
Accuracy 99.84%
Temps d'entraînement ~1 minute

Utilisation

from transformers import CamembertTokenizer, CamembertForSequenceClassification
import torch

# Charger le modèle (utiliser le tokenizer du repo, pas camembert-base)
tokenizer = CamembertTokenizer.from_pretrained("nellaw/camembert-spam-detector-fr")
model = CamembertForSequenceClassification.from_pretrained("nellaw/camembert-spam-detector-fr")

# Prédiction
def predict(text):
    inputs = tokenizer(text, return_tensors="pt", truncation=True, max_length=256, padding=True)
    with torch.no_grad():
        outputs = model(**inputs)
        probs = torch.softmax(outputs.logits, dim=1)
        pred = torch.argmax(probs, dim=1).item()
    return "Spam" if pred == 1 else "Légitime", probs[0][pred].item()

# Test
label, confidence = predict("Comment faire une boucle for en Python ?")
print(f"{label} ({confidence:.1%})")  # Légitime (97.6%)

label, confidence = predict("Gagnez 5000€/mois avec notre méthode !")
print(f"{label} ({confidence:.1%})")  # Spam (97.6%)

Exemples

Message Prédiction Confiance
"Comment faire une boucle for en Python ?" Légitime 97.7%
"Gagnez 5000€/mois avec notre méthode !" Spam 97.6%
"Je ne vends pas ma formation" Légitime 97.5%
"Formation à vendre pour 99€ !" Spam 97.4%
"Est-ce que c'est une pub ?" Légitime 97.5%
"Services d'intégration API (OAuth, JWT, REST)" Légitime 95.4%

Points forts

  • Comprend les négations ("je ne vends pas" vs "je vends")
  • Détecte les questions comme légitimes
  • Reconnaît le contexte gratuit vs payant
  • Haute confiance (~97%) sur les prédictions
  • Gère correctement les contenus techniques (API, documentation, tableaux)

Entraînement

Paramètre Valeur
Modèle de base camembert-base
Dataset 174 735 exemples (52% légitimes, 48% spam)
Batch size 64
Learning rate 2e-5
Epochs 3 (early stopping)
Mixed precision FP16
GPU NVIDIA RTX 5090

Labels

  • 0 : Légitime (question technique, discussion, aide)
  • 1 : Spam/Promotion (publicité, arnaque, vente)

Troubleshooting

Faux positifs sur contenus techniques

Si vous obtenez des faux positifs (contenus légitimes classés spam), vérifiez :

  1. Version de transformers : pip show transformers → doit être <4.46.0
  2. Tokenizer : utilisez nellaw/camembert-spam-detector-fr, pas camembert-base
# Corriger le problème
pip install 'transformers>=4.40.0,<4.46.0'

Licence

MIT

Downloads last month
262
Safetensors
Model size
0.3B params
Tensor type
F32
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Evaluation results