MentalLLaMA

MentalLLaMA

开源大语言模型助力社交媒体上的可解释心理健康分析

MentalLLaMA项目开发了基于IMHI数据集的开源指令型大语言模型,用于社交媒体数据的心理健康分析。该模型能生成高质量解释,提高分析结果的可解释性。项目还提供了涵盖8个任务和10个测试集的全面评估基准。MentalLLaMA为心理健康监测和研究领域带来新的分析工具和方法。

MentaLLaMA大语言模型心理健康分析社交媒体可解释性Github开源项目
<p align="center" width="100%"> <img src="https://yellow-cdn.veclightyear.com/ab5030c0/2562866d-f81f-4da2-b67c-dcc7c6812014.png" width="100%" height="100%"> </p> <div> <div align="left"> <a href='https://stevekgyang.github.io/' target='_blank'>杨凯来<sup>1,2</sup>&emsp; <a href='https://www.zhangtianlin.top/' target='_blank'>张天林<sup>1,2</sup>&emsp; <a target='_blank'>季绍雄<sup>3</sup></a>&emsp; <a target='_blank'>谢倩倩<sup>1,2</sup></a>&emsp; <a target='_blank'>匡紫燕<sup>6</sup></a>&emsp; <a href='https://research.manchester.ac.uk/en/persons/sophia.ananiadou' target='_blank'>Sophia Ananiadou<sup>1,2,4</sup></a>&emsp; <a target='_blank'>黄继民<sup>5</sup></a> </div> <div> <div align="left"> <sup>1</sup>国家文本挖掘中心&emsp; <sup>2</sup>曼彻斯特大学&emsp; <sup>3</sup>赫尔辛基大学&emsp; <sup>4</sup>产业技术综合研究所人工智能研究中心&emsp; <sup>5</sup>武汉大学&emsp; <sup>6</sup>江西师范大学&emsp; </div> <div align="left"> <img src='https://yellow-cdn.veclightyear.com/ab5030c0/9b67ff20-481f-4f06-adba-2229f172b056.png' alt='NaCTeM' height='85px'>&emsp; <img src='https://yellow-cdn.veclightyear.com/ab5030c0/8c4e3633-8ae8-4a12-84f2-9280a062dd15.png' alt='UoM University Logo' height='85px'>&emsp; <img src='https://yellow-cdn.veclightyear.com/ab5030c0/88b86783-bd09-437f-8d22-5c446b8337de.jpg' alt='helsinki Logo' height='85px'>&emsp; <img src='https://yellow-cdn.veclightyear.com/ab5030c0/6fcbe397-52a2-44b7-9cba-5a43f4519b12.png' alt='airc Logo' height='85px'>&emsp; <img src='https://yellow-cdn.veclightyear.com/ab5030c0/685b6285-788f-41a7-b251-0edffde1395c.png' alt='Wuhan University Logo' height='85px'> </div>

新闻

📢 2024年3月2日 IMHI基准测试数据全面发布。

📢 2024年2月1日 我们的MentaLLaMA论文: "MentaLLaMA:使用大型语言模型对社交媒体进行可解释的心理健康分析"已被WWW 2024接收!

📢 2023年10月31日 我们发布了MentaLLaMA-33B-lora模型,这是基于Vicuna-33B和完整IMHI数据集的MentaLLaMA 33B版本,但由于计算资源限制,使用LoRA进行训练!

📢 2023年10月13日 我们发布了以下数据集的训练数据:DR、dreaddit、SAD、MultiWD和IRF。更多内容即将推出,敬请期待!

📢 2023年10月7日 我们的评估论文: "使用大型语言模型进行可解释的心理健康分析"已被EMNLP 2023主会议接收为长篇论文!

伦理考虑

本仓库及其内容仅供非临床研究使用。所有材料均不构成实际诊断或建议,寻求帮助者应从专业精神病学家或临床从业者处获得帮助。对于预测和解释的准确性、完整性或实用性,我们不提供任何明示或暗示的保证。作者和贡献者对使用本文信息而产生的任何错误、遗漏或后果不承担责任。用户在做出任何与临床相关的决定之前,应自行判断并咨询专业人士。使用本仓库中的软件和信息的风险完全由用户自行承担。

