Data publikacji: 13 listopada 2024 r.
Szerzenie nienawiści, nękanie i przemoc w internecie stały się powszechnym problemem. Toksyczne komentarze uciszają ważne głosy i odstraczają użytkowników i klientów. Wykrywanie toksycznych treści chroni użytkowników i tworzy bezpieczniejsze środowisko online.
W tej dwuczęściowej serii omawiamy, jak używać AI do wykrywania i łagodzenia toksycznych treści u źródła, czyli na klawiaturze użytkownika.
W pierwszej części omawiamy przypadki użycia i zalety tego podejścia.
W części 2 opisujemy implementację, w tym przykłady kodu i wskazówki dotyczące UX.
Dlaczego warto wykrywać treści toksyczne po stronie klienta
.![Demonstracja publikowania komentarzy](https://web.dev/static/articles/ai-detect-toxicity-context/image/non-toxic-comment.gif?hl=pl)
Zalety
Wykrywanie treści szkodliwych po stronie klienta stanowi przydatną pierwszą linię obrony i świetnie uzupełnia kontrole po stronie serwera. Wykrywanie treści szkodliwych po stronie klienta zapewnia wiele korzyści:
- Wczesne wykrywanie toksyczności. Dzięki weryfikacji po stronie klienta możesz wykrywać toksyczność już na jej źródłach, bez konieczności ingerowania w serwer.
- Włącz sprawdzanie w czasie rzeczywistym. Korzystaj z szybkości po stronie klienta, aby tworzyć aplikacje o niskiej latencji i zapewniać użytkownikom natychmiastowy feedback.
- Zmniejsz lub zoptymalizuj obciążenie po stronie serwera. Zmniejsz natężenie pracy po stronie serwera i koszty związane z wykrywaniem toksycznych treści: po pierwsze, ponieważ wskazówki dla użytkowników mogą pomóc w zmniejszeniu liczby toksycznych komentarzy, a po drugie, ponieważ oznaczenie niektórych komentarzy jako potencjalnie toksycznych jeszcze przed ich przesłaniem na serwer pomoże Ci je priorytetowo sprawdzać.
- Zmniejsz obciążenie pracowników. zmniejszenie obciążenia moderatorów;
Przypadki użycia
Oto kilka możliwych powodów, dla których warto tworzyć systemy wykrywania toksycznych treści po stronie klienta:
- Natychmiastowe wykrywanie w systemach komentarzy. Przesyłać użytkownikom, którzy tworzą toksyczne komentarze, natychmiastowe opinie i zachęcać ich do zmiany sformułowania wiadomości przed jej opublikowaniem. Dzięki AI po stronie klienta możesz to osiągnąć bez klucza API, kosztów klasyfikacji po stronie serwera w czasie wykonywania oraz opóźnień. Może to być idealne rozwiązanie w przypadku aplikacji do obsługi czatu.
- Moderowanie czatu na żywo w czasie rzeczywistym. Szybkie wykrywanie i oznaczanie toksycznych wiadomości od użytkowników, co pozwala moderatorom natychmiast interweniować.
Sprawdzanie po stronie serwera
Chociaż wykrywanie toksycznych treści po stronie klienta jest szybkie, złośliwy użytkownik znający front-end może je wyłączyć. Poza tym żaden system wykrywania toksyczności nie jest w 100% dokładny.
Z tych powodów zdecydowanie zalecamy wdrożenie lub utrzymanie dodatkowej weryfikacji na serwerze zamiast polegania wyłącznie na wykrywaniu toksycznych treści po stronie klienta. Możesz na przykład uzupełnić sprawdzanie po stronie klienta w czasie rzeczywistym o asynchroniczne sprawdzanie po stronie serwera za pomocą interfejsu Perspective API. Aby uzyskać kompleksowe podejście, możesz połączyć te metody z moderacją przez człowieka.
Zastrzeżenia
Wykrywanie toksycznych treści po stronie klienta wymaga pobrania modelu klasyfikacji na stronę internetową, a często także biblioteki AI po stronie klienta.
Rozważ konsekwencje:
- Model kosztów hostingu i wyświetlania. Model może być duży.
- Skuteczność i UX. Biblioteka i model zwiększą rozmiar pakietu.
Zanim zdecydujesz, czy ta opcja jest odpowiednia do Twojego przypadku użycia, zastanów się nad korzyściami. Stosuj sprawdzone metody dotyczące wydajności AI po stronie klienta i zapisuj model w pamięci podręcznej, aby pobieranie było jednorazowym kosztem.
Jak działa klasyfikacja toksyczności treści
Zanim przejdziemy do pełnego wdrożenia, zapoznaj się z najważniejszymi informacjami na temat wykrywania toksyczności.
Model wykrywania toksyczności analizuje istniejący tekst, a nie generuje nowego (generatywna AI). Jest to klasyczne zadanie przetwarzania języka naturalnego (NLP).
![](https://web.dev/static/articles/ai-detect-toxicity-context/image/nlp-hugging-face.png?hl=pl)
Wykrywanie toksyczności opiera się na klasyfikatorach tekstu, które przypisują tekstowi prawdopodobieństwo toksyczności lub nieszkodliwości. Klasyfikatory toksyczności otrzymują tekst jako dane wejściowe i przypisują mu różne etykiety toksyczności wraz z wynikiem. Wyniki mieszczą się w zakresie od 0 do 1. Wyższe wyniki wskazują, że dane wejściowe są bardziej toksyczne.
Wykrywanie toksyczności opiera się na klasyfikatorach tekstu, które przypisują tekstowi prawdopodobieństwo toksyczności lub nieszkodliwości.
Weźmy na przykład model Xenova/toxic-bert, który jest wersją modelu unitary/toxic-bert kompatybilną z internetem. Zawiera 6 etykietek:
toxic
severe_toxic
insult
obscene
identity_hate
threat
Etykiety takie jak toxic
i severe_toxic
oznaczają ogólną toksyczność.
Inne etykiety są bardziej szczegółowe. Identyfikują one konkretne rodzaje toksyczności, na przykład identity_hate
(nękanie lub groźby dotyczące tożsamości danej osoby, takiej jak rasa, religia, tożsamość płciowa itp.) lub threat
(oświadczenie o zamiarze wyrządzenia szkody).
Różne modele toksyczności różnie podchodzą do klasyfikacji. Oto kilka reprezentatywnych przykładów.
W tym przykładzie podany tekst zawiera słowo „nienawiść” i jest skierowany do osoby, więc toxicity
ma wysoką ocenę (0.92
). Nie zidentyfikowano konkretnego typu toksyczności, więc inne oceny są niskie.
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 }
]
W następnym przykładzie tekst ma ogólnie nienawistny ton, więc ma wysoki wynik toxicity
(0.92
). Ze względu na wyraźne odniesienie do szkód wynik threat
jest też wysoki (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 }
]
Następny
Gdy już poznasz kontekst, możesz zacząć tworzyć system AI do wykrywania toksycznych treści po stronie klienta.