Frontier BERT Workhorses: Emotion and Bias Classifiers
Small, fast, open text classifiers for emotion and bias detection, maintained since January 2025. This page is the single home for all of them: what each model does, how they evolved, how they score, and one citation that covers every model.
Models
| Task | Recommended model | Labels | Earlier versions |
|---|---|---|---|
| Fine-grained emotion (GoEmotions, multi-label) | ultrabert-380M-go-emotions · base size: ultrabert-150M-go-emotions | 28 | modernbert-large-go-emotions, modernbert-base-go-emotions, modernbert-base-go-emotions-2025-01 |
| Basic emotion (SuperEmotion, Shaver taxonomy) | ultrabert-150M-emotions (380M version in progress) | 7 | modernbert-base-emotions |
| Bias type (multi-label) | ultrabert-380M-bias-type-classifier | 11 | modernbert-large-bias-type-classifier |
Dataset: SuperEmotion, 500k+ texts from five emotion datasets harmonised to Shaver's taxonomy (arXiv:2505.15348).
Results: GoEmotions test set
Macro-F1 over the 28 labels (every emotion weighs equally, so rare emotions count as much as common ones). All models were evaluated with the same script in the same environment.
| Model | Params | Threshold 0.5 | Per-label thresholds (train) | Per-label thresholds (validation) |
|---|---|---|---|---|
| modernbert-large-go-emotions | 395M | 0.490 | 0.543 | 0.536 |
| modernbert-base-go-emotions (2026-03, autoresearch) | 150M | 0.500 | 0.550 | 0.536 |
| ultrabert-150M-go-emotions | 150M | 0.497 | 0.550 | 0.544 |
| ultrabert-380M-go-emotions | 380M | 0.521 | 0.568 | 0.555 |
Per-label thresholds are listed on each model card; using them instead of 0.5 is recommended.
History
- 2026-10: SuperEmotion version 2: "ISEAR" relabelled and some train/test leakage removed (version 1 stays available).
- 2026-10: Moved to UltraBERT (dmis-lab, 32K context). With the unchanged 2025 training recipe,
ultrabert-380M-go-emotionsbeats every earlier model in this family on GoEmotions. A base-sizeultrabert-150M-go-emotionsfollows, tuned with the same autoresearch loop (learning rate 3e-5).ultrabert-380M-bias-type-classifierreplaces the ModernBERT-large bias classifier (test macro-F1 0.923 vs 0.922).ultrabert-150M-emotionsreplacesmodernbert-base-emotionson SuperEmotion (trained on dataset version 2; test macro-F1 0.826 vs 0.781, thresholds tuned on validation). - 2026-03: Autoresearch: an AI agent ran ~60 fine-tuning experiments autonomously (optimiser, LR, EMA,
per-label thresholds) and produced a new
modernbert-base-go-emotions(+0.04 macro-F1 at threshold 0.5 over the original). The original is kept asmodernbert-base-go-emotions-2025-01. - 2025-05: The SuperEmotion dataset and paper (arXiv:2505.15348); refreshed models.
- 2025-02:
modernbert-base-emotions, a 7-label emotion classifier (Shaver taxonomy). - 2025-01: First ModernBERT fine-tunes, released weeks after ModernBERT came out:
modernbert-base-go-emotions,modernbert-large-go-emotions, andmodernbert-large-bias-type-classifier(11 bias types, trained onethical-spectacle/biased-corpus).
Why small fine-tuned encoders
Large "decision" models are hyped right now, but for a fixed label set a small fine-tuned encoder is still hard to beat: it is cheaper, faster, runs on a CPU, and is more accurate on the task it was trained for.
Cite
If you use any of these models or the dataset, please cite:
@misc{junque2025emotion,
title = {Emotion and Bias Classification with Modern Encoders},
author = {Junqu\'e de Fortuny, Enric},
year = {2025},
howpublished = {\url{https://huggingface.co/spaces/cirimus/emotion-detection}}
}
For the SuperEmotion dataset specifically, please also cite the dataset paper:
@misc{junque2025superemotion,
title = {The SuperEmotion Dataset},
author = {Junqu\'e de Fortuny, Enric},
year = {2025},
eprint = {2505.15348},
archivePrefix = {arXiv},
primaryClass = {cs.CL}
}
Contact
Questions about the models, the data or the citation? Get in touch via ciri.be.