Downloads · 30 days
14
14% of all-time downloads
dorukardahan/senti-qwen3-8b-sft
senti-qwen3-8b-sft is a text generation model from dorukardahan. Use it when you need the model to write or continue text. It is set up for peft. The card lists the license as apache-2.0.
A crypto sentiment analysis model fine-tuned on Qwen3-8B using Supervised Fine-Tuning (SFT).
Downloads · 30 days
14
14% of all-time downloads
All-time downloads
102
Public
Repo size
1.9 GB
Likes
0
Public
Click a slice to open those files.
.pt1 GB · 53%
From the Hugging Face model README
A crypto sentiment analysis model fine-tuned on Qwen3-8B using Supervised Fine-Tuning (SFT).
Note: For best results, use the DPO-optimized version: dorukardahan/senti-qwen3-8b-dpo
Senti is a specialized LLM for cryptocurrency market sentiment analysis. This is the SFT (Supervised Fine-Tuning) base model, trained on crypto summaries, sentiment classification, and chat data.
Qwen/Qwen3-8B (Base, 8B params)
│
▼
┌─────────────────────────────────────┐
│ SFT Training │
│ 9,314 samples (train + val) │
│ 5.34 hours on A100 80GB │
└─────────────────────────────────────┘
│
▼
This Model ────► DPO Training ────► senti-qwen3-8b-dpo (recommended)
| Property | Value |
|---|---|
| Base Model | Qwen/Qwen3-8B |
| Parameters | 8 Billion (Dense) |
| Languages | English (80%), Turkish (20%) |
| License | Apache 2.0 |
| Fine-tuning Method | QLoRA (4-bit NF4) |
| Dataset | Samples | Size | Purpose |
|---|---|---|---|
| Training Set | 8,383 | 22.4 MB | Supervised fine-tuning |
| Validation Set | 931 | 2.4 MB | Evaluation |
| Total | 9,314 | 24.8 MB |
| Task | Samples | Percentage | Description |
|---|---|---|---|
| Summary Generation | 4,491 | 53.6% | Generate market summaries from tweets |
| Sentiment Classification | 3,624 | 43.2% | Classify individual tweet sentiment |
| Chat / Q&A | 268 | 3.2% | Answer crypto market questions |
| Summary Type | Count | Description |
|---|---|---|
| Hourly Summaries | 4,086 | Real-time market pulse from recent tweets |
| Daily Summaries | 405 | End-of-day market recap and synthesis |
| Metric | Value |
|---|---|
| Average | 44.4 tweets |
| Minimum | 5 tweets |
| Maximum | 100 tweets |
| Total Tweets Processed | ~199,000 |
| Metric | Characters | ~Tokens |
|---|---|---|
| Avg Input Length | 2,167 | ~540 |
| Avg Output Length | 995 | ~250 |
| Max Sequence Length | 4,096 | 4,096 |
5-Class System:
| Label | Description | Example |
|---|---|---|
STRONG_BULLISH | Extreme optimism, price targets, euphoria | "BTC to 200k! This is just the beginning!" |
BULLISH | Positive outlook, accumulation mentions | "Adding more ETH here, looking good for Q1" |
NEUTRAL | Factual, news, no clear sentiment | "Bitcoin trading at $97,500 today" |
BEARISH | Concern, caution, negative outlook | "Not liking this price action, reducing exposure" |
STRONG_BEARISH | Panic, crash predictions, extreme fear | "This is the top, selling everything" |
Classification Distribution (3,624 samples):
| Label | Count | Percentage |
|---|---|---|
| BULLISH | ~1,200 | 33.1% |
| NEUTRAL | ~1,100 | 30.3% |
| STRONG_BULLISH | ~650 | 17.9% |
| BEARISH | ~450 | 12.4% |
| STRONG_BEARISH | ~224 | 6.2% |
The model was trained on data from 12 cryptocurrencies:
| Coin | Ticker | Category | Sample Distribution |
|---|---|---|---|
| Bitcoin | BTC | Major | ~18% |
| Ethereum | ETH | Major | ~16% |
| Solana | SOL | Layer 1 | ~12% |
| XRP | XRP | Payment | ~10% |
| BNB Chain | BNB | Layer 1 | ~9% |
| Chainlink | LINK | Oracle | ~8% |
| Arbitrum | ARB | Layer 2 | ~7% |
| Avalanche | AVAX | Layer 1 | ~6% |
| Hyperliquid | HYPE | DeFi | ~5% |
| 0G | 0G | AI/Infra | ~4% |
| Aster | ASTER | Emerging | ~3% |
| Zcash | ZEC | Privacy | ~2% |
| Source | Description |
|---|---|
| Twitter/X | Real-time tweets from crypto KOLs and communities |
| Time Range | October 2025 - January 2026 |
| Languages | English (primary), Turkish (secondary) |
| Filtering | Relevance scoring, spam removal, deduplication |
| Parameter | Value |
|---|---|
| Base Model | Qwen/Qwen3-8B |
| Method | QLoRA (4-bit NF4) |
| Epochs | 3 |
| Batch Size | 16 (4 × 4 grad accum) |
| Learning Rate | 1e-4 |
| Warmup Ratio | 0.05 |
| LR Scheduler | Cosine |
| Weight Decay | 0.01 |
| Max Sequence Length | 4,096 tokens |
| Training Time | 5.34 hours |
| Hardware | NVIDIA A100 80GB |
| Parameter | Value |
|---|---|
| Rank (R) | 32 |
| Alpha | 64 |
| Dropout | 0.05 |
| Target Modules | q_proj, k_proj, v_proj, o_proj, gate_proj, up_proj, down_proj |
| Parameter | Value |
|---|---|
| Bits | 4-bit |
| Quant Type | NF4 |
| Compute Dtype | bfloat16 |
| Double Quant | Yes |
Input: Raw tweets about a cryptocurrency Output: Structured market analysis
## BTC Hourly Summary
**Overall Sentiment: BULLISH (7.2/10)**
### Key Developments
- Bitcoin testing $98,000 resistance level
- ETF inflows remain positive
- Whale activity detected on-chain
### Risk Factors
- Some profit-taking at round numbers
- RSI elevated but not overbought
### Outlook
Momentum positive. Watch $100K level.
Input: Single tweet Output: Sentiment label
Input: "ETH looking strong here, accumulating more"
Output: BULLISH
Supported Labels:
Input: Question about crypto market Output: Informative answer
Q: "What's the current sentiment on SOL?"
A: "Based on recent social media activity, Solana sentiment is moderately
bullish. Key themes include ecosystem growth, DeFi TVL increases, and
positive price action. Some concerns exist about network stability
during high-traffic periods."
from peft import PeftModel
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch
# Load model
base_model = AutoModelForCausalLM.from_pretrained(
"Qwen/Qwen3-8B",
torch_dtype=torch.bfloat16,
device_map="auto"
)
model = PeftModel.from_pretrained(base_model, "dorukardahan/senti-qwen3-8b-sft")
tokenizer = AutoTokenizer.from_pretrained("Qwen/Qwen3-8B")
# Generate
messages = [
{"role": "system", "content": "You are Senti, a crypto sentiment analyst."},
{"role": "user", "content": "Summarize BTC market sentiment."}
]
text = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
inputs = tokenizer(text, return_tensors="pt").to(model.device)
outputs = model.generate(**inputs, max_new_tokens=512, temperature=0.7)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))
from transformers import BitsAndBytesConfig
bnb_config = BitsAndBytesConfig(
load_in_4bit=True,
bnb_4bit_quant_type="nf4",
bnb_4bit_compute_dtype=torch.bfloat16,
)
base_model = AutoModelForCausalLM.from_pretrained(
"Qwen/Qwen3-8B",
quantization_config=bnb_config,
device_map="auto"
)
model = PeftModel.from_pretrained(base_model, "dorukardahan/senti-qwen3-8b-sft")
| Format | Size | Platform | Latency | Memory |
|---|---|---|---|---|
| FP16 (native) | ~16 GB | GPU | ~1-2s | 20+ GB VRAM |
| INT8 / Q8_0 | ~8 GB | GPU/CPU | ~2-5s | 12+ GB |
| INT4 / Q4_K_M | ~4.5 GB | CPU | ~5-10s | 8+ GB RAM |
Not Intended For:
| Model | Purpose | Link |
|---|---|---|
| DPO Optimized (Recommended) | Production-ready | dorukardahan/senti-qwen3-8b-dpo |
@misc{senti-qwen3-8b-sft,
author = {Doruk Ardahan},
title = {Senti: Crypto Sentiment Analysis Model (SFT)},
year = {2025},
publisher = {HuggingFace},
url = {https://huggingface.co/dorukardahan/senti-qwen3-8b-sft}
}