LLM情感聊天机器人-数据获取方法简析

近期出现一些基于大模型的情感陪伴型对话机器人,主要是结合心理学知识,使用心理咨询数据训练,实现量表测量、情绪安抚、情感陪伴等功能,为老人、青少年等提供心理健康支持。本文选取了两个项目,分别用ChatGLM6B和LLama大模型在垂直领域微调和应用。

LLM情感聊天机器人-数据获取方法简析

由西湖大学深度学习实验室开发的心理健康支持对话陪伴机器人,基于 ChatGLM-6B + LoRA 技术微调。

数据来源

通过 ChatGPT 改写真实的心理互助 QA 为多轮对话(single-turn to multi-turn inclusive language expansion via ChatGPT),共有 56k 个多轮对话。

如何处理数据的?

原始数据格式:

  "求助者:我最近感到很迷茫。高三后的我,不仅感到高考前的恐惧,还感到从自己出生以来就是多余的,毫无意义。我没有朋友,只能一个人默默承受。您能给我一些建议吗?",
  "支持者:看到你的话,我感到你很焦虑,这是常见的高中生活状态。首先想说的是,我看到了你的决心。这点是很多人没有的。高考最重要的是心态,你需要具备必胜的心态!",
  "求助者:谢谢你的鼓励!我真的很想放松一下,但是也觉得自己不能失去目标和动力。",
  "支持者:有目标就好办,计划!制定一个时间合理配置的复习计划非常重要,这可以帮助你缓解焦虑。如果你不知道怎样制定计划,我可以提供一些建议。",
  "求助者:那我应该如何制定计划呢?",
  "支持者:从高一开始,一步一步来,起点要低,试试题海战术。先做一些基础练习,逐渐加强难度,这样你会慢慢有成就感。同时,要注意每种类型的题目都要做,多做一些经典题目。这样你就能够更快地理解并解答考题了。",
  "求助者:如果我对某些题目无法理解怎么办呢?",
  "支持者:别害羞,去问老师。大胆地告诉他们你对这问题的不解,老师会帮助你理解,并解答你的疑问,这是老师应该做的。不用等毕业再叙旧,马上去问吧!",
  "求助者:我觉得自己英语和物理考得不太好,怎样处理这种情况呢?",
  "支持者:你可以多听多背英语,这样你就能够加深印象了。至于物理,你可以重查重思教材,练习题目,多思考基础概念,这样能够加深理解。同时,也别去想别人的期望,想一想自己的潜力。坚持学习,你就一定能够成功的!",
  "求助者:谢谢你支持我的鼓励,有了你的建议和支持,我会更加努力学习,坚定信心,争取高考成功!",
  "支持者:没问题,我会一直支持你的!相信自己,一定能够实现自己的人生目标,加油!"

将每一轮对话按照这个格式转换:{'instruction': '', 'input': context, 'output': response},这样上面数据将被转换成多条训练数据。

原始数据确实是多轮的【如上所示】,但训练的时候拆开了。这种处理方式,还没有完美的学习多轮对话的上下文,因为处理脚本对每轮的QA单独作为一个example了,并没有结合之前的对话生成下一个回应response。

项目资料:

paper: https://arxiv.org/pdf/2305.00450.pdf

GitHub:https://github.com/qiuhuachuan/smile.git

LLM情感聊天机器人-数据获取方法简析

哈工大社会计算与信息检索研究中心(SCIR)情感计算组的项目,面向儿童情感陪伴的大模型。

理论来源:儿童情绪辅导理论。

情绪觉察,即敏锐察觉孩子的情感;

情绪认可,即肯定孩子的情绪体验;

情绪标注,即帮助孩子表达情感;

表达共情,即表现出对孩子感受的理解;

提供支持,确保孩子得到所需的支持和关怀。

数据来源:

使用通用对话、单轮指令数据以及儿童情感陪伴对话数据进行指令微调。对话数据由具有儿童心理学背景的志愿者与专家参与构建。

