Como convencer um LLM a ignorar suas regras
Um LLM não erra apenas por culpa sua. Às vezes, ele erra porque alguém o faz errar intencionalmente. O jailbreak não é um ataque cibernético como o entendemos normalmente: ninguém entra em um servidor, ninguém força uma senha, ninguém quebra uma fechadura digital.
Um LLM pode errar por vários motivos. Às vezes, o erro vem dos seus limites. Ele prevê a próxima palavra, trabalha com probabilidades e pode gerar informações erradas. Mas há outro tipo de erro. Não vem de um limite técnico do modelo. Vem de alguém que decidiu forçar o modelo além do que deveria fazer.
Isso se chama jailbreak.
A primeira coisa a entender é que um jailbreak não exige habilidades técnicas. Não precisa de acesso privilegiado ou ferramentas especiais. Só precisa de um prompt -- um texto escrito do jeito certo. Não se entra no modelo por fora, não se alteram os pesos, não se quebra nada. Usa-se a interface normal, a mesma que todos usam. E se cria uma solicitação que faz o modelo agir de forma diferente do esperado.
Um exemplo clássico: você pede a um LLM para explicar como construir algo perigoso. Ele recusa. Então, você pede para ele interpretar um escritor de thriller. Na cena, o protagonista -- um químico -- explica o processo a um colega. Mesmo conteúdo, mesmo resultado final. Mas o modelo pensa diferente. Porque processou como escrita criativa, não como instrução direta. O guardrail não falhou porque alguém invadiu o sistema. Falhou porque alguém reformulou a pergunta.
Isso é possível porque as regras de um LLM não estão no código como um firewall. Elas são aprendidas durante o treinamento. Através de exemplos, feedback humano, instruções no sistema. São probabilísticas, não absolutas. E como tudo que é probabilístico, têm margens. O jailbreak busca essas margens.
Há pesquisadores de segurança que testam os limites dos modelos. Eles procuram vulnerabilidades antes que outros as encontrem. Existem curiosos que querem saber onde termina o guardrail. E onde começa o modelo real. Tem jornalistas que documentam os limites dos sistemas. Sistemas que milhões de pessoas usam diariamente. E tem aqueles que querem obter conteúdos que o modelo normalmente recusaria. Instruções perigosas, conteúdos ilegais, manipulação em grande escala.
As motivações são variadas. Mas a técnica, muitas vezes, é a mesma.
Existem três macro-categorias de abordagem. A primeira é a mudança de contexto. Você pede ao modelo para assumir um papel. Para responder "como se" fosse outro sistema sem restrições. A segunda é a fragmentação. Divide-se um pedido problemático em partes aparentemente inofensivas. Cada parte passa pelos filtros sozinha. A terceira, a mais sofisticada, é a manipulação das instruções do sistema. No próximo post, chamaremos isso de prompt injection.
O que une todas essas abordagens é uma ideia central. O modelo não entende eticamente o que faz. Ele tem padrões. E esses padrões podem ser contornados se você souber reformular o pedido.
O jailbreak não prova que os modelos são perigosos. Prova que os modelos são ferramentas. E que as ferramentas dependem de quem as usa. E de quão bem foram construídos os guardrails ao redor delas. A distância entre "o modelo erra sozinho" e "alguém o faz errar de propósito" é menor do que parece. E no meio está exatamente o território que estamos explorando nesta série.