用于构建我们IMHI数据集的原始数据集来自Reddit和Twitter等公共社交媒体平台,我们严格遵守隐私协议和道德原则,以保护用户隐私,并确保所有与心理健康相关的文本均适当匿名化。此外,为了最大限度地减少滥用,我们论文中提供的所有示例都使用适度的伪装方案进行了改写和模糊处理。

此外,最近的研究表明,大型语言模型可能会引入一些潜在的偏见,如性别差距。同时,一些错误的预测结果、不恰当的解释和过度概括也说明了当前大型语言模型的潜在风险。因此,将模型应用于实际场景的心理健康监测系统仍面临诸多挑战。

使用或访问本仓库中的信息即表示您同意对作者、贡献者以及任何相关组织或个人因任何索赔或损害进行赔偿、辩护并使其免受损害。

简介

本项目展示了我们在使用大型语言模型(LLMs)进行可解释心理健康分析方面的努力。在早期工作中,我们全面评估了ChatGPT和GPT-4等最新LLMs在生成心理健康分析解释方面的零样本/少样本性能。基于这些发现,我们构建了包含105K指令样本的可解释心理健康指令(IMHI)数据集,这是第一个用于社交媒体可解释心理健康分析的多任务和多源指令调优数据集。基于IMHI数据集,我们提出了MentaLLaMA,这是第一个用于可解释心理健康分析的开源指令跟随LLM。MentaLLaMA可以对社交媒体数据进行心理健康分析,并为其预测生成高质量的解释。我们还引入了第一个全面的可解释心理健康分析评估基准,包含19K测试样本,涵盖8个任务和10个测试集。我们的贡献在以下两篇论文中呈现:

MentaLLaMA论文 | 评估论文

MentaLLaMA模型

我们提供了5个在MentaLLaMA论文中评估的模型检查点:

  • MentaLLaMA-33B-lora:这个模型基于Vicuna-33B基础模型和完整的IMHI指令调优数据进行微调。训练数据涵盖8个心理健康分析任务。该模型可以遵循指令进行准确的心理健康分析,并为预测生成高质量的解释。由于计算资源的限制,我们使用LoRA参数高效微调技术训练MentaLLaMA-33B模型,显著减少了内存使用。

  • MentaLLaMA-chat-13B:这个模型基于Meta LLaMA2-chat-13B基础模型和完整的IMHI指令调优数据进行微调。训练数据涵盖8个心理健康分析任务。该模型可以遵循指令进行准确的心理健康分析,并为预测生成高质量的解释。由于模型大小,推理速度相对较慢。

  • MentaLLaMA-chat-7B | MentaLLaMA-chat-7B-hf:这个模型基于Meta LLaMA2-chat-7B基础模型和完整的IMHI指令调优数据进行微调。训练数据涵盖8个心理健康分析任务。该模型可以遵循指令进行心理健康分析,并为预测生成解释。

  • MentalBART:这个模型基于BART-large基础模型和完整的IMHI-completion数据进行微调。训练数据涵盖8个心理健康分析任务。该模型不能遵循指令,但可以以补全的方式进行心理健康分析并生成解释。这个模型的较小尺寸允许更快的推理和更容易的部署。

  • MentalT5:这个模型基于T5-large基础模型和完整的IMHI-completion数据进行微调。该模型不能遵循指令,但可以以补全的方式进行心理健康分析并生成解释。这个模型的较小尺寸允许更快的推理和更容易的部署。

你可以使用Hugging Face Transformers库在你的Python项目中使用MentaLLaMA模型。以下是如何加载完全微调模型的简单示例:

from transformers import LlamaTokenizer, LlamaForCausalLM tokenizer = LlamaTokenizer.from_pretrained(MODEL_PATH) model = LlamaForCausalLM.from_pretrained(MODEL_PATH, device_map='auto')

在这个示例中,LlamaTokenizer用于加载分词器,LlamaForCausalLM用于加载模型。device_map='auto'参数用于在GPU可用时自动使用GPU。MODEL_PATH表示你的模型保存路径。

加载模型后,你可以生成响应。以下是一个示例:

