From afe08a19ccadc8b238c218b245bb4c1c62598588 Mon Sep 17 00:00:00 2001 From: hoshi-hiyouga Date: Thu, 20 Apr 2023 19:11:34 +0800 Subject: [PATCH 1/6] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=BE=83=E6=88=90?= =?UTF-8?q?=E7=86=9F=E7=9A=84=E5=BC=80=E6=BA=90=E5=BE=AE=E8=B0=83=E9=A1=B9?= =?UTF-8?q?=E7=9B=AEChatGLM-Efficient-Tuning?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- PROJECT.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/PROJECT.md b/PROJECT.md index c69bcbb..e23df21 100644 --- a/PROJECT.md +++ b/PROJECT.md @@ -18,9 +18,11 @@ 对 ChatGLM-6B 进行微调的开源项目: * [InstructGLM](https://github.com/yanqiangmiffy/InstructGLM):基于ChatGLM-6B进行指令学习,汇总开源中英文指令数据,基于Lora进行指令数据微调,开放了Alpaca、Belle微调后的Lora权重,修复web_demo重复问题 +* [ChatGLM-Efficient-Tuning](https://github.com/hiyouga/ChatGLM-Efficient-Tuning):基于ChatGLM-6B模型进行定制化微调,汇总10余种指令数据集和3种微调方案,实现了4/8比特量化和模型权重融合,提供微调模型快速部署方法。 * [ChatGLM-Finetuning](https://github.com/liucongg/ChatGLM-Finetuning):基于ChatGLM-6B模型,进行下游具体任务微调,涉及Freeze、Lora、P-tuning等,并进行实验效果对比。 * [ChatGLM-Tuning](https://github.com/mymusise/ChatGLM-Tuning): 基于 LoRA 对 ChatGLM-6B 进行微调。类似的项目还包括 [Humanable ChatGLM/GPT Fine-tuning | ChatGLM 微调](https://github.com/hscspring/hcgf) + 针对 ChatGLM-6B 的教程/文档: * [Windows部署文档](https://github.com/ZhangErling/ChatGLM-6B/blob/main/deployment_windows.md) * [ChatGLM-6B 的部署与微调教程 @ModelWhale平台](https://www.heywhale.com/mw/project/6436d82948f7da1fee2be59e) From 8d89e283d71240fe70b27d15046a7459a5cc13d9 Mon Sep 17 00:00:00 2001 From: imClumsyPanda Date: Sun, 23 Apr 2023 22:04:28 +0800 Subject: [PATCH 2/6] update README.md and PROJECT.md --- PROJECT.md | 2 +- README.md | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/PROJECT.md b/PROJECT.md index 3d6a50e..af7d6ed 100644 --- a/PROJECT.md +++ b/PROJECT.md @@ -13,7 +13,7 @@ * [glm-bot](https://github.com/initialencounter/glm-bot):将ChatGLM接入Koishi可在各大聊天平台上调用ChatGLM * [Chinese-LangChain](https://github.com/yanqiangmiffy/Chinese-LangChain):中文langchain项目,基于ChatGLM-6b+langchain实现本地化知识库检索与智能答案生成,增加web search功能、知识库选择功能和支持知识增量更新 * [bibliothecarius](https://github.com/coderabbit214/bibliothecarius):快速构建服务以集成您的本地数据和AI模型,支持ChatGLM等本地化模型接入。 -* [langchain-ChatGLM](https://github.com/imClumsyPanda/langchain-ChatGLM):基于本地知识的 ChatGLM 应用,基于LangChain +* [langchain-ChatGLM](https://github.com/imClumsyPanda/langchain-ChatGLM):基于 langchain 的 ChatGLM 应用,实现基于可扩展知识库的问答 * [ChatGLM-web](https://github.com/NCZkevin/chatglm-web):基于FastAPI和Vue3搭建的ChatGLM演示网站(支持chatglm流式输出、前端调整模型参数、上下文选择、保存图片、知识库问答等功能) * [ChatGLM-6B-Engineering](https://github.com/LemonQu-GIT/ChatGLM-6B-Engineering):基于 ChatGLM-6B 后期调教,网络爬虫及 [Stable Diffusion](https://github.com/AUTOMATIC1111/stable-diffusion-webui) 实现的网络搜索及图片生成 diff --git a/README.md b/README.md index 776168f..02dea83 100644 --- a/README.md +++ b/README.md @@ -24,6 +24,7 @@ ChatGLM-6B 使用了和 ChatGPT 相似的技术,针对中文问答和对话进 * [JittorLLMs](https://github.com/Jittor/JittorLLMs):最低3G显存或者没有显卡都可运行 ChatGLM-6B FP16, 支持Linux、windows、Mac部署 基于或使用了 ChatGLM-6B 的开源项目: +* [langchain-ChatGLM](https://github.com/imClumsyPanda/langchain-ChatGLM):基于 langchain 的 ChatGLM 应用,实现基于可扩展知识库的问答 * [闻达](https://github.com/l15y/wenda):大型语言模型调用平台,基于 ChatGLM-6B 实现了类 ChatPDF 功能 * [chatgpt_academic](https://github.com/binary-husky/chatgpt_academic): 支持ChatGLM-6B的学术写作与编程工具箱,具有模块化和多线程调用LLM的特点,可并行调用多种LLM。 * [glm-bot](https://github.com/initialencounter/glm-bot):将ChatGLM接入Koishi可在各大聊天平台上调用ChatGLM From 53c8d21f0dda5b49dbb9bd543bb4020b71ac9aff Mon Sep 17 00:00:00 2001 From: Tao Yang Date: Tue, 25 Apr 2023 11:34:11 +0800 Subject: [PATCH 3/6] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=8F=8B=E6=83=85?= =?UTF-8?q?=E9=93=BE=E6=8E=A5=20ChatGLM-OpenAI-API?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- PROJECT.md | 1 + 1 file changed, 1 insertion(+) diff --git a/PROJECT.md b/PROJECT.md index 3d6a50e..c3fa84f 100644 --- a/PROJECT.md +++ b/PROJECT.md @@ -16,6 +16,7 @@ * [langchain-ChatGLM](https://github.com/imClumsyPanda/langchain-ChatGLM):基于本地知识的 ChatGLM 应用,基于LangChain * [ChatGLM-web](https://github.com/NCZkevin/chatglm-web):基于FastAPI和Vue3搭建的ChatGLM演示网站(支持chatglm流式输出、前端调整模型参数、上下文选择、保存图片、知识库问答等功能) * [ChatGLM-6B-Engineering](https://github.com/LemonQu-GIT/ChatGLM-6B-Engineering):基于 ChatGLM-6B 后期调教,网络爬虫及 [Stable Diffusion](https://github.com/AUTOMATIC1111/stable-diffusion-webui) 实现的网络搜索及图片生成 +* [ChatGLM-OpenAI-API](https://github.com/ninehills/chatglm-openai-api): 将 ChatGLM-6B 封装为 OpenAI API 风格,并通过 ngrok/cloudflare 对外提供服务,从而将 ChatGLM 快速集成到 OpenAI 的各种生态中。 对 ChatGLM-6B 进行微调的开源项目: * [InstructGLM](https://github.com/yanqiangmiffy/InstructGLM):基于ChatGLM-6B进行指令学习,汇总开源中英文指令数据,基于Lora进行指令数据微调,开放了Alpaca、Belle微调后的Lora权重,修复web_demo重复问题 From 73a4f77bd0838487bdd61730fc5ee9874b7c8947 Mon Sep 17 00:00:00 2001 From: Shilong Jiang Date: Tue, 25 Apr 2023 06:30:09 +0000 Subject: [PATCH 4/6] Add online projects to readme --- PROJECT.md | 1 - README.md | 4 ++++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/PROJECT.md b/PROJECT.md index 3d6a50e..49179a9 100644 --- a/PROJECT.md +++ b/PROJECT.md @@ -24,5 +24,4 @@ 针对 ChatGLM-6B 的教程/文档: * [Windows部署文档](https://github.com/ZhangErling/ChatGLM-6B/blob/main/deployment_windows.md) -* [ChatGLM-6B 的部署与微调教程 @ModelWhale平台](https://www.heywhale.com/mw/project/6436d82948f7da1fee2be59e) * [搭建深度学习docker容器以运行 ChatGLM-6B - Luck_zy](https://www.luckzym.com/tags/ChatGLM-6B/) diff --git a/README.md b/README.md index 776168f..e9b0165 100644 --- a/README.md +++ b/README.md @@ -28,6 +28,10 @@ ChatGLM-6B 使用了和 ChatGPT 相似的技术,针对中文问答和对话进 * [chatgpt_academic](https://github.com/binary-husky/chatgpt_academic): 支持ChatGLM-6B的学术写作与编程工具箱,具有模块化和多线程调用LLM的特点,可并行调用多种LLM。 * [glm-bot](https://github.com/initialencounter/glm-bot):将ChatGLM接入Koishi可在各大聊天平台上调用ChatGLM +支持 ChatGLM-6B 和相关应用在线训练的示例项目: +* [ChatGLM-6B 的部署与微调教程](https://www.heywhale.com/mw/project/6436d82948f7da1fee2be59e) +* [ChatGLM-6B 结合 langchain 实现本地知识库 QA Bot](https://www.heywhale.com/mw/project/643977aa446c45f4592a1e59) + 更多开源项目参见 [PROJECT.md](PROJECT.md) 如果你有其他好的项目/教程的话,欢迎参照上述格式添加到 README 中并提出 [Pull Request](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request-from-a-fork)。 From 3956b8b3269ed76237706fd324134ec455c265b5 Mon Sep 17 00:00:00 2001 From: duzx16 Date: Thu, 27 Apr 2023 15:35:08 +0800 Subject: [PATCH 5/6] Update conversation data instruction --- ptuning/README.md | 45 ++++++--------------------------------------- 1 file changed, 6 insertions(+), 39 deletions(-) diff --git a/ptuning/README.md b/ptuning/README.md index 2c828b3..3aeb128 100644 --- a/ptuning/README.md +++ b/ptuning/README.md @@ -189,48 +189,15 @@ bash web_demo.sh ## 对话数据集 -如需要使用多轮对话数据对模型进行微调,可以提供聊天历史,例如 +如需要使用多轮对话数据对模型进行微调,可以提供聊天历史,例如以下是一个三轮对话的训练数据: -```json -{ - "prompt": "是的。上下水管都好的", - "response": "那就要检查线路了,一般风扇继电器是由电脑控制吸合的,如果电路存在断路,或者电脑坏了的话会出现继电器不吸合的情况!", - "history": [ - [ - "长城h3风扇不转。继电器好的。保险丝好的传感器新的风扇也新的这是为什么。就是继电器缺一个信号线", - "用电脑能读数据流吗?水温多少" - ], - [ - "95", - "上下水管温差怎么样啊?空气是不是都排干净了呢?" - ] - ] -} +```json lines +{"prompt": "长城h3风扇不转。继电器好的。保险丝好的传感器新的风扇也新的这是为什么。就是继电器缺一个信号线", "response": "用电脑能读数据流吗?水温多少", "history": []} +{"prompt": "95", "response": "上下水管温差怎么样啊?空气是不是都排干净了呢?", "history": [["长城h3风扇不转。继电器好的。保险丝好的传感器新的风扇也新的这是为什么。就是继电器缺一个信号线", "用电脑能读数据流吗?水温多少"]]} +{"prompt": "是的。上下水管都好的", "response": "那就要检查线路了,一般风扇继电器是由电脑控制吸合的,如果电路存在断路,或者电脑坏了的话会出现继电器不吸合的情况!", "history": [["长城h3风扇不转。继电器好的。保险丝好的传感器新的风扇也新的这是为什么。就是继电器缺一个信号线", "用电脑能读数据流吗?水温多少"], ["95", "上下水管温差怎么样啊?空气是不是都排干净了呢?"]]} ``` -训练时需要指定 `--history_column` 为数据中聊天历史的 key(在此例子中是 `history`),将自动把聊天历史拼接,例如: - -- Input - - ``` - [Round 0] - 问:长城h3风扇不转。继电器好的。保险丝好的传感器新的风扇也新的这是为什么。就是继电器缺一个信号线 - 答:用电脑能读数据流吗?水温多少 - [Round 1] - 问:95 - 答:上下水管温差怎么样啊?空气是不是都排干净了呢? - [Round 2] - 问:是的。上下水管都好的 - 答: - ``` - -- Label - - ``` - 那就要检查线路了,一般风扇继电器是由电脑控制吸合的,如果电路存在断路,或者电脑坏了的话会出现继电器不吸合的情况! - ``` - -要注意超过输入长度 `max_source_length` 的内容会被截。 +训练时需要指定 `--history_column` 为数据中聊天历史的 key(在此例子中是 `history`),将自动把聊天历史拼接。要注意超过输入长度 `max_source_length` 的内容会被截断。 可以参考以下指令: From 2a9119bc96cf038a5a146c76370a2e7c1d5eabef Mon Sep 17 00:00:00 2001 From: duzx16 Date: Thu, 27 Apr 2023 18:32:33 +0800 Subject: [PATCH 6/6] Update train_chat.sh --- ptuning/train_chat.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ptuning/train_chat.sh b/ptuning/train_chat.sh index b0f5cdc..2309f5a 100644 --- a/ptuning/train_chat.sh +++ b/ptuning/train_chat.sh @@ -1,4 +1,4 @@ -PRE_SEQ_LEN=8 +PRE_SEQ_LEN=128 LR=1e-2 CUDA_VISIBLE_DEVICES=0 python3 main.py \