Research · NLP · Classification

Ricerca · NLP · Classificazione

CatchingAI

A fine-tuned BERT classifier trained on the RAID benchmark — the largest dataset for evaluating AI-generated text detectors, spanning 11 LLMs, 8 domains, and 11 adversarial attacks.

Un classificatore BERT fine-tuned addestrato sul benchmark RAID — il dataset più grande per valutare i rilevatori di testo generato dall'AI, con 11 LLM, 8 domini e 11 attacchi avversariali.

What is this project?

Cos'è questo progetto?

As large language models become increasingly capable of producing human-like text, distinguishing AI-generated content from genuine human writing is a critical challenge. CatchingAI builds a robust binary classifier using parameter-efficient fine-tuning, making training feasible on consumer hardware.

Man mano che i modelli linguistici producono testo sempre più simile a quello umano, distinguere il contenuto generato dall'AI dalla scrittura umana è una sfida critica. CatchingAI costruisce un classificatore binario robusto usando fine-tuning efficiente, fattibile su hardware consumer.

Task

Compito

Binary Classification

Classificazione Binaria

Human-written (0) vs AI-generated (1) across multiple generators and domains.

Testo umano (0) vs generato dall'AI (1) su più generatori e domini.

Method

Metodo

Parameter Efficient

Efficiente nei Parametri

LoRA adapters train only ~1% of parameters, enabling Colab-friendly fine-tuning.

Gli adapter LoRA addestrano solo ~1% dei parametri, compatibile con Colab.

Evaluation

Valutazione

Rigorous Metric

Metrica Rigorosa

Accuracy at a controlled 5% false-positive rate — the official RAID metric.

Accuratezza a un tasso di falsi positivi del 5% — la metrica ufficiale RAID.

How the model works

Come funziona il modello

The base BERT model is frozen. LoRA injects small trainable rank-decomposition matrices into its linear layers. The classification head is fully fine-tuned from scratch.

Il modello BERT base è congelato. LoRA inietta piccole matrici a rango ridotto nei layer lineari. La testa di classificazione è completamente fine-tuned da zero.

model_architecture.py architettura_modello.py
Input Text Testo Input raw string → tokenizer stringa → tokenizer
[CLS] … [SEP] token IDs + attention mask
BERT-base-cased — frozen BERT-base-cased — congelato 12 transformer layers · 110M params 12 layer transformer · 110M parametri

+ LoRA adapters injected (trained, r=16)

+ LoRA adapter iniettati (addestrati, r=16)

Pooler [CLS] → 768-dim
Classifier Head Testa Classificatore Linear(768 → 2)
Output Output human / AI umano / AI
~1%

Trainable parameters

Parametri addestrabili

r=16

LoRA rank

Rango LoRA

5% FPR

Target false-positive rate

Tasso falsi positivi target

The RAID Benchmark

Il Benchmark RAID

RAID is the largest and most challenging benchmark for machine-generated text detection, introduced at ACL 2024. It covers a wide range of real-world conditions that make detection hard.

RAID è il benchmark più grande e sfidante per il rilevamento di testo generato da macchine, introdotto all'ACL 2024. Copre condizioni del mondo reale che rendono il rilevamento difficile.

10M+ total documents documenti totali
11 source LLMs LLM sorgente
8 text domains domini testuali
11 adversarial attacks attacchi avversariali
# Load RAID via the raid-bench package from raid.utils import load_data train_df = load_data("train", include_adversarial=True) # Binary label derived from 'model' column train_df["label"] = (train_df["model"] != "human").astype(int) # Filter to selected models MODELS = ["human", "gpt4", "gpt3", "chatgpt", "gpt2"] train_df = train_df[train_df["model"].isin(MODELS)]

Built with

Costruito con

PyTorch transformers peft · LoRA raid-bench datasets evaluate scikit-learn pandas numpy