模型概述
模型特點
模型能力
使用案例
🚀 XLM-RoBERTa多語言抑鬱檢測模型
本項目是一個多語言抑鬱檢測模型,藉助先進的自然語言處理技術,可識別六種語言文本中的抑鬱指標。該模型在豐富的數據集上進行訓練,能高精度檢測與抑鬱相關的內容,為心理健康監測和支持系統提供了實用的解決方案。
🚀 快速開始
推理
from transformers import AutoModelForSequenceClassification, AutoTokenizer
# 直接從Hugging Face Hub加載模型
model = AutoModelForSequenceClassification.from_pretrained("malexandersalazar/xlm-roberta-base-cls-depression")
tokenizer = AutoTokenizer.from_pretrained("FacebookAI/xlm-roberta-base")
# 標籤/預測值:
# 1: 存在抑鬱指標
# 0: 不存在抑鬱指標
# 進行推理
text = "Your text here"
inputs = tokenizer(
text,
padding="max_length",
truncation=True,
max_length=512,
return_tensors="pt"
)
outputs = model(**inputs)
prediction = outputs.logits.argmax(-1).item()
✨ 主要特性
- 多語言支持:支持處理六種語言(英語、德語、法語、意大利語、葡萄牙語、西班牙語)的文本。
- 混合數據集構成:
- 使用Claude 3.5 Sonnet(
claude-3-5-sonnet-20241022
)消息批量API生成專注於抑鬱的數據。 - 集成“tyqiangz/multilingual-sentiments”數據集,以實現更廣泛的情感覆蓋。
- 精心策劃涵蓋四個核心維度:
- 語言(在所有六種支持的語言中保持平衡)
- 心理健康狀態(健康與不健康)
- 心理健康類別(自我價值、未來展望等)
- 文本長度(從短短語到長表達)
- 使用Claude 3.5 Sonnet(
- 高性能:在抑鬱檢測方面達到了先進的精度。
- 負責任的AI:開發過程中注重心理健康敏感性。
- 易於訪問:可在Hugging Face Hub上獲取。
📦 安裝指南
文檔未提及安裝步驟,故跳過此章節。
💻 使用示例
基礎用法
from transformers import AutoModelForSequenceClassification, AutoTokenizer
# Load model directly from Hugging Face Hub
model = AutoModelForSequenceClassification.from_pretrained("malexandersalazar/xlm-roberta-base-cls-depression")
tokenizer = AutoTokenizer.from_pretrained("FacebookAI/xlm-roberta-base")
# Labels/Prediction Values:
# 1: Depression Indicators Present
# 0: No Depression Indicators
# For inference
text = "Your text here"
inputs = tokenizer(
text,
padding="max_length",
truncation=True,
max_length=512,
return_tensors="pt"
)
outputs = model(**inputs)
prediction = outputs.logits.argmax(-1).item()
高級用法
文檔未提及高級用法示例,故跳過此部分。
📚 詳細文檔
數據集類別
心理健康狀態
- 健康
- 不健康
心理健康類別
- 自我價值
- 未來展望
- 社會影響
- 情緒恢復力
- 自我反思/成長
語言
- 英語
- 德語
- 法語
- 意大利語
- 葡萄牙語
- 西班牙語
文本長度類別
- 3 - 8個單詞
- 9 - 15個單詞
- 16 - 35個單詞
- 36 - 60個單詞
- 61 - 90個單詞
技術架構
數據生成與處理流程
-
輸入處理與類別定義
- 設置核心數據集類別:
- 語言支持配置
- 心理健康狀態(健康/不健康)
- 具有正負描述的心理健康類別
- 文本長度分佈目標
- 收集真實的抑鬱/恢復力證言。
- 設置核心數據集類別:
-
動態提示與數據生成
- 自定義提示工程,包括:
- 用於平衡數據集生成的核心類別
- 隨機特徵分配(年齡、教育程度、正式程度、上下文)以實現文本多樣性
- 選擇相關證言以確保真實性
- 通過消息批量API集成Claude 3.5 Sonnet(
claude-3-5-sonnet-20241022
) - 批量處理以提高生成效率。
- 自定義提示工程,包括:
-
外部數據集集成
- 集成來自Hugging Face的
tyqiangz/multilingual-sentiments
數據集。 - 將所有外部數據分類為“健康”心理健康狀態。
- 理由:雖然這些文本包含負面情緒,但不表達臨床抑鬱或自殺意念。
- 按以下方式對外部數據集進行分層:
- 語言(與我們支持的六種語言匹配)
- 文本長度類別
- 集成來自Hugging Face的
-
數據集合並與最終平衡
- 將生成的專注於抑鬱的數據集與外部情感數據集合並。
- 在核心類別上進行多維度分層:
- 心理健康狀態(生成的不健康 + 生成的健康 + 外部健康)
- 心理健康類別
- 語言
- 文本長度
- 進行質量檢查和過濾。
- 最終分佈驗證和重新平衡:
- 訓練集:26208個樣本(70.0%)
- 驗證集:7488個樣本(20.0%)
- 測試集:3745個樣本(10.0%)
數據生成總結
本總結共包含37,441個動態生成的文本。
- 按語言分佈
- 西班牙語:6,612個文本(17.66%)
- 英語:6,565個文本(17.53%)
- 葡萄牙語:6,438個文本(17.2%)
- 法語:6,258個文本(16.71%)
- 德語:5,914個文本(15.8%)
- 意大利語:5,654個文本(15.1%)
- 按心理健康狀態分佈
- 健康:20,031個文本(53.5%)
- 不健康:17,410個文本(46.5%)
- 按心理健康類別分佈
- 自我反思/成長:7,784個文本(20.79%)
- 自我價值:7,747個文本(20.69%)
- 情緒恢復力:7,354個文本(19.64%)
- 未來展望:7,345個文本(19.62%)
- 社會影響:7,211個文本(19.26%)
- 按文本長度分佈
- 3 - 8個單詞:6,819個文本(18.21%)
- 9 - 15個單詞:4,473個文本(11.95%)
- 16 - 35個單詞:17,968個文本(47.99%)
- 36 - 60個單詞:6,403個文本(17.1%)
- 61 - 90個單詞:1,749個文本(4.67%)
注意:此總結未包括外部情感數據集tyqiangz/multilingual-sentiments
的集成情況。
數據集集成總結
tyqiangz/multilingual-sentiments
數據集提供了“健康”心理健康狀態的基線示例,即使存在負面情緒。雖然這些文本可能傳達悲傷或負面情緒,但不表現出臨床抑鬱指標或自殺意念。區分一般負面情緒和臨床抑鬱標記非常重要。
分割集 | 樣本數 | 百分比 |
---|---|---|
訓練集 | 8,028 | 70.0% |
驗證集 | 2,294 | 20.0% |
測試集 | 1,147 | 10.0% |
總計 | 11,469 | 100% |
生成的數據集mental_health_texts.csv
(malexandersalazar/mental-health-depression
)包含具有明確臨床抑鬱指標的示例。“健康”類別包括反映正常情緒範圍和恢復力的文本,而“不健康”類別包括表現出明顯抑鬱跡象和臨床表現的文本。
分割集 | 樣本數 | 百分比 |
---|---|---|
訓練集 | 26,208 | 70.0% |
驗證集 | 7,488 | 20.0% |
測試集 | 3,745 | 10.0% |
總計 | 37,441 | 100% |
總數據集大小
- 訓練集:34,236個樣本(70.0%)
- 驗證集:9,782個樣本(20.0%)
- 測試集:4,892個樣本(10.0%)
- 總樣本數:48,910
注意:所有分割集在語言、類別和文本長度上保持分層,以確保每個子集具有代表性採樣。
模型開發
- 基礎模型:FacebookAI/xlm-roberta-base
- 微調配置
- 學習率:2e - 5
- 熱身比例:0.1
- 權重衰減:0.01
- 訓練輪數:10
- 最佳模型指標:“精度”
- 批量大小:64
- 提前停止耐心值:5
- 提前停止閾值:0.001
- 優化流程
- ONNX轉換
- 量化
- 性能基準測試
性能指標
模型指標
在測試數據集上的評估結果:
PyTorch模型
- 準確率:0.9867
- 精度:0.9799
- 召回率:0.9827
- F1分數:0.9813
- ROC - AUC分數:0.0927
- 平均推理時間:145.00 ms
- 推理時間標準差:2.78 ms
ONNX模型
- 準確率:0.9867
- 精度:0.9799
- 召回率:0.9827
- F1分數:0.9813
- ROC - AUC分數:0.0927
- 平均推理時間:146.90 ms
- 推理時間標準差:3.08 ms
ONNX量化模型
- 準確率:0.9871
- 精度:0.9811
- 召回率:0.9827
- F1分數:0.9819
- ROC - AUC分數:0.0679
- 平均推理時間:74.49 ms
- 推理時間標準差:7.80 ms
注意:測試數據集在語言、心理健康狀態、類別和文本長度上保持與訓練數據相同的平衡分佈,確保在所有支持的維度上進行穩健評估。
模型基準測試
- 測試數據集:thePixel42/depression-detection(僅英語數據集)
- 比較範圍:僅比較基礎模型,不與更大的模型(如RoBERTa - large變體)進行比較。
性能比較
模型 | 準確率 | 精度 | 召回率 | F1分數 |
---|---|---|---|---|
depression-reddit-distilroberta-base | 0.7604 | 0.6937 | 0.9360 | 0.7968 |
xlm-roberta-base-cls-depression | 0.7841 | 0.8458 | 0.6967 | 0.7640 |
finetuned-distil-bert-depression | 0.7135 | 0.6475 | 0.9419 | 0.7674 |
finetuned-roberta-depression | 0.6820 | 0.6164 | 0.9701 | 0.7538 |
distilroberta-base-finetuned-suicide-depression | 0.5663 | 0.5605 | 0.6291 | 0.5928 |
xlm - roberta - base - cls - depression模型表現出色,在比較的模型中實現了最高的準確率和精度。考慮到它在與專門針對英語的模型競爭時仍保持多語言能力,這一點尤其值得注意。結果表明,該模型在不同語言環境下具有有效的遷移學習和強大的抑鬱檢測能力。
🔧 技術細節
文檔中關於技術細節的內容已在“詳細文檔”部分詳細闡述,此處不再重複。
📁 項目結構
xlm-roberta-base-cls-depression/
├── data/
│ ├── source/ # 原始數據來源
│ ├── raw/ # 生成的文本
│ ├── clean/ # 處理後的數據集
│ ├── models/ # 訓練好的模型
│ └── dist/ # 優化後的模型
├── notebooks/
│ ├── 1. generator.ipynb # 數據集生成
│ ├── 2. pre_processor.ipynb # 文本預處理
│ ├── 3. trainer.ipynb # 模型訓練
│ ├── 4. post_training.ipynb # ONNX優化
│ └── 5. test.ipynb # 模型測試
└── requirements.txt
⚠️ 倫理考慮
本模型僅用於研究和支持目的,不應作為診斷工具或替代專業心理健康評估。在進行實際診斷和治療時,請始終諮詢合格的心理健康專業人員。
負責任的使用指南
- 請勿用於醫療診斷。
- 維護用戶隱私和數據保護。
- 考慮文化和語言細微差別。
- 作為更廣泛心理健康支持系統的一部分使用。
- 定期監測偏差和錯誤。
📄 許可證
本項目採用MIT許可證,請參閱LICENSE文件以獲取詳細信息。
🙏 致謝
- José Ramón Alonso,《Depresión: Cómo comprenderla y superarla》的作者。這本書為理解抑鬱作為一種心理健康狀況提供了寶貴的見解,並有助於塑造負責任的數據集生成方法。
- 驗證本方法的心理健康專業人員。
- HuggingFace社區,特別是
tyqiangz/multilingual-sentiments
數據集的貢獻者。 - 提供各種工具和庫的開源社區。
📚 引用
如果您在研究中使用此模型,請引用:
@software{malexandersalazar_xlm_roberta_base_cls_depression,
author = {Alexander Salazar},
title = {XLM-RoBERTa Depression Detection Model},
year = {2025},
month = {1},
url = {https://github.com/malexandersalazar/xlm-roberta-base-cls-depression},
version = {1.0.0},
date = {2025-01-03},
abstract = {A fine-tuned XLM-RoBERTa model for detecting depression indicators in multilingual text, trained on a rich dataset of 40,000+ expressions generated using Claude 3.5 Sonnet (claude-3-5-sonnet-20241022) through the Message Batches API. The model achieves high precision and is available on the Hugging Face Hub.},
keywords = {depression-detection, mental-health, xlm-roberta, multilingual, natural-language-processing}
}
📧 聯繫信息
- 項目負責人 - Alexander Salazar








