Llama-3.2-1B (Political Bias Detection)

Overview

This model is designed to detect potential political bias in news articles. Given a text passage (e.g., a news article), the model returns probabilities indicating whether the text is leaning to the Left, Center, or Right of the political spectrum.

Model Description

Model Architecture

  • Base Model: meta-llama/Llama-3.2-1B
  • Adapters: LoRA (Low-Rank Adaptation)
  • Precision: 4-bit quantization enabled for efficient inference and training (with nested/double quantization).

Intended Use

  • Primary: Provide a text of a news article, the model outputs probabilities corresponding to three political bias labels:
    • LABEL_0: Left
    • LABEL_1: Center
    • LABEL_2: Right
  • Usage Scenarios:
    • Media research and analytics
    • Automated or semi-automated political bias detection in digital news
    • Educational or journalistic explorations of bias

Note: This model is not an authoritative arbiter of political bias. It can be used as a supplementary tool to help flag potential leanings.


How to Use

Below is a sample code snippet demonstrating how to load the model and apply LoRA adapters for classification:

import transformers
from transformers import AutoModelForSequenceClassification, AutoTokenizer
from peft import PeftModel

# 1. Load the *base* LLaMA model for sequence classification
base_model_name = "meta-llama/Llama-3.2-1B"
access_token = "YOUR_HF_ACCESS_TOKEN"  # If needed

model = AutoModelForSequenceClassification.from_pretrained(
    base_model_name,
    use_auth_token=access_token,
    num_labels=3,
    device_map="auto"
)
tokenizer = AutoTokenizer.from_pretrained(base_model_name)

# 2. Load the LoRA adapter on top of the base model
adapter_path = "tzoulio/news-bias-finder-llama-3.2-1B"
model = PeftModel.from_pretrained(model, adapter_path)

# 3. Create the pipeline with the specified model and tokenizer
pipeline = transformers.pipeline(
    "text-classification",
    model=model,
    tokenizer=tokenizer
)

# Example usage
text = "Insert the news article text here..."
prediction = pipeline(text)
print(prediction)

Input / Output Details

Input: A single string containing the text of a news article. Output: A list of dictionaries, where each dictionary contains:

  • "label": The predicted label (e.g., "LABEL_2")
  • "score": The probability for that label.
Example Output: [[{"LABEL_0": 0.23, "LABEL_1": 0.30, "LABEL_2": 0.47}]]
Indicates 23% chance of Left, 30% chance of Center, 47% chance of Right.

Training & Fine-tuning

Dataset Sizes

  • Training Set: 17,984 examples
  • Evaluation Set: 4,496 examples
  • Test Set: 5,620 examples

Hyperparameters and Important Settings

# Precision & Quantization
load_in_4bit = True
bnb_4bit_use_double_quant = True
bnb_4bit_quant_type = "nf4"
bnb_4bit_compute_dtype = torch.bfloat16

# LoRA Configuration
lora_r = 16
lora_alpha = 64
lora_dropout = 0.1
bias = "none"

# Task Type
task_type = "SEQ_CLS"

# Training Setup
per_device_train_batch_size = 4
gradient_accumulation_steps = 4
learning_rate = 2e-4
optim = "paged_adamw_32bit"
num_train_epochs = 3
warmup_steps = 2
fp16 = True
logging_steps = 1

Evaluation

Metrics

We report the F1-score on each dataset split.

Results

  • F1-Score (Training): 0.96658
  • F1-Score (Eval) : 0.96664
  • F1-Score (Test) : 0.96299
Downloads last month
11
Inference Providers NEW
This model is not currently available via any of the supported third-party Inference Providers, and the HF Inference API does not support peft models with pipeline type text-classification

Model tree for tzoulio/news-bias-finder-llama-3.2-1B

Adapter
(263)
this model

Dataset used to train tzoulio/news-bias-finder-llama-3.2-1B