LLM-CHATGLM-AI学习资料自用(持续更新)

大语言模型项目

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的项目好用)

imartinez/privateGPT: Interact privately with your documents using the power of GPT, 100% privately, no data leaks (github.com)

数据集与微调

基于 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_sizesteps 都为整数,乘积应保持为 16 。在保持此前提的情况下,可以根据你的实际显存情况灵活调整这两个值,以尽可能占用更多的显存达到最快的训练速度。

修改完成后,可以执行 bash train.sh 来启动训练,随后就是漫长的等待。

训练完成后,请遵循官方页面的指导来部署执行。

教程相关

lora教程相关UT unit-mesh/unit-minions: 《AI 研发提效研究:自己动手训练 LoRA》,包含 Llama (Alpaca LoRA)模型、ChatGLM (ChatGLM Tuning)相关 Lora 的训练。训练内容:用户故事生成、测试代码生成、代码辅助生成、文本转 SQL、文本生成代码…… (github.com)

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

© 版权声明
THE END
喜欢就支持一下吧
点赞13 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情