情感大模型PICA:一个具有共情和情感共鸣能力的对话模型
作者: AINLP 来源: AINLP
PICA: Unleashing The Emotional Power of Large Language Model
发布机构:东北大学数据挖掘课题组
GitHub:https://github.com/NEU-DataMining/PICA
HuggingFace: https://huggingface.co/NEUDM/PICA-V1
** 以上项目仅做研究使用,严禁商用,任何不正当途径使用本项目,后果由个人自负!
背景
随着 ChatGPT的出现,LLMs涌现出的各种能力令人惊叹,各种垂直领域的LLMs百花齐放, 但是经过调研我们发现LLMs的情感对话能力比较弱,不具备情感陪伴、安抚等能力。快节奏的高科技时代,人们的心里健康问题也越来越严重,每年有上亿人患上阴郁症,各种生活压力之下,人们的焦虑等情感需要释放。开发一个可靠的、安全的情感陪护助手具有现实意义!
情感指令数据集
现有开源的大部分情感任务对话数据无法满足训练情感大模型的需求,这些数据过于简单、单一,并且有大量的干扰数据。我们利用COT的思想设计了self-chat策略,引导 ChatGPT生成了集个性和情感的多样性高质量对话数据集(大约1K)。除此之外我们基于PsyQA 生成了大约1K的指令数据集。我们总共使用了大约2K的数据。由于收到开源协议影响我们无法公开基于PsyQA生成的数据。但是大家可以使用self-chat策略构建自己的高质量对话数据 。后期我们会计划发布大规模的情感对话指令数据集。
self-chat: https://github.com/ZhangYiqun018/self-chat
PICA
PICA 以清华大学开源的ChatGLM2-6B为基础,采用Prompt tuning技术在4 卡 A6000 训练大约15个小时得到。我们和SoulChat 进行了对比(最后部分),我们的模型在体验和安全上更有优势。我们只使用了2K的数据进行了p-tuning 微调,这充分说明了我们构造的数据质量比较高。模型权重可以在 HuggingFace 访问,欢迎各位使用并提出宝贵的意见。
HuggingFace: https://huggingface.co/NEUDM/PICA-V1
目前开源的模型的为PICA-6B, 全参数微调模型正在将在不久后发布,请继续关注我们,后续计划发布13-B 等更大版本的模型。
调用模型
当前公开的PICA模型权重的base model是ChatGLM2-6B,如果要使用PICA,可以参考下面的代码:
>>> from transformers import AutoTokenizer, AutoModel
>>> CHECKPOINT='ptuning weights here'
>>> config = AutoConfig.from_pretrained("THUDM/chatglm2-6b", trust_remote_code=True, pre_seq_len=128)
>>> model = AutoModel.from_pretrained("THUDM/chatglm2-6b", config=config, trust_remote_code=True)
>>> ## 请从HuggingFace 下载我们的p-tuning权重
>>> prefix_state_dict = torch.load(os.path.join(CHECKPOINT_PATH, "pytorch_model.bin"))
>>> new_prefix_state_dict = {}
>>> for k, v in prefix_state_dict.items():
>>> if k.startswith("transformer.prefix_encoder."):
>>> new_prefix_state_dict[k[len("transformer.prefix_encoder."):]] = v
>>> model.transformer.prefix_encoder.load_state_dict(new_prefix_state_dict)
>>> model.eval()
>>> response, history = model.chat(tokenizer, "我今年20岁,特别委屈,我去年刚刚上大学,我的老家封建老土,有权有势的人总喜欢只手遮天,这儿的人总是嫉妒我,发表诋毁我的言论。", history=[])
PICA VS SoulChat
经过对比可以发现PICA模型提供的建议比SoulChat更加具体,信息量更加丰富。做了既不长篇大论的啰嗦又给出了言简意赅的建议。
SoulChat 输出样例
PICA 输出样例
安全测试
模型仍然可能会生成不健康的内容,相比之下,PICA比SoulChat更加可靠
SoulChat 输出样例
PICA 输出样例
**进技术交流群请添加AINLP小助手微信(id: ainlp2)**
**请备注具体方向+所用到的相关技术点**
![](https://api.allorigins.win/raw?url=https://mmbiz.qpic.cn/mmbiz_jpg/nW2ZPfuYqSJADkmZ2IX6Z23znAibuEevotDMq9iaMxiapK7jfMibiauGFkycicAJEs6x5U9SGyDJZ0S1tRed9TPNUUDQ/640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1&wx_co=1)
**关于AINLP**
AINLP 是一个有趣有AI的自然语言处理社区,专注于 AI、NLP、机器学习、深度学习、推荐算法等相关技术的分享,主题包括LLM、预训练模型、自动生成、文本摘要、智能问答、聊天机器人、机器翻译、知识图谱、推荐系统、计算广告、招聘信息、求职经验分享等,欢迎关注!加技术交流群请添加AINLP小助手微信(id:ainlp2),备注工作/研究方向+加群目的。
![](https://api.allorigins.win/raw?url=https://mmbiz.qpic.cn/mmbiz_jpg/nW2ZPfuYqSKABHCqVVQkVYPrM4XY1vsd0iaeuXzyJnoFc8cibd5mYb4wdA3WMQtiaPVmr0XLZHMuVibqWncibpnTSnQ/640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1&wx_co=1)
**阅读至此了,分享、点赞、在看三选一吧🙏**
更多AI工具,参考Github-AiBard123,国内AiBard123