Fecha de publicación: 13 de noviembre de 2024
El discurso de odio, el acoso y el abuso en línea se han convertido en un problema generalizado en la Web. Los comentarios tóxicos silencian voces importantes y alejan a los usuarios y clientes. La detección de toxicidad protege a tus usuarios y crea un entorno en línea más seguro.
En esta serie de dos partes, exploramos cómo usar la IA para detectar y mitigar la toxicidad en su fuente: los teclados de los usuarios.
En esta primera parte, analizamos los casos de uso y los beneficios de este enfoque.
En la segunda parte, compartimos la implementación, incluidos ejemplos de código y sugerencias de UX.
Por qué realizar la detección de toxicidad del cliente
Beneficios
La detección de toxicidad del cliente es una primera línea de defensa útil y un gran complemento de las verificaciones del servidor. La detección de toxicidad del cliente ofrece varios beneficios:
- Detecta la toxicidad con anticipación. Con las verificaciones del cliente, puedes detectar la toxicidad en su fuente sin tocar el servidor.
- Habilita las verificaciones en tiempo real. Usa la velocidad del cliente para compilar aplicaciones de baja latencia y proporcionar comentarios inmediatos a tus usuarios.
- Reduce o optimiza la carga de trabajo del servidor. Reduce la carga de trabajo y los costos del servidor para la detección de toxicidad: en primer lugar, porque tus sugerencias para el usuario pueden ayudar a disminuir el volumen de comentarios tóxicos, pero también porque marcar ciertos comentarios como probablemente tóxicos antes de que lleguen a tu servidor te ayuda a priorizarlos en tus verificaciones del servidor.
- Reduce la carga humana. Disminuye la carga de los moderadores humanos.
Casos de uso
Estos son algunos motivos posibles para crear una detección de toxicidad del cliente:
- Detección inmediata en los sistemas de comentarios. Proporciona comentarios inmediatos a los usuarios que redacten comentarios tóxicos y sugiéreles que reescriban su mensaje antes de publicarlo. Con la IA del cliente, puedes lograr esto sin una clave de API, sin costos de clasificación del entorno de ejecución del servidor y con baja latencia. Esto puede ser ideal para apps de chat.
- Moderación en tiempo real en el chat en vivo. Identifica y marca rápidamente los mensajes tóxicos de los usuarios, lo que permite que los moderadores intervengan de inmediato.
Mantén tus verificaciones del servidor
Si bien la detección de toxicidad del cliente es rápida, un usuario malicioso con conocimientos del frontend puede inhabilitarla. Además, ningún sistema de detección de toxicidad es 100% preciso.
Por estos motivos, te recomendamos que implementes o mantengas una revisión adicional con un servidor, en lugar de depender solo de la detección de toxicidad del cliente. Por ejemplo, complementa tu verificación del cliente en tiempo real con una revisión asíncrona del servidor con la API de Perspective. Para obtener un enfoque integral, puedes combinarlos con la moderación humana.
Advertencias
La detección de toxicidad del cliente requiere descargar un modelo de clasificación en tu página web y, a menudo, una biblioteca de IA del cliente.
Considera las siguientes implicaciones:
- Costos de hosting y entrega de modelos. Es posible que el modelo sea grande.
- Rendimiento y UX: La biblioteca y el modelo aumentarán el tamaño del paquete.
Considera los beneficios antes de decidir si es adecuado para tu caso de uso. Aplica las prácticas recomendadas de rendimiento para la IA del cliente y caché el modelo para que la descarga sea un costo único.
Cómo funciona la clasificación de toxicidad del contenido
Antes de analizar la implementación completa, analiza los aspectos esenciales de la detección de toxicidad.
Un modelo de detección de toxicidad analiza el texto existente, en lugar de generar contenido nuevo (IA generativa). Es una tarea clásica de PLN (procesamiento de lenguaje natural).
La detección de toxicidad se basa en clasificadores de texto que categorizan el texto como probable tóxico o inofensivo. Los clasificadores de toxicidad toman el texto como entrada y le asignan varias etiquetas de toxicidad, junto con una puntuación. Las puntuaciones varían de 0 a 1. Las puntuaciones más altas indican que es más probable que la entrada sea tóxica.
La detección de toxicidad se basa en clasificadores de texto que categorizan el texto como probable tóxico o inofensivo.
Tomemos como ejemplo el modelo Xenova/toxic-bert, una versión compatible con la Web de unitary/toxic-bert. Ofrece seis etiquetas:
toxic
severe_toxic
insult
obscene
identity_hate
threat
Las etiquetas como toxic
y severe_toxic
indican toxicidad general.
Otras etiquetas son más detalladas. Identifican tipos específicos de toxicidad, por ejemplo, identity_hate
(bullying o amenazas sobre la identidad de una persona, como su raza, religión, identidad de género, etcétera) o threat
(una declaración de intención de causar daño).
Los diferentes modelos de toxicidad tienen diferentes formas de abordar la clasificación. Estos son algunos ejemplos representativos.
En este ejemplo, la siguiente entrada incluye la palabra "odio" y se dirige a una persona, por lo que la puntuación de toxicity
es alta (0.92
). No se identificó ningún tipo de toxicidad específica, por lo que otras puntuaciones son bajas.
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 }
]
En el siguiente ejemplo, la entrada tiene un tono general de odio, por lo que se le asigna una puntuación alta de toxicity
(0.92
). Debido a la mención explícita de daños, la puntuación de threat
también es 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 }
]
A continuación
Ahora que comprendes el contexto, puedes comenzar a compilar un sistema de detección de toxicidad de IA del cliente.