LoadingâŠ
LoadingâŠ
cmarkea/distilcamembert-base-sentimentdistilcamembert-3c-starinit-s42)Classifieur de sentiment pour le français en trois classes : negative,
neutral, positive. ModĂšle principal de l'application
TextSense.
| Architecture | DistilCamemBERT (6 couches, ~68 M paramĂštres) + tĂȘte de classification 3 classes |
| ModÚle de départ | cmarkea/distilcamembert-base-sentiment (révision 5716940), entraßné à prédire 1 à 5 étoiles sur des avis Amazon et Allociné |
| Modification | tĂȘte 5 Ă©toiles remplacĂ©e par une tĂȘte 3 classes, initialisĂ©e depuis la tĂȘte d'origine (nĂ©gatif = moyenne 1â /2â , neutre = 3â , positif = moyenne 4â /5â ), puis fine-tuning complet |
| Ătiquettes | 0: negative, 1: neutral, 2: positive |
| Longueur max. | 128 tokens à l'entraßnement, 512 à l'inférence |
| Seuil de confiance calibré | textsense_confidence_threshold = 0.81 (dans config.json) |
| Auteur | Ahamed Tidiane Tall |
| Licence | MIT |
low_confidence) comme indicatives et prévoir une relecture humaine.from transformers import pipeline
classifier = pipeline("text-classification", model="AhamedT04/textsense-distilcamembert-sentiment-3c")
classifier("La réunion a lieu jeudi à 14 heures.")
# [{'label': 'neutral', 'score': 0.91}]
Partie française de
cardiffnlp/tweet_sentiment_multilingual
(révision 14b13ed) : tweets annotés en 3 classes équilibrées.
| Split | Exemples | Usage |
|---|---|---|
| train | 1 839 | entraĂźnement |
| validation | 324 | choix de l'époque, calibration du seuil |
| test | 870 | évaluation finale |
| HyperparamĂštre | Valeur |
|---|---|
| Optimiseur | AdamW, learning rate 3e-5, weight decay 0,01 |
| Planning | linéaire, warmup 10 % |
| Batch | 16 |
| Ăpoques | 4 max., meilleure Ă©poque selon le macro-F1 de validation (early stopping, patience 2) |
| Graine | 42 |
| Matériel | CPU Intel Core i7-1255U (12 threads), ~9 min |
Configuration complĂšte : configs/finetune_distilcamembert_3c.yaml.
Reproduction : make finetune.
La configuration (modĂšle de dĂ©part, initialisation de la tĂȘte, hyperparamĂštres) a Ă©tĂ© fixĂ©e avant de regarder les jeux de test ; les variantes (ablations, autres graines) servent Ă interprĂ©ter le rĂ©sultat, pas Ă choisir le meilleur score sur le test.
Deux jeux de test, jamais utilisés pendant l'entraßnement ni pour un réglage :
tweets_fr_test â 870 tweets, mĂȘme domaine que l'entraĂźnement ;textsense_eval_v1 â 360 phrases courantes
(avis, informations, questions, consignes) avec cas difficiles annotés,
autre domaine que l'entraĂźnement.Macro-F1 avec intervalle de confiance Ă 95 % (bootstrap, 1 000 tirages) :
| ModĂšle | textsense_eval_v1 |
tweets_fr_test |
|---|---|---|
| ModĂšle d'origine (Ă©toiles regroupĂ©es) | 0,510 [0,480â0,541] | 0,363 [0,335â0,390] |
| TF-IDF + rĂ©gression logistique | 0,513 [0,462â0,564] | 0,264 [0,238â0,292] |
| Ce modĂšle | 0,885 [0,851â0,917] | 0,723 [0,692â0,754] |
Par classe (précision / rappel / F1) :
| Classe | textsense_eval_v1 |
tweets_fr_test |
|---|---|---|
| negative | 0,89 / 0,84 / 0,87 | 0,77 / 0,82 / 0,79 |
| neutral | 0,93 / 0,84 / 0,88 | 0,75 / 0,65 / 0,70 |
| positive | 0,85 / 0,97 / 0,91 | 0,66 / 0,70 / 0,68 |
Exactitude par phénomÚne sur textsense_eval_v1 (n = nombre d'exemples ;
petits effectifs â tendances) :
| PhénomÚne | n | ModÚle d'origine | Ce modÚle |
|---|---|---|---|
| explicite | 80 | 0,99 | 1,00 |
| négation | 40 | 0,95 | 0,97 |
| contraste | 30 | 0,90 | 0,97 |
| implicite | 30 | 0,90 | 0,80 |
| ironie | 15 | 0,27 | 0,20 |
| factuel | 45 | 0,00 | 0,93 |
| question | 20 | 0,05 | 1,00 |
| consigne / annonce | 20 | 0,00 | 0,80 |
| lexique émotionnel sans jugement | 15 | 0,07 | 0,33 |
StabilitĂ© : mĂȘme configuration avec trois graines (42, 13, 7) â macro-F1
0,883 ± 0,003 sur textsense_eval_v1 et 0,724 ± 0,004 sur tweets_fr_test.
Version ONNX int8 (69 Mo, ~4Ă plus rapide sur CPU) : macro-F1 0,882 sur
textsense_eval_v1 et 0,705 sur tweets_fr_test.
Ablations et analyse détaillée :
docs/EXPERIMENTS.md et
reports/RESULTS.md.
Seuil low_confidence choisi sur la validation : le plus petit seuil tel que
les prĂ©dictions au-dessus atteignent 85 % d'exactitude â 0,81 (73,8 % des
prédictions de validation jugées fiables). Sur les jeux de test :
| Jeu | Prédictions au-dessus du seuil | Exactitude de ces prédictions | Exactitude des prédictions signalées |
|---|---|---|---|
textsense_eval_v1 |
73,6 % | 93,2 % | 75,8 % |
tweets_fr_test |
73,1 % | 79,9 % | 52,1 % |
Sur les tweets de test, le modÚle est un peu trop confiant (ECE 0,146) : le seuil n'y atteint pas les 85 % visés.
textsense_eval_v1 : rédigé pour le projet avec assistance IA,
distribution artificielle (classes équilibrées, cas difficiles
sur-représentés) ; il ne remplace pas une évaluation sur des données réelles.