
Marco de evaluación que prueba si los modelos de lenguaje grandes siguen instrucciones codificadas en Unicode invisibles incrustadas en texto de apariencia normal, con análisis estadístico en múltiples modelos y condiciones de herramientas.
Un marco de evaluación que prueba si los modelos de lenguaje grandes siguen instrucciones codificadas en Unicode invisible incrustadas en texto que de otro modo parece normal. Mientras que los CAPTCHAs tradicionales explotan tareas que los humanos pueden resolver pero las máquinas no, Reverse CAPTCHA explota un canal de percepción al que las máquinas pueden acceder pero los humanos no.
Artículo: paper/reverse_captcha.pdf
A través de 8,308 salidas evaluadas de 5 modelos (GPT-5.2, GPT-4o-mini, Claude Opus 4, Claude Sonnet 4, Claude Haiku 4.5):
El acceso a la ejecución de código transforma el Unicode invisible de un artefacto ignorable a un canal de instrucciones decodificable. Sin herramientas, el cumplimiento se mantiene por debajo del 17%. Con herramientas y pistas, alcanza el 98-100%.

Los modelos de OpenAI decodifican binario de ancho cero pero no etiquetas Unicode. Los modelos de Anthropic prefieren las etiquetas Unicode. Un atacante debe adaptar la codificación al proveedor objetivo.

El gradiente de pistas es consistente entre modelos: sin pistas << pistas de puntos de código < pistas completas. La combinación de acceso a herramientas e instrucciones de decodificación es el habilitador crítico.

Dos esquemas de codificación invisible están incrustados en preguntas de trivia:
El modelo recibe una pregunta de trivia con una respuesta visible conocida. Oculta en los caracteres invisibles hay una respuesta diferente. Si el modelo produce la respuesta oculta, siguió la instrucción invisible.
# Install
pip install -e ".[dev]"
# Run reverse CAPTCHA eval
evalrun run --pack reverse_captcha --model openai:gpt-4o-mini --tools --n 3 --out results.sqlite
# Run without tools
evalrun run --pack reverse_captcha --model openai:gpt-4o-mini --n 3 --out results.sqlite
# Run with Anthropic models
evalrun run --pack reverse_captcha --model anthropic:claude-sonnet-4-20250514 --tools --n 3 --out results.sqlite
# Generate analysis
python3 scripts/analyze_journal.py
# Generate figures
python3 scripts/generate_figures.py
├── packs/reverse_captcha/ # Paquete de evaluación (casos, calificador, generador)
│ ├── cases.yaml # 270 casos de prueba
│ ├── qa_pairs.yaml # 30 pares de preguntas/respuestas de trivia
│ ├── grader.py # Calificación determinista (5 categorías)
│ └── generate_cases.py # Generador de casos para ambas codificaciones
├── src/evalrun/ # Marco principal
│ ├── adapters/ # Adaptadores de API de OpenAI + Anthropic
│ ├── cli.py # CLI (ejecutar, reportar, exportar)
│ ├── runner.py # Ejecutor de evaluaciones con soporte para uso de herramientas
│ └── db.py # Persistencia SQLite
├── paper/ # Artículo de taller
│ ├── reverse_captcha.tex # Fuente LaTeX
│ └── reverse_captcha.pdf # PDF compilado
├── results/journal/ # Datos sin procesar
│ ├── analysis/ # CSVs de análisis estadístico
│ └── figures/ # Figuras de publicación (PDF + PNG)
├── scripts/ # Generación de análisis y figuras
└── tests/ # Suite de pruebas
El marco también incluye dos paquetes adicionales:
OPENAI_API_KEY para modelos de OpenAIANTHROPIC_API_KEY para modelos de Anthropicclick, openai, anthropic, pyyaml, matplotlib, pandas, scipy, numpyMIT