prompt = 'Consider this post: "work, it has been a stressful week! hope it gets better." Question: What is the stress cause of this post?' inputs = tokenizer(prompt, return_tensors="pt") # Generate generate_ids = model.generate(inputs.input_ids, max_length=2048) tokenizer.batch_decode(generate_ids, skip_special_tokens=True, clean_up_tokenization_spaces=False)[0]

我们在MentaLLaMA-chat-13B上运行这些代码得到以下响应:

回答:这篇帖子显示的压力原因与工作有关。推理:帖子明确提到工作是压力源,并表达了希望情况好转的愿望。这表明发帖者正在经历与工作相关的压力,说明在这种情况下工作是他们压力的主要原因。

对于MentaLLaMA-33B-lora模型,由于我们的模型是基于Vicuna-33B基础模型的,你需要先在这里下载Vicuna-33B模型,并将其放在./vicuna-33B目录下。然后下载MentaLLaMA-33B-lora权重并将其放在./MentaLLaMA-33B-lora目录下。

from peft import AutoPeftModelForCausalLM from transformers import AutoTokenizer peft_model = AutoPeftModelForCausalLM.from_pretrained("./MentaLLaMA-33B-lora") tokenizer = AutoTokenizer.from_pretrained('./MentaLLaMA-33B-lora')

加载模型后,你可以生成响应。以下是一个示例:

input_data = ["考虑这个帖子:我终于内心死掉了,我不知道该如何感受恐惧、愤怒、悲伤...都消失了。我只感到麻木。问题:发帖人是否患有抑郁症?"] inputs = tokenizer(input_data, return_tensors="pt", padding=True) input_ids = inputs.input_ids generate_ids = peft_model.generate(**inputs, max_length=2048) truc_ids = generate_ids[0][len(input_ids[0]) :] response = tokenizer.decode(truc_ids, skip_special_tokens=True, spaces_between_special_tokens=False)

我们在MentaLLaMA-33B-lora上运行这些代码得到以下响应:

推理:是的,发帖人患有抑郁症。推理:发帖人的陈述表达了一种情感麻木和缺乏情感反应的感觉。这是抑郁症的常见症状,因为患有抑郁症的个体通常会经历情感感受能力的减弱。发帖人还提到感觉内心死掉,这进一步表明缺乏情感联系和绝望感,这两者在抑郁症中都很常见。总的来说,使用的语言和对情感麻木的描述与抑郁症常见的症状相符。

IMHI数据集

我们从10个现有数据集中收集原始数据,涵盖8个心理健康分析任务,并将它们转换为可解释心理健康分析的测试数据。10个测试集的统计信息如下:

名称任务数据分割数据来源标注是否发布
DR抑郁检测1,003/430/405Reddit弱标签
CLP抑郁检测456/196/299Reddit人工标注尚未
dreaddit压力检测2,837/300/414Reddit人工标注
SWMH心理障碍检测34,822/8,705/10,882Reddit弱标签尚未
T-SID心理障碍检测3,071/767/959Twitter弱标签尚未
SAD压力原因检测5,547/616/684SMS人工标注
CAMS抑郁/自杀原因检测2,207/320/625Reddit人工标注尚未
loneliness孤独检测2,463/527/531Reddit人工标注尚未
MultiWD健康维度检测15,744/1,500/2,441Reddit人工标注
IRF人际风险因素检测3,943/985/2,113Reddit人工标注

训练数据

我们介绍了IMHI,这是第一个用于社交媒体上可解释心理健康分析的多任务和多源指令调优数据集。 我们目前发布了以下数据集的训练和评估数据:DR、dreaddit、SAD、MultiWD和IRF。指令数据位于

/train_data/instruction_data

这些项目很容易理解:query行表示问题,gpt-3.5-turbo行表示我们修改和评估的ChatGPT预测和解释。gpt-3.5-turbo被用作评估的黄金响应。

为了便于在没有指令跟随能力的模型上进行训练,我们还发布了部分IMHI-completion的测试数据。数据位于

/train_data/complete_data

文件布局与指令调优数据相同。

评估基准

我们引入了第一个包含19K测试样本的全面可解释心理健康分析评估基准。所有测试数据都已发布。指令数据位于

/test_data/test_instruction

这些项目很容易理解:query行表示问题,gpt-3.5-turbo行表示我们修改和评估的ChatGPT预测和解释。gpt-3.5-turbo被用作评估的黄金响应。

为了便于在没有指令跟随能力的模型上进行测试,我们还发布了部分IMHI-completion的测试数据。数据位于

/test_data/test_complete

文件布局与指令调优数据相同。

模型评估

响应生成

要在IMHI基准上评估你训练的模型,首先加载你的模型并为所有测试项生成响应。我们使用Hugging Face Transformers库加载模型。对于基于LLaMA的模型,你可以使用以下命令生成响应:

cd src
python IMHI.py --model_path MODEL_PATH --batch_size 8 --model_output_path OUTPUT_PATH --test_dataset IMHI --llama --cuda

MODEL_PATHOUTPUT_PATH分别表示模型保存路径和生成响应的保存路径。所有生成的响应将被放在../model_output下。一些生成的示例显示在

./examples/response_generation_examples

你也可以使用以下命令在IMHI-completion测试集上进行评估:

cd src
python IMHI.py --model_path MODEL_PATH --batch_size 8 --model_output_path OUTPUT_PATH --test_dataset IMHI-completion --llama --cuda

你也可以通过删除--llama参数来加载不基于LLaMA的模型。 在生成的示例中,goldens行表示参考解释,generated_text行表示你的模型生成的响应。

正确性评估

我们IMHI基准的第一个评估指标是评估模型生成的分类正确性。如果你的模型能够生成非常规范的响应,基于规则的分类器可以很好地为每个响应分配一个标签。我们在IMHI.py中提供了一个基于规则的分类器,你可以在响应生成过程中通过添加参数--rule_calculate来使用它。分类器需要以下模板:

[标签] 推理: [解释]

然而,由于大多数LLM都经过训练以生成多样化的响应,基于规则的标签分类器是不切实际的。例如,MentaLLaMA对SAD查询可能会有以下响应:

这篇帖子表明,发帖人的姐姐被诊断出患有卵巢癌,全家人都非常沮丧。这表明在这种情况下压力的原因是健康问题,具体是姐姐被诊断出患有卵巢癌。帖子没有提到任何其他潜在的压力原因,因此在这种情况下,健康问题是最合适的标签。

为了解决这个问题,在我们的MentaLLaMA论文中,我们基于MentalBERT训练了10个神经网络分类器,每个收集的原始数据集对应一个。这些分类器被训练用于根据解释分配分类标签。我们发布这10个分类器以便于未来在IMHI基准上进行评估。

所有训练的模型在IMHI测试数据上都达到了95%以上的准确率。在分配标签之前,请确保你已将输出文件转换为/exmaples/response_generation_examples的格式,并命名为DATASET.csv。将所有你想要标记的输出文件放在同一个DATA_PATH目录下。然后从以下链接下载相应的分类器模型:

模型下载链接: CAMS, CLP, DR, dreaddit, Irf, loneliness, MultiWD, SAD, swmh, t-sid 将所有下载的模型放在MODEL_PATH目录下,并以其数据集命名每个模型。例如,DR数据集的模型应放在/MODEL_PATH/DR下。现在你可以使用以下命令通过这些模型获取标签:

cd src
python label_inference.py --model_path MODEL_PATH --data_path DATA_PATH --data_output_path OUTPUT_PATH --cuda

其中MODEL_PATHDATA_PATH表示你指定的模型和数据目录,OUTPUT_PATH表示你的输出路径。处理后,输出文件的格式应与/examples/label_data_examples中的示例相同。如果你希望计算权重F1分数和准确率等指标,请在上述命令中添加--calculate参数。

解释质量评估

IMHI基准的第二个评估指标是评估生成解释的质量。我们评估论文中的结果显示,BART-score与人类在4个评估方面的注释有中等程度的相关性,并且优于其他自动评估指标。因此,我们使用BART-score来评估生成解释的质量。具体来说,你应首先使用IMHI.py脚本生成响应,并获得如examples/response_generation_examples中的响应目录。

首先,下载BART-score目录并将其放在/src下,然后下载BART-score检查点。然后使用以下命令用BART-score对你的响应进行评分:

cd src
python score.py --gen_dir_name DIR_NAME --score_method bart_score --cuda

