模型简介
模型特点
模型能力
使用案例
🚀 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








