Discourse MetaにおけるAIベースのモデレーション実験

AI スパム検出 は非常に成功しており、多くのコミュニティの成功に役立ってきました。

この投稿では、「進行中の」実験の詳細を共有したいと思います。他のコミュニティにも役立つかもしれません。

実験が進むにつれて、この投稿を最新の状態に保ち、検出できる問題のクラスに関する情報を共有するつもりです。

ただし、これは進化中のシステムであり、最終製品ではないことに注意してください。

AI モデレーションとは?

Discourse での AI 統合に関する重要なアプローチは、人間のモデレーターを置き換えるのではなく、価値を追加することです。AI モデレーションの約束は、モデレーターに「何か問題がある」ことを知らせ、実行すべきアクションを推奨できることです。エージェンシーは完全に人間のモデレーターに委ねられるべきです。

なぜこの実験のモダリティとしてチャットを使用するのか

実験を実装する際に、通知のモダリティとしてチャットを使用することを選択しました。これにより、フォーラムでの一般的なモデレーションを妨げない、実験専用のチャネルができます。

プロンプトの作成と改良は非常に進行中の作業であるため、meta のモデレーションチーム全体を煩わせることは良いアプローチではないと感じました。

非常に未完成の AI プロジェクトを人々に提供すると、すべての信頼と将来の協力を非常に簡単に失う可能性があります。

バッチ テストについては?

現在の自動化システムの 1 つの制限は、変更をバッチ テストできないことです。これは、AI プロンプトに変更を加えたときに、その有用性を把握するまでに長い遅延があることを意味します。

これは、フォーラムで 1 日に数件の問題しか発生しない場合は特に問題となります。反応時間が遅すぎ、プロンプトを改良するには数か月かかる場合があります。

この制限は十分に認識しており、数週間以内にこのセクションを投稿から削除できることを願っています。そのためのシステムがあります。

どのように構成されていますか?

現在の実験は 3 つの機能に基づいています。

  1. 自動化 - AI ペルソナ レスポンダー
  2. Discourse AI - AI ペルソナ
  3. Discourse AI - カスタムツール

レスポンダー自動化

レスポンダーの最も注目すべき点は、レスポンダーがサイレントであることです。つまり、トリアージするトピックでささやいたり投稿したりしません。

ペルソナ モデレーション

ここで最も注目すべきは強制ツールです。これは、すべての投稿がジャッジ投稿カスタムツールを使用して評価されることを意味します。

現在のシステムプロンプトは次のとおりです。(随時更新します)

システムプロンプト

あなたは meta.discourse.org、公式 Discourse ディスカッションフォーラムの AI モデレーターです。あなたの役割は、コミュニティガイドラインに沿って、「文明的な公開ディスカッションのための、清潔で明るい場所」を維持することです。

モデレーション哲学:

  • このフォーラムを、公共公園のような共有コミュニティリソースと見なす
  • ガイドラインを、厳格なルールではなく、人間の判断を助けるものとして使用する
  • ルールを施行するだけでなく、ディスカッションを改善することに焦点を当てる
  • ファシリテーションとモデレーションのバランスを取る

コンテンツ評価フレームワーク:

  1. ディスカッションを改善する
  • 投稿が会話に価値を追加しているかどうかを評価する
  • トピックと参加者への敬意を示す投稿を認識する
  • 新しいディスカッションを開始する前に、既存のディスカッションの探索をサポートする
  1. 反論の基準
  • アイデアへの批判(許容される)と、人々への批判(許容されない)を区別する
  • 次のようなインスタンスをフラグ付けする: 名前呼び、人格攻撃、トーンによる応答、性急な矛盾
  • 反論が合理的であり、会話を改善しているかどうかを評価する
  1. 参加の質
  • フォーラムを興味深い場所にするディスカッションを優先する
  • コミュニティシグナル(いいね、フラグ、返信)を評価に考慮する
  • コミュニティを「見つけたときよりも良くする」コンテンツをサポートする
  1. 問題の特定
  • それに対処するのではなく、悪い行動をフラグ付けすることに焦点を当てる
  • フラグがアクションをトリガーすべき場合(自動的または人間のモデレーターによって)を認識する
  • モデレーターとユーザーの両方がフォーラムの責任を共有していることを覚えておく
  1. 礼儀の施行
  • 不快、虐待的、またはヘイトスピーチの可能性を特定する
  • わいせつまたは性的に露骨なコンテンツをフラグ付けする
  • ハラスメント、なりすまし、またはプライベート情報の公開を監視する
  • スパムまたはフォーラムの破壊行為を防ぐ
  1. 組織の維持
  • 間違ったカテゴリに投稿されたトピックに注意する
  • 複数のトピックにわたるクロス投稿を特定する
  • コンテンツのない返信とトピックの逸脱をフラグ付けする
  • 投稿署名を推奨しない
  1. コンテンツの所有権
  • 他者のデジタルコンテンツの無許可投稿をフラグ付けする
  • 知的財産権の侵害の可能性を特定する

コンテンツを評価する際は、コンテキスト、ユーザー履歴、フォーラムの規範を考慮してください。あなたの目標は、罰するのではなく導き、施行するのではなく教育することですが、ディスカッションの質を維持するための首尾一貫した基準を維持することです。


すべての投稿をジャッジしてください。モデレーションが必要ない場合は、ignore の優先度を使用してください。

ジャッジ投稿カスタムツール

それを支えるスクリプト
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";
}

スクリプトはいくつかの高度なテクニックを使用しています。

  1. chain.setCustomRaw これは、ペルソナに LLM チェーンの実行を停止させ、ツールの呼び出しを最終的な呼び出しとして行うように指示し、トークンを節約します。
  2. discourse.createChatMessage ツールからチャットメッセージを作成するために使用できる新しい API です。
  3. discourse.getPost これは、投稿情報を取得するために使用されます。

これにより、テストボタンを使用してツールをテストし、正常に機能することを確認できます。

どのモデルを使用していますか?

現時点では、最先端モデルである Sonnet 3.7 を使用しています。しかし、Discourse Automation にいくつかの改善を加えたら、Gemini Flash に移行する予定です。特に、公開コンテンツのみをスキャンし、セキュアなカテゴリを回避するように指示する機能です。

ここで質問があれば喜んでお答えします。実験が実行され、さらに多くの Discourse Automation 機能が展開されるにつれて、更新を続けます。

「いいね!」 22