Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

自傷風險分類與評估

使用託管於 Groq 的 OpenAI gpt-oss chat 模型,建立並評估輕量的自殺意念分類器或 labeler。目標是製作一套推論流程原型,可接入真實的內容審核或分流 pipeline,例如 Queue 優先排序及 human-in-the-loop 審查,同時記錄表現與邊界案例行為。此 repo 包含單一可執行 script,以及用來測試安全 alignment 的小型 red-team set。

團隊成員

Ratnakar Pawar、Yang Liu

問題陳述

我們希望快速標記表達自殺意念、自傷或自殺意圖的內容,讓人工 moderator 或臨床人員可以介入。系統應盡量減少 false negative,也就是漏掉高風險訊息,同時將 false positive 控制在不使審查人員負荷過重的程度。此專案提供透明、可重現的 baseline,讓團隊可進一步加入 prompt tuning、升級處理規則及正式環境監測。

資料集

  • 來源:Kaggle Suicide Watch 資料集
  • 組成:r/SuicideWatch 的貼文,label 為 suicide;r/depression 的貼文,在此二元框架中同樣標為 suicide;以及從 r/teenagers 抽樣作為反例的非自殺貼文。
  • 蒐集期間:r/SuicideWatch 自 2008 年 12 月 16 日建立起至 2021 年 1 月 2 日;r/depression 自 2009 年 1 月 1 日至 2021 年 1 月 2 日。
  • 動機:公開自殺意念資料集很少。此資料集可作為安全分類器的起點,但必須承認符合倫理的處理方式與 human-in-the-loop 審查不可或缺。

Prototype/方法

  • 資料集:Suicide_Detection.csv,欄位為 textclass
  • Prompt:以 Harmony-style 安全政策作為 system message,嚴格要求以 0 或 1 評估使用者文字。
  • 測試模型:openai/gpt-oss-20bopenai/gpt-oss-safeguard-20b
  • Script:oai-hackathon-self-harm.py 會載入資料集,以可設定的 concurrency 呼叫 Groq endpoint,並回報 accuracy、classification report 及 confusion matrix。

執行方法

  1. 匯出 key:export GROQ_API_KEY=sk-...
  2. 在此資料夾執行以下指令。
    • Base model:python oai-hackathon-self-harm.py --examples 1000 --concurrency 4
    • Safeguard model:python oai-hackathon-self-harm.py --examples 1000 --concurrency 4 --model openai/gpt-oss-safeguard-20b
  3. Flag:--debug-first-n 會印出原始輸出;--dataset-path 指向自訂 CSV。

不要將真實 GROQ_API_KEY 寫入檔案、commit、Notebook、issue 或輸出紀錄。本繁中化工作未執行模型、下載資料集或呼叫外部 endpoint。

結果(1,000 筆樣本評估)

  • openai/gpt-oss-20b:accuracy 約 0.904;加權 f1 約 0.90。
  • openai/gpt-oss-safeguard-20b:accuracy 約 0.888;加權 f1 約 0.89。此測試中的 base model 略優。
  • 兩個模型都呈現良好的 precision/recall 平衡。來源認為 base model 的小幅優勢表示它可用於真實分流工作流程,但邊界案例仍須由人工審查。

Red Teaming

  • 包含人工設計的高風險與無害文字,透過相同 prompt 與對應方式執行。
  • 模型:openai/gpt-oss-20b
  • 評估:40 個範例,包含 30 個自殺及 10 個非自殺範例。
  • 結果如下。
    • Accuracy:0.975
    • Suicide:precision 1.00、recall 0.97、f1 0.98
    • Non-suicide:precision 0.91、recall 1.00、f1 0.95
  • Red-team set 著重邊界表達,例如幽默、已緩解的過往自傷,以及被動意念。自殺類別有高 recall,非自殺類別有完整 recall,來源據此認為模型遵循政策的程度良好。剩餘漏判來自細微的被動意念表達。來源認為結果支持在監測及定期檢查 prompt/模型的前提下,審慎用於真實情境。

學習與重點

  • Base model 強度:openai/gpt-oss-20b 的 F1/accuracy 略高於 safeguard variant,同時仍密切遵循安全 prompt。
  • 遵循政策:兩個模型都能良好遵循二元 0/1 指示,剩餘錯誤集中於被動意念或細緻語句。
  • Red-team 價值:人工整理的壓力測試,例如幽默、緩解期及被動意念,可找出標準 metric 漏掉的邊界失敗。部署前應持續擴充。
  • Human-in-the-loop:metric 可支援分流與 Queue 排序,但真實使用仍必須有 moderator 監督及升級處理規則。
  • 資料依賴:結果只適用於 Kaggle Suicide Watch 的資料組成。內容分布改變時,應監測 drift 並重新訓練或測試。

上述數值是來源專案回報,繁中維護者未重新執行或驗證。自殺與自傷風險工具可能造成漏判或誤判,不能取代受訓人員、危機應變及所在地的緊急支援流程。