tabularisai/ModernFinBERT

Model

ModernFinBERT

13

25 commits

1 linked in READMEs

updated Nov 25, 2025

See the code

README

ModernFinBERT

ModernFinBERT

A fine-tuned financial sentiment analysis model based on ModernBERT, trained on synthetic and real financial data cleaned through an automated AI agentic pipeline. The model covers diverse financial domains including news, tweets, crypto, and macroeconomics, making it the most general-purpose financial sentiment classifier. Benchmark results show superior performance with up to 48% accuracy improvement over existing models across multiple financial datasets.

For private API access or access to even more powerful financial models, contact us at info@tabularis.ai

Quick Start

from transformers import pipeline

# Load model
classifier = pipeline('text-classification', model='tabularisai/ModernFinBERT')

# Test sentences
sentences = [
    "The company reported strong quarterly earnings with revenue growth of 15% year-over-year, exceeding analyst expectations.",
    "Due to rising inflation and supply chain disruptions, the Federal Reserve decided to increase interest rates by 0.75 basis points.",
    "The merger between the two pharmaceutical giants is expected to create significant synergies and reduce operational costs by $2 billion annually."
]

# Evaluate
for i, sentence in enumerate(sentences, 1):
    result = classifier(sentence)
    print(f"Sentence {i}: {result[0]['label']} ({result[0]['score']:.3f})")

Benchmark Results

DatasetModelAccuracyF1-ScorePrecisionRecallROC-AUC
FIQAModernFinBERT0.800.610.640.880.96
FIQAdistilroberta_financial0.540.470.610.710.71
FIQAfinbert0.480.430.590.660.76
FIQAfinbert-tone0.360.360.620.580.77
FIQAroberta_sentiment0.360.350.600.580.89
TwitterModernFinBERT0.710.700.680.810.94
Twitterdistilroberta_financial0.750.710.680.750.87
Twitterfinbert-tone0.750.660.680.640.83
Twitterfinbert0.730.670.650.700.86
Twitterroberta_sentiment0.700.610.630.600.82
JeanBaptisteModernFinBERT0.740.580.710.560.84
JeanBaptistedistilroberta_financial0.880.790.920.740.86
JeanBaptistefinbert0.770.680.700.670.88
JeanBaptistefinbert-tone0.740.600.720.560.86
JeanBaptisteroberta_sentiment0.700.550.790.510.83

Model Averages Across All Datasets

ModelAccuracyF1-ScorePrecisionRecallROC-AUC
ModernFinBERT0.750.630.680.750.91
distilroberta_financial0.730.660.730.730.82
finbert0.660.590.650.680.84
finbert-tone0.620.540.680.590.82
roberta_sentiment0.590.500.670.560.84

Legend:

Bold = Best result per metric per dataset

Italic = Second best result per metric per dataset

crypto
financial-sentiment-analysis
finbert
modernbert
modernfinbert
safetensors
sentiment-analysis
stocks
synthetic
synthetic data
text-classification

Contributors

vdmbrsv

25 commits

tabularisai/ModernFinBERT

Model

ModernFinBERT

13

25 commits

1 linked in READMEs

updated Nov 25, 2025

See the code

README

ModernFinBERT

ModernFinBERT

A fine-tuned financial sentiment analysis model based on ModernBERT, trained on synthetic and real financial data cleaned through an automated AI agentic pipeline. The model covers diverse financial domains including news, tweets, crypto, and macroeconomics, making it the most general-purpose financial sentiment classifier. Benchmark results show superior performance with up to 48% accuracy improvement over existing models across multiple financial datasets.

For private API access or access to even more powerful financial models, contact us at info@tabularis.ai

Quick Start

from transformers import pipeline

# Load model
classifier = pipeline('text-classification', model='tabularisai/ModernFinBERT')

# Test sentences
sentences = [
    "The company reported strong quarterly earnings with revenue growth of 15% year-over-year, exceeding analyst expectations.",
    "Due to rising inflation and supply chain disruptions, the Federal Reserve decided to increase interest rates by 0.75 basis points.",
    "The merger between the two pharmaceutical giants is expected to create significant synergies and reduce operational costs by $2 billion annually."
]

# Evaluate
for i, sentence in enumerate(sentences, 1):
    result = classifier(sentence)
    print(f"Sentence {i}: {result[0]['label']} ({result[0]['score']:.3f})")

Benchmark Results

DatasetModelAccuracyF1-ScorePrecisionRecallROC-AUC
FIQAModernFinBERT0.800.610.640.880.96
FIQAdistilroberta_financial0.540.470.610.710.71
FIQAfinbert0.480.430.590.660.76
FIQAfinbert-tone0.360.360.620.580.77
FIQAroberta_sentiment0.360.350.600.580.89
TwitterModernFinBERT0.710.700.680.810.94
Twitterdistilroberta_financial0.750.710.680.750.87
Twitterfinbert-tone0.750.660.680.640.83
Twitterfinbert0.730.670.650.700.86
Twitterroberta_sentiment0.700.610.630.600.82
JeanBaptisteModernFinBERT0.740.580.710.560.84
JeanBaptistedistilroberta_financial0.880.790.920.740.86
JeanBaptistefinbert0.770.680.700.670.88
JeanBaptistefinbert-tone0.740.600.720.560.86
JeanBaptisteroberta_sentiment0.700.550.790.510.83

Model Averages Across All Datasets

ModelAccuracyF1-ScorePrecisionRecallROC-AUC
ModernFinBERT0.750.630.680.750.91
distilroberta_financial0.730.660.730.730.82
finbert0.660.590.650.680.84
finbert-tone0.620.540.680.590.82
roberta_sentiment0.590.500.670.560.84

Legend:

Bold = Best result per metric per dataset

Italic = Second best result per metric per dataset

crypto
financial-sentiment-analysis
finbert
modernbert
modernfinbert
safetensors
sentiment-analysis
stocks
synthetic
synthetic data
text-classification

Contributors

vdmbrsv

25 commits