Criar proteções de entrada e saída

Os aplicativos de IA generativa geralmente dependem da filtragem de dados de entrada e saída, às vezes chamadas de safeguards, para ajudar a garantir o comportamento responsável do modelo. As técnicas de filtragem de entrada e saída verificam os dados que entram ou saem do modelo.

Salvaguardas e classificadores de segurança disponíveis

Mesmo com o ajuste anterior para segurança e um modelo de comando bem projetado, ainda é possível que o modelo produza conteúdo que resulta em danos não intencionais. Para aprimorar ainda mais isso, os classificadores de conteúdo podem adicionar uma camada extra de proteção. Os classificadores de conteúdo podem ser aplicados a entradas e saídas.

Os classificadores de entrada normalmente são usados para filtrar conteúdo que não se destina ao uso no seu aplicativo e que pode fazer com que o modelo viole suas políticas de segurança. Os filtros de entrada geralmente visam ataques adversários que tentam burlar suas políticas de conteúdo. Os classificadores de saída podem filtrar ainda mais a saída do modelo, capturando gerações não intencionais que podem violar suas políticas de segurança. É recomendável ter classificadores que atendam a todas as suas políticas de conteúdo.

O Google desenvolveu classificadores prontos para segurança do conteúdo que podem ser usados para filtrar entradas e saídas:

  • A API Perspective é uma API sem custo financeiro que usa modelos de aprendizado de máquina para pontuar o impacto percebido que um comentário pode ter em uma conversa. Ela fornece pontuações que capturam a probabilidade de um comentário ser tóxico, ameaçador, ofensivo, sem relação com o tema etc.
  • O serviço de moderação de texto é uma API do Google Cloud que está disponível para uso abaixo de um determinado limite de uso e usa machine learning para analisar um documento em relação a uma lista de atributos de segurança, incluindo várias categorias e tópicos potencialmente nocivos que podem ser considerados confidenciais.

É importante avaliar até que ponto os classificadores prontos atendem às suas metas de política e avaliar qualitativamente os casos de falha. Também é importante notar que o excesso de filtragem também pode resultar em danos não intencionais, bem como reduzir a utilidade do aplicativo. Isso significa que é importante também analisar os casos em que esse recurso pode estar acontecendo. Para mais detalhes sobre esses métodos de avaliação, consulte Avaliar modelo e sistema para segurança.

Criar classificadores de segurança personalizados

Se a sua política não for coberta por uma API pronta ou se você quiser criar seu próprio classificador, as técnicas de ajuste de parâmetros eficientes, como ajuste de comando e LoRA, fornecerão um framework eficaz. Nesses métodos, em vez de ajustar todo o modelo, é possível usar uma quantidade limitada de dados para treinar um pequeno conjunto de parâmetros importantes. Isso permite que o modelo aprenda novos comportamentos, por exemplo, como classificar seu novo caso de uso de segurança, com relativamente poucos dados de treinamento e poder computacional. Essa abordagem permite desenvolver ferramentas de segurança personalizadas para seus próprios usuários e tarefas.

Para ilustrar como isso funciona, este codelab mostra o código necessário para configurar um "classificador Agile". O codelab mostra as etapas de ingestão de dados, formatação para o LLM, treinamento dos pesos da LoRA e avaliação dos resultados. A Gemma possibilita a criação desses classificadores poderosos com apenas algumas linhas de código. Para uma visão mais detalhada, nosso documento de pesquisa "Towards Agile Text Classifiers for Everyone" mostra como usar essas técnicas para treinar várias tarefas de segurança e alcançar um desempenho de ponta com apenas algumas centenas de exemplos de treinamento.

Neste tutorial de exemplo, é possível treinar um classificador contra discurso de ódio usando o conjunto de dados ETHOS (em inglês), um conjunto de dados público para detecção de discurso de ódio criado a partir de comentários do YouTube e do Reddit. Quando treinado no modelo Gemma menor, em apenas 200 exemplos (um pouco menos de 1⁄4 do conjunto de dados), ele atinge uma pontuação F1 de 0,80 e ROC-AUC de 0,78. Esse resultado se compara favoravelmente aos resultados de última geração informados neste placar do placar. Quando treinado nos 800 exemplos, como os outros classificadores no placar, o classificador ágil baseado no Gemma alcança uma pontuação F1 de 83,74 e uma pontuação ROC-AUC de 88,17. É possível usar esse classificador pronto para uso ou adaptá-lo usando o tutorial Gemma Agile Classifier.

Tutoriais de classificador Agile da Gemma

Iniciar o codelab Iniciar o Google Colab

Práticas recomendadas para configurar proteções

É altamente recomendável usar classificadores de segurança. No entanto, as proteções podem fazer com que o modelo generativo não produza nada para o usuário se o conteúdo estiver bloqueado. Os aplicativos precisam ser projetados para lidar com esse caso. A maioria dos chatbots conhecidos lida com isso fornecendo respostas automáticas ("Sinto muito, eu sou um modelo de linguagem, não posso ajudar você com essa solicitação").

Encontre o equilíbrio certo entre utilidade e inofensividade: ao usar classificadores de segurança, é importante entender que eles cometerão erros, incluindo falsos positivos (por exemplo, reivindicar uma saída que não é segura) e falsos negativos (não marcar uma saída como insegura, quando ela é). Ao avaliar classificadores com métricas como F1, Precisão, Recall e AUC-ROC, é possível determinar como compensar os erros falsos positivos e falsos negativos. Ao mudar o limiar de classificadores, você ajuda a encontrar um equilíbrio ideal que evita o excesso de filtros nas saídas, ao mesmo tempo em que fornece a segurança adequada.

Verifique se há vieses não intencionais nos seus classificadores:os classificadores de segurança, como qualquer outro modelo de ML, podem propagar vieses não intencionais, como estereótipos socioculturais. Os aplicativos precisam ser avaliados adequadamente para identificar comportamentos potencialmente problemáticos. Em especial, os classificadores de segurança do conteúdo podem acionar conteúdo relacionado a identidades que são alvo com mais frequência de linguagem abusiva on-line. Por exemplo, quando a API Perspective foi lançada pela primeira vez, o modelo retornou pontuações de toxicidade mais altas nos comentários fazendo referência a determinados grupos de identidade (blog). Esse comportamento exagerado pode acontecer porque comentários que mencionam termos de identidade para grupos segmentados com mais frequência (por exemplo, palavras como "negro", "muçulmano", "feminista", "mulher", "gay" etc.) costumam ser tóxicos por natureza. Quando os conjuntos de dados usados para treinar classificadores têm desequilíbrios significativos em comentários que contêm determinadas palavras, os classificadores podem generalizar demais e considerar todos os comentários com essas palavras como provavelmente não seguros. Confira como a equipe da Jigsaw atenuou esse viés não intencional.

Recursos para desenvolvedores