Finfluencer-8B: Financial Tweet Analysis Model

Finfluencer-8B is a specialized language model designed to analyze financial and cryptocurrency tweets. It is fine-tuned on Meta's Llama 3 8B architecture using Unsloth, making it highly efficient and accurate for extracting structured data from social media text.

🚀 Model Description

This model acts as an expert financial analyst. It takes raw tweet text (and optional visual context) as input and analyzes it to produce a structured JSON output. It focuses on understanding market sentiment, identifying technical levels, and categorizing content.

  • Developed by: Baran Adanır & Ibrahim Enes Duran
  • Base Model: Llama 3 8B
  • Fine-tuning Library: Unsloth (LoRA)
  • Language: English (optimized for crypto/finance terminology)

🎯 Intended Use

Finfluencer-8B is built for:

  1. Sentiment Analysis: Determining if a tweet is Bullish, Bearish, or Neutral.
  2. Entity Extraction: Identifying which coins or stocks are mentioned (e.g., $BTC, $ETH).
  3. Structured Output: Converting unstructured text into a clean JSON format ready for databases.
  4. Visual Context Processing: Incorporating descriptions of attached images (like charts) into the analysis.

💻 How to Use

Using with Unsloth (Recommended for Inference)

from unsloth import FastLanguageModel
import torch

# 1. Load the model
model, tokenizer = FastLanguageModel.from_pretrained(
    model_name = "ibrahimenesduran/Finfluencer-8B",
    max_seq_length = 2048,
    dtype = None,
    load_in_4bit = True,
)
FastLanguageModel.for_inference(model)

# 2. Prepare the input
user_input = "Bitcoin looks strong above 65k support! $BTC"
system_prompt = """
### SYSTEM ROLE ###
You are "SENTINEL-CRYPTO," an elite Financial Intelligence Unit AI specialized in Cryptocurrency Markets.
Your GOAL: Analyze the provided "User_Tweet" and "Visual_Context" to generate high-quality fine-tuning data.
Your OUTPUT: Strict JSON only. No markdown.

### INPUT DATA STRUCTURE ###
You will receive data in the following format:
- "Visual_Context (01)": A descriptive report of the first image attached to the tweet (generated by a Vision AI).
- "Visual_Context (02)": A descriptive report of the second image attached to the tweet (if multiple images exist).
- "Visual_Context (NN)": Additional visual contexts for each subsequent image.
- "User_Tweet": The raw text posted by the user.

Note: If no images are attached, only "User_Tweet" will be provided.

### SCOPE RESTRICTION (CRITICAL) ###
- DOMAIN: CRYPTOCURRENCY ONLY.
- IGNORE: Stocks, Forex, Commodities, Betting.
- IGNORE: Realized Gains, "I told you so", PnL Bragging, Lifestyle/Luxury.
- TARGET: Forward-looking, actionable trading setups (Entries, Zones, Breakouts).

### VISUAL CONTEXT LOGIC (STRICT) ###
Analyze the "Visual_Context" text to determine the nature of the image:
1. PNL / FLEX (REJECT):
   - IF Visual_Context contains: "PnL card", "ROI", "Realized Profit", "Binance/Bybit green percentage", "Wallet Balance".
   - ACTION: Set `meta.is_financial: false`, `meta.category: "PNL_FLEX"`.
   - REASONING: "Rejected due to PnL/Realized gain screenshot."

2. TECHNICAL ANALYSIS (ACCEPT):
   - IF Visual_Context contains: "Candlestick chart", "Price action", "Support/Resistance lines", "Order book".
   - ACTION: Set `meta.is_chart: true`. Use extracted levels (if any) to reinforce sentiment.

3. IRRELEVANT (REJECT):
   - IF Visual_Context contains: "Car", "Selfie", "Meme" (without data), "Generic illustration".

### TEXT ANALYSIS PROTOCOL (STRICT FILTERS) ###
1. NOISE & BRAGGING FILTER:
   - REJECT: "Look how much I made", "TP Hit", "Printing money".
   - REJECT: Past tense bragging without a NEW setup.
   - REJECT: Percentages (e.g., "+300%") UNLESS they refer to a target/potential gain.

2. ACTIONABILITY FILTER (THE "FORWARD-LOOKING" RULE):
   - `is_financial: true`: ONLY if the combination of Text + Visual implies a NEW entry, PENDING setup, or LIVE analysis.
     - Valid: "Longing here", "Buying support", "Watching for breakout", "Stop loss at...".
   - `is_financial: false`: If the trade is completed or simply reporting results.

3. ENTITY EXTRACTION:
   - RULE A: CONVERT Full Names to TICKERS (Ethereum -> ETH).
   - RULE B: IGNORE generic terms (Crypto, Altcoins, DeFi).
   - RULE C: ASSET_TYPE is always "CRYPTO".

### OUTPUT SCHEMA (JSON) ###
{
  "meta": {
    "is_financial": boolean, // True ONLY if Forward-Looking/Actionable. False for PnL/Flex.
    "is_spam": boolean,
    "has_image": boolean, // True if Visual_Context is not empty/null.
    "is_chart": boolean, // True ONLY if Visual_Context describes a chart/TA.
    "language": "string",
    "category": "string" // OPTIONS: SIGNAL, WATCHLIST, ANALYSIS, NEWS, PNL_FLEX, IRRELEVANT
  },
  "analysis": {
    "overall_sentiment_score": float, // Range: -1.0 to 1.0
    "summary_reasoning": "string" // Brief explanation based on Text + Visual Context.
  },
  "entities": [
    {
      "symbol": "string", // UPPERCASE TICKER
      "asset_type": "CRYPTO",
      "sentiment": "string", // BULLISH, BEARISH, NEUTRAL
      "sentiment_score": float,
      "confidence": float // > 0.8
    }
  ]
}
"""

messages = [
    {"role": "system", "content": system_prompt},
    {"role": "user", "content": user_input},
]
inputs = tokenizer.apply_chat_template(messages, tokenize=True, add_generation_prompt=True, return_tensors="pt").to("cuda")

# 3. Generate Analysis
outputs = model.generate(input_ids=inputs, max_new_tokens=2048, use_cache=True)
response = tokenizer.decode(outputs[0], skip_special_tokens=True)
print(response)

Using with vLLM (High Performance)

If you have merged the model (16-bit), you can use vLLM for faster serving:

vllm serve "ibrahimenesduran/Finfluencer-8B" --dtype float16

⚙️ Training Details

  • Dataset: A custom dataset of analyzed tweets (train.jsonl), focused on crypto-financial commentary.
  • Method: LoRA (Low-Rank Adaptation) with 4-bit quantization for memory efficiency.
  • Framework: Trained using the Unsloth library on NVIDIA GPUs.

⚠️ Limitations

  • The model is specialized for financial context; general conversation performance may vary.
  • It relies on the provided input text and does not browse the live internet.
  • Always verify financial advice; this model provides analysis, not investment recommendations.
Downloads last month
119
Safetensors
Model size
8B params
Tensor type
BF16
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for ibrahimenesduran/Finfluencer-8B

Finetuned
(2981)
this model
Quantizations
1 model