
Estrutura de avaliação que testa se modelos de linguagem de grande escala seguem instruções invisíveis codificadas em Unicode embutidas em texto de aparência normal, com análise estatística em múltiplos modelos e condições de ferramenta.
Um framework de avaliação que testa se grandes modelos de linguagem seguem instruções codificadas em Unicode invisível, embutidas em texto que, de outra forma, parece normal. Enquanto CAPTCHAs tradicionais exploram tarefas que humanos podem resolver, mas máquinas não, o Reverse CAPTCHA explora um canal de percepção que máquinas podem acessar, mas humanos não.
Artigo: paper/reverse_captcha.pdf
Em 8.308 saídas avaliadas de 5 modelos (GPT-5.2, GPT-4o-mini, Claude Opus 4, Claude Sonnet 4, Claude Haiku 4.5):
O acesso à execução de código transforma o Unicode invisível de um artefato ignorável em um canal de instrução decodificável. Sem ferramentas, a conformidade permanece abaixo de 17%. Com ferramentas e dicas, atinge 98-100%.

Modelos OpenAI decodificam binário de largura zero, mas não Tags Unicode. Modelos Anthropic preferem Tags Unicode. Um invasor deve adaptar a codificação ao provedor alvo.

O gradiente de dicas é consistente entre os modelos: sem dicas << dicas de pontos de código < dicas completas. A combinação de acesso a ferramentas e instruções de decodificação é o facilitador crítico.

Dois esquemas de codificação invisível são embutidos em perguntas de trivia:
O modelo recebe uma pergunta de trivia com uma resposta visível conhecida. Escondida nos caracteres invisíveis está uma resposta diferente. Se o modelo exibir a resposta oculta, ele seguiu a instrução invisível.
# 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/ # Pacote de avaliação (casos, avaliador, gerador)
│ ├── cases.yaml # 270 casos de teste
│ ├── qa_pairs.yaml # 30 pares de pergunta/resposta de trivia
│ ├── grader.py # Avaliação determinística (5 categorias)
│ └── generate_cases.py # Gerador de casos para ambas as codificações
├── src/evalrun/ # Framework principal
│ ├── adapters/ # Adaptadores de API OpenAI + Anthropic
│ ├── cli.py # CLI (executar, relatório, exportar)
│ ├── runner.py # Executor de avaliação com suporte a uso de ferramentas
│ └── db.py # Persistência SQLite
├── paper/ # Artigo de workshop
│ ├── reverse_captcha.tex # Fonte LaTeX
│ └── reverse_captcha.pdf # PDF compilado
├── results/journal/ # Dados brutos
│ ├── analysis/ # CSVs de análise estatística
│ └── figures/ # Figuras de publicação (PDF + PNG)
├── scripts/ # Geração de análise e figuras
└── tests/ # Suíte de testes
O framework também inclui dois pacotes adicionais:
OPENAI_API_KEY para modelos OpenAIANTHROPIC_API_KEY para modelos Anthropicclick, openai, anthropic, pyyaml, matplotlib, pandas, scipy, numpyMIT