? 2024 年 3 月 2 日IMHI 基準測試資料完整發布。
? 2024年2月1日,我們的 MentaLLaMA 論文:「MentaLLaMA: Interpretable Mental Health Analysis on Social Media with Large Language Models」 已被 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日我們的評估論文:「Towards Interpretable Mental Health Analysis with Large Language Models」已被 EMNLP 2023 主會議長論文接收!
此儲存庫及其內容僅供非臨床研究使用。這些資料均不構成實際的診斷或建議,尋求協助者應獲得專業精神科醫師或臨床醫師的協助。對於預測和解釋的準確性、完整性或實用性,不提供任何明示或暗示的保證。作者和貢獻者對因使用本文資訊而產生的任何錯誤、遺漏或任何後果不承擔任何責任。使用者在做出任何臨床相關決定之前應自行判斷並諮詢專業人士。使用此儲存庫中包含的軟體和資訊的風險完全由使用者自行承擔。
建立我們的 IMHI 資料集所收集的原始資料集來自 Reddit 和 Twitter 等公共社交媒體平台,我們嚴格遵循隱私協議和道德原則,以保護用戶隱私並保證在所有與心理健康相關的文本中正確應用匿名。 。此外,為了最大限度地減少誤用,我們論文中提供的所有範例都使用適度的偽裝方案進行了解釋和混淆。
此外,最近的研究表明法學碩士可能會引入一些潛在的偏見,例如性別差距。同時,一些錯誤的預測結果、不恰當的解釋和過度概括也說明了當前LLM的潛在風險。因此,將該模型應用於真實場景的心理健康監測系統仍然存在許多挑戰。
透過使用或存取此儲存庫中的信息,您同意對作者、貢獻者以及任何附屬組織或個人進行任何和所有索賠或損害的賠償、辯護並使其免受損害。
該計畫展示了我們利用大型語言模型 (LLM) 進行可解釋心理健康分析的努力。在早期工作中,我們全面評估了 ChatGPT 和 GPT-4 等最新 LLM 在產生心理健康分析解釋方面的零樣本/少樣本表現。基於這些發現,我們建立了包含 105K 指令樣本的可解釋心理健康指令 (IMHI) 資料集,這是第一個用於社群媒體上可解釋心理健康分析的多任務和多源指令調整資料集。基於 IMHI 資料集,我們提出了 MentaLLaMA,這是第一個用於可解釋心理健康分析的開源指令遵循法學碩士。 MentaLLaMA 可以對社群媒體數據進行心理健康分析,並為其預測產生高品質的解釋。我們還引入了第一個用於可解釋心理健康分析的整體評估基準,包含 19K 測試樣本,涵蓋 8 個任務和 10 個測試集。我們的貢獻體現在這兩篇論文中:
MentaLLaMA 論文 |評估論文
我們提供了 MentaLLaMA 論文中評估的 5 個模型檢查點:
MentaLLaMA-33B-lora:模型基於 Vicuna-33B 基礎模型和完整的 IMHI 指令調整資料進行微調。訓練資料涵蓋8項心理健康分析任務。該模型可以按照指令進行準確的心理健康分析並為預測產生高品質的解釋。由於計算資源的限制,我們使用PeFT技術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大型基礎模型和完整的IMHI完成資料進行微調。該模型無法遵循指令,但可以進行心理健康分析並以基於完成的方式產生解釋。此模型的尺寸較小,推理速度更快,部署也更容易。
您可以在 Python 專案中將 MentaLLaMA 模型與 Hugging Face Transformers 函式庫結合使用。以下是如何載入完全微調的模型的簡單範例:
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(如果可用)。 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 上執行這些程式碼得到以下回應:
Answer: This post shows the stress cause related to work. Reasoning: The post explicitly mentions work as being stressful and expresses a hope that it gets better. This indicates that the poster is experiencing stress in relation to their work, suggesting that work is the primary cause of their stress in this instance.
對於 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 = [ "Consider this post: I'm finally dead inside and I don't know how to feel about it Fear, Anger, Sadness... It's all gone. I just feel numb. Question: Does the poster suffer from depression?" ]
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 上運行這些程式碼得到以下回應:
Reasoning: Yes, the poster suffers from depression. Reasoning: The poster's statement expresses a sense of emotional numbness and a lack of emotional response. This is a common symptom of depression, as individuals with depression often experience a diminished ability to feel emotions. The poster also mentions feeling dead inside, which further suggests a lack of emotional connection and a sense of hopelessness, both of which are common in depression. Overall, the language used and the description of emotional numbness align with symptoms commonly associated with depression.
我們從涵蓋 8 個心理健康分析任務的 10 個現有數據集中收集原始數據,並將其轉換為測試數據以進行可解釋的心理健康分析。 10個測試集統計如下:
姓名 | 任務 | 資料分割 | 數據來源 | 註解 | 已發布 |
---|---|---|---|---|---|
DR | 憂鬱症檢測 | 1,003/430/405 | 紅迪網 | 弱標籤 | 是的 |
中電 | 憂鬱症檢測 | 456/196/299 | 紅迪網 | 人工註釋 | 還沒有 |
恐怖迪特 | 壓力檢測 | 2,837/300/414 | 紅迪網 | 人工註釋 | 是的 |
西南馬薩諸塞州 | 精神障礙檢測 | 34,822/8,705/10,882 | 紅迪網 | 弱標籤 | 還沒有 |
T-SID | 精神障礙檢測 | 3,071/767/959 | 嘰嘰喳喳 | 弱標籤 | 還沒有 |
傷心 | 壓力原因檢測 | 5,547/616/684 | 簡訊 | 人工註釋 | 是的 |
電腦輔助管理系統 | 憂鬱/自殺原因檢測 | 2,207/320/625 | 紅迪網 | 人工註釋 | 還沒有 |
孤獨 | 孤獨感偵測 | 2,463/527/531 | 紅迪網 | 人工註釋 | 還沒有 |
多輪驅動 | 健康維度檢測 | 15,744/1,500/2,441 | 紅迪網 | 人工註釋 | 是的 |
IRF | 人際風險因素檢測 | 3,943/985/2,113 | 紅迪網 | 人工註釋 | 是的 |
我們推出了 IMHI,這是第一個多任務和多源指令調整資料集,用於社交媒體上可解釋的心理健康分析。我們目前發布了以下資料集的訓練和評估資料:DR、dreaddit、SAD、MultiWD 和 IRF。指令資料放在下面
/train_data/instruction_data
這些項目很容易理解: query
行表示問題, gpt-3.5-turbo
行表示我們修改和評估的來自 ChatGPT 的預測和解釋。 gpt-3.5-turbo
被用作評估的黃金回應。
為了方便對沒有指令跟隨能力的模型進行訓練,我們也發布了 IMHI 完成的部分測試資料。數據放在下面
/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_PATH
和OUTPUT_PATH
表示模型保存路徑和產生回應的保存路徑。所有產生的回應都將放在../model_output
下。一些產生的範例顯示在
./examples/response_generation_examples
您也可以使用以下命令使用 IMHI 完成測試集進行評估:
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
在回應產生過程中使用它。分類器需要以下模板:
[label] Reasoning: [explanation]
然而,由於大多數法學碩士都接受過訓練以產生不同的回應,因此基於規則的標籤分類器是不切實際的。例如,MentaLLaMA 對於 SAD 查詢可以有以下回應:
This post indicates that the poster's sister has tested positive for ovarian cancer and that the family is devastated. This suggests that the cause of stress in this situation is health issues, specifically the sister's diagnosis of ovarian cancer. The post does not mention any other potential stress causes, making health issues the most appropriate label in this case.
為了解決這個問題,在 MentaLLaMA 論文中,我們基於 MentalBERT 訓練了 10 個神經網路分類器,每個收集到的原始資料集都有一個分類器。分類器經過訓練,可以在給予解釋的情況下分配分類標籤。我們發布這 10 個分類器,以方便未來對 IMHI 基準的評估。
所有經過訓練的模型在 IMHI 測試資料上的準確率均超過 95%。在指派標籤之前,請確保已以/exmaples/response_generation_examples
格式傳輸輸出檔案並命名為DATASET.csv
。將要標記的所有輸出檔案放在同一 DATA_PATH 目錄下。然後從以下鏈接下載相應的分類器模型:
模型下載連結:CAMS、CLP、DR、dreaddit、Irf、loneiness、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_PATH
、 DATA_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
下。
我們發布對人工智慧產生的解釋的人工註釋,以促進未來的研究,調整自動評估工具以進行可解釋的心理健康分析。基於這些人類評估結果,我們測試了各種現有的自動評估指標與人類偏好的相關性。我們的評估論文中的結果表明,BART-score 在所有 4 個方面都與人類註釋具有中等程度的相關性。
在我們的評估論文中,我們從四個方面手動標記了 DR 資料集的 AIGC 結果子集:流暢性、完整性、可靠性和整體性。註釋在此目錄中發布:
/human_evaluation/DR_annotation
我們為憂鬱症檢測資料集 DR 標記了 163 個 ChatGPT 產生的解釋。檔案chatgpt_data.csv
包含由 ChatGPT 正確分類的 121 個解釋。 chatgpt_false_data.csv
包含 42 個被 ChatGPT 錯誤分類的解釋。我們也在gpt3_data.csv
中包含了由InstructionGPT-3正確分類的 121 個解釋。
在我們的 MentaLLaMA 論文中,我們邀請了一位定量心理學專業的領域專家為 350 個選定的帖子(每個原始數據集 35 個帖子)撰寫解釋。黃金集用於自動準確評估法學碩士的解釋生成能力。為了方便未來的研究,我們發布了以下資料集的專家編寫的解釋:DR、dreaddit、SWMH、T-SID、SAD、CAMS、loneiness、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{yang2023 MentalLLaMA ,
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 文件中找到更多詳細資訊。