Peer Pressure treina populações de atacantes e defensores de IA que se verificam por execução real de exploits
Os autores propõem co-treinar, via aprendizado por reforço, populações de agentes atacantes e defensores de código: o atacante só é recompensado se seu patch malicioso se aplica, compila, passa nos testes e reproduz um exploit real em um container isolado, enquanto o defensor aprende a identificar essas mudanças. O algoritmo resultante, PRPO, produz um revisor de 7B parâmetros que supera um revisor frontier (Claude Opus 4.8) em 15,8 pontos na aplicação usada no treino, e, aplicado sem alterações à defesa de jailbreak, reduz a taxa de sucesso de ataque de 36% para 4,6%.
Defensores de segurança de código treinados sobre datasets estáticos de vulnerabilidades tendem a ficar defasados frente a adversários que se adaptam continuamente, um problema clássico de segurança que os autores atacam propondo treinar atacante e defensor ao mesmo tempo, em um loop competitivo, em vez de treinar o defensor isoladamente contra exemplos fixos do passado.
O diferencial tecnicamente mais relevante é como a recompensa do atacante é definida: ele edita um repositório real de código e só recebe recompensa se o patch malicioso resultante se aplica corretamente, compila, passa nos testes automatizados do projeto, completa a tarefa de desenvolvimento original e, crucialmente, reproduz um exploit real dentro de um container isolado, um critério verificado por execução, não por julgamento de um modelo, o que elimina boa parte do risco de recompensas artificialmente infladas, comuns em aprendizado por reforço aplicado a tarefas de código.
O algoritmo de otimização, chamado PRPO, trata cada lado como uma população de adaptadores LoRA sobre um mesmo modelo base congelado, e avalia cada agente comparando seu desempenho contra pares do mesmo papel que enfrentaram exatamente a mesma condição, inserindo essa comparação dentro do próprio baseline do gradiente de política, em vez de usar o pool de oponentes diretamente, com um torneio que preserva diversidade entre os adaptadores. Essa escolha de design resolve um problema prático de treinamento competitivo: comparar atacantes e defensores contra condições diferentes mistura a dificuldade intrínseca de cada condição com a habilidade real do agente, distorcendo o sinal de treinamento.
Os resultados reportados mostram transferência real de capacidade: um revisor de diffs de 7B treinado com PRPO atinge 64,8% de acurácia balanceada em aplicações nunca vistas durante o treino, superando tanto um modelo com fine-tuning supervisionado de segurança quanto um revisor frontier congelado, o Claude Opus 4.8, em 4,4 pontos, com uma margem ainda maior, de 15,8 pontos, na aplicação em que foi efetivamente treinado. Um agente de repositório de 9B treinado da mesma forma recupera 23 de 172 vulnerabilidades do benchmark VulnGym retidas para teste, contra 10 de um modelo com fine-tuning supervisionado e 7 do mesmo backbone sem treinamento especializado.
O dado talvez mais interessante é que o mesmo algoritmo, aplicado sem qualquer alteração a um domínio diferente, defesa contra jailbreak em vez de segurança de código, já supera ou iguala o desempenho do WildGuard, uma defesa especializada de referência, em F1 estático, reduzindo a taxa de sucesso de jailbreak de 36,0% para 4,6% sob um juiz distinto do oráculo usado no treino, contra 8,9% do próprio WildGuard. Isso sugere que esse framework de populações de atacante e defensor verificadas por execução real é uma técnica de treinamento mais geral do que o domínio original de segurança de código, com potencial de aplicação a outras formas de alinhamento adversarial de modelos.