Skip to content
Ankit Aglawe
FinSense· financial news sentiment

answerdotai/ModernBERT-base, fine-tuned for financial news sentiment

This is not ModernBERT-base, which is a general encoder with no classification head. It is ModernBERT fine-tuned on the Financial PhraseBank for three-class sentiment on financial text.

FinSense bull mascot

FinSense

AnkitAI/FinSense-ModernBERT-Financial-News-Sentiment-Analysis
149M parametersApache-2.0191 downloads, checked 2026-07-27

The Financial PhraseBank is CC BY-NC-SA. The weights are Apache-2.0; commercial users should check the dataset terms.

FinBERT was released in 2019 on a BERT backbone and it is still the default choice for financial sentiment. This is the same task on ModernBERT, an encoder released five years later, fine-tuned on the Financial PhraseBank and emitting three classes — negative, neutral, positive. That corpus is professionally written English financial news at sentence level, so earnings-call transcripts and social finance chatter sit outside it, and the errors concentrate where the corpus itself is contested: the positive-versus-neutral boundary, where human annotators disagree around a quarter of the time. Every model on this task hits that ceiling, FinBERT included.

Its card reports 0.8675 accuracy and 0.8589 macro-F1, about 2.5 points above an independently reproduced FinBERT. That comparison is only meaningful because of how it was constructed: the Financial PhraseBank has no official train/test split, so most published numbers in this area were measured on incomparable data, and some of FinBERT's higher published scores come from evaluating on sentences that overlap its own training set. Here the split script and the raw evaluation outputs are published, and the FinBERT row was reproduced under the same harness.

One more thing the card does that most do not: it publishes the seed spread. Across three training seeds the recipe averages 0.854 accuracy with a range of 0.845 to 0.868. The shipped checkpoint is the best validated one — which is the normal practice — but the distribution it was drawn from is published alongside it, so you can see how much of that headline number is recipe and how much is luck. Measured on the seed mean rather than the shipped checkpoint, the gap to FinBERT is still there and it is smaller than the headline: 0.854 against 0.8423.

The numbers

Financial PhraseBank, published held-out test split, identical harness for every row.

ModelAccuracyMacro-F1
This model0.86750.8589
FinBERT (reproduced)0.84230.8439
FinSense DistilBERT v20.84470.8316
Three-seed mean of this recipe0.854

Figures as reported on the model's own Hugging Face card. Quoted here, not re-measured. The FinBERT row is that card's independent reproduction of the public FinBERT checkpoint.

Run it

Transformers
from transformers import pipeline

clf = pipeline(
    "text-classification",
    model="AnkitAI/FinSense-ModernBERT-Financial-News-Sentiment-Analysis",
)
clf("The company's quarterly earnings surpassed all estimates.")
# [{'label': 'positive', 'score': 0.99}]

Try others

Where to get it

Base model
answerdotai/ModernBERT-base
Training data
Financial PhraseBank (sentences_50agree, 4,846 sentences)