Update README.md
Browse files
README.md
CHANGED
@@ -2,174 +2,138 @@
|
|
2 |
license: mit
|
3 |
language:
|
4 |
- zh
|
5 |
-
|
6 |
-
-
|
7 |
-
- rouge
|
8 |
-
- meteor
|
9 |
-
- perplexity
|
10 |
-
pipeline_tag: text-generation
|
11 |
tags:
|
12 |
-
-
|
13 |
---
|
14 |
-
# 中文心理健康支持对话数据集(SmileChat)与大模型(MeChat)
|
15 |
|
|
|
16 |
|
|
|
17 |
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
</div>
|
23 |
|
24 |
-
##
|
25 |
|
26 |
-
**
|
|
|
27 |
|
28 |
-
🎉🎉🎉 **MeChat** (**Me**ntal Health Support **Chat**bot)
|
29 |
|
30 |
-
|
31 |
|
32 |
-
|
33 |
|
34 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
35 |
|
36 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
37 |
|
38 |
-
|
39 |
|
40 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
41 |
|
42 |
-
**未来展望**:利用生成的数据来训练模型,并用于心理健康支持是一个不错的选择。但我们注意到,现有生成数据的对话轮数较短,与真实咨询数据的策略分布上存在一定的差距。因此,秉持让用户受益的原则,需要重点关注模型安全性能,包括自杀干预、敏感信息应对和避免错误信息等,我们任重道远。
|
43 |
|
44 |
-
|
45 |
|
|
|
|
|
|
|
46 |
|
47 |
-
## SMILE 方法
|
48 |
|
49 |
-
|
50 |
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
|
55 |
-
|
|
|
|
|
|
|
56 |
|
57 |
-
- client (来访者) == help-seeker (求助者)
|
58 |
|
59 |
-
|
60 |
|
61 |
-
|
|
|
|
|
|
|
|
|
62 |
|
63 |
-
https://huggingface.co/qiuhuachuan/MeChat
|
64 |
|
|
|
65 |
|
66 |
-
|
|
|
|
|
|
|
67 |
|
68 |
-
1. 配置环境
|
69 |
|
70 |
-
|
71 |
-
|
72 |
-
```
|
73 |
|
74 |
-
|
75 |
|
76 |
-
|
77 |
-
python MeChat.py
|
78 |
-
```
|
79 |
|
80 |
-
|
81 |
-
from transformers import AutoTokenizer, AutoModel
|
82 |
-
|
83 |
-
def get_dialogue_history(dialogue_history_list: list):
|
84 |
-
|
85 |
-
dialogue_history_tmp = []
|
86 |
-
for item in dialogue_history_list:
|
87 |
-
if item['role'] == 'counselor':
|
88 |
-
text = '咨询师:'+ item['content']
|
89 |
-
else:
|
90 |
-
text = '来访者:'+ item['content']
|
91 |
-
dialogue_history_tmp.append(text)
|
92 |
-
|
93 |
-
dialogue_history = '\n'.join(dialogue_history_tmp)
|
94 |
-
|
95 |
-
return dialogue_history + '\n' + '咨询师:'
|
96 |
-
|
97 |
-
def get_instruction(dialogue_history):
|
98 |
-
instruction = f'''现在你扮演一位专业的心理咨询师,你具备丰富的心理学和心理健康知识。你擅长运用多种心理咨询技巧,例如认知行为疗法原则、动机访谈技巧和解决问题导向的短期疗法。以温暖亲切的语气,展现出共情和对来访者感受的深刻理解。以自然的方式与来访者进行对话,避免过长或过短的回应,确保回应流畅且类似人类的对话。提供深层次的指导和洞察,使用具体的心理概念和例子帮助来访者更深入地探索思想和感受。避免教导式的回应,更注重共情和尊重来访者的感受。根据来访者的反馈调整回应,确保回应贴合来访者的情境和需求。请为以下的对话生成一个回复。
|
99 |
-
|
100 |
-
对话:
|
101 |
-
{dialogue_history}'''
|
102 |
-
|
103 |
-
return instruction
|
104 |
-
|
105 |
-
|
106 |
-
tokenizer = AutoTokenizer.from_pretrained('qiuhuachuan/MeChat', trust_remote_code=True)
|
107 |
-
model = AutoModel.from_pretrained('qiuhuachuan/MeChat', trust_remote_code=True).half().cuda()
|
108 |
-
model = model.eval()
|
109 |
-
|
110 |
-
dialogue_history_list = []
|
111 |
-
while True:
|
112 |
-
usr_msg = input('来访者:')
|
113 |
-
if usr_msg == '0':
|
114 |
-
exit()
|
115 |
-
else:
|
116 |
-
dialogue_history_list.append({
|
117 |
-
'role': 'client',
|
118 |
-
'content': usr_msg
|
119 |
-
})
|
120 |
-
dialogue_history = get_dialogue_history(dialogue_history_list=dialogue_history_list)
|
121 |
-
instruction = get_instruction(dialogue_history=dialogue_history)
|
122 |
-
response, history = model.chat(tokenizer, instruction, history=[], temperature=0.8, top_p=0.8)
|
123 |
-
print(f'咨询师:{response}')
|
124 |
-
dialogue_history_list.append({
|
125 |
-
'role': 'counselor',
|
126 |
-
'content': response
|
127 |
-
})
|
128 |
-
```
|
129 |
|
130 |
-
|
131 |
-
|
132 |
-
```txt
|
133 |
-
来访者:你好
|
134 |
-
咨询师:你好,很高兴能够帮助到你。你可以告诉我更多关于你的情况吗?
|
135 |
-
来访者:我最近睡眠很差怎么办?
|
136 |
-
咨询师:最近睡眠质量不好,你有没有尝试过一些方法来改善睡眠呢?
|
137 |
-
来访者:我可能最近晚上睡觉前总喜欢玩手机,越玩人就越兴奋
|
138 |
-
咨询师:晚上玩手机确实会刺激大脑,导致入睡困难。你可以尝试在睡觉前设定一个手机使用时间,逐渐减少玩手机的时间,以帮助放松入睡。
|
139 |
-
来访者:我应该设置一个晚上9点的闹钟,强制我不玩手机,让我的大脑开始放松。
|
140 |
-
咨询师:是的,设置一个晚上的闹钟是一个很好的方法。你可以尝试在9点之前放下手机,让自己进入放松的状态,然后逐渐入睡。
|
141 |
-
来访者:我 尝 试了一下,看看能否改善?
|
142 |
-
咨询师:很好,试试看吧。另外,你还可以尝试一些放松的技巧,比如深呼吸、冥想或者听一些轻柔的音乐来帮助你放松身心,帮助入睡。
|
143 |
-
来访者:非常感谢你的建议,我会去试试的
|
144 |
-
咨询师:不客气,希望这些方法能对你有所帮助。如果还有其他问题,随时都可以来找我倾诉。
|
145 |
-
```
|
146 |
|
147 |
-
|
148 |
|
149 |
-
|
150 |
|
151 |
-
|
152 |
|
153 |
-
|
154 |
|
155 |
-
|
156 |
-
convert_to_training_set.py
|
157 |
-
```
|
158 |
|
159 |
-
|
160 |
|
161 |
-
|
162 |
-
{
|
163 |
-
"instruction": "现在你扮演一位专业的心理咨询师,你具备丰富的心理学和心理健康知识。你擅长运用多种心理咨询技巧,例如认知行为疗法原则、动机访谈技巧和解决问题导向的短期疗法。以温暖亲切的语气,展现出共情和对来访者感受的深刻理解。以自然的方式与来访者进行对话,避免过长或过短的回应,确保回应流畅且类似人类的对话。提供深层次的指导和洞察,使用具体的心理概念和例子帮助来访者更深入地探索思想和感受。避免教导式的回应,更注重共情和尊重来访者的感受。根据来访者的反馈调整回应,确保回应贴合来访者的情境和需求。请为以下的对话生成一个回复。\n\n对话:\n来访者:高三后的迷茫,高考前的恐惧,能给我一些建议么?\n咨询师:看到你的提问感觉你很焦虑,这个状态在高中高压下很容易出现。我想说的是,我看到了你的决心。这点是很多人没有的!高考最重要的不是知识是心态。是必胜的心态!什么放松吧缓缓吧,都是站着说话不腰疼,保送的又不是我,我能放松什么?!我有我的目标,我怎么可能放弃!有目标就好办,计划!缺个计划,缺个时间合理配置的复习计划。\n来访者:你说的对,我是非常焦虑,确实需要调整心态。我也明白高考的心态很重要,但是要怎样才能真正拥有必胜的心态呢?\n咨询师:首先,你要明确自己的目标,既然你想考本科,那就要为此做好准备。然后,你需要制定一个合理的复习计划,根据自己的情况来安排每天的学习时间和内容。这样可以帮助你更好地掌控整个复习过程,减少焦虑感。\n来访者:我确实没有一个合理的复习计划,每天都觉得时间不够用,也不知道该从何开始。你能给我一些建议吗?\n咨询师:",
|
164 |
-
"output": "当然可以!你可以从高一开始,试试题海战术。每天多做一些题目,这样能够提高你的学习效率。同时,对于英语这门科目,多听多背是很重要的,数理化方面,可以做一些经典的题目,特别是那些类型经常考到的题目,多次反复做题。"
|
165 |
-
}
|
166 |
-
```
|
167 |
|
168 |
-
## 引用
|
169 |
|
170 |
-
|
171 |
|
172 |
-
```
|
173 |
@misc{qiu2023smile,
|
174 |
title={SMILE: Single-turn to Multi-turn Inclusive Language Expansion via ChatGPT for Mental Health Support},
|
175 |
author={Huachuan Qiu and Hongliang He and Shuai Zhang and Anqi Li and Zhenzhong Lan},
|
@@ -178,28 +142,4 @@ convert_to_training_set.py
|
|
178 |
archivePrefix={arXiv},
|
179 |
primaryClass={cs.CL}
|
180 |
}
|
181 |
-
```
|
182 |
-
|
183 |
-
## 免责声明
|
184 |
-
|
185 |
-
我们的心理健康支持对话机器人(以下简称"机器人")旨在为用户提供情感支持和心理健康建议。然而,机器人不是医疗保健专业人员,不能替代医生、心理医生或其他专业人士的意见、诊断、建议或治疗。
|
186 |
-
|
187 |
-
机器人提供的建议和信息是基于算法和机器学习技术,可能并不适用于所有用户或所有情况。因此,我们建议用户在使用机器人之前咨询医生或其他专业人员,了解是否适合使用此服务。
|
188 |
-
|
189 |
-
机器人并不保证提供的建议和信息的准确性、完整性、及时性或适用性。用户应自行承担使用机器人服务的所有风险。我们对用户使用机器人服务所产生的任何后果不承担任何责任,包括但不限于任何直接或间接的损失、伤害、精神疾病、财产损失或任何其他损害。
|
190 |
-
|
191 |
-
我们强烈建议用户在使用机器人服务时,遵循以下原则:
|
192 |
-
|
193 |
-
1. 机器人并不是医疗保健专业人士,不能替代医生、心理医生或其他专业人士的意见、诊断、建议或治疗。如果用户需要专业医疗或心理咨询服务,应寻求医生或其他专业人士的帮助。
|
194 |
-
|
195 |
-
2. 机器人提供的建议和信息仅供参考,用户应自己判断是否适合自己的情况和需求。如果用户对机器人提供的建议和信息有任何疑问或不确定,请咨询医生或其他专业人士的意见。
|
196 |
-
|
197 |
-
3. 用户应保持冷静、理性和客观,不应将机器人的建议和信息视为绝对真理或放弃自己的判断力。如果用户对机器人的建议和信息产生质疑或不同意,应停止使用机器人服务并咨询医生或其他专业人士的意见。
|
198 |
-
|
199 |
-
4. 用户应遵守机器人的使用规则和服务条款,不得利用机器人服务从事任何非法、违规或侵犯他人权益的行为。
|
200 |
-
|
201 |
-
5. 用户应保护个人隐私,不应在使用机器人服务时泄露个人敏感信息或他人隐私。
|
202 |
-
|
203 |
-
6. 平台收集的数据用于学术研究。
|
204 |
-
|
205 |
-
最后,我们保留随时修改、更新、暂停或终止机器人服务的权利,同时也保留对本免责声明进行修改、更新或补充的权利。如果用户继续使用机器人服务,即视为同意本免责声明的全部内容和条款。
|
|
|
2 |
license: mit
|
3 |
language:
|
4 |
- zh
|
5 |
+
base_model:
|
6 |
+
- THUDM/chatglm2-6b
|
|
|
|
|
|
|
|
|
7 |
tags:
|
8 |
+
- psychology
|
9 |
---
|
|
|
10 |
|
11 |
+
# Model Details
|
12 |
|
13 |
+
## Model Description
|
14 |
|
15 |
+
- **Developed by:** AITA
|
16 |
+
- **Model type:** Full-Precision Text Generation LLM (FP16 GGUF format)
|
17 |
+
- **Original Model:** https://huggingface.co/qiuhuachuan/MeChat
|
18 |
+
- **Precision:** FP16 (non-quantized full-precision version)
|
|
|
19 |
|
20 |
+
## Repository
|
21 |
|
22 |
+
- **GGUF Converter:** [llama.cpp](https://github.com/ggerganov/llama.cpp)
|
23 |
+
- **Model Hub:** https://huggingface.co/Slipstream-Max/Emollm-InternLM2.5-7B-chat-GGUF-fp16/
|
24 |
|
|
|
25 |
|
26 |
+
# Usage
|
27 |
|
28 |
+
## Method 1: llama.cpp Backend Server + Chatbox
|
29 |
|
30 |
+
**Step 1: Start .[llama.cpp](https://github.com/ggml-org/llama.cpp) Server**
|
31 |
+
```bash
|
32 |
+
./llama-server \
|
33 |
+
-m /path/to/model.gguf \
|
34 |
+
-c 2048 \ # Context length
|
35 |
+
--host 0.0.0.0 \ # Allow remote connections
|
36 |
+
--port 8080 \ # Server port
|
37 |
+
--n-gpu-layers 35 # GPU acceleration (if available)
|
38 |
+
```
|
39 |
|
40 |
+
**Step 2: Connect via Chatbox**
|
41 |
+
1. Download [Chatbox](https://github.com/Bin-Huang/chatbox)
|
42 |
+
2. Configure API endpoint:
|
43 |
+
```
|
44 |
+
API URL: http://localhost:8080
|
45 |
+
Model: (leave empty)
|
46 |
+
API Type: llama.cpp
|
47 |
+
```
|
48 |
+
3. Set generation parameters:
|
49 |
+
```json
|
50 |
+
{
|
51 |
+
"temperature": 0.7,
|
52 |
+
"max_tokens": 512,
|
53 |
+
"top_p": 0.9
|
54 |
+
}
|
55 |
+
```
|
56 |
|
57 |
+
## Method 2: LM Studio
|
58 |
|
59 |
+
1. Download [LM Studio](https://lmstudio.ai/)
|
60 |
+
2. Load GGUF file:
|
61 |
+
- Launch LM Studio
|
62 |
+
- Search Slipstream-Max/Emollm-InternLM2.5-7B-chat-GGUF-fp16
|
63 |
+
3. Configure settings:
|
64 |
+
```yaml
|
65 |
+
Context Length: 2048
|
66 |
+
GPU Offload: Recommended (enable if available)
|
67 |
+
Batch Size: 512
|
68 |
+
```
|
69 |
+
4. Start chatting through the built-in UI
|
70 |
|
|
|
71 |
|
72 |
+
# Precision Details
|
73 |
|
74 |
+
| Filename | Precision | Size | Characteristics |
|
75 |
+
|----------------|-----------|-----------|--------------------------------|
|
76 |
+
| mechat.gguf | FP16 | [12.5GB] | Full original model precision |
|
77 |
|
|
|
78 |
|
79 |
+
# Hardware Requirements
|
80 |
|
81 |
+
**Minimum:**
|
82 |
+
- 16GB RAM (for 6B model)
|
83 |
+
- CPU with AVX/AVX2 instruction set support
|
84 |
|
85 |
+
**Recommended:**
|
86 |
+
- 20GB+ RAM
|
87 |
+
- CUDA-capable GPU (for acceleration)
|
88 |
+
- Fast SSD storage (due to large model size)
|
89 |
|
|
|
90 |
|
91 |
+
# Key Notes
|
92 |
|
93 |
+
1. Requires latest llama.cpp (v3+ recommended)
|
94 |
+
2. Use `--n-gpu-layers 35` for GPU acceleration (requires CUDA-enabled build)
|
95 |
+
3. Initial loading takes longer (2-5 minutes)
|
96 |
+
4. Requires more memory/storage than quantized versions
|
97 |
+
5. Use `--mlock` to prevent swapping
|
98 |
|
|
|
99 |
|
100 |
+
# Advantages
|
101 |
|
102 |
+
- Preserves original model precision
|
103 |
+
- Ideal for precision-sensitive applications
|
104 |
+
- No quantization loss
|
105 |
+
- Suitable for continued fine-tuning
|
106 |
|
|
|
107 |
|
108 |
+
# Ethical Considerations
|
109 |
+
These are text from original repo.
|
|
|
110 |
|
111 |
+
我们的心理健康支持对话机器人(以下简称"机器人")旨在为用户提供情感支持和心理健康建议。然而,机器人不是医疗保健专业人员,不能替代医生、心理医生或其他专业人士的意见、诊断、建议或治疗。
|
112 |
|
113 |
+
机器人提供的建议和信息是基于算法和机器学习技术,可能并不适用于所有用户或所有情况。因此,我们建议用户在使用机器人之前咨询医生或其他专业人员,了解是否适合使用此服务。
|
|
|
|
|
114 |
|
115 |
+
机器人并不保证提供的建议和信息的准确性、完整性、及时性或适用性。用户应自行承担使用机器人服务的所有风险。我们对用户使用机器人服务所产生的任何后果不承担任何责任,包括但不限于任何直接或间接的损失、伤害、精神疾病、财产损失或任何其他损害。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
116 |
|
117 |
+
我们强烈建议用户在使用机器人服务时,遵循以下原则:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
118 |
|
119 |
+
机器人并不是医疗保健专业人士,不能替代医生、心理医生或其他专业人士的意见、诊断、建议或治疗。如果用户需要专业医疗或心理咨询服务,应寻求医生或其他专业人士的帮助。
|
120 |
|
121 |
+
机器人提供的建议和信息仅供参考,用户应自己判断是否适合自己的情况和需求。如果用户对机器人提供的建议和信息有任何疑问或不确定,请咨询医生或其他专业人士的意见。
|
122 |
|
123 |
+
用户应保持冷静、理性和客观,不应将机器人的建议和信息视为绝对真理或放弃自己的判断力。如果用户对机器人的建议和信息产生质疑或不同意,应停止使用机器人服务并咨询医生或其他专业人士的意见。
|
124 |
|
125 |
+
用户应遵守机器人的使用规则和服务条款,不得利用机器人服务从事任何非法、违规或侵犯他人权益的行为。
|
126 |
|
127 |
+
用户应保护个人隐私,不应在使用机器人服务时泄露个人敏感信息或他人隐私。
|
|
|
|
|
128 |
|
129 |
+
平台收集的数据用于学术研究。
|
130 |
|
131 |
+
最后,我们保留随时修改、更新、暂停或终止机器人服务的权利,同时也保留对本免责声明进行修改、更新或补充的权利。如果用户继续使用机器人服务,即视为同意本免责声明的全部内容和条款。
|
|
|
|
|
|
|
|
|
|
|
132 |
|
|
|
133 |
|
134 |
+
# Citation
|
135 |
|
136 |
+
```bibtex
|
137 |
@misc{qiu2023smile,
|
138 |
title={SMILE: Single-turn to Multi-turn Inclusive Language Expansion via ChatGPT for Mental Health Support},
|
139 |
author={Huachuan Qiu and Hongliang He and Shuai Zhang and Anqi Li and Zhenzhong Lan},
|
|
|
142 |
archivePrefix={arXiv},
|
143 |
primaryClass={cs.CL}
|
144 |
}
|
145 |
+
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|