AI 스팸 감지는 매우 성공적이었으며, 많은 커뮤니티의 성공에 기여했습니다.
이번 게시물에서는 다른 커뮤니티에 도움이 될 수 있도록 우리의 ‘진행 중’ 실험에 대한 세부 정보를 공유하고자 합니다.
실험이 진행되는 동안 이 게시물을 최신 상태로 유지하고, 이 시스템이 감지할 수 있는 문제 유형에 대한 정보를 공유할 예정입니다.
다만, 이는 아직 최종 제품이 아닌 진화 중인 시스템임을 유념해 주세요.
왜 AI 모더레이션인가?
Discourse에서 AI 통합에 대해 우리가 취하는 핵심 접근 방식은 AI가 인간 모더레이터를 대체하는 것이 아니라, 그들에게 가치를 더해야 한다는 것입니다. AI 모더레이션의 장점은 "무언가 잘못되었다"는 신호를 모더레이터에게 전달하고, 그들이 취해야 할 조치에 대한 권장 사항을 제시할 수 있다는 것입니다. 최종 판단권(Agency)은 완전히 인간 모더레이터에게 있어야 합니다.
왜 이 실험의 모달리티로 채팅을 선택했는가?
실험을 구성할 때, 알림을 위한 모달리티로 채팅을 선택했습니다. 이를 통해 포럼의 일반 모더레이션에 방해가 되지 않는 실험 전용 채널을 만들 수 있습니다.
프롬프트를 구축하고 정교하게 만드는 과정은 여전히 진행 중인 작업이므로, 메타(meta)의 나머지 모더레이션 팀에 불필요한 부담을 주는 것은 좋은 접근법이 아니라고 생각했습니다.
사람들에게 매우 완성되지 않은 AI 프로젝트를 제공하면, 신뢰와 향후 지지를 매우 쉽게 잃을 수 있습니다.
배치 테스트는 어떻게 되는가?
현재 자동화 시스템의 한 가지 제한 사항은 변경 사항을 배치 테스트할 수 없다는 것입니다. 이는 AI 프롬프트를 변경했을 때, 그것이 얼마나 유용한지 파악하는 데 상당한 지연 시간이 발생한다는 것을 의미합니다.
하루 동안 포럼에서 소수의 문제만 발견되는 경우 특히 문제가 됩니다. 반응 시간이 너무 느리고, 프롬프트를 정교하게 만드는 데 몇 달이 걸릴 수 있습니다.
이러한 제한 사항을 잘 인지하고 있으며, 관련 시스템이 준비되어 있으므로 향후 몇 주 안에 이 섹션을 게시물에서 삭제할 수 있기를 바랍니다.
이 시스템은 어떻게 구성되는가?
현재 실험은 3가지 기능을 기반으로 구축되었습니다:
- 자동화 - AI 페르소나 응답기
- Discourse AI - AI 페르소나
- Discourse AI - 커스텀 도구
우리의 응답기 자동화
응답기의 가장 주목할 만한 점은 무음(silent) 상태라는 것입니다. 이는 분류하는 주제에 속삭임(whisper)을 보내거나 게시물을 작성하지 않는다는 뜻입니다.
우리의 페르소나 모더레이션
여기서 가장 주목할 만한 점은 **강제 도구(forced tool)**입니다. 이는 모든 게시물이 ‘judge post’ 커스텀 도구를 사용하여 평가된다는 것을 의미합니다.
현재 시스템 프롬프트는 다음과 같습니다. (진행 상황에 따라 업데이트 예정)
system prompt
당신은 공식 Discourse 토론 포럼인 meta.discourse.org의 AI 모더레이터입니다. 당신의 역할은 커뮤니티 가이드라인에 부합하여 "문명화된 공개 담론을 위한 깨끗하고 잘 조명이 된 장소"를 유지하는 것을 돕는 것입니다.
모더레이션 철학:
- 이 포럼을 공공 정원처럼 공유 커뮤니티 자원으로 간주하세요
- 가이드라인을 경직된 규칙이 아니라 인간 판단을 돕는 도구로 사용하세요
- 규칙 집행보다는 토론 개선에 초점을 맞추세요
- 촉진(Facilitation)과 모더레이션 사이의 균형을 유지하세요
콘텐츠 평가 프레임워크:
-
토론 개선
- 게시물이 대화에 가치를 더하는지 평가하세요
- 주제와 참여자에 대한 존중을 보여주는 게시물을 인식하세요
- 새로운 주제를 시작하기 전에 기존 토론의 탐구를 지원하세요
-
이견 기준
- 아이디어 비판(허용됨)과 사람 비판(허용 안 됨)을 구별하세요
- 다음 사례를 플래깅하세요: 모욕, 개인 비방(ad hominem), 톤에 대한 반응, 즉각적인 반박
- 반론이 논리적이며 대화를 개선하는지 평가하세요
-
참여 품질
- 포럼을 흥미로운 장소로 만드는 토론을 우선시하세요
- 평가 시 커뮤니티 신호(좋아요, 플래그, 답글)를 고려하세요
- 커뮤니티를 “발견했을 때보다 더 나은 상태로” 만드는 콘텐츠를 지원하세요
-
문제 식별
- 행동에 개입하기보다는 잘못된 행동을 플래깅하는 데 초점을 맞추세요
- 플래그가 조치를 트리거해야 하는 경우(자동 또는 인간 모더레이터에 의해)를 인식하세요
- 포럼에 대한 책임은 모더레이터와 사용자가 공유한다는 점을 기억하세요
-
문명화 강제
- 잠재적으로 모욕적이거나, 악의적이거나, 혐오 발언일 수 있는 내용을 식별하세요
- 노골적이거나 성적 노골적 콘텐츠를 플래깅하세요
- 괴롭힘, 사칭, 또는 개인정보 노출을 주의하세요
- 스팸 또는 포럼 훼손을 방지하세요
-
조직 유지
- 잘못된 카테고리에 게시된 주제를 기록하세요
- 여러 주제에 걸친 교차 게시(Cross-posting)를 식별하세요
- 내용 없는 답글과 주제 이탈을 플래깅하세요
- 게시물 서명을 지양하세요
-
콘텐츠 소유권
- 타인의 디지털 콘텐츠 무단 게시를 플래깅하세요
- 잠재적인 지식재산권 위반을 식별하세요
내용을 평가할 때 맥락, 사용자 히스토리, 포럼 규범을 고려하세요. 당신의 목표는 처벌하기보다 안내하고, 강제하기보다 교육하는 것이지만, 토론의 질을 보존하는 일관된 기준을 유지해야 합니다.
모든 게시물을 판단하세요. 모더레이션이 필요 없는 게시물은 ignore 우선순위를 사용하세요.
우리의 judge post 커스텀 도구
the script powering it
function invoke(params) {
let post,topic;
if (params.priority !== "ignore") {
// post_id for testing
const post_id = context.post_id || 1735240;
post = discourse.getPost(post_id);
topic = post.topic;
let statusEmoji = "";
if (params.priority === "urgent") {
statusEmoji = ":police_car_light:"; // Red circle for urgent
} else if (params.priority === "medium") {
statusEmoji = ":warning:"; // Orange circle for medium
} else if (params.priority === "low") {
statusEmoji = ":writing_hand:"; // Green circle for low
}
const message = `${statusEmoji} [${topic.title} - ${post.username}](${post.post_url}): ${params.message}`;
discourse.createChatMessage({ channel_name: "AI Moderation", username: "AI-moderation-bot", message: message});
}
chain.setCustomRaw("Post was classified");
return "done";
}
function details() {
return "Judge Post";
}
이 스크립트는 상당히 많은 고급 기법을 사용합니다:
chain.setCustomRaw: 이는 페르소나에게 LLM 체인 실행을 중단하도록 지시하고, 도구 호출을 최종 호출로 만듦으로써 토큰을 절약합니다.discourse.createChatMessage: 도구에서 채팅 메시지를 생성하는 데 사용할 수 있는 새로운 API입니다.discourse.getPost: 게시물 정보를 가져오는 데 사용됩니다.
이를 통해 테스트 버튼을 사용하여 도구를 테스트하고 잘 작동하는지 확인할 수 있습니다:
어떤 모델을 사용합니까?
현재 우리는 프론티어 모델인 Sonnet 3.7을 사용하고 있습니다. 그러나 Discourse 자동화, 특히 공개 콘텐츠만 스캔하고 보안 카테고리를 피하도록 지시하는 기능에 대한 일부 개선을 하면 Gemini Flash로 전환할 계획입니다.
여기서 질문을 환영하며, 실험이 진행되고 더 많은 Discourse 자동화 기능이 배포되는 동안 업데이트를 계속할 것입니다.






