Skip to content
Ankit Aglawe
Model series

FinSense

Financial news sentiment, done properly. The modern FinBERT alternative: newer architectures, a published evaluation split, and numbers you can reproduce.

FinSense bull mascot

Models

FinSense ModernBERT

Flagship

Accuracy 0.8675 / F1 0.8589 on the published FPB split - beats FinBERT's reproducible 0.8423

Model card →

FinSense DistilBERT v2

Lightweight

Accuracy 0.8447 / F1 0.8316

Model card →

Benchmarks

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

ModelAccuracyMacro-F1
FinSense ModernBERT0.86750.8589
FinSense DistilBERT v20.84470.8316
FinBERT (independently reproduced)0.84230.8439
distilbert financial v10.83230.8064

The split script and raw eval outputs ship in the model repo, so every number is reproducible end-to-end. Across three training seeds the flagship recipe averages 0.854; the best validated checkpoint ships and every seed's result is published.

Use it

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}]

Reproducibility

There is no official train/test split for the Financial PhraseBank dataset, so most published FinBERT-era numbers cannot be compared against each other. Ours is different: the exact evaluation split we use is published, together with the eval scripts, so every number above can be re-run and checked.