大语言模型项目
ChatGLM2 模型THUDM/ChatGLM2-6B: ChatGLM2-6B: An Open Bilingual Chat LLM | 开源双语对话语言模型 (github.com)
Langchain+ChatGLM imClumsyPanda/langchain-ChatGLM: langchain-ChatGLM, local knowledge based ChatGLM with langchain | 基于本地知识库的 ChatGLM 问答 (github.com)
Langchain喂全数据本地知识库(实测英语文档与英语对话比Langchain-ChatGLM的项目好用)
数据集与微调
基于 P-Tuning v2 的 ChatGLM2-6B 官方微调方案 ChatGLM2-6B/ptuning at main · THUDM/ChatGLM2-6B · GitHub
增强代码能力的数据集:sahil280114/codealpaca (github.com)
ChatGLM微调项目 ChatGLM-Efficient-Tuning/README_zh.md at main · hiyouga/ChatGLM-Efficient-Tuning · GitHub
轻量微调,比上面那个部署容易点:yongzhuo/ChatGLM2-SFT: ChatGLM2-6B微调, SFT/LoRA, instruction finetune (github.com)
P-Tuning v2 微调
首先 Clone ChatGLM2-6B 官方仓库下来
通过 python cli_demo.py 完成一次模型运行
具体配置方法自行查看 ChatGLM2-6B 官方页面指导
随后,补充安装以下Python库:
python -m pip install rouge_chinese nltk jieba datasets
进入 ptuning 文件夹 cd ptuning
创建 dataset 文件夹 mkdir dataset
替换所有脚本的文件夹指向 dataset sed -i "s/AdvertiseGen/dataset/g" *.sh
在 dataset 文件夹中添加训练数据集 train.json (其实是 jsonl 格式文件,相当于每行各一个独立的 json ,不允许单个 json 存在换行,换行应使用 \n
代替),具体内容参考如下:
{"content": "介绍你自己", "summary": "我是清华大学研发的 ChatGLM-6B 的第二代模型"}
{"content": "介绍北京", "summary": "北京是一个历史悠久的古城"}
在 dataset 文件夹中添加验证数据集 dev.json ,格式同 train.json ,这里数据建议不需要过多,否则会拖慢验证速度。这里的数据集不应该与 train.json 存在雷同,否则可能无法发现过拟合的现象。
修改 train.sh 文件,具体关注以下几个参数:
--per_device_train_batch_size 1
--per_device_eval_batch_size 1
--gradient_accumulation_steps 16
如果你是显存情况良好的显卡,建议把这里的两个 batch_size
参数改为 16 , steps
改为 1 。
如此修改可以通过增加显存占用的方式提升训练速度(实测快接近一倍),此时显存占用大约在 13G 上下。
如果你的显存状况不乐观,请不要修改这个值,此时显存占用大约在 7G 以下。
小技巧:
batch_size
和steps
都为整数,乘积应保持为 16 。在保持此前提的情况下,可以根据你的实际显存情况灵活调整这两个值,以尽可能占用更多的显存达到最快的训练速度。
修改完成后,可以执行 bash train.sh
来启动训练,随后就是漫长的等待。
训练完成后,请遵循官方页面的指导来部署执行。
教程相关
SFT训练实践(114条消息) 使用医患对话数据训练新冠诊疗模型的例子 ChatGLM Sft RLHF_AI生成曾小健的博客-CSDN博客
官方教程:【官方教程】ChatGLM-6B 微调,最低只需 7GB 显存 – 知乎 (zhihu.com)
Langchain开发教程:【开发必看】AI应用开发LangChain系列课程_哔哩哔哩_bilibili
安全相关
对话式渗透测试辅助ai(本人参与):GreyDGL/PentestGPT: A GPT-empowered penetration testing tool (github.com)
SecGPT(AI自动渗透项目):SecGPT/README_zh.md at main · ZacharyZcR/SecGPT · GitHub
暂无评论内容