Project Icon

MentalLLaMA

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

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

1国家文本挖掘中心  2曼彻斯特大学  3赫尔辛基大学  4产业技术综合研究所人工智能研究中心  5武汉大学  6江西师范大学 
NaCTeMUoM University Logohelsinki Logoairc LogoWuhan University Logo

新闻

📢 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文件中查看更多详情。

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号