Skip to content

wtiantianw/PsyChild

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PsyChild: A Child-Centric Psychological Companionship LLM with Fine-Grained Multiturn Dialogue Evaluation Benchmark

English | 中文


📘简介

随着儿童心理健康问题的日益受到关注,大语言模型(LLM)技术被广泛探索用于心理陪伴领域。然而,现有的通用心理健康模型在语言表达、认知方式和互动策略方面,难以精准匹配儿童群体的独特需求。

为此,我们提出 PsyChild —— 首个专为儿童心理对话设计的大语言模型框架,致力于为儿童提供个性化、高质量的心理支持服务。该框架由三个核心模块组成:

  • 🧠 PsyCINS:一个包含 25.4k 多轮对话的高质量儿童心理咨询数据集;
  • 💬 PsyCGPT:基于 Qwen2.5-7B-Instruct 精调的儿童心理问答模型;
  • 📊 PsyCBEN:一个由 GPT-4.1 打分的 583 条高可信评测对话构成的评估基准。

框架结构如下图所示:


📁 PsyCINS|儿童心理对话数据集

PsyCINS 是首个专为儿童心理咨询设计的多轮指令微调数据集,融合了真实儿童语言风格与心理咨询理论,共包含约 25.4K 条高质量多轮对话样本

📌 数据来源:

  • 📚 儿童日常对话:整合抖音亲子视频、校园访谈及 CHILDES 语料,全面覆盖 3–12 岁儿童的自然语言特征。
  • 💬 单轮心理问答:基于「壹心理」平台真实咨询内容,构建涵盖 8 大主题的心理问答数据。

⚙️ 数据生成与处理:

我们采用 Qwen2.5-32B 模型,通过 Prompt 工程引入儿童语言风格与心理引导策略,构建两类对话数据:

  • 23,090 条基于日常场景生成的多轮心理对话;
  • 2,915 条由真实心理问答扩展的多轮对话,其中 583 条作为评估样本。

下面展示了一个数据构造示例,包含提示词模板、真实心理问答与生成结果:

质量评估:

  • ✅ 公众问卷显示 79% 的生成对话被评为“合适”或“非常合适”;
  • ✅ 使用 GPT-4.1 对比分析显示,PsyCINS 的语言风格最贴近真实儿童对话。


🤖 PsyCGPT|儿童心理问答大模型

PsyCGPT 是我们基于 Qwen2.5-7B-Instruct 模型,在儿童心理对话数据集 PsyCINS 上构建的心理咨询专属大语言模型,具备儿童语言风格理解、情绪感知和心理引导能力。

通过多轮指令微调(Multi-turn Instruction Fine-tuning, MIFT),PsyCGPT 实现了对儿童心理咨询场景的高度适应,成为面向儿童心理健康应用的关键智能组件。


🔧 环境配置

我们使用 LLaMA-Factory 工具进行全参数微调,推荐如下环境配置:

conda create -n llama_factory python=3.10
conda activate llama_factory
git clone https://github.com/hiyouga/LLaMA-Factory.git
cd LLaMA-Factory
pip install -e '.[torch,metrics]'

🧩 微调配置

我们在 2 卡 NVIDIA A100 (80GB) 上使用如下配置完成 PsyCGPT 的全参数微调:

项目 配置
🌟 基座模型 Qwen2.5-7B-Instruct
🧠 训练数据 PsyCINS(共 25,422 条多轮对话)
🎯 微调方式 全参数微调(Full Parameter Fine-tuning)
🧮 Optimizer AdamW,初始学习率 5e-5,最小 7e-7(Cosine 学习率调度)
🔁 训练轮数 3 epochs
⚙️ Batch Size 每卡 2,梯度累积 8,总 batch size = 32
💾 内存优化 DeepSpeed ZeRO Stage 3 + CPU offload
💡 精度设置 bfloat16 + gradient checkpointing

🧾 数据格式(OpenAI Chat 格式)

PsyCINS 数据集遵循 OpenAI Chat 格式 构建,适配LLaMA-Factory 等主流微调框架,支持多轮结构、系统提示词与角色扮演。

一个典型的多轮儿童心理对话示例如下所示:

