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.

Disclamaier

To use the trained parameters you have to choose a checkpoint from the training. Take a carefull look at the provided code exmaple below and use the default checkpoint. Don't Use the automatically generated code in the [Use this Model] button.


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/checkpoint-4506"
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
2
Inference Examples
Inference API (serverless) does not yet support peft models for this pipeline type.

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

Adapter
(126)
this model

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