StanceEval-2026 — Track 2 (Unseen Targets): ALLaM-7B-Instruct-preview (LoRA)
Arabic stance-detection classifier for StanceEval-2026, an ArabicNLP 2026 (@ EMNLP 2026, Budapest) shared task. Given an Arabic tweet and a target topic, the model predicts whether the tweet's author is in Favor of, Against, or has None (neutral/irrelevant) stance toward the target.
Track 2: Unseen Targets
Trained on the Track 2 training pool, evaluated on target topics not seen during training (cross-target generalization). Train 2,721 / Dev 1,400 tweets (Mawqif-v2).
Base model
humain-ai/ALLaM-7B-Instruct-preview
Labels
| ID | Label | Meaning |
|---|---|---|
| 0 | Favor |
Tweet supports the target |
| 1 | Against |
Tweet opposes the target |
| 2 | None |
Neutral, irrelevant, or unclear stance |
Dev set result
85.33 Favg2 (dev set), the shared task's primary metric (macro-F1 over Favor + Against, None excluded).
Usage
from transformers import AutoTokenizer, AutoModelForSequenceClassification
from peft import PeftModel
import torch
base_model_id = "humain-ai/ALLaM-7B-Instruct-preview"
adapter_id = "HassanB4/t2_s8_allam7b_lora_prompt"
id2label = {0: "Favor", 1: "Against", 2: "None"}
tokenizer = AutoTokenizer.from_pretrained(adapter_id)
base_model = AutoModelForSequenceClassification.from_pretrained(base_model_id, num_labels=3)
model = PeftModel.from_pretrained(base_model, adapter_id)
model.eval()
text = "..."
target = "..."
prompt = f"{text} [SEP] {target}"
inputs = tokenizer(prompt, return_tensors="pt", truncation=True, max_length=512)
with torch.no_grad():
logits = model(**inputs).logits
predicted_label = id2label[int(torch.argmax(logits, dim=-1)[0])]
print(predicted_label)
Status
Part of the NAMAA Community StanceEval-2026 submission (Track 2). A system description paper is in preparation; citation details will be added once available.