Sashank1006/finance-sentiment-mistral-lora
07
๐น Finance Sentiment Classifier โ Indian Market Focus
Fine-tuned on Mistral-7B-Instruct using LoRA via Adaption AutoScientist. Classifies financial news, headlines, and social media text into positive, negative, or neutral sentiment. Built for the HackIndia Adaption AutoScientist Challenge โ Finance track.
๐ Performance
Training curves showed clean, consistent loss reduction with no overfitting across 4 epochs.
๐ง Model Details
๐ Dataset
The training dataset is a curated merge of 6 sources totalling ~120,000 raw rows, cleaned and deduplicated down to 20,000 high-quality rows via Adaption's Adaptive Data pipeline.
Sources
What makes this dataset original
- Indian market focus โ original hand-labeled examples covering NSE, BSE, Sensex, Nifty, RBI decisions, Indian fintech (Paytm, Zomato, PhonePe), and Indian conglomerates (Reliance, Tata, Adani, HDFC)
- Multi-source deduplication โ priority-aware deduplication ensures highest-quality copy is retained when the same text appears across sources
- Multilingual context โ includes financial terminology specific to the Indian subcontinent not present in standard Western finance NLP datasets
- Live news augmentation โ recent business headlines via NewsAPI add temporal diversity beyond static datasets
Label distribution (after cleaning)
positive : ~35%
negative : ~33%
neutral : ~32%Balanced across all three classes to prevent label bias.
Data quality improvement via Adaptive Data
Adaption's Adaptive Data pipeline was applied before training:
- Before: Grade E, quality score 2.0, percentile 0.1
- After: Grade B, quality score 8.1, percentile 17.8
- Relative improvement: 305%
๐ How to Use
from transformers import AutoTokenizer, AutoModelForCausalLM
from peft import PeftModel
base_model = "mistralai/Mistral-7B-Instruct-v0.3"
lora_model = "Sashank1006/finance-sentiment-mistral-lora"
tokenizer = AutoTokenizer.from_pretrained(base_model)
model = AutoModelForCausalLM.from_pretrained(base_model, device_map="auto")
model = PeftModel.from_pretrained(model, lora_model)
model.eval()
def predict_sentiment(text: str) -> str:
prompt = f"Classify the sentiment of this financial text as positive, negative, or neutral:\n\n{text}\n\nSentiment:"
inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
output = model.generate(**inputs, max_new_tokens=5, do_sample=False)
result = tokenizer.decode(output[0], skip_special_tokens=True)
return result.split("Sentiment:")[-1].strip().lower()
# Example
text = "Reliance Industries reported a 23% jump in quarterly profit."
print(predict_sentiment(text)) # โ "positive"๐ Real-World Applications
- Retail investor tools โ classify financial news before displaying to users
- Trading signal generation โ convert news sentiment into bullish/bearish signals
- Portfolio risk monitoring โ flag negative sentiment around held stocks
- Indian fintech apps โ specifically tuned for Indian market terminology and companies
- News aggregators โ auto-tag financial articles by sentiment
โ ๏ธ Limitations
- Trained primarily on English-language financial text; performance on Hindi/Tamil/regional language finance text will be lower
- Rule-labelled NewsAPI headlines (~500 rows) may contain some label noise
- Model may underperform on highly technical financial derivative or options-specific language
- Sentiment is classified at the sentence/headline level โ document-level sentiment aggregation requires additional logic
- The model reflects sentiment patterns in training data up to mid-2026; sentiment around newer entities may be less accurate
๐ Training Pipeline
Raw data (6 sources, ~120K rows)
โ
Merge + deduplicate (prepare_dataset.py)
โ
Upload to Adaption Adaptive Data
โ
Adaptive Data optimization (Grade E โ B, 305% quality improvement)
โ
AutoScientist fine-tuning (Mistral-7B-Instruct, LoRA, 4 epochs)
โ
Evaluation (Win rate: 44 โ 56 on dataset, 40 โ 60 on market analysis)
โ
Released on HuggingFace + Kaggle๐ฅ Team
Team Caribou โ HackIndia Adaption AutoScientist Challenge, Finance Track
Built using:
- Adaption AutoScientist โ automated model training
- Adaption Adaptive Data โ dataset quality optimization
- HuggingFace Datasets โ source data
- NewsAPI โ live headline augmentation
๐ Citation
@misc{caribou2026financeSentiment,
title = {Finance Sentiment Classifier โ Indian Market Focus},
author = {Team Caribou},
year = {2026},
url = {https://huggingface.co/YOUR_HF_USERNAME/finance-sentiment-mistral-lora},
note = {Built for HackIndia Adaption AutoScientist Challenge}
}๐ Links
- ๐ฆ Dataset: Kaggle โ finance-sentiment-india
- ๐ค Model: HuggingFace โ finance-sentiment-mistral-lora
- ๐ฎ Demo: HuggingFace Spaces โ Gradio App