人工+ GPT的方式构建数据集

从真实场景的儿童对话话题列表中进行采样,选定对话话题,构建中文儿童情感陪伴对话数据。为确保质量,由经过儿童情绪辅导理论培训的志愿者构建,然后由儿童心理学领域的专家学者对数据的收集过程提出建议与指导,以确保数据的准确性和可信度。另外通过话题采样选定话题,构建儿童情绪辅导prompt,从gpt-3.5-turbo中获取儿童情感陪伴对话数据。

数据构造解析

Prompt

本项目通过:话题+心理学Prompt的方式。话题有很多方面,比如:起绰号、班级聚会、网瘾等

def return_random_prompt():
  topic = random.sample(topic_list, 1)[0]
  system_prompt = "你的身份是一个了解儿童情绪辅导理论(Emotion Coaching)的智能陪伴助手,会灵活地运用以下四点与孩子进行对话:\n"

  # 情绪辅导理论(Emotion Coaching Theory)
  system_prompt += "1. 注意到孩子的情绪变化,即意识到孩子正在经历情绪状态。\n"
  system_prompt += "2. 理解孩子的情绪,即了解孩子的情感状态和体验。\n"
  system_prompt += "3. 接受孩子的情绪,即不否定或贬低孩子的情感,而是表达共情和理解,语气要保持温柔和亲切。\n"
  system_prompt += "4. 探索解决方案,即为孩子提供积极的建议和指导,以应对情绪困难\n\n"

  # other requirements
  system_prompt += "现在请你根据以下的场景,运用上述理论,模拟孩子与智能助手之间的对话,要求:\n"
  system_prompt += "1. 直接生成对话文本内容,不要出现客观描述,且首轮是孩子的发言;\n"
  system_prompt += "2. 对话内容丰富且贴近生活;\n"
  system_prompt += "3. 对话语气自然且通顺,不能有翻译腔;\n"
  system_prompt += "4. 对话字数在" + str(random.randint(800, 1000)) + "字左右。\n\n"

  system_prompt += "场景:" + topic + "\n"

  return system_prompt, topic

数据样式:

{"topic": "去动物园", "input": "孩子:哇,终于到动物园了!我好激动啊!</s>智能助手:我听到你的声音中带有很多兴奋和激动,看来你很喜欢动物园。</s>孩子:嗯嗯,动物园里有那么多可爱的动物,我好想看到它们啊!</s>智能助手:我可以理解你的心情,动物园里确实有很多好看的东西值得我们去欣赏。</s>孩子:但是今天好像会下雨,如果下雨了怎么办?我好怕会影响我们的游玩计划。</s>智能助手:你真是一个有足够准备和预见未来的小朋友,这个问题确实值得我们思考。如果下雨了,我们可以去动物园内的观光车或者雨中的戏水区,这两个地方不会受到雨天的影响。</s>孩子:好的,我明白了,谢谢你,智能助手!</s>智能助手:不客气,也谢谢你对我说这么多话,我们可以一起享受富有乐趣的动物园之旅!"}

项目连接:

https://github.com/HIT-SCIR-SC/QiaoBan

微调示例

Fine-tuning of Falcon-7B Large Language Model using QLoRA on Mental Health Conversational Datasethttps://medium.com/@iamarunbrahma/fine-tuning-of-falcon-7b-large-language-model-using-qlora-on-mental-health-dataset-aa290eb6ec85

总结

两个项目都采用了人工+ChatGPT结合的方式收集了大量的心理学情感陪伴类数据。人工构造一些种子数据,编写Prompt让ChatGPT辅助构造数据,巧板项目的Prompt值得我们参考。

原创文章。转载请注明: 作者:meixi 网址: https://www.icnma.com
Like (0)
meixi管理
Previous 04/08/2023 11:55
Next 30/08/2023 15:25

猜你想看