? 2024년 3월 2일 IMHI 벤치마크에 대한 테스트 데이터 전체 공개.
? 2024년 2월 1일 MentaLLaMA 논문: "MentaLLaMA: 대규모 언어 모델을 사용한 소셜 미디어에 대한 해석 가능한 정신 건강 분석"이 WWW 2024에 채택되었습니다!
? 2023년 10월 31일 Vicuna-33B 및 전체 IMHI 데이터 세트를 기반으로 하지만 계산 리소스로 인해 LoRA로 훈련된 MentaLLaMA의 33B 버전인 MentaLLaMA-33B-lora 모델을 출시합니다!
? 2023년 10월 13일 DR, dreaddit, SAD, MultiWD 및 IRF 데이터세트에 대한 교육 데이터를 출시합니다. 앞으로 더 많은 내용이 공개될 예정이니 계속 지켜봐 주시기 바랍니다!
? 2023년 10월 7일 우리의 평가 논문: "대규모 언어 모델을 이용한 해석 가능한 정신 건강 분석을 향하여"가 EMNLP 2023 메인 컨퍼런스에서 장편 논문으로 채택되었습니다!
이 저장소와 해당 콘텐츠는 비임상 연구용으로만 제공됩니다. 어떤 자료도 실제 진단이나 조언을 구성하지 않으며, 도움을 구하는 사람은 전문 정신과 의사나 임상 실무자의 도움을 받아야 합니다. 예측 및 설명의 정확성, 완전성 또는 유용성에 관해 명시적이든 묵시적이든 어떠한 보증도 제공되지 않습니다. 저자와 기여자는 여기에 있는 정보의 사용으로 인해 발생하는 오류, 누락 또는 결과에 대해 책임을 지지 않습니다. 사용자는 임상 관련 결정을 내리기 전에 스스로 판단하고 전문가와 상담해야 합니다. 이 저장소에 포함된 소프트웨어와 정보를 사용하는 데 따른 위험은 전적으로 사용자가 부담합니다.
IMHI 데이터 세트를 구축하기 위해 수집된 원시 데이터 세트는 Reddit 및 Twitter와 같은 공개 소셜 미디어 플랫폼에서 가져온 것이며, 당사는 사용자 개인 정보를 보호하고 모든 정신 건강 관련 텍스트에 익명성이 적절하게 적용되도록 보장하기 위해 개인 정보 보호 프로토콜과 윤리 원칙을 엄격히 준수합니다. . 또한 오용을 최소화하기 위해 우리 문서에 제공된 모든 예제는 적절한 위장 방식을 사용하여 다른 말로 표현되고 난독화되었습니다.
또한, 최근 연구에 따르면 LLM은 성별 격차와 같은 잠재적 편견을 초래할 수 있습니다. 한편, 일부 잘못된 예측 결과, 부적절한 설명, 과도한 일반화는 현재 LLM의 잠재적인 위험을 보여줍니다. 따라서 모델을 실제 시나리오 정신 건강 모니터링 시스템에 적용하는 데는 여전히 많은 과제가 있습니다.
이 저장소의 정보를 사용하거나 액세스함으로써 귀하는 모든 청구 또는 손해로부터 작성자, 기여자 및 관련 조직이나 개인을 면책하고 방어하며 해를 끼치지 않을 것에 동의합니다.
이 프로젝트는 LLM(대형 언어 모델)을 사용하여 해석 가능한 정신 건강 분석을 위한 우리의 노력을 보여줍니다. 초기 연구에서 우리는 정신 건강 분석에 대한 설명 생성에 대한 ChatGPT 및 GPT-4와 같은 최신 LLM의 제로샷/퓨샷 성능을 종합적으로 평가했습니다. 연구 결과를 바탕으로 우리는 소셜 미디어에서 해석 가능한 정신 건강 분석을 위한 최초의 다중 작업 및 다중 소스 명령 조정 데이터 세트인 105K 명령 샘플을 사용하여 해석 가능한 정신 건강 교육(IMHI) 데이터 세트를 구축했습니다. IMHI 데이터 세트를 기반으로 우리는 해석 가능한 정신 건강 분석을 위한 최초의 오픈 소스 지침 준수 LLM인 MentaLLaMA를 제안합니다. MentaLLaMA는 소셜 미디어 데이터에 대한 정신 건강 분석을 수행하고 예측에 대한 고품질 설명을 생성할 수 있습니다. 또한 8개 작업과 10개 테스트 세트를 다루는 19K 테스트 샘플을 사용하여 해석 가능한 정신 건강 분석을 위한 최초의 전체적인 평가 벤치마크를 소개합니다. 우리의 기여는 다음 2개의 논문에 제시되어 있습니다:
MentaLLaMA 종이 | 평가서
MentaLLaMA 논문에서 평가된 5가지 모델 체크포인트를 제공합니다.
MentaLLaMA-33B-lora: 이 모델은 Vicuna-33B 기반 모델과 전체 IMHI 명령어 튜닝 데이터를 기반으로 미세 조정되었습니다. 훈련 데이터는 8가지 정신 건강 분석 작업을 다룹니다. 모델은 지침을 따라 정확한 정신 건강 분석을 수행하고 예측에 대한 고품질 설명을 생성할 수 있습니다. 계산 리소스의 제한으로 인해 PeFT 기술 LoRA를 사용하여 MentaLLaMA-33B 모델을 교육하여 메모리 사용량을 크게 줄였습니다.
MentaLLaMA-chat-13B: 이 모델은 Meta LLaMA2-chat-13B 기반 모델과 전체 IMHI 명령어 튜닝 데이터를 기반으로 미세 조정되었습니다. 훈련 데이터는 8가지 정신 건강 분석 작업을 다룹니다. 모델은 지침을 따라 정확한 정신 건강 분석을 수행하고 예측에 대한 고품질 설명을 생성할 수 있습니다. 모델 크기로 인해 추론이 상대적으로 느립니다.
MentaLLaMA-채팅-7B| MentaLLaMA-chat-7B-hf: 이 모델은 Meta LLaMA2-chat-7B 기반 모델과 전체 IMHI 명령어 튜닝 데이터를 기반으로 미세 조정되었습니다. 훈련 데이터는 8가지 정신 건강 분석 작업을 다룹니다. 모델은 지침에 따라 정신 건강을 분석하고 예측에 대한 설명을 생성할 수 있습니다.
MentalBART: 이 모델은 BART 대형 기초 모델과 전체 IMHI 완료 데이터를 기반으로 미세 조정되었습니다. 훈련 데이터는 8가지 정신 건강 분석 작업을 다룹니다. 모델은 지침을 따를 수 없지만 정신 건강 분석을 수행하고 완료 기반 방식으로 설명을 생성할 수 있습니다. 이 모델의 크기가 작을수록 더 빠른 추론과 더 쉬운 배포가 가능합니다.
MentalT5: 이 모델은 T5-large 기초 모델과 전체 IMHI 완료 데이터를 기반으로 미세 조정되었습니다. 모델은 지침을 따를 수 없지만 정신 건강 분석을 수행하고 완료 기반 방식으로 설명을 생성할 수 있습니다. 이 모델의 크기가 작을수록 더 빠른 추론과 더 쉬운 배포가 가능합니다.
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를 자동으로 사용하는 데 사용됩니다. 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 | 레딧 | 약한 라벨 | 예 |
CLP | 우울증 감지 | 456/196/299 | 레딧 | 인간 주석 | 아직 아님 |
무서운 | 스트레스 감지 | 2,837/300/414 | 레딧 | 인간 주석 | 예 |
SWMH | 정신 장애 감지 | 34,822/8,705/10,882 | 레딧 | 약한 라벨 | 아직 아님 |
T-SID | 정신 장애 감지 | 3,071/767/959 | 지저귀다 | 약한 라벨 | 아직 아님 |
슬픈 | 스트레스 원인 탐지 | 5,547/616/684 | SMS | 인간 주석 | 예 |
캠 | 우울증/자살 원인 탐지 | 2,207/320/625 | 레딧 | 인간 주석 | 아직 아님 |
외로움 | 외로움 감지 | 2,463/527/531 | 레딧 | 인간 주석 | 아직 아님 |
다중WD | 웰니스 차원 감지 | 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
파일 레이아웃은 명령어 튜닝 데이터와 동일합니다.
19,000개의 테스트 샘플을 사용하여 해석 가능한 정신 건강 분석을 위한 최초의 전체적인 평가 벤치마크를 소개합니다. 모든 테스트 데이터가 공개되었습니다. 명령 데이터는 아래에 저장됩니다.
/test_data/test_instruction
항목은 쉽게 따라갈 수 있습니다. query
행은 질문을 나타내고, gpt-3.5-turbo
행은 ChatGPT에서 수정되고 평가된 예측과 설명을 나타냅니다. gpt-3.5-turbo
평가를 위한 골든 응답으로 사용됩니다.
지침을 따르는 능력이 없는 모델에 대한 테스트를 용이하게 하기 위해 IMHI 완료를 위한 테스트 데이터의 일부도 공개합니다. 데이터는 아래에 놓입니다.
/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]
그러나 대부분의 LLM은 다양한 응답을 생성하도록 훈련되었으므로 규칙 기반 레이블 분류기는 비실용적입니다. 예를 들어 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개의 신경망 분류기를 훈련합니다. 분류자는 설명에 따라 분류 라벨을 할당하도록 훈련됩니다. 우리는 IMHI 벤치마크에 대한 향후 평가를 용이하게 하기 위해 이러한 10개의 분류자를 출시합니다.
훈련된 모든 모델은 IMHI 테스트 데이터에서 95% 이상의 정확도를 달성합니다. 레이블을 할당하기 전에 출력 파일을 /exmaples/response_generation_examples
형식으로 전송하고 이름을 DATASET.csv
로 지정했는지 확인하세요. 레이블을 지정하려는 모든 출력 파일을 동일한 DATA_PATH 디렉토리에 넣으십시오. 그런 다음 다음 링크에서 해당 분류기 모델을 다운로드하십시오.
모델 다운로드 링크: CAMS, CLP, DR, dreaddit, Irf, lonely, 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
의 예제와 같은 형식을 가져야 합니다. Weight-F1 점수 및 정확도와 같은 지표를 계산하려면 위 명령에 --calculate
인수를 추가하세요.
IMHI 벤치마크의 두 번째 평가 지표는 생성된 설명의 품질을 평가하는 것입니다. 평가 논문의 결과에 따르면 BART 점수는 4가지 인간 평가 측면에서 인간 주석과 어느 정도 상관관계가 있으며 다른 자동 평가 지표보다 성능이 뛰어납니다. 따라서 우리는 생성된 설명의 품질을 평가하기 위해 BART 점수를 활용합니다. 특히, 먼저 IMHI.py
스크립트를 사용하여 응답을 생성하고 examples/response_generation_examples
에서와 같이 응답 디렉토리를 얻어야 합니다. 먼저 BART 점수 디렉터리를 다운로드하여 /src
아래에 놓은 다음 BART 점수 체크포인트를 다운로드하세요. 그런 다음 다음 명령을 사용하여 BART 점수로 응답의 점수를 매깁니다.
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 점수의 경우 먼저 프로젝트를 다운로드하여 /src
아래에 넣어야 합니다.
우리는 해석 가능한 정신 건강 분석을 위한 자동 평가 도구 조정에 대한 향후 연구를 촉진하기 위해 AI 생성 설명에 대한 인간 주석을 공개합니다. 이러한 인간의 평가 결과를 바탕으로 인간의 선호도와의 상관관계에 대한 기존의 다양한 자동 평가 지표를 테스트했습니다. 평가 논문의 결과는 BART 점수가 4가지 측면 모두에서 인간 주석과 중간 정도의 상관관계가 있음을 보여줍니다.
평가 문서에서 우리는 유창성, 완전성, 신뢰성 및 전체라는 4가지 측면에서 DR 데이터 세트에 대한 AIGC 결과의 하위 집합에 수동으로 레이블을 지정했습니다. 주석은 다음 디렉토리에서 공개됩니다.
/human_evaluation/DR_annotation
여기서는 우울증 감지 데이터 세트 DR에 대해 ChatGPT에서 생성된 163개의 설명을 표시했습니다. chatgpt_data.csv
파일에는 ChatGPT에서 올바르게 분류한 121개의 설명이 포함되어 있습니다. chatgpt_false_data.csv
에는 ChatGPT에서 잘못 분류한 42개의 설명이 포함되어 있습니다. 또한 gpt3_data.csv
에는 InstructionGPT-3에 의해 올바르게 분류된 121개의 설명이 포함되어 있습니다.
MentaLLaMA 논문에서 우리는 정량 심리학을 전공한 도메인 전문가 한 명을 초대하여 350개의 선택된 게시물(각 원시 데이터 세트에 대해 35개의 게시물)에 대한 설명을 작성했습니다. 골든 세트는 LLM의 설명 생성 능력을 자동으로 정확하게 평가하는 데 사용됩니다. 향후 연구를 촉진하기 위해 DR, dreaddit, SWMH, T-SID, SAD, CAMS, lonely, 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 파일을 참조하세요.