Bug, jailbreak e injeção de prompt: o que eles realmente têm em comum
Bug, jailbreak, injeção de prompt. Três problemas diferentes, uma raiz comum: um LLM não segue regras escritas no código — aprendeu comportamentos a partir de bilhões de exemplos. Por isso, corrigi-lo é muito mais complexo do que aplicar um simples patch.
Depois de ver como um LLM pode errar sozinho, ser burlado por um jailbreak e como uma prompt injection pode manipulá-lo, a pergunta é inevitável: as empresas que desenvolvem esses modelos sabem disso? Estão trabalhando nisso?
Sim. E é complicado.
O problema não é técnico. É estrutural.
Um software tradicional tem regras escritas por alguém. Se há um bug, você encontra a linha errada e corrige. Um LLM funciona de forma diferente: suas "regras" não são escritas explicitamente. Elas surgem do treinamento, comprimidas em bilhões de parâmetros numéricos que ninguém pode ler diretamente. Não há uma linha de código que diga "não ajude em coisas perigosas". Há um conjunto de pesos estatísticos que, em média, produzem esse comportamento. E em média não significa sempre.
Por isso, soluções existem, mas nenhuma é definitiva.
A primeira é o RLHF -- Reinforcement Learning from Human Feedback. Durante o treinamento, pessoas avaliam as respostas do modelo. Essas avaliações ajustam os pesos na direção certa. É o principal mecanismo para o modelo recusar pedidos perigosos, calibrar incertezas e ser útil sem ser prejudicial. Funciona, mas depende da qualidade e quantidade do feedback humano. E não cobre todos os casos possíveis. Um jailbreak bem feito encontra exatamente os casos que o feedback não cobriu.
A segunda é o red teaming. Antes de lançar um modelo, equipes dedicadas tentam fazê-lo errar. Testam jailbreak, prompt injection, casos extremos, cenários de abuso. Parece mais trabalho de detetive do que de engenheiro. Serve para encontrar vulnerabilidades antes que outros as encontrem. O problema é que o espaço de prompts possíveis é infinito. O red team humano não consegue cobrir tudo. Por isso, hoje se usam modelos automatizados para red teaming. Os resultados são promissores, mas não resolvem tudo.
A terceira são os filtros. Eles analisam o input antes de chegar ao modelo e o output antes de chegar ao usuário. São úteis para casos óbvios, com palavras-chave ou padrões reconhecíveis. Mas são menos eficazes contra ataques sofisticados. Não funcionam bem contra prompt injection indireta. Nem contra pedidos que parecem inofensivos sozinhos, mas não são no contexto.
Por fim, temos o alinhamento. É a pesquisa sobre como fazer modelos perseguirem os objetivos que queremos. Não apenas aproximações estatísticas desses objetivos. É o problema mais profundo e menos resolvido. Não porque ninguém esteja trabalhando nisso. Algumas das mentes mais brilhantes do setor estão. Mas alinhar um sistema que não pensa como humanos é um problema sem solução geral ainda.
Nada disso significa que esses instrumentos são inúteis. Nem que o futuro é inevitavelmente sombrio. Significa que a tecnologia avança mais rápido do que a capacidade de torná-la robusta. Usá-la conscientemente, sabendo onde estão os limites, é a defesa mais concreta que temos.
Nenhuma dessas técnicas elimina o problema. Elas o tornam menos provável, mais caro de explorar, mais fácil de controlar. Mas não o eliminam.
É o preço por uma tecnologia que gera respostas a partir de correlações estatísticas. Não de uma compreensão real do significado. E é por isso que bugs, jailbreak e prompt injection não são anomalias desconectadas: são manifestações do mesmo limite fundamental.