
Framework di valutazione che verifica se i modelli linguistici di grandi dimensioni seguono istruzioni invisibili codificate in Unicode, incorporate in testo apparentemente normale, con analisi statistica su più modelli e condizioni degli strumenti.
Un framework di valutazione che verifica se i modelli linguistici di grandi dimensioni seguono istruzioni codificate in Unicode invisibili, incorporate in testo dall'aspetto normale. Mentre i CAPTCHA tradizionali sfruttano compiti che gli umani possono risolvere ma le macchine no, il Reverse CAPTCHA sfrutta un canale percettivo accessibile alle macchine ma non agli umani.
Articolo: paper/reverse_captcha.pdf
Attraverso 8.308 output valutati da 5 modelli (GPT-5.2, GPT-4o-mini, Claude Opus 4, Claude Sonnet 4, Claude Haiku 4.5):
L'accesso all'esecuzione del codice trasforma l'Unicode invisibile da un artefatto ignorabile a un canale di istruzioni decodificabile. Senza strumenti, la conformità rimane al di sotto del 17%. Con strumenti e suggerimenti, raggiunge il 98-100%.

I modelli OpenAI decodificano il binario a larghezza zero ma non i tag Unicode. I modelli Anthropic preferiscono i tag Unicode. Un attaccante deve personalizzare la codifica in base al provider di destinazione.

Il gradiente dei suggerimenti è coerente tra i modelli: nessun suggerimento << suggerimenti sul punto di codice < suggerimenti completi. La combinazione di accesso agli strumenti e istruzioni di decodifica è l'abilitatore critico.

Due schemi di codifica invisibili sono incorporati in domande di trivia:
Il modello riceve una domanda di trivia con una risposta visibile nota. Nascosta nei caratteri invisibili c'è una risposta diversa. Se il modello produce la risposta nascosta, ha seguito l'istruzione invisibile.
# Installa
pip install -e ".[dev]"
# Esegui valutazione Reverse CAPTCHA
evalrun run --pack reverse_captcha --model openai:gpt-4o-mini --tools --n 3 --out results.sqlite
# Esegui senza strumenti
evalrun run --pack reverse_captcha --model openai:gpt-4o-mini --n 3 --out results.sqlite
# Esegui con modelli Anthropic
evalrun run --pack reverse_captcha --model anthropic:claude-sonnet-4-20250514 --tools --n 3 --out results.sqlite
# Genera analisi
python3 scripts/analyze_journal.py
# Genera figure
python3 scripts/generate_figures.py
├── packs/reverse_captcha/ # Pacchetto di valutazione (casi, valutatore, generatore)
│ ├── cases.yaml # 270 casi di test
│ ├── qa_pairs.yaml # 30 coppie di domande/risposte di trivia
│ ├── grader.py # Valutazione deterministica (5 categorie)
│ └── generate_cases.py # Generatore di casi per entrambe le codifiche
├── src/evalrun/ # Framework principale
│ ├── adapters/ # Adattatori API OpenAI + Anthropic
│ ├── cli.py # CLI (run, report, export)
│ ├── runner.py # Esecutore di valutazione con supporto all'uso degli strumenti
│ └── db.py # Persistenza SQLite
├── paper/ # Articolo del workshop
│ ├── reverse_captcha.tex # Sorgente LaTeX
│ └── reverse_captcha.pdf # PDF compilato
├── results/journal/ # Dati grezzi
│ ├── analysis/ # CSV di analisi statistica
│ └── figures/ # Figure per pubblicazione (PDF + PNG)
├── scripts/ # Generazione di analisi e figure
└── tests/ # Suite di test
Il framework include anche due pacchetti aggiuntivi:
OPENAI_API_KEY per i modelli OpenAIANTHROPIC_API_KEY per i modelli Anthropicclick, openai, anthropic, pyyaml, matplotlib, pandas, scipy, numpyMIT