docs:add finetune doc and update readme

This commit is contained in:
jupyter 2024-01-26 22:25:42 +08:00
parent 64b114269c
commit d940b74dc7
4 changed files with 146 additions and 58 deletions

106
README.md
View File

@ -1,16 +1,15 @@
# EmoLLM-心理健康大模型
# EmoLLM-心理健康大模型
[![Contributors][contributors-shield]][contributors-url]
[![Forks][forks-shield]][forks-url]
[![Stargazers][stars-shield]][stars-url]
[![Issues][issues-shield]][issues-url]
[![MIT License][license-shield]][license-url]
[Contributors][contributors-url]
[Forks][forks-url]
[Stargazers][stars-url]
[Issues][issues-url]
[MIT License][license-url]
<!-- [![LinkedIn][linkedin-shield]][linkedin-url] -->
<!-- PROJECT LOGO -->
<br />
<p align="center">
@ -18,7 +17,7 @@
<img src="assets/logo.jpeg" alt="Logo" width="30%">
</a>
<h3 align="center">EmoLLM</h3>
<h3 align="center">EmoLLM</h3>
<p align="center">
<br />
<a href="https://github.com/aJupyter/EmoLLM"><strong>探索本项目的文档 »</strong></a>
@ -33,34 +32,31 @@
</p>
<!-- 本篇README.md面向开发者 -->
<!-- 本篇README.md面向开发者 -->
**EmoLLM**是一个能够支持 **理解用户-支持用户-帮助用户**心理健康辅导链路的心理健康大模型,由[InternLM2](https://github.com/InternLM/InternLM)指令微调而来欢迎大家star~⭐⭐
---
该模型基于InternLM2-7B-chat进行微调从而构建一个能够理解用户-支持用户-帮助用户提供解决问题思路的心理AI助手。
心理健康大模型Mental Health Grand Model是一个综合性的概念它旨在全面理解和促进个体、群体乃至整个社会的心理健康状态。这个模型通常包含以下几个关键组成部分
- 认知因素:涉及个体的思维模式、信念系统、认知偏差以及解决问题的能力。认知因素对心理健康有重要影响,因为它们影响个体如何解释和应对生活中的事件。
- 情感因素:包括情绪调节、情感表达和情感体验。情感健康是心理健康的重要组成部分,涉及个体如何管理和表达自己的情感,以及如何从负面情绪中恢复。
- 行为因素:涉及个体的行为模式、习惯和应对策略。这包括应对压力的技巧、社交技能以及自我效能感,即个体对自己能力的信心。
- 社会环境:包括家庭、工作、社区和文化背景等外部因素,这些因素对个体的心理健康有着直接和间接的影响。
- 生理健康:身体健康与心理健康紧密相关。良好的身体健康可以促进心理健康,反之亦然。
- 心理韧性:指个体在面对逆境时的恢复力和适应能力。心理韧性强的人更能够从挑战中恢复,并从中学习和成长。
- 预防和干预措施:心理健康大模型还包括预防心理问题和促进心理健康的策略,如心理教育、心理咨询、心理治疗和社会支持系统。
- 评估和诊断工具:为了有效促进心理健康,需要有科学的工具来评估个体的心理状态,以及诊断可能存在的心理问题。
## 目录
- [EmoLLM-心理健康大模型](#emollm-心理健康大模型)
- [目录](#目录)
- [开发前的配置要求](#开发前的配置要求)
- [**安装步骤**](#安装步骤)
- [开发前的配置要求](#开发前的配置要求)
- [**安装步骤**](#安装步骤)
- [文件目录说明](#文件目录说明)
- [开发的架构](#开发的架构)
- [demo部署](#demo部署)
@ -74,8 +70,8 @@
- [Star History](#star-history)
- [🌟 Contributors](#-contributors)
###### 开发前的配置要求
详见[部署要求](https://github.com/aJupyter/EmoLLM/tree/main/%E9%85%8D%E7%BD%AE%E8%A6%81%E6%B1%82)
###### **安装步骤**
@ -88,6 +84,7 @@ git clone https://github.com/aJupyter/EmoLLM.git
```
### 文件目录说明
eg:
```
@ -110,13 +107,13 @@ filetree
```
### 数据构建
请阅读[数据构建指南](generate_data\tutorial.md)查阅
### 微调
### 开发的架构
请阅读[ARCHITECTURE.md](https://github.com/aJupyter/EmoLLM/blob/master/ARCHITECTURE.md) 查阅为该项目的架构。
详见[微调指南](xtuner_config\README.md)
### demo部署
@ -136,42 +133,51 @@ filetree
贡献使开源社区成为一个学习、激励和创造的绝佳场所。你所作的任何贡献都是**非常感谢**的。
1. Fork the Project
2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`)
3. Commit your Changes (`git commit -m 'Add some AmazingFeature'`)
4. Push to the Branch (`git push origin feature/AmazingFeature`)
5. Open a Pull Request
### 版本控制
该项目使用Git进行版本管理。您可以在repository参看当前可用版本。
### 作者
### 作者(排名不分先后)
@xxxx
[aJupyter](https://github.com/aJupyter)@datawhale成员、南开大学在读硕士
*您也可以在贡献者名单中参看所有参与该项目的开发者。*
[jujimeizup](https://github.com/jujimeizuo)@
[Smiling&amp;Weeping](https://github.com/Smiling-Weeping-zhr)@
[Farewell](https://github.com/8baby8)@
### 版权说明
该项目签署了MIT 授权许可,详情请参阅 [LICENSE](https://github.com/aJupyter/EmoLLM/blob/master/LICENSE)
### 鸣谢
### 特别鸣谢
- [GitHub Emoji Cheat Sheet](https://www.webpagefx.com/tools/emoji-cheat-sheet)
- [Img Shields](https://shields.io)
- [Choose an Open Source License](https://choosealicense.com)
- [GitHub Pages](https://pages.github.com)
- [Animate.css](https://daneden.github.io/animate.css)
- [xxxxxxxxxxxxxx](https://connoratherton.com/loaders)
- [Sanbu](https://github.com/sanbuphy)
- [上海人工智能实验室](https://www.shlab.org.cn/)
- [闻星大佬(小助手)](https://github.com/vansin)
<!-- links -->
[your-project-path]:aJupyter/EmoLLM
<!-- [linkedin-shield]: https://img.shields.io/badge/-LinkedIn-black.svg?style=flat-square&logo=linkedin&colorB=555 -->
<!-- [linkedin-url]: https://linkedin.com/in/aJupyter -->
## Star History
[![Star History Chart](https://api.star-history.com/svg?repos=aJupyter/EmoLLM&type=Date)](https://star-history.com/#aJupyter/EmoLLM&Date)
## 🌟 Contributors
[![EmoLLM contributors](https://contrib.rocks/image?repo=aJupyter/EmoLLM&max=50)](https://github.com/aJupyter/EmoLLM/graphs/contributors)
[your-project-path]: aJupyter/EmoLLM
[contributors-shield]: https://img.shields.io/github/contributors/aJupyter/EmoLLM.svg?style=flat-square
[contributors-url]: https://github.com/aJupyter/EmoLLM/graphs/contributors
[forks-shield]: https://img.shields.io/github/forks/aJupyter/EmoLLM.svg?style=flat-square
@ -182,19 +188,3 @@ filetree
[issues-url]: https://img.shields.io/github/issues/aJupyter/EmoLLM.svg
[license-shield]: https://img.shields.io/github/license/aJupyter/EmoLLM.svg?style=flat-square
[license-url]: https://github.com/aJupyter/EmoLLM/blob/main/LICENSE
<!-- [linkedin-shield]: https://img.shields.io/badge/-LinkedIn-black.svg?style=flat-square&logo=linkedin&colorB=555 -->
<!-- [linkedin-url]: https://linkedin.com/in/aJupyter -->
## Star History
[![Star History Chart](https://api.star-history.com/svg?repos=aJupyter/EmoLLM&type=Date)](https://star-history.com/#aJupyter/EmoLLM&Date)
## 🌟 Contributors
[![EmoLLM contributors](https://contrib.rocks/image?repo=aJupyter/EmoLLM&max=50)](https://github.com/aJupyter/EmoLLM/graphs/contributors)

87
xtuner_config/README.md Normal file
View File

@ -0,0 +1,87 @@
# 微调指南
- 本项目不仅在心理健康数据集上进行了微调,同时也对模型进行了自我认知微调,下面是微调的详细指南。
## 一、基于xtuner的微调🎉🎉🎉🎉🎉
### 环境准备
```markdown
datasets==2.16.1
deepspeed==0.13.1
einops==0.7.0
flash_attn==2.5.0
mmengine==0.10.2
openxlab==0.0.34
peft==0.7.1
sentencepiece==0.1.99
torch==2.1.2
transformers==4.36.2
xtuner==0.1.11
```
也可以一键安装
```bash
cd xtuner_config/
pip3 install -r requirements.txt
```
---
### 微调
```bash
cd xtuner_config/
xtuner train internlm2_7b_chat_qlora_e3.py --deepspeed deepspeed_zero2
```
---
### 将得到的 PTH 模型转换为 HuggingFace 模型
**即:生成 Adapter 文件夹**
```bash
cd xtuner_config/
mkdir hf
export MKL_SERVICE_FORCE_INTEL=1
xtuner convert pth_to_hf internlm2_7b_chat_qlora_e3.py ./work_dirs/internlm_chat_7b_qlora_oasst1_e3_copy/epoch_3.pth ./hf
```
---
### 将 HuggingFace adapter 合并到大语言模型
```bash
xtuner convert merge ./internlm2-chat-7b ./hf ./merged --max-shard-size 2GB
# xtuner convert merge \
# ${NAME_OR_PATH_TO_LLM} \
# ${NAME_OR_PATH_TO_ADAPTER} \
# ${SAVE_PATH} \
# --max-shard-size 2GB
```
---
### 测试
```
cd demo/
python cli_internlm2.py
```
---
## 二、基于Transformers的微调🎉🎉🎉🎉🎉
- 请查看[ChatGLM3-6b lora微调指南](ChatGLM3-6b-ft.md)
---
## 其他
欢迎大家给[xtuner](https://github.com/InternLM/xtuner)和[EmoLLM](https://github.com/aJupyter/EmoLLM)点点star~
🎉🎉🎉🎉🎉

View File

@ -0,0 +1,11 @@
datasets==2.16.1
deepspeed==0.13.1
einops==0.7.0
flash_attn==2.5.0
mmengine==0.10.2
openxlab==0.0.34
peft==0.7.1
sentencepiece==0.1.99
torch==2.1.2
transformers==4.36.2
xtuner==0.1.11