DIR_NAME表示你生成的响应的目录名,应放在../model_output下。我们还提供其他评分方法。你可以将--score_method更改为'GPT3_score'、'bert_score'、'bleu'、'rouge'来使用这些指标。对于GPT-score,你需要先下载项目并将其放在/src下。

人工注释

我们发布了对AI生成解释的人工注释,以促进未来对可解释心理健康分析自动评估工具的对齐研究。基于这些人工评估结果,我们测试了各种现有自动评估指标与人类偏好的相关性。我们评估论文中的结果显示,BART-score在所有4个方面与人工注释有中等程度的相关性。

质量评估

在我们的评估论文中,我们手动标注了DR数据集的AIGC结果子集,从4个方面进行评估:流畅性、完整性、可靠性和整体评价。注释发布在以下目录中:

/human_evaluation/DR_annotation

我们在这里标注了163个ChatGPT为抑郁检测数据集DR生成的解释。文件chatgpt_data.csv包含121个ChatGPT正确分类的解释。chatgpt_false_data.csv包含42个ChatGPT错误分类的解释。我们还在gpt3_data.csv中包含了121个InstructionGPT-3正确分类的解释。

专家编写的黄金解释

在我们的MentaLLaMA论文中,我们邀请了一位量化心理学领域的专家为350个选定的帖子(每个原始数据集35个帖子)编写解释。这个黄金集用于准确评估LLM的解释生成能力。为促进未来研究,我们发布了以下数据集的专家编写解释:DR、dreaddit、SWMH、T-SID、SAD、CAMS、loneliness、MultiWD和IRF(每个35个样本)。数据发布在以下目录中:

/human_evaluation/test_instruction_expert

专家编写的解释经过处理,遵循与其他测试数据集相同的格式,以方便模型评估。你可以使用类似于响应生成的命令在专家编写的黄金解释上测试你的模型。例如,你可以按如下方式测试基于LLaMA的模型:

cd src
python IMHI.py --model_path MODEL_PATH --batch_size 8 --model_output_path OUTPUT_PATH --test_dataset expert --llama --cuda

引用

如果你使用了评估论文中的人工注释或分析,请引用:

@inproceedings{yang2023towards,
  title={Towards interpretable mental health analysis with large language models},
  author={Yang, Kailai and Ji, Shaoxiong and Zhang, Tianlin and Xie, Qianqian and Kuang, Ziyan and Ananiadou, Sophia},
  booktitle={Proceedings of the 2023 Conference on Empirical Methods in Natural Language Processing},
  pages={6056--6077},
  year={2023}
}

如果你在工作中使用了MentaLLaMA,请引用:

@article{yang2023mentalllama,
  title={MentalLLaMA: Interpretable Mental Health Analysis on Social Media with Large Language Models},
  author={Yang, Kailai and Zhang, Tianlin and Kuang, Ziyan and Xie, Qianqian and Ananiadou, Sophia},
  journal={arXiv preprint arXiv:2309.13567},
  year={2023}
}

许可

MentaLLaMA采用[MIT]许可。请在MIT文件中查看更多详情。

编辑推荐精选

AEE

AEE

AI Excel全自动制表工具

AEE 在线 AI 全自动 Excel 编辑器,提供智能录入、自动公式、数据整理、图表生成等功能,高效处理 Excel 任务,提升办公效率。支持自动高亮数据、批量计算、不规则数据录入,适用于企业、教育、金融等多场景。

UI-TARS-desktop

UI-TARS-desktop

基于 UI-TARS 视觉语言模型的桌面应用,可通过自然语言控制计算机进行多模态操作。

UI-TARS-desktop 是一款功能强大的桌面应用,基于 UI-TARS(视觉语言模型)构建。它具备自然语言控制、截图与视觉识别、精确的鼠标键盘控制等功能,支持跨平台使用(Windows/MacOS),能提供实时反馈和状态显示,且数据完全本地处理,保障隐私安全。该应用集成了多种大语言模型和搜索方式,还可进行文件系统操作。适用于需要智能交互和自动化任务的场景,如信息检索、文件管理等。其提供了详细的文档,包括快速启动、部署、贡献指南和 SDK 使用说明等,方便开发者使用和扩展。

