viéses e injeções de prompts contraditórios em LLMs

À medida que a popularidade do LLaMA continua a crescer, mais e mais desenvolvedores estão se voltando para esse poderoso modelo de linguagem para suas necessidades de IA. No entanto, nenhuma ferramenta é perfeita e o LLaMA tem seu próprio conjunto de limitações. E elas podem afetar a qualidade e a confiabilidade do seu aplicativo. Mas como entender quais são essas limitações e como mitigá-las?
Neste post, vamos nos aprofundar em duas áreas principais onde as limitações do LLaMA podem se manifestar: viés e injeções de prompts contraditórios. Mas note: emas não são limitações exclusivas do LLaMA. Ambas ocorrem nos LLMs em geral.
O que é viés no LLaMA?

Viés refere-se às maneiras pelas quais os dados de treinamento de um modelo de IA como o LLaMA refletem os preconceitos da sociedade em geral e/ou de seus desenvolvedores. A presença de viés pode levar a previsões imprecisas ou injustas para certos grupos de pessoas. Por exemplo, se um modelo LLaMA for treinado em um conjunto de dados que contém muitos estereótipos sobre um determinado grupo étnico, ele poderá gerar respostas tendenciosas quando feitas perguntas sobre esse grupo.
Na verdade, mesmo sem ajuste fino, o LLaMA apresenta vários tipos de viés. Estudos recentes demonstram que o LLaMA pode apresentar viés de raça e gênero e tende a ter viés conservador. Isso aponta para possíveis problemas se ele for usado, por exemplo, em aplicativos com tomadas de decisões sobre créditos. Essa é uma das áreas que mais sofrem com vieses de raça.
O que são injeções de prompts contraditórios?

Injeções de prompts contraditórios são ataques que ocorrem por meio de entradas projetadas para enganar um LLM como o LLaMA. Eles são usados para produzir saídas incorretas ou enganosas. Eles podem ser particularmente problemáticos se forem usados em ambientes de produção, onde a saída do modelo é crítica para a tomada de decisões.
A injeção de prompt como ataque comumente consiste no uso de um prompt contendo uma combinação de instruções confiáveis e não confiáveis. Isso pode causar comportamentos inesperados e indesejados do LLaMA ou de outros LLMs.
O vazamento de prompt é uma variação da injeção de prompt também bastante problemática. Nele, os ataques de prompt são projetados para fazer o LLM vazar detalhes que podem conter informações que não se destinam ao público. Os vazamentos podem incluir senhas e informações de usuários, mas também prompts de controle.
LLMs como os GPTs do ChatGPT e o LLaMA incluem proteções que limitam suas capacidades de produzir conteúdos prejudiciais. No entanto, usuários sempre encontram técnicas de jailbreak para contornar as regras dos modelos. A alguns anos, usuários do Reddit conseguiram contornar as medidas de segurança do ChatGPT repetidamente. A malandragem foi feita usando a criação de um personagem chamado DAN (Do Anything Now). Ele forçava o modelo a cumprir solicitações para gerar respostas não filtradas. Veja um exemplo das interações com DAN na imagem abaixo:

Exemplo de injeção de prompt que ganhou fama por enganar o ChatGPT (fonte).
Identificando vieses e exemplos contraditórios
Então, como você identifica viés e exemplos contraditórios em seu modelo LLaMA? Aqui estão algumas dicas práticas:
Teste de viés: use ferramentas como Fairlearn para testar a imparcialidade e a precisão do seu modelo em diferentes grupos.
Visualize as saídas do modelo: ferramentas como a biblioteca Matplotlib permitem plotar as saídas do modelo usando técnicas de agrupamento com machine learning. Elas ajudam a detectar problemas e podem ser usadas para identificar vieses.
Monitore as saídas: fique de olho nas saídas do seu modelo e sinalize quaisquer respostas que pareçam tendenciosas ou imprecisas.
Teste as saídas: antes de colocar o LLaMA em produção, teste bastante seus prompts e suas resistências aos comportamentos mais inesperados possíveis.
Use o LLaMA para testar e analisar o LLaMA: solicite para seu LLaMA gerar testes tanto de vieses quanto de monitoramento de injeções de prompts. Depois, use o modelo para analisá-las e propor alternativas.
Mitigando o viés
Agora que você identificou algum viés em seu modelo LLaMA, o que você pode fazer para mitigá-lo? Conheça algumas dicas práticas:
Ao realizar ajuste fino, use diversos conjuntos de dados: certifique-se de que seus dados de treinamento reflitam a diversidade do mundo em que vivemos. Isso inclui garantir que seu conjunto de dados seja representativo de diferentes culturas, etnias e perspectivas. Se seu modelo tem viés, amplie seu ajuste fino com um conjunto mais diversificado.
Use técnicas de desvio: existem várias técnicas de desvio de viés disponíveis, incluindo pré-processamento de dados e engenharia de recursos.
Atualize regularmente os dados de treinamento: amplie seus dados de treinamento regularmente para garantir que eles permaneçam representativos da realidade.
Mitigação de injeções de prompts contraditórios

É amplamente sabido que os LLMs podem exibir comportamentos indesejáveis e prejudiciais. E muitos usuários tentam gerar essas saídas pelos mais variados motivos. Infelizmente, não existem técnicas amplamente aceitas para se defender contra esses ataques. Mas alguns pesquisadores e profissionais recomendam algumas práticas para mitigar os efeitos de prompts mal-intencionados. Veja algumas táticas de defesa que você pode usar com seu LLaMA.
Use Instruções de defesa nos prompts
Uma tática de defesa simples consiste em apenas impor o comportamento desejado por meio da instrução passada ao modelo. Esta não é uma solução completa, mas destaca o poder de um prompt bem elaborado.
Separe os componentes dos prompts
Uma solução potencial para injeção de prompts é parametrizar os diferentes componentes dos prompts. Isso pode ser feito usando instruções separadas das entradas e lidando com elas de maneira diferente.
Use validação de entrada
Certifique-se, se possível, de que todas as entradas para seu modelo venham de fontes confiáveis.
Atualize regularmente seu modelo
Conforme novos ataques surgirem, atualize seu modelo para ficar à frente das ameaças. Isso também pode ser feito adicionando novas instruções nos prompts para mitigar novos comportamentos indesejados.
Use uma arquitetura serial de prompts com diferentes papéis
Outra dica é usar prompts em sequência com funções distintas para processar prompts de usuários. Pense, por exemplo, numa sequência de três prompts. O primeiro deles instrui o modelo a agir como um especialista em detectar injeções de prompts. Sua tarefa é identificar instruções contraditórias que possam enganar um LLM. O segundo responde à solicitação do usuário e o terceiro verifica se a solicitação não tem nenhum vazamento ou resposta inadequada.
Conclusões
Embora o LLaMA seja uma ferramenta incrivelmente poderosa, ele não é perfeito. Ao entender suas limitações e tomar medidas para mitigá-las, podemos criar sistemas de IA mais robustos e confiáveis. Neste post, abordamos os tópicos importantes de viés e injeções de prompts contraditórios no LLaMA. Também fornecemos dicas práticas para identificar e mitigar esses problemas. Esperamos que, com essas dicas, você aumente sua capacidade para criar sistemas de IA confiáveis e capazes de lidar com uma ampla gama de tarefas complexas.