---
title: Qwen2.5_3B_Psychology
canonical_url: "https://www.modelscope.cn/models/cccbond/Qwen2.5_3B_Psychology"
md_url: "https://www.modelscope.cn/models/cccbond/Qwen2.5_3B_Psychology.md"
repository: cccbond/Qwen2.5_3B_Psychology
last_updated: 2025-04-12
pipeline_tag: text-generation
tasks:
  - text-generation
model_type:
  - qwen2
architectures:
  - Qwen2ForCausalLM
parameters: 3.1B
tensor_type:
  - BF16
library_name:
  - safetensors
  - pytorch
frameworks:
  - Pytorch
inference_backends:
  - "deploy_task text/emb"
  - "lmdeploy 0.9.1"
  - "lmdeploy_turbomind 0.9.1"
  - "sglang 0.5.2"
  - "vllm 0.9.2"
downloads: 222
stars: 3
---

# Qwen2.5_3B_Psychology

> Qwen2.5_3B_Psychology - cccbond 在 ModelScope 开源的模型。心理健康大模型

cccbond/Qwen2.5_3B_Psychology 是 ModelScope 魔搭社区上的 3.1B 参数text-generation模型，可用 deploy_task text/emb、lmdeploy 0.9.1、lmdeploy_turbomind 0.9.1 部署。

- **Repository**: cccbond/Qwen2.5_3B_Psychology
- **Tasks**: text-generation
- **Parameters**: 3.1B
- **Inference backends**: deploy_task text/emb, lmdeploy 0.9.1, lmdeploy_turbomind 0.9.1, sglang 0.5.2, vllm 0.9.2
- **Downloads**: 222
- **Stars**: 3
- **Last updated**: 2025-04-12

Source: https://www.modelscope.cn/models/cccbond/Qwen2.5_3B_Psychology

---

# PsyCompanion 心理健康大模型

**PsyCompanion** 是一个专注于心理健康领域的智能助手，基于 **Qwen** 模型进行微调和优化，旨在理解复杂的心理学知识、生成高质量文本并支持多轮对话。通过数据蒸馏、指令微调和多轮对话构建等技术，在心理健康场景中表现出色，能够为用户提供准确、流畅且逻辑严谨的心理学相关建议。

## 项目亮点

- **多源数据融合**：结合开源数据集与 AI 合成数据，确保模型在多样性和专业性上的平衡。
- **多轮对话构建**：通过情感类型和生活场景的组合生成对话数据，提升模型在实际应用中的交互能力。
- **高效微调策略**：采用全参数微调与 LoRA 技术相结合的方式，在保证性能的同时降低计算资源消耗。
- **数据蒸馏优化**：利用 DeepSeek R1 生成的高质量数据，进一步提升模型的推理效率和准确性。
- **数据打分**：通过Qwen2.5-72B-Instruct进行无害性、有用性、完整性三维度评分，采用Top 40%评分筛选策略，清洗低质量数据，提高训练集平均数据质量评分。

### 数据集处理

所有数据集处理的代码都位于 `data_gen` 目录下，配置文件则位于 `configs` 目录中。

## 数据集

我们使用了以下数据集进行模型训练和优化：

- **Chinese-Data-Distill-From-R1**：开源中文蒸馏数据集，涵盖数学、考试、STEM 和通用类型数据。
- **psychology-10k-sft**：包含 10,000 条心理学相关指令微调数据。
- **psychology-10k-sft-zh**：将 psychology-10k-sft 的英文数据翻译为中文。
- **心理健康-R1蒸馏中文数据集-10k**：利用 DeepSeek R1 生成的心理健康相关推理数据。

## 模型选择与微调

我们选择了 **Qwen2.5-3B-Instruct** 作为基础模型，并采用了全参数微调与 **LoRA** 技术进行优化。微调后的模型在心理健康领域的表现显著提升，能够处理复杂的心理学场景和多轮对话。

## 实验结果

PsyCompanion 在多个场景下的表现均优于基线模型，特别是在心理健康相关的问题上，模型能够提供准确且逻辑严谨的回答。

## 模型推理
```python
from modelscope import AutoModelForCausalLM, AutoTokenizer
import torch
model_path = "cccbond/Qwen2.5_3B_Psychology"

model = AutoModelForCausalLM.from_pretrained(model_path,
                    torch_dtype=torch.bfloat16,
                    # device_map={"": 0})
                    # attn_implementation="flash_attention_2",
                    device_map="auto")
tokenizer = AutoTokenizer.from_pretrained(model_path)


def test_model(model, tokenizer, max_length=2048): 
    prompts = [
        "我在职业生涯中遇到了一些困难，我应该如何提升自己",
        "我最近一直感到非常焦虑，但不知道原因是什么",
        "最近总感觉学习效率很低，明明在书桌前坐了一整天，但知识完全进不去脑子",
        "最近每次要主持部门会议前都会手脚发冷，昨天甚至躲在洗手间直到会议开始才敢出来",
        "我的个人生活比较单调，每天晚上都胡思乱想睡不着觉",
    ]

    text = [f"<|im_start|>user\n{prompt}<|im_end|>\n<|im_start|>assistant\n<think>" for prompt in prompts]

    inputs = tokenizer(text, return_tensors="pt", padding=True, truncation=True).to(model.device)
    outputs = model.generate(**inputs, max_length=max_length)  # 使用max_length限制生成的长度
    response = tokenizer.batch_decode(outputs, skip_special_tokens=True, )  # 跳过特殊token
    for prompt, response in zip(prompts, response):
        print(f"Prompt: {prompt}")
        print(f"Response: {response.strip()}")
        print("="*10)
        
tokenizer.pad_token = tokenizer.eos_token  # 设置pad token
tokenizer.padding_side = 'left'  # 设置padding_side为'left'

max_new_tokens = 2048  # 生成最大长度
test_model(model, tokenizer, max_length=max_new_tokens)
```

## 评估结果 
评估指标包括：
- BLEU-4。	BLEU（Bilingual Evaluation Understudy）是一种常用的用于评估机器翻译质量的指标。BLEU-4 表示四元语法 BLEU 分数，它**衡量模型生成文本与参考文本之间的 n-gram 匹配程度**，其中 n=4。值越高表示生成的文本与参考文本越相似，最大值为 100。
- rouge-1 和 rouge-2。	ROUGE（Recall-Oriented Understudy for Gisting Evaluation）是一种用于评估自动摘要和文本生成模型性能的指标。ROUGE-1 表示一元 ROUGE 分数，ROUGE-2 表示二元 ROUGE 分数，分别**衡量模型生成文本与参考文本之间的单个词和双词序列的匹配程度**。值越高表示生成的文本与参考文本越相似，最大值为 100。
- rouge-l。	ROUGE-L **衡量模型生成文本与参考文本之间最长公共子序列（Longest Common Subsequence）的匹配程度**。值越高表示生成的文本与参考文本越相似，最大值为 100。

## 参考链接

- **代码仓库**：[GitHub](https://github.com/Kedreamix/Xinjing-LM)
