언어 장애

Data Explorer를 사용하여 점수를 더 편리하게 표시하도록 쿼리도 수정했습니다.
신경은 ChatGPT와 Leonardo의 PostgreSQL 힌트에 감사합니다:

SELECT
  json_extract_path_text(pcf.value::json, 'classification', 'toxicity') AS toxicity,
  json_extract_path_text(pcf.value::json, 'classification', 'severe_toxicity') AS severe_toxicity,
  json_extract_path_text(pcf.value::json, 'classification', 'obscene') AS obscene,
  json_extract_path_text(pcf.value::json, 'classification', 'identity_attack') AS identity_attack,
  json_extract_path_text(pcf.value::json, 'classification', 'insult') AS insult,
  json_extract_path_text(pcf.value::json, 'classification', 'threat') AS threat,
  json_extract_path_text(pcf.value::json, 'classification', 'sexual_explicit') AS sexual_explicit,
  json_extract_path_text(pcf.value::json, 'model') AS model,
  pcf.created_at,
  p.raw
FROM
  post_custom_fields AS pcf
INNER JOIN
  posts AS p ON p.id = pcf.post_id
INNER JOIN
  topics AS t ON t.id = p.topic_id
WHERE
  pcf.name = 'disorder' 
  AND t.archetype = 'regular'
ORDER BY created_at DESC
이 수정 사항은 분류 값 중 50(또는 설정한 값)보다 큰 값이 있는 행을 반환합니다
-- [params]
-- int :threshold = 50
SELECT DISTINCT ON (p.id, pcf.created_at)
  json_extract_path_text(pcf.value::json, 'classification', 'toxicity') AS toxicity,
  json_extract_path_text(pcf.value::json, 'classification', 'severe_toxicity') AS severe_toxicity,
  json_extract_path_text(pcf.value::json, 'classification', 'obscene') AS obscene,
  json_extract_path_text(pcf.value::json, 'classification', 'identity_attack') AS identity_attack,
  json_extract_path_text(pcf.value::json, 'classification', 'insult') AS insult,
  json_extract_path_text(pcf.value::json, 'classification', 'threat') AS threat,
  json_extract_path_text(pcf.value::json, 'classification', 'sexual_explicit') AS sexual_explicit,
  json_extract_path_text(pcf.value::json, 'model') AS model,
  p.id as post_id,
  pcf.created_at,
  p.raw
FROM
  post_custom_fields AS pcf
INNER JOIN
  posts AS p ON p.id = pcf.post_id
INNER JOIN
  topics AS t ON t.id = p.topic_id
WHERE
  pcf.name = 'disorder' 
  AND t.archetype = 'regular'
GROUP BY p.id, pcf.value, pcf.created_at
HAVING 
  CAST(json_extract_path_text(pcf.value::json, 'classification', 'toxicity') AS FLOAT) > :threshold 
  OR CAST(json_extract_path_text(pcf.value::json, 'classification', 'severe_toxicity') AS FLOAT) > :threshold 
  OR CAST(json_extract_path_text(pcf.value::json, 'classification', 'obscene') AS FLOAT) > :threshold 
  OR CAST(json_extract_path_text(pcf.value::json, 'classification', 'identity_attack') AS FLOAT) > :threshold 
  OR CAST(json_extract_path_text(pcf.value::json, 'classification', 'insult') AS FLOAT) > :threshold 
  OR CAST(json_extract_path_text(pcf.value::json, 'classification', 'threat') AS FLOAT) > :threshold 
  OR CAST(json_extract_path_text(pcf.value::json, 'classification', 'sexual_explicit') AS FLOAT) > :threshold
ORDER BY pcf.created_at DESC, p.id

Data Explorer를 사용하여 보고서를 생성할 때 다른 임계값을 설정할 수 있도록 여러 매개변수를 도입하여 이를 수정할 수도 있습니다.

참고: 이 쿼리는 개인 메시지 접근 없이 공개 게시글만 반환합니다.

3개의 좋아요

현재 정확히 이 기능을 개발하고 있습니다!

또한 위양성/위음성 비율을 사용하여 각 옵션에 대해 최적의 임계값을 제안해 주는 최적화기를 실행할 계획도 가지고 있습니다. 따라서 이 정보는 가까운 미래에 유용할 것이므로 그대로 유지해 두시기 바랍니다.

5개의 좋아요

정말 좋습니다. 그런 소식을 전해 주셔서 감사합니다.

지금까지는 Disorderbot이 만든 모든 플래그를 거부하거나 무시하는 편입니다. 임계값도 최대치인 90~100까지 올린 상태입니다. 하지만 우리가 테스트 중인 포럼의 특성(NSFW)상, 소통이 실제로 독한지 아닌지 AI가 쉽게 혼란을 겪습니다. 이 도구가 우리의 용도에 충분히 신뢰할 수 없을 때까지는 계속 사용하되, AI의 보고는 실제로 매우 독한 게시물에 대한 다른 보고를 "강화"하는 용도로만 활용할 예정입니다.

