📄️ 🟢 Visão Geral
Prevenir a injeção de prompt pode ser extremamente difícil, e existem poucas defesas robustas contra isso (@crothers2022machine) (@goodside2021gpt). No entanto, existem algumas soluções de senso comum. Por exemplo, se sua aplicação não precisa gerar texto livre, não permita esse tipo de saída. Existem muitas maneiras diferentes de defender um prompt. Vamos discutir algumas das mais comuns aqui.
📄️ 🟢 Filtragem
Filtragem é uma técnica comum para prevenir a manipulação do prompt (@kang2023exploiting). Existem alguns tipos de filtragem, mas a ideia básica é verificar palavras e frases no prompt inicial ou na saída que devem ser proibidas. Você pode usar uma lista negra (blacklist) ou até mesmo uma lista branca (whitelist) para esse propósito (@selvi2022exploring). Uma lista negra é uma lista de palavras e frases que devem ser proibidas, enquanto uma lista branca é uma lista de palavras e frases que devem ser permitidas.
📄️ 🟢 Instrução de Defesa
Você pode adicionar instruções à um prompt, que incentivam o modelo a ter cuidado com o que vem a seguir no prompt. Por exemplo:
📄️ 🟢 Pós-prompting
A defesa de pós-prompting (@christoph2022talking) simplesmente coloca a entrada do usuário antes do prompt. Por exemplo:
📄️ 🟢 Enclausuramento de Sequência Aleatória
Outra forma de defesa é enclausurar a entrada do usuário entre duas sequências aleatórias de caracteres (@armstrong2022using). Tome este prompt como exemplo:
📄️ 🟢 Defesa do Tipo Sanduíche
A defesa do tipo sanduíche consiste em colocar a entrada do usuário entre dois prompts. Tome o seguinte prompt como exemplo:
📄️ 🟢 Marcação XML
A marcação XML pode ser uma defesa muito robusta quando executada corretamente (especialmente com o XML+escape). Ela consiste em envolver a entrada do usuário por tags XML (por exemplo, ``). Tome este prompt como exemplo:
📄️ 🟢 Avaliação Separada por um LLM
Um LLM adicional pode ser usado para avaliar se um prompt é uma tentativa de hacking. Abaixo está um exemplo de um prompt para um sistema desse tuoi(@armstrong2022using)). Ele foi bastante bem-sucedido na detecção de prompts nocivos.
📄️ 🟢 Outras Abordagens
Embora as abordagens anteriores possam ser muito robustas, algumas outras abordagens, utilizando um modelo diferente, incluindo ajuste fino, estímulo suave e restrições de comprimento, também podem ser eficazes.