自傷風險分類與評估
使用託管於 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,欄位為text與class。 - Prompt:以 Harmony-style 安全政策作為 system message,嚴格要求以 0 或 1 評估使用者文字。
- 測試模型:
openai/gpt-oss-20b與openai/gpt-oss-safeguard-20b。 - Script:
oai-hackathon-self-harm.py會載入資料集,以可設定的 concurrency 呼叫 Groq endpoint,並回報 accuracy、classification report 及 confusion matrix。
執行方法
- 匯出 key:
export GROQ_API_KEY=sk-... - 在此資料夾執行以下指令。
- 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
- Base model:
- 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 並重新訓練或測試。
上述數值是來源專案回報,繁中維護者未重新執行或驗證。自殺與自傷風險工具可能造成漏判或誤判,不能取代受訓人員、危機應變及所在地的緊急支援流程。