Discourse AI - 독성

:bookmark: 이 주제는 Discourse AI 플러그인의 Toxicity(독성) 기능 설정에 대해 다룹니다.

:person_raising_hand: 필요한 사용자 권한: 관리자

Toxicity 모듈은 Discourse 인스턴스의 모든 새 포스트와 채팅 메시지의 독성 점수를 자동으로 분류합니다. 임계값을 초과하는 콘텐츠가 자동으로 플래깅되도록 설정할 수도 있습니다.

분류 결과는 데이터베이스에 저장되므로, 플러그인을 활성화한 후 Data Explorer를 사용하여 Discourse의 새 콘텐츠에 대한 분류 보고서를 즉시 사용할 수 있습니다. 이를 더 쉽게 하기 위해 곧 플러그인과 함께 기본 Data Explorer 쿼리를 제공할 예정입니다.

설정

  • ai_toxicity_enabled: 모듈을 활성화하거나 비활성화합니다

  • ai_toxicity_inference_service_api_endpoint: 독성 모듈용 API가 실행되는 URL입니다. CDCK 호스팅을 사용하는 경우 자동으로 처리됩니다. 자체 호스팅(self-hosting)을 사용하는 경우 자체 호스팅 가이드를 확인하세요.

  • ai_toxicity_inference_service_api_key: 위에서 설정한 독성 API의 API 키입니다. CDCK 호스팅을 사용하는 경우 자동으로 처리됩니다. 자체 호스팅을 사용하는 경우 자체 호스팅 가이드를 확인하세요.

  • ai_toxicity_inference_service_api_model: ai_toxicity_inference_service_api_model: original, unbiased, multilingual의 세 가지 모델이 제공됩니다. 학습 자료에서 도입된 편향이 분류에 반영되지 않도록 하므로 original보다 unbiased를 권장합니다. 다국어 커뮤니티의 경우, 마지막 모델은 이탈리아어, 프랑스어, 러시아어, 포르투갈어, 스페인어, 터키어를 지원합니다.

  • ai_toxicity_flag_automatically: 특정 카테고리의 분류가 설정된 임계값을 초과할 때 포스트/채팅 메시지를 자동으로 플래깅합니다. 사용 가능한 카테고리는 toxicity, severe_toxicity, obscene, identity_attack, insult, threat, sexual_explicit입니다. 각각에 대해 ai_toxicity_flag_threshold_${category} 설정이 있습니다.

  • ai_toxicity_groups_bypass: 해당 그룹에 속한 사용자의 포스트는 독성 모듈에 의해 분류되지 않습니다. 기본적으로 스태프 사용자를 포함합니다.

추가 자료

10개의 좋아요

지금은 이 부분을 조금 조정하고 있습니다. 임계값이 높을수록 더 엄격하고, 낮을수록 더 관대하다는 제 추정이 맞나요?

1개의 좋아요

임계값이 높을수록 더 관대해집니다. 임계값이 낮을수록 게시물을 독성으로 표시할 가능성이 더 높습니다. 왜냐하면 플래그가 트리거되는 데 필요한 조건이 적기 때문입니다. 따라서 임계값이 높을수록 플래그가 트리거되는 데 더 많은 조건이 필요합니다.
낮은 임계값 = 쉽게 초과
높은 임계값 = 초과하기 어려움

2개의 좋아요

저희 사이트에서 상업적 활동 시도를 감지하는 메커니즘을 마련하고 싶습니다. 독성 콘텐츠 자체보다는, 저희 커뮤니티에 매우 해가 되는 행동을 방지하는 것이 목적입니다.

이것은 우리가 원하는 것과 비슷하지만, 정확히 일치하지는 않습니다.

이 측면에 대해 고려해 보셨나요?

이 부분은 Discourse AI Post Classifier - Automation rule에서 다루고 있습니다. 진행 상황을 알려주세요.

4개의 좋아요

구글 퍼스펙티브 API로 설정하는 방법을 도와주실 분 계신가요? 마켓플레이스에 광고를 올릴까 생각했지만, 여기가 더 적합할 것 같아서요.

이게 1년 전 일인 걸 알지만, 이 구현이 어떻게 진행되었는지 알려주셨으면 좋겠어요! 저는 이 프로젝트에 개인적으로 큰 관심이 있거든요 ^^ 다만, @Discourse 님, 제가 틀린 게 있다면 바로잡아 주세요. 이 페이지에서 언급하신 속성들은 Detoxify를 통해 구현된 Perspective의 원자적 지표(atomic metrics)와 동일하지 않나요? 그렇다면 Perspective를 추가하는 것은 다소 무의미한 일이 되는 거 아닌가요?

  • ai_toxicity_flag_automatically: 특정 카테고리의 분류 결과가 설정된 임계값을 초과할 때 게시물/채팅 메시지를 자동으로 플래깅합니다. 사용 가능한 카테고리는 toxicity, severe_toxicity, obscene, identity_attack, insult, threat, sexual_explicit입니다. 각 카테고리별로 ai_toxicity_flag_threshold_${category} 설정이 있습니다.

어쨌든, Detoxify는 Kaggle 커뮤니티에서 구현할 수 있습니다. Kaggle은 정확히 이런 일을 하는 곳이기 때문에, 구현자를 찾는 데 아주 좋은 곳입니다 :slight_smile:

2개의 좋아요

우리는 GitHub - unitaryai/detoxify: Trained models & code to predict toxic comments on all 3 Jigsaw Toxic Comment Challenges. Built using ⚡ Pytorch Lightning and 🤗 Transformers. For access to our API, please email us at contact@unitary.ai. · GitHub 모델을 통합하여 게시물의 독성(toxicity)을 자동으로 분류하고, 설정 가능한 임계값을 초과할 때 자동으로 플래깅(flagging)하는 기능을 구현했습니다.

조사 결과, 인스턴스에 대한 독성 허용도가 '제로’인 경우(예: 더 ‘브랜드’ 중심의 인스턴스)에는 이 기능이 매우 잘 작동하지만, 커뮤니티 중심의 다른 Discourse 인스턴스에서는 독성 모델이 너무 엄격하여 더 관대한 인스턴스에서 과도한 플래그를 생성하는 문제가 발생했습니다.

이러한 이유로, 현재 계획은 독성 기능 비활성화하고 이 기능을 AI Triage 플러그인으로 이동하는 것입니다. 이 플러그인에서는 관리자가 자신의 인스턴스에서 허용되는 수준에 맞게 자동 독성 감지를 조정할 수 있도록 사용자 정의 프롬프트를 제공합니다.

또한, https://ai.google.dev/gemma/docs/shieldgemma 또는 https://arxiv.org/abs/2312.06674와 유사한 호스팅된 모더레이션 LLM을 고객에게 제공할 계획입니다. 이 모델들은 Detoxify가 탄생하게 된 원동력이 된 Jigsaw Kaggle 대회에서 사용된 동일한 데이터셋에 대한 내부 평가에서 매우 뛰어난 성능을 보였습니다.

4개의 좋아요