장기적으로 사용할 더 나은 임계값을 찾게 되면, 사용자가 실제로 매우 독한 내용을 게시하려 할 때 예방적인 경고를 활성화할 수 있을 것입니다.

AI가 주류가 될 때를 생각하면 내가 의심하는 바가 바로 이것입니다. 검열을 가능하게 하고, 세계 모든 커뮤니티의 건강한 운영에 필수적인 진정한 의미의 현상 유지(status quo)에 대한 질문을 제한하게 될 것입니다.

제한하거나 금지하는 것이 아니라, 교육하고 토론해야 합니다. 부수적 효과(내 우려에 따르면 이는 의도된 효과입니다) 없이 이 도구를 사용할 방법이 있을 수도 있지만, 현재로서는 불가능해 보입니다.

피드백에 감사드립니다. 저에게 큰 가치가 있습니다. 그리고 물론, 항상처럼 Discourse를 업데이트하고 개선해 주시는 팀에도 감사드립니다 :slight_smile:

모든 임계값을 100으로 설정하고 "심한 독성(severe toxicity)"이나 "위협(threat)"과 같은 더 극단적인 항목에만 의존하는 방식은, 그러한 커뮤니티에서 채택될 수 있다고 생각합니다.

3개의 좋아요

감사합니다. 현재 이렇게 설정되어 있는데, 여전히 너무 민감합니다. 몇 가지를 더 높여서 결과를 지켜보겠습니다.

1개의 좋아요

원래 분류를 직접 확인해야겠지만, 나도 먼저 ‘모욕’ 항목을 올릴 것 같아.

그거 읽는 건 네게서 좀 멀리 두는 게 나을 거야 :smiley: 텍스트 형태라도 정말 NSFW일 수 있으니까.
첫 번째 임계값도 100으로 올렸어. 이제 어떻게 될지 지켜보자 :smiley:

1개의 좋아요

향후 버전에서 Disorder가 개인 메시지를 검사하거나 보고하지 않도록 하는 것이 가능해지기를 진심으로 바랍니다. 우리는 개인 메시지에 접근하지 않으며, AI가 개인 대화를 검사하는 것은 매우 비윤리적이라고 생각합니다.

4개의 좋아요

네, @davidkingham 님이 질문하신 것과 같은 내용입니다. 로드맵에 반영하겠습니다.

3개의 좋아요

…그리고 영어는요? :sweat_smile:

또한, 이 모델이 Akismet을 어느 정도까지 대체할 수 있을지 궁금합니다. 현재 Akismet의 플래그에 대한 불일치율이 97%에 달합니다. 숫자가 많은 게시물에 단순히 반응하는 것 같아서, 타임스탬프가 매 줄에 있는 작업 로그를 게시하는 경우라면…

1개의 좋아요

광범위하게 사용 가능한 LLM의 등장으로 스팸과 스팸 탐지 간의 무장 경쟁이 핵무기 수준으로 격화되었습니다. 우리는 다양한 범위의 모델을 활용한 기능 개발에 정성을 쏟고 있으며, 스팸은 현재 우리의 최우선 과제는 아니지만 조사해 볼 가치가 있는 문제입니다.

4개의 좋아요

자, 그러니까: 켰습니다. 정상적으로 작동하는지 어떻게 알 수 있을까요?

모든 것을 포착하기 위해 임계값을 아주 낮추는 것 말고요.

특정 게시물의 점수가 어떻게 매겨졌는지 확인할 수 있는 진단 모드나 로그가 있나요?

2개의 좋아요

가장 쉬운 방법은 모욕적인 내용을 게시하여 이를 유도하는 것입니다. 플러그인 설정에서 해당 사용자의 그룹이 우회되지 않도록 확인하세요.

더 나은 방법은 Data Explorer를 쿼리하는 것입니다. 이 게시글의 제 쿼리 중 하나를 참고해 주세요:

1개의 좋아요

감사합니다. 지금까지 모든 게시물에서 0이 반환되고 있는데… 정상적인가요?

1개의 좋아요

우리의 게시글 중 대부분은 모든 기준에서 0점입니다. 이는 건강한 소통이 이루어지는 포럼에서는 정상적인 현상입니다.

2개의 좋아요

좋아 — 이 모델이 얼마나 쉽게 트리거되는지 확신이 없었거든. :slight_smile:

1개의 좋아요

플러그인을 설치했는데 작동하지 않아요. 추가 설정이 필요한가요?

플러그인에서 다음 오류가 대량으로 발생하고 있습니다:
Job exception: uninitialized constant Jobs::ClassifyChatMessage::ChatMessage

문제는 내 플러그인 중 하나가 다음 명령어를 사용하여 채팅 메시지를 생성할 때 발생하는 것으로 보입니다:
Chat::MessageCreator.create(chat_channel: matching_channel, user: message_user, content: raw).chat_message

감사합니다

1개의 좋아요

아, 이건 새 채팅 구조 개편으로 인해 깨졌을 거예요. 며칠 안에 이 플러그인의 기능을 통합한 새 플러그인을 출시할 예정이니, 기대해 주세요.

5개의 좋아요