基于Mistral-7B-Instruct-v0.2微调的心理健康助手,通过心理学家与用户对话数据训练,可解答各类心理健康问题,提供专业建议。【此简介由AI生成】
以下内容由 AI 翻译,如有问题请 点此提交 issue 反馈
license: apache-2.0 library_name: peft tags:
- generated_from_trainer
- mistral
- text-generation
- transformers
- Inference Endpoints
- pytorch
- text-generation-inference base_model: mistralai/Mistral-7B-Instruct-v0.2 model-index:
- name: mental-health-mistral-7b-instructv0.2-finetuned-V2 results: [] datasets:
- Amod/mental_health_counseling_conversations
mental-health-mistral-7b-instructv0.2-finetuned-V2
该模型是基于mistralai/Mistral-7B-Instruct-v0.2在mental_health_counseling_conversations数据集上微调的版本。
在评估集上达到以下效果:
- 损失值:0.6432
模型描述
这是一个基于心理医生与用户间心理健康对话语料微调的Mistral-7B-Instruct-v0.2模型。
旨在创建名为"Connor"的心理健康助手,能够根据心理医生的专业回应解答用户问题。
训练与评估数据
模型基于心理医生与来访者的对话语料进行微调,采用上下文-回应对的形式构建训练集。该数据集汇集来自两个在线心理咨询平台的问题与专业回答,涵盖广泛的心理健康主题,所有回答均由持证心理医生提供。
数据集来源:
训练超参数
训练过程中采用以下超参数:
- 学习率:0.0002
- 训练批大小:8
- 评估批大小:8
- 随机种子:42
- 优化器:Adam(betas=(0.9,0.999),epsilon=1e-08)
- 学习率调度器类型:cosine
- 学习率预热比例:0.05
- 训练轮次:3
- 混合精度训练:Native AMP
训练结果
| 训练损失 | 轮次 | 步数 | 验证损失 |
|---|---|---|---|
| 1.4325 | 1.0 | 352 | 0.9064 |
| 1.2608 | 2.0 | 704 | 0.6956 |
| 1.1845 | 3.0 | 1056 | 0.6432 |
使用指南
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
from peft import PeftConfig, PeftModel
base_model = "mistralai/Mistral-7B-Instruct-v0.2"
adapter = "GRMenon/mental-health-mistral-7b-instructv0.2-finetuned-V2"
# Load tokenizer
tokenizer = AutoTokenizer.from_pretrained(
base_model,
add_bos_token=True,
trust_remote_code=True,
padding_side='left'
)
# Create peft model using base_model and finetuned adapter
config = PeftConfig.from_pretrained(adapter)
model = AutoModelForCausalLM.from_pretrained(config.base_model_name_or_path,
load_in_4bit=True,
device_map='auto',
torch_dtype='auto')
model = PeftModel.from_pretrained(model, adapter)
device = "cuda" if torch.cuda.is_available() else "cpu"
model.to(device)
model.eval()
# Prompt content:
messages = [
{"role": "user", "content": "Hey Connor! I have been feeling a bit down lately.I could really use some advice on how to feel better?"}
]
input_ids = tokenizer.apply_chat_template(conversation=messages,
tokenize=True,
add_generation_prompt=True,
return_tensors='pt').to(device)
output_ids = model.generate(input_ids=input_ids, max_new_tokens=512, do_sample=True, pad_token_id=2)
response = tokenizer.batch_decode(output_ids.detach().cpu().numpy(), skip_special_tokens = True)
# Model response:
print(response[0])
框架版本
- PEFT 0.7.1
- Transformers 4.36.1
- Pytorch 2.0.0
- Datasets 2.1.0
- Tokenizers 0.15.0