Wan2.1

Wan2.1

开源且先进的大规模视频生成模型项目

Wan2.1 是一个开源且先进的大规模视频生成模型项目,支持文本到图像、文本到视频、图像到视频等多种生成任务。它具备丰富的配置选项,可调整分辨率、扩散步数等参数,还能对提示词进行增强。使用了多种先进技术和工具,在视频和图像生成领域具有广泛应用前景,适合研究人员和开发者使用。

爱图表

爱图表

全流程 AI 驱动的数据可视化工具,助力用户轻松创作高颜值图表

爱图表(aitubiao.com)就是AI图表,是由镝数科技推出的一款创新型智能数据可视化平台,专注于为用户提供便捷的图表生成、数据分析和报告撰写服务。爱图表是中国首个在图表场景接入DeepSeek的产品。通过接入前沿的DeepSeek系列AI模型,爱图表结合强大的数据处理能力与智能化功能,致力于帮助职场人士高效处理和表达数据,提升工作效率和报告质量。

Qwen2.5-VL

Qwen2.5-VL

一款强大的视觉语言模型,支持图像和视频输入

Qwen2.5-VL 是一款强大的视觉语言模型,支持图像和视频输入,可用于多种场景,如商品特点总结、图像文字识别等。项目提供了 OpenAI API 服务、Web UI 示例等部署方式,还包含了视觉处理工具,有助于开发者快速集成和使用,提升工作效率。

HunyuanVideo

HunyuanVideo

HunyuanVideo 是一个可基于文本生成高质量图像和视频的项目。

HunyuanVideo 是一个专注于文本到图像及视频生成的项目。它具备强大的视频生成能力,支持多种分辨率和视频长度选择,能根据用户输入的文本生成逼真的图像和视频。使用先进的技术架构和算法,可灵活调整生成参数,满足不同场景的需求,是文本生成图像视频领域的优质工具。

WebUI for Browser Use

WebUI for Browser Use

一个基于 Gradio 构建的 WebUI,支持与浏览器智能体进行便捷交互。

WebUI for Browser Use 是一个强大的项目,它集成了多种大型语言模型,支持自定义浏览器使用,具备持久化浏览器会话等功能。用户可以通过简洁友好的界面轻松控制浏览器智能体完成各类任务,无论是数据提取、网页导航还是表单填写等操作都能高效实现,有利于提高工作效率和获取信息的便捷性。该项目适合开发者、研究人员以及需要自动化浏览器操作的人群使用,在 SEO 优化方面,其关键词涵盖浏览器使用、WebUI、大型语言模型集成等,有助于提高网页在搜索引擎中的曝光度。

xiaozhi-esp32

xiaozhi-esp32

基于 ESP32 的小智 AI 开发项目,支持多种网络连接与协议,实现语音交互等功能。

xiaozhi-esp32 是一个极具创新性的基于 ESP32 的开发项目,专注于人工智能语音交互领域。项目涵盖了丰富的功能,如网络连接、OTA 升级、设备激活等,同时支持多种语言。无论是开发爱好者还是专业开发者,都能借助该项目快速搭建起高效的 AI 语音交互系统,为智能设备开发提供强大助力。

olmocr

olmocr

一个用于 OCR 的项目,支持多种模型和服务器进行 PDF 到 Markdown 的转换,并提供测试和报告功能。

olmocr 是一个专注于光学字符识别(OCR)的 Python 项目,由 Allen Institute for Artificial Intelligence 开发。它支持多种模型和服务器,如 vllm、sglang、OpenAI 等,可将 PDF 文件的页面转换为 Markdown 格式。项目还提供了测试框架和 HTML 报告生成功能,方便用户对 OCR 结果进行评估和分析。适用于科研、文档处理等领域,有助于提高工作效率和准确性。

飞书多维表格

飞书多维表格

飞书多维表格 ×DeepSeek R1 满血版

飞书多维表格联合 DeepSeek R1 模型,提供 AI 自动化解决方案,支持批量写作、数据分析、跨模态处理等功能,适用于电商、短视频、影视创作等场景,提升企业生产力与创作效率。关键词:飞书多维表格、DeepSeek R1、AI 自动化、批量处理、企业协同工具。

下拉加载更多