概述
**EmoLLM** [1]是一系列能够支持 理解用户-支持用户-帮助用户 心理健康辅导链路的心理健康大模型,由 LLM指令微调而来。
我个人觉得这个项目值得去研究;为什么?因为区别于别的开源心理大模型,EmoLLM是完全的开源;其开源了数据集、微调方法、训练方法及脚本等,完全的开源出来。对于需要了解领域模型开发的人来说,是非常友好且值得学习的。
架构图如下:

数据集及领域模型
EmoLLM开源了其数据集[2],官方根据不同的数据集训练出来了不同的领域模型,譬如角色扮演、老母亲心理咨询师、爹系男友心理咨询师。官方的介绍如下:
- 数据集按用处分为两种类型:General 和 Role-play
- 数据按格式分为两种类型:QA 和 Conversation
- 数据汇总:General(6个数据集);Role-play(5个数据集)
数据集类型:
- General:通用数据集,包含心理学知识、心理咨询技术等通用内容
- Role-play:角色扮演数据集,包含特定角色对话风格数据等内容
以角色扮演的数据集为例,我个人的分析来看,有两点值得关注:
- 改造后的数据格式。基于标准的sharegpt格式或alpaca格式改造领域数据格式,用于大模型的训练。
- 提示词的设计。针对不同的业务场景,设计好不同的提示词。这也是提示词工程的意义与作用。
image.png image.png
微调
EmoLLM主要是基于xtuner来实现微调训练[3]的,其全量微调也是基于此框架。不过EmoLLM在这方面的支持还是不太够的。如下是当前支持的微调模型类型:
image.pngEmoLLM的微调文件参数写在了其后面的py文件中:
image.png因此微调时还要注意参数文件。微调数据格式参考datasets文件夹中的数据集来设计即可;这是一套的。
目前来看,ChatGLM3的微调需要额外的处理,参考 ChatGLM3-6b-ft.md[4] ;我是没怎么看明白,只觉得有点复杂。希望官方可以优化下。
总结
总的来说,EmoLLM是个不错的项目,我们完全可以从零开始借鉴学习,了解并掌握训练领域模型的方方面面。
[1]EmoLLM : https://github.com/SmartFlowAI/EmoLLM [2]数据集: https://github.com/SmartFlowAI/EmoLLM/blob/main/datasets/README.md [3]微调训练: https://github.com/SmartFlowAI/EmoLLM/blob/main/xtuner_config/README.md [4]ChatGLM3-6b-ft.md: https://github.com/SmartFlowAI/EmoLLM/blob/main/xtuner_config/ChatGLM3-6b-ft.md
|