--- license: apache-2.0 base_model: Qwen/Qwen2.5-7B-Instruct language: - ar - en pipeline_tag: text-generation library_name: transformers datasets: - QCRI/ProBel tags: - propaganda-detection - persuasion-techniques - span-identification - explainability - lora --- # ProBel-MTL The bilingual multi-task model from the ProBel paper (Mt-SFT): a single Qwen2.5-7B-Instruct fine-tune that handles all five ProBel tasks in both Arabic and English — binary propaganda detection, coarse-category and fine-grained technique classification (with explanations), and technique-labeled span extraction in two output formats. Trained with LoRA (r=16, alpha=32) on the Arabic and English training splits of [QCRI/ProBel](https://huggingface.co/datasets/QCRI/ProBel) across all five task formats jointly; the checkpoint was selected on validation loss and merged into the base model, so it loads as a regular causal LM. The LoRA adapter alone is in `lora_adapter/`. Companion resources: [dataset](https://huggingface.co/datasets/QCRI/ProBel) · [code](https://github.com/MohamedBayan/ProBel) · paper: *ProBel: Propaganda Detection with Techniques, Spans, and Explanations* (arXiv preprint; the link will be added here once the listing is live). ## Test scores | | Binary | Coarse | Technique | Span-tag | Span-occ | |---|---|---|---|---|---| | Arabic | 0.763 | 0.682 | 0.575 | 0.411 | 0.362 | | English | 0.735 | 0.410 | 0.272 | 0.189 | 0.241 | Binary is macro-F1; coarse/technique are micro-F1; spans use the overlap-adjusted micro-F1 of Da San Martino et al. (2020). These match the paper's Mt-SFT rows and were produced with greedy decoding. ## Prompt templates The model expects the exact task prompts it was trained on. [`prompts/templates.json`](prompts/templates.json) ships all ten of them — `{arabic, english} x {binary, coarse, multilabel, span_tag, span_match_occ}` — each a `{"system": ..., "user": ...}` pair where the user message contains a `{TEXT}` placeholder for the input sentence. | Task | Model output | |---|---| | `binary` | `Label: true` or `Label: false`, then `Explanation: ...` | | `coarse` / `multilabel` | `Labels: `, then `Explanation: ...` | | `span_tag` | the input sentence with inline `...` tags | | `span_match_occ` | a JSON list of `{"text", "label", "occurrence"}` objects | Arabic templates carry the same task instructions with an Arabic-specialized system prompt; the model answers Arabic inputs in Arabic. ## Usage ```bash pip install "transformers>=4.51" accelerate ``` Binary detection with an explanation: ```python import json from huggingface_hub import hf_hub_download from transformers import AutoModelForCausalLM, AutoTokenizer templates = json.load(open(hf_hub_download("QCRI/ProBel-MTL", "prompts/templates.json"))) model = AutoModelForCausalLM.from_pretrained("QCRI/ProBel-MTL", dtype="bfloat16", device_map="auto") tok = AutoTokenizer.from_pretrained("QCRI/ProBel-MTL") def run(task, lang, text, max_new_tokens=512): t = templates[lang][task] msgs = [{"role": "system", "content": t["system"]}, {"role": "user", "content": t["user"].replace("{TEXT}", text)}] ids = tok.apply_chat_template(msgs, add_generation_prompt=True, return_tensors="pt").to(model.device) out = model.generate(ids, max_new_tokens=max_new_tokens, do_sample=False) return tok.decode(out[0][ids.shape[1]:], skip_special_tokens=True) print(run("binary", "english", "The corrupt elites are destroying everything we hold dear.")) # Label: true # Explanation: The paragraph relies on a sweeping, emotive accusation that # unnamed "elites" are ruining "everything we hold dear" ... ``` Technique-labeled span extraction (same helper): ```python print(run("span_tag", "english", "The corrupt elites are destroying everything we hold dear.")) # The corrupt elites are destroying # everything we hold dear. print(run("multilabel", "arabic", "الإعلام الكاذب يواصل نشر أكاذيبه المسمومة لتضليل الشعب.")) # Labels: Loaded_Language, Questioning_the_Reputation # Explanation: يستخدم النص لغة محملة بالعواطف مثل "الكاذب" و"أكاذيبه المسمومة" ... ``` The model also serves directly with vLLM: ```bash vllm serve QCRI/ProBel-MTL ``` The parsers that turn the span outputs back into character offsets, and the full evaluation pipeline, are in the [code repository](https://github.com/MohamedBayan/ProBel). ## Intended use and limitations Built for research on propaganda and persuasion-technique analysis in news and social-media text. Predictions are imperfect, technique performance follows the long-tailed label distribution (rare techniques are often missed), and outputs should support trained human reviewers rather than replace them, particularly in moderation or policy settings. ## Citation ```bibtex @misc{kmainasi2026probelpropagandadetectiontechniques, title={ProBel: Propaganda Detection with Techniques, Spans, and Explanations}, author={Mohamed Bayan Kmainasi and Ali Ezzat Shahroor and Elisa Sartori and Giovanni Da San Martino and Firoj Alam}, year={2026}, eprint={2608.22388}, archivePrefix={arXiv}, primaryClass={cs.CL}, url={https://arxiv.org/abs/2608.22388}, } ```