FedDeBERTa-DAPT

FedDeBERTa-DAPT is a fine-tuned microsoft/deberta-v3-base model for binary sentiment classification of Federal Reserve communications (FOMC statements, minutes, and related monetary-policy text), classifying a sentence as expressing a Positive (dovish / improving economic assessment) or Negative (hawkish / deteriorating economic assessment) tone.

This is the DAPT (Domain-Adaptive Pretraining) variant: before task fine-tuning, the backbone underwent continued masked-language-model pretraining on a Federal Reserve communications corpus, then was fine-tuned on the same labeled sentiment task as the companion FedDeBERTa BASE model. (Exact DAPT pretraining corpus size, steps, and MLM configuration are documented in the dissertation methods chapter — not restated here to avoid restating unverified figures from memory; can be added on request.)

Both models were developed as part of the dissertation "Domain Adaptive Pretraining for Federal Reserve Sentiment Analysis: A Systematic Study of Small-Corpus Adaptation, Knowledge Distillation, and Cross-Bank Transfer" by Christopher S. Bennett, University of Arkansas at Little Rock.

⚠️ Disclaimer

This is an academic research artifact released alongside a dissertation. It is not intended as financial or investment advice, and outputs should not be used as the sole basis for trading, investment, or policy decisions. Performance figures below reflect a held-out academic test set and may not generalize to other time periods, institutions, or communication styles. Use in any production or decision-making context is at the deployer's own risk.

Model details

Base architecture DebertaV2ForSequenceClassification (DeBERTa-v3-base backbone, domain-adaptively pretrained)
Hidden size 768
Layers / attention heads 12 / 12
Tokenizer SentencePiece (Unigram), 128,001 vocabulary entries — byte-identical to the BASE model's tokenizer (verified via SHA-256)
Labels 0: Negative, 1: Positive
Dropout (attention / hidden) 0.1 / 0.1
License Apache-2.0

A note on vocab_size: unlike the BASE model, this checkpoint's config.json reports vocab_size: 128001, exactly matching the tokenizer's embedding matrix shape (128001, 768). The continued-pretraining step resized the embedding matrix down from the upstream 128,100-row buffer to the tokenizer's actual vocabulary size. Both models are internally consistent and were verified via a live forward-pass smoke test before release; see REPRODUCIBILITY.md in the companion GitHub repo for details.

Training data

Fine-tuned on the same labeled corpus of Federal Reserve communication sentences as the BASE model (source file referenced internally as FED_prelabelled_sent_fixed.csv), with each sentence labeled Positive or Negative for economic-assessment tone. Full dataset construction, domain-adaptive pretraining corpus, and labeling methodology are described in the dissertation.

Evaluation

Evaluated on the same frozen, grouped stratified 80/20 held-out test split as the BASE model (seed=42, N=1,322: 718 Negative / 604 Positive), verified independently against archived model predictions and cross-checked row-by-row against the frozen split manifest (100% match).

Metric Value
Weighted F1 81.35%
Accuracy 81.39%
Negative — precision / recall / F1 0.8164 / 0.8482 / 0.8320
Positive — precision / recall / F1 0.8108 / 0.7732 / 0.7915

Compared to the BASE variant, this DAPT model shows a small point-estimate improvement (ΔF1-weighted = +0.16pp) that is not statistically significant at this sample size (95% CI [-1.44, +1.76]pp, Holm-corrected p = 1.000, McNemar's test). Framed accurately: DAPT is the point-estimate leader on this test set, not a statistically superior model. See the dissertation and REPRODUCIBILITY.md for the full statistical methodology.

Usage

from transformers import AutoTokenizer, AutoModelForSequenceClassification
import torch

tokenizer = AutoTokenizer.from_pretrained("cbenne23/FedDeBERTa-DAPT")
model = AutoModelForSequenceClassification.from_pretrained("cbenne23/FedDeBERTa-DAPT")
model.eval()

text = "The Committee judges that the risks to the outlook for economic activity are weighted to the downside."
inputs = tokenizer(text, return_tensors="pt", truncation=True, max_length=512)
with torch.no_grad():
    logits = model(**inputs).logits
pred_id = torch.argmax(logits, dim=-1).item()
print(model.config.id2label[pred_id])  # "Negative"

Checkpoint integrity

model.safetensors SHA-256: 2883b6ed9507278c7ff9da9359b6c81e50de15135a56537b739ba6fb2d98c574

Citation

If you use this model, please cite the dissertation:

@phdthesis{bennett_fed_sentiment,
  author = {Bennett, Christopher S.},
  title  = {Domain Adaptive Pretraining for Federal Reserve Sentiment Analysis: A Systematic Study of Small-Corpus Adaptation, Knowledge Distillation, and Cross-Bank Transfer},
  school = {University of Arkansas at Little Rock},
  year   = {2026}
}
Downloads last month
6
Safetensors
Model size
0.2B params
Tensor type
F32
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support