# Singapore Meme Offense Detection Eval

> This benchmark evaluates multimodal large language models' ability to detect offensive memes containing social biases within a Singaporean cultural and linguistic context. It tests both standalone VLM reasoning and a multi-step pipeline combining OCR and translation, while comparing different fine-tuning strategies and data compositions. Use when the user wants to benchmark on Singapore Offensive Memes Dataset, or asks about evaluating this task. Reports Accuracy.

- Skill: `qhjqhj00/singapore-meme-offense-detection-eval` (Agent Skill)
- Install (CLI): `npx skillmds add qhjqhj00/singapore-meme-offense-detection-eval`
- Raw SKILL.md: https://api.skillmd.com/api/skills/qhjqhj00/singapore-meme-offense-detection-eval/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: DevOps & Infra
- Author: qhjqhj00 (https://skillmd.com/u/qhjqhj00)
- Updated: 2026-09-08
- Page: https://skillmd.com/skills/qhjqhj00/singapore-meme-offense-detection-eval

---


# singapore-meme-offense-detection-eval

> Detecting Offensive Memes with Social Biases in Singapore Context Using Multimodal Large Language Models — Cao Yuxuan et al. (2025) (arXiv:2502.18101, 2025)

## What this evaluates

This benchmark evaluates multimodal large language models' ability to detect offensive memes containing social biases within a Singaporean cultural and linguistic context. It tests both standalone VLM reasoning and a multi-step pipeline combining OCR and translation, while comparing different fine-tuning strategies and data compositions.

## Datasets

- **Singapore Offensive Memes Dataset** — total 112000; splits: train (-1), test (-1); repo https://github.com/aliencaocao/vlm-for-memes-aisg

## Metrics

- `Accuracy` **(primary)** — range: [0, 1]
  - Proportion of correctly classified instances out of the total number of instances.
- `AUROC` — range: [0, 1]
  - Area Under the Receiver Operating Characteristic curve, measuring the model's ability to distinguish between offensive and non-offensive classes across all classification thresholds.

## Input / output format

**Input**: Meme image, optionally accompanied by extracted OCR text and its English translation (in pipeline setting), along with a classification prompt.

**Output**: A discrete class token indicating whether the meme is offensive or non-offensive.

## Scoring recipe

```python
def compute_metrics(predictions, gold_labels):
    # predictions and gold_labels are lists of class labels or probabilities
    accuracy = sum(p == g for p, g in zip(predictions, gold_labels)) / len(gold_labels)
    # For AUROC, assuming predictions are probabilities for the positive class
    from sklearn.metrics import roc_auc_score
    auroc = roc_auc_score(gold_labels, predictions)
    return {'accuracy': accuracy, 'auroc': auroc}
```

## Common pitfalls

- Using sampling (temperature > 0) during inference degrades performance on this classification task, as it introduces unnecessary randomness and can distort logits.
- Assuming OCR and translation pipelines universally improve VLM performance; models with strong native vision/OCR capabilities see diminishing returns or no improvement from pipeline augmentations.
- Over-relying on GPT-4V annotations for training without verifying label quality, as the subjective nature of offensive content can lead to noisy labels that hinder newer, stronger models.

## Evidence (verbatim from paper)

> Using any of the 4 LoRA related techniques ([subsection 5.3]) on Qwen2-VL improves the model’s performance, with rsLoRA being the best on the AUROC metric, and LoRA+ being the best on accuracy.

## Citation

```bibtex
@misc{cao2025detectingoffensivememes,
  title={Detecting Offensive Memes with Social Biases in Singapore Context Using Multimodal Large Language Models},
  author={Cao Yuxuan et al. (2025)},
  year={2025},
  note={arXiv:2502.18101}
}
```

- arXiv: 2502.18101

