From d940b74dc7a2dcdcff046151f181c725fcaac3fb Mon Sep 17 00:00:00 2001 From: jupyter Date: Fri, 26 Jan 2024 22:25:42 +0800 Subject: [PATCH] =?UTF-8?q?docs=EF=BC=9Aadd=20finetune=20doc=20and=20updat?= =?UTF-8?q?e=20readme?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 106 ++++++++---------- .../{ChatGLM3-6b.md => ChatGLM3-6b-ft.md} | 0 xtuner_config/README.md | 87 ++++++++++++++ xtuner_config/requirements.txt | 11 ++ 4 files changed, 146 insertions(+), 58 deletions(-) rename xtuner_config/{ChatGLM3-6b.md => ChatGLM3-6b-ft.md} (100%) create mode 100644 xtuner_config/README.md create mode 100644 xtuner_config/requirements.txt diff --git a/README.md b/README.md index bde809f..fa901e8 100644 --- a/README.md +++ b/README.md @@ -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] +

@@ -18,7 +17,7 @@ Logo -

EmoLLM

+

EmoLLM


探索本项目的文档 » @@ -33,34 +32,31 @@

+ - +**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&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) -[your-project-path]:aJupyter/EmoLLM + + + + + +## 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 - - - - - - - - - - -## 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) \ No newline at end of file diff --git a/xtuner_config/ChatGLM3-6b.md b/xtuner_config/ChatGLM3-6b-ft.md similarity index 100% rename from xtuner_config/ChatGLM3-6b.md rename to xtuner_config/ChatGLM3-6b-ft.md diff --git a/xtuner_config/README.md b/xtuner_config/README.md new file mode 100644 index 0000000..f585c71 --- /dev/null +++ b/xtuner_config/README.md @@ -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~ + +🎉🎉🎉🎉🎉 diff --git a/xtuner_config/requirements.txt b/xtuner_config/requirements.txt new file mode 100644 index 0000000..d637742 --- /dev/null +++ b/xtuner_config/requirements.txt @@ -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