Parte 1: IA do lado do cliente para combater a toxicidade on-line

Maud Nalpas
Maud Nalpas

Publicado em 13 de novembro de 2024

Discurso de ódio, assédio e abuso on-line se tornaram um problema generalizado. Os comentários tóxicos silenciam vozes importantes e afastar usuários e clientes. A detecção de toxicidade protege seus usuários e cria um ambiente on-line mais seguro.

Nesta série de dois episódios, vamos mostrar como usar a IA para detectar e reduzir a toxicidade na fonte: os teclados dos usuários.

Nesta primeira parte, discutimos os casos de uso e os benefícios dessa abordagem.

Na segunda parte, compartilhamos a implementação, incluindo exemplos de código e dicas de UX.

Por que realizar a detecção de toxicidade do lado do cliente

Demonstração de postagem de comentários.
Um exemplo de detecção de toxicidade do lado do cliente: quando um usuário para de digitar um comentário, a análise de toxicidade é executada no navegador e um aviso é exibido em tempo real. Confira a demonstração.

Vantagens

A detecção de toxicidade do lado do cliente é uma primeira linha de defesa útil e um ótimo complemento para as verificações do lado do servidor. A detecção de toxicidade do lado do cliente oferece vários benefícios:

  • Detectar a toxicidade cedo. Com as verificações do lado do cliente, você pode detectar a toxicidade na fonte, sem tocar no servidor.
  • Ative as verificações em tempo real. Use a velocidade do lado do cliente para criar aplicativos de baixa latência e fornecer feedback instantâneo aos usuários.
  • Reduza ou otimize a carga de trabalho do servidor. Reduza a carga de trabalho do servidor e os custos de detecção de toxicidade: primeiro, porque as dicas voltadas ao usuário podem ajudar a diminuir o volume de comentários tóxicos, mas também porque sinalizar determinados comentários como provavelmente tóxicos antes que eles cheguem ao servidor ajuda a priorizar eles nas verificações do lado do servidor.
  • Reduzir a carga humana. Diminuir a carga dos moderadores humanos.

Casos de uso

Confira alguns motivos para criar a detecção de toxicidade do lado do cliente:

  • Detecção imediata em sistemas de comentários. Ofereça feedback imediato aos usuários que escrevem comentários tóxicos, incentivando-os a reformular a mensagem antes de postar. Com a IA do lado do cliente, é possível fazer isso sem chave de API, sem custos de classificação do lado do servidor no momento da execução e com baixa latência. Isso pode ser ideal para apps de chat.
  • Moderação em tempo real no chat ao vivo. Identifique e sinalize rapidamente mensagens tóxicas dos usuários, permitindo que os moderadores intervenham imediatamente.

Manter as verificações do lado do servidor

Embora a detecção de toxicidade do lado do cliente seja rápida, um usuário malicioso com conhecimento de front-end pode desativá-la. Além disso, nenhum sistema de detecção de toxicidade é 100% preciso.

Por esses motivos, recomendamos que você continue implementando ou mantenha uma revisão adicional com um servidor, em vez de depender apenas da detecção de toxicidade do lado do cliente. Por exemplo, complemente sua verificação do lado do cliente em tempo real com uma revisão assíncrona do lado do servidor usando a API Perspective. Para uma abordagem abrangente, combine essas ferramentas com a moderação humana.

Advertências

A detecção de toxicidade do lado do cliente exige o download de um modelo de classificação na sua página da Web e, muitas vezes, de uma biblioteca de IA do lado do cliente.

Considere as implicações:

  • Custos de veiculação e hospedagem de modelos. O modelo pode ser grande.
  • Desempenho e UX. A biblioteca e o modelo vão aumentar o tamanho do pacote.

Considere os benefícios antes de decidir se essa é a opção certa para seu caso de uso. Aplique as práticas recomendadas de desempenho para a IA do cliente e armazene o modelo em cache para que o download seja um custo único.

Como funciona a classificação de toxicidade do conteúdo

Antes de analisarmos a implementação completa, confira os aspectos essenciais da detecção de toxicidade.

Um modelo de detecção de toxicidade analisa o texto existente, em vez de gerar novo conteúdo (IA generativa). É uma tarefa clássica de PLN (processamento de linguagem natural).

Tarefas de processamento de linguagem natural. Fonte HuggingFace.

A detecção de toxicidade depende de classificadores de texto que categorizam o texto como provável tóxico ou inofensivo. Os classificadores de toxicidade usam o texto como entrada e atribuem a ele vários rótulos de toxicidade, além de uma pontuação. As pontuações variam de 0 a 1. Pontuações mais altas indicam que a entrada tem mais probabilidade de ser tóxica.

A detecção de toxicidade depende de classificadores de texto que categorizam o texto como provável tóxico ou inofensivo.

A entrada do usuário é classificada e pontuada.

Considere como exemplo o modelo Xenova/toxic-bert, uma versão compatível com a Web de unitary/toxic-bert. Ele oferece seis rótulos:

  • toxic
  • severe_toxic
  • insult
  • obscene
  • identity_hate
  • threat

Rótulos como toxic e severe_toxic indicam a toxicidade geral.

Outros rótulos são mais específicos. Eles identificam tipos específicos de toxicidade, por exemplo, identity_hate (bullying ou ameaças sobre a identidade de uma pessoa, como raça, religião, identidade de gênero e assim por diante) ou threat (uma declaração de intenção de causar danos).

Diferentes modelos de toxicidade têm maneiras diferentes de abordar a classificação. Confira alguns exemplos representativos.

Neste exemplo, a entrada a seguir inclui a palavra "hate" e é direcionada a uma pessoa. Portanto, a pontuação de toxicity é alta (0.92). Nenhum tipo de toxicidade específico foi identificado, então as outras pontuações são baixas.

Input: I hate you
Output of the toxicity classifier:
[
{ label: 'toxic', score: 0.9243140482902527 },
{ label: 'insult', score: 0.16187334060668945 },
{ label: 'obscene', score: 0.03452680632472038 },
{ label: 'identity_hate', score: 0.0223250575363636 },
{ label: 'threat', score: 0.16187334060668945 },
{ label: 'severe_toxic', score: 0.005651099607348442 }
]

No próximo exemplo, a entrada tem um tom de ódio geral, então ela recebe uma pontuação toxicity alta (0.92). Devido à menção explícita de danos, a pontuação threat também é alta (0.81).

Input: I hate your garden, and I will kill your plants
Output of the toxicity classifier:
[
{ label: 'toxic', score: 0.9243140482902527 },
{ label: 'insult', score: 0.16187334060668945 },
{ label: 'obscene', score: 0.03452680632472038 },
{ label: 'identity_hate', score: 0.0223250575363636 },
{ label: 'threat', score: 0.819197041168808937 },
{ label: 'severe_toxic', score: 0.005651099607348442 }
]

Próximo

Agora que você entendeu o contexto, comece a criar um sistema de detecção de toxicidade por IA do lado do cliente.

LEIA A PARTE DOIS