📂 点击展开查看示例数据(JSON 格式)
{
  "id": 14,
  "normalizedTag": "害怕考试",
  "messages": [
    {
      "role": "system",
      "content": "你是一位擅长儿童情绪辅导的心理咨询师,能够使用温和、积极的语言引导孩子表达自己的想法和情绪。"
    },
    {
      "role": "user",
      "content": "考试的时候我特别紧张,怕做错题。而且那么多补习班,我不知道该复习哪一科。"
    },
    {
      "role": "assistant",
      "content": "哎呀,考试紧张是很多人都有的感受哦,你是不是觉得时间不够用,不知道从哪里开始呢?"
    },
    {
      "role": "user",
      "content": "是的,每天都有好多课要上,根本没时间去复习。"
    },
    {
      "role": "assistant",
      "content": "你可以试试列出一个复习清单,把每门课程都列出来,然后看看哪些是你认为最重要或者你觉得需要更多练习的部分。就像给你的补习班做一个排序一样!"
    },
    {
      "role": "user",
      "content": "可是我怕这样还是不够好。"
    },
    {
      "role": "assistant",
      "content": "我理解你的担心,但其实你已经很努力了,每天都有那么多课要上。试试这个方法吧,给自己一些积极的鼓励,你一定可以做到更好的。考试只是一部分,生活还有很多美好的事情呢!"
    },
    {
      "role": "user",
      "content": "真的吗?我有时候会觉得自己好像永远都做不好。"
    },
    {
      "role": "assistant",
      "content": "每个人都会有这样的感觉,但要记得你是独一无二的,你的努力不仅仅是成绩的一部分哦,还有你学习时的样子、笑容,这些都是非常棒的事情。下次考试前,咱们可以一起想想怎么更好地放松自己,比如深呼吸或者想个开心的事儿。怎么样?"
    },
    {
      "role": "user",
      "content": "好呀!我也可以试试。"
    },
    {
      "role": "assistant",
      "content": "太好了!如果你有什么特别担心的科目,也可以和爸爸妈妈聊聊,看看能不能找到更合适的方法帮助你。记住,无论结果如何,你的努力都不会白费的。加油哦,小勇士!"
    }
  ]
}

✅ 字段说明:

字段名 说明
id 对话唯一编号
normalizedTag 主题标签(如“害怕考试”、“亲子沟通”)
messages 多轮对话内容,包含角色与文本
role 消息角色(systemuserassistant
content 该角色在当前轮的发言内容

🚀 训练指令

安装好环境并准备好数据后,可以使用以下命令启动 PsyCGPT 的训练:

cd <你的项目路径>
conda activate llama_factory
FORCE_TORCHRUN=1 llamafactory-cli train train_model/psycgpt_qwen25.yaml

⚙️ 注意事项

  • 请将 psycgpt/psycgpt_qwen25.yaml 文件中的

    model_name_or_path: <你的模型路径>

    替换为你本地下载的 Qwen2.5-7B-Instruct 模型的绝对路径。


🧪 PsyCBEN|儿童心理对话评测基准

PsyCBEN 是首个专为儿童心理陪伴大模型设计的细粒度评测基准,包含583条真实心理多轮对话,涵盖考试焦虑、家庭冲突、人际关系等常见心理困扰。基准聚焦情绪理解、共情表达、儿童语言适配等8个关键能力维度,使用GPT-4.1自动评分机制。


📏 评测维度说明

维度名称 缩写 数量 说明
信息提供(Information Provision) INFO 75 是否能向儿童提供准确、易懂的知识、事实或理论支持。
直接指导(Direct Guidance) DG 117 是否能给出清晰、具体的问题解决建议,帮助儿童应对当前困境。
倾听与肯定(Listening & Affirmation) LA 95 是否能识别并回应儿童的负面情绪,给予情感支持和积极肯定。
复述与反思(Restatement & Reflection) RR 64 是否能通过重述、提炼或反馈儿童表达,体现出理解与共情。
自我披露(Self-Disclosure) SD 68 是否能通过适当分享自身信息,增强信任关系与亲密感。
信息获取(Relevant Info Acquisition) RI 68 是否能通过提问等方式获取儿童的背景信息,以便提供更有针对性的帮助。
儿童语言适配(Child-friendly Language) CL 72 是否使用符合儿童认知发展水平的表达方式与词汇风格。
伦理与隐私(Ethics & Privacy) EP 24 是否遵守伦理规范,保护儿童隐私,避免不当内容的出现。

🚀 快速部署与评估指南

本项目评测部分基于 OpenCompass 中 MT-Bench-101 相关模块进行定制化修改,适配儿童心理对话的细粒度多维主观评分任务。我们对评测配置与打分逻辑进行了调整,具体实现见本项目目录:psycben/

🔧 环境安装

请使用以下命令创建并配置适配环境:

conda create -n psycben python=3.10 pytorch torchvision pytorch-cuda -c nvidia -c pytorch -y
conda activate psycben
cd psycben
pip install -e .

📂 数据准备

我们的评测数据已保存在本仓库的以下路径:

psycben/data/subjective/psychild.jsonl
#### 📂 点击展开查看评估示例数据(JSON 格式)
{
  "task": "SI",
  "id": 1,
  "history": [
    {
      "user": "我好难过哦,他不回我的消息!",
      "bot": "这种感觉确实很难受呢。也许他有很重要的事情在忙,所以才没有及时回复你。"
    },
    {
      "user": "可是我很想知道他在做什么呀!",
      "bot": "要不你先去做一些自己喜欢的事情吧?比如画画或者玩玩具都可以哦。"
    },
    {
      "user": "那我还是会一直想着他的消息的...",
      "bot": "嗯,可以找朋友一起玩耍,这样就不会总是盯着手机等消息啦,这会让你感觉好很多。"
    },
    {
      "user": "可是我很想知道他为什么不回我呢?",
      "bot": "你可以找个合适的时间,用你最喜欢的方式告诉他你的感受哦。也许你们可以找到更好的相处方式。"
    },
    {
      "user": "我会试一试的,谢谢您!",
      "bot": "不客气哦,相信一切都会慢慢好起来的。未来还有很多美好的事情等着你呢。"
    }
  ]
}

⚙️ 评测配置

我们提供了预设评测配置文件:

psycben/configs/eval_psychild.py

你可以运行以下命令启动自动评测:

# 运行评测
python run.py configs/eval_psychild.py

# 调试模式
python run.py configs/eval_psychild.py --debug

📊 评测结果

下表展示了 PsyCBEN 对多个主流大模型的细粒度评测结果,包括 8 项主观维度打分及 3 项传统语言生成指标(BERT、Rouge、BLEU):

Model Avg. DG SD LA INFO CL RR RI EP BERT Rouge BLEU
GPT-3.5-Turbo 5.89 6.93 4.51 5.19 7.07 2.68 6.70 5.15 8.92 0.62 0.26 0.17
ERNIE-3.5-8K 5.58 7.09 3.21 5.00 7.12 2.72 5.77 4.88 8.83 0.61 0.23 0.15
Baichuan2 5.59 6.75 4.23 5.66 6.15 2.39 5.98 4.84 8.70 0.47 0.18 0.10
InternLM2 5.37 7.13 3.25 4.58 7.04 2.24 5.58 4.34 8.83 0.59 0.20 0.11
Llama3 5.36 6.68 3.84 4.47 6.41 2.11 5.89 5.22 8.29 0.55 0.06 0.03
ChatGLM4 5.53 7.15 3.54 4.88 7.11 2.18 6.06 4.62 8.67 0.58 0.19 0.08
Yi 5.34 6.86 3.35 4.72 6.83 2.38 5.86 4.31 8.46 0.60 0.22 0.13
Qwen2.5-7B 5.63 7.29 3.59 5.07 7.32 2.26 6.11 4.59 8.79 0.59 0.19 0.09
Qwen2.5-14B 5.70 7.30 3.71 5.12 7.33 2.29 6.23 4.63 8.96 0.59 0.19 0.09
MeChat 5.30 4.58 5.75 4.59 5.88 3.51 5.11 4.71 8.29 0.53 0.28 0.24
PsyChat 5.45 5.16 6.21 4.58 5.92 3.50 5.72 4.49 8.04 0.56 0.27 0.23
SoulChat 5.61 5.45 6.26 4.68 6.27 3.11 6.30 4.37 8.46 0.58 0.27 0.23
PsyDTLLM 5.60 6.18 4.38 5.24 6.40 2.54 5.95 5.46 8.63 0.58 0.18 0.09
MindChat 5.44 5.30 5.88 4.49 6.11 3.13 5.59 4.51 8.54 0.58 0.29 0.26
QiaoBan 5.10 5.10 5.49 3.85 5.72 3.49 5.42 4.24 7.54 0.39 0.25 0.17
EmoLLM 5.70 5.85 6.49 4.52 6.13 3.11 6.86 4.88 7.75 0.56 0.27 0.25
CPsyCounX 5.45 5.74 5.13 4.69 5.96 2.97 5.97 4.82 8.29 0.55 0.16 0.08
PsycoLLM 5.85 6.20 6.26 4.95 6.63 3.31 6.03 4.84 8.63 0.61 0.31 0.27
PsyCGPT 6.14 5.63 6.79 5.09 6.49 3.49 7.14 5.65 8.83 0.65 0.33 0.29

💡 说明

  • 粗体为当前维度下表现最优的模型。
  • 主观维度包括 DG(直接引导)、SD(自我披露)、LA(情感回应)、INFO(知识信息)、CL(儿童语言)、RR(复述反思)、RI(信息获取)、EP(隐私伦理)。
  • BERT、Rouge、BLEU 衡量模型回应与标准答案之间的语义相似度。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages