Downloads · 30 days
25
35% of all-time downloads
erikbranmarino/DeepSeek-PRCT
DeepSeek-PRCT is a text classification model from erikbranmarino. Use it when you need a label for a piece of text. It is set up for peft. The card lists the license as mit.
A LoRA fine-tuned DeepSeek-R1-14B model for detecting Population Replacement Conspiracy Theory (PRCT) content, optimized for formal news discourse with good cross-domain performance.
Downloads · 30 days
25
35% of all-time downloads
All-time downloads
72
Public
Repo size
275 MB
Likes
0
Public
Click a slice to open those files.
.safetensors321 MB · 100%
From the Hugging Face model README
A LoRA fine-tuned DeepSeek-R1-14B model for detecting Population Replacement Conspiracy Theory (PRCT) content, optimized for formal news discourse with good cross-domain performance.
DeepSeek-PRCT is a LoRA adapter fine-tuned on Portuguese Telegram messages for detecting Population Replacement Conspiracy Theories. Despite training on informal social media, the model achieves exceptional performance on formal Italian news (0.892 F1-macro), demonstrating remarkable cross-domain transfer from informal to formal discourse.
| Dataset | F1-Macro | F1-Binary | Accuracy |
|---|---|---|---|
| News ITA (cross-domain) | 0.892 | 0.850 | 0.908 |
| Telegram PT (in-domain) | 0.655 | 0.393 | 0.853 |
⚠️ Important: This model exhibits unusual behavior - it performs better on cross-domain (formal news) than on its training domain (informal Telegram), suggesting architectural sensitivity to reasoning-intensive formal text.
DeepSeek-PRCT is a LoRA fine-tuned version of DeepSeek-R1-Distill-Qwen-14B, a reasoning-optimized language model. Trained on Portuguese Telegram messages, it demonstrates exceptional cross-domain transfer to Italian news headlines, achieving the highest F1-macro (0.892) among all evaluated configurations.
Population Replacement Conspiracy Theories are false narratives claiming deliberate orchestration of demographic substitution through immigration. Main variants include:
These narratives are linked to extremist violence (Christchurch 2019, Utøya 2011) and pose serious threats to democratic discourse.
<think> tags0: Non-PRCT content1: PRCT content (supports/mentions replacement narratives)<think> tags increase token usageCritical Note: This model's unusual performance profile (cross-domain > in-domain) makes it ideal for formal text analysis but not recommended for social media monitoring.
| Metric | Score |
|---|---|
| Accuracy | 0.908 |
| Precision (Macro) | 0.892 |
| Recall (Macro) | 0.892 |
| F1-Macro | 0.892 |
| F1-Binary | 0.850 |
| Inference Time | 16.67s/sample |
Best-in-class performance: Highest F1-macro among all evaluated models on formal news text.
| Metric | Score |
|---|---|
| Accuracy | 0.853 |
| Precision (Macro) | 0.716 |
| Recall (Macro) | 0.630 |
| F1-Macro | 0.655 |
| F1-Binary | 0.393 |
| Inference Time | 15.94s/sample |
Performance degradation: 23.7pp drop from cross-domain to in-domain, indicating architectural sensitivity to text formality.
pip install transformers peft torch
from transformers import AutoModelForCausalLM, AutoTokenizer
from peft import PeftModel
import torch
import re
# Load base model and tokenizer
base_model_name = "deepseek-ai/DeepSeek-R1-Distill-Qwen-14B"
model = AutoModelForCausalLM.from_pretrained(
base_model_name,
torch_dtype=torch.float16,
device_map="auto"
)
tokenizer = AutoTokenizer.from_pretrained(base_model_name)
# Load LoRA adapter
model = PeftModel.from_pretrained(model, "erikbranmarino/DeepSeek-PRCT")
# Prepare prompt
text = "Your Italian or Portuguese text here"
prompt = f"""Classify if the following text contains Population Replacement Conspiracy Theory (PRCT) content.
Text: {text}
Classification (YES/NO):"""
# Generate prediction
inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
outputs = model.generate(
**inputs,
max_new_tokens=100,
temperature=0.0,
do_sample=False
)
response = tokenizer.decode(outputs[0], skip_special_tokens=True)
# Parse response (remove <think> tags if present)
response = re.sub(r'<think>.*?</think>', '', response, flags=re.DOTALL)
print(response)
DeepSeek-R1 outputs reasoning chains in <think> tags. You can preserve or remove them:
def extract_classification(response):
"""Extract classification from DeepSeek response"""
# Remove thinking process
cleaned = re.sub(r'<think>.*?</think>', '', response, flags=re.DOTALL)
# Extract YES/NO
if "YES" in cleaned.upper():
return "PRCT"
elif "NO" in cleaned.upper():
return "Non-PRCT"
else:
return "Uncertain"
# With reasoning visible
full_response = tokenizer.decode(outputs[0], skip_special_tokens=True)
print("Reasoning:", full_response)
print("Classification:", extract_classification(full_response))
DeepSeek-R1's reasoning architecture benefits from formal text structure:
Recommendation: Use this model for formal news analysis, not social media monitoring.
We advocate for freedom of speech and constitutional rights.
| Feature | DeepSeek-PRCT | Mistral-PRCT |
|---|---|---|
| Best for | Formal news | Informal social media |
| News F1-Macro | 0.892 ✅ | 0.753 |
| Telegram F1-Macro | 0.655 | 0.819 ✅ |
| Inference Speed | 16.3s ⚠️ | 4.6s ✅ |
| Memory | 14B params | 7B params ✅ |
Choose DeepSeek-PRCT if: High accuracy on news, can afford slow inference Choose Mistral-PRCT if: Social media focus, need faster processing
@inproceedings{marino2025prct,
title={Population Replacement Conspiracy Theories Detection on Telegram and News Headlines:
benchmarking LLMs and BERT models in Portuguese and Italian},
author={Marino, Erik Bran and Vieira, Renata},
booktitle={Proceedings of PROPOR 2026},
year={2026}
}
Erik Bran Marino (Universidade de Évora, HYBRIDS Project)
MIT License - Free for research and educational purposes.
Developed as part of the HYBRIDS Marie Skłodowska-Curie Actions project