【glm-bot】chatglm微调模型制作记录(未完成)

本意是为glm-bot未来使用微调模型做准备,这里是记录贴

首先我们在记事本里准备一些问题:


然后在这里(2323端口)我们会对问题的答案进行补充:

这里我们整理出来的问题和答案分别是:

1.你是谁
我叫喵酱,是猫娘型群管理机器人
2.你叫什么名字
我的名字是猫酱
3.你的爱好是什么
我的爱好是吃鱼
4.QQ登陆不了怎么办
请查看810贴
5.救命!
请查看群规
6.这个是什么情况
请发日志和插件配置

把问题的答案准备好之后我们保存:


然后我们导出为json文件:

然后我们转换数据集,把json文件转化为jsonl文件:

然后我们标记化数据集,把生成的文件保存在data这个文件夹里:

到这一步为止,训练的素材准备好了,然后我们就开始进行训练:

这里面有几个参数,可以讲解一下:

首先是batch_size,他默认是6,如果数据集比较大,可以调小一点,防止爆显存,一般是写 2 ,但因为这里训练集比较少,我调6的话会快一点。

然后是save_steps,每隔多少步保存一次

还有max_steps,是你总共要训练的步数,官方给的建议是52000步,但是这里要根据自己的需求自行修改

下一步,我们要开始正式训练了:

训练的话需要一定的时间,我们耐心等待:

因为这里的数据集比较少(不到10个),所以这里训练实际上是花了10分钟左右:

训练完成之后,保存的数据会放在output这个文件夹里面:

其中最关键的就是这两个文件:

上面的checkpoint-350和checkpoint-400 分别是模型训练到350步和400步时生成的文件,比如如果你想要350步时的训练效果,就用350步时的bin文件替换掉最终的bin文件(就是output文件夹下的bin文件):

再下一步,我们启动chatglm模型,打开web.demo,来检验一下训练的效果:


我们可以看到,他把我们给他的问题答案给记住了:

然后,我们来一些进阶一点的:


可以看出我们的glm微调模型并非死记问题而答案,而是可以做出一些自己的理解:

2 个赞

缺点与不足
训练存在的问题
如果训练素材不加以区分,他容易把相邻的问题答案给记混:

其他问题:

1.对显存要求过高,我的gpu是t4计算卡,基本上是进行3~4次对话就卡住了优化有待提高,猜测是因为保存每一次对话历史记录(上下文)的原因。

实际上,我觉得上下文完全可以暂时不要,一是大大减轻对gpu的压力,提高glm的存在时间,二是可以减轻上下文对glm的干扰(防止变成复读机)

2.我现在使用的整合包是没有api功能的,最好研究一下如何开启api

3.现在的chaglm微调还不能接入glm-bot,即glm-bot还没有加入微调模型,毕竟因为现在连api都开启不了

1 个赞

下一步,我将会提升训练的效果做出改进
要做的包括:
1.利用gpt对glm进行辅助训练
2.提升数据集的数量和质量
3.给glm一个人设,让他的回答都稳定在这个人设里面,不会做出违背人设的回答

1 个赞

整合包(含模型)链接:百度网盘 请输入提取码

Ptuning使用指南:ChatGLM-6B/README.md at 163f94e160f08751545e3722730f1832d73b92d1 · THUDM/ChatGLM-6B · GitHub
数据集制作大佬链接:GitHub - huang1332/finetune_dataset_maker: 为ChatGLM设计的微调数据集生成工具,速来制作自己的猫娘。

ChatGLM官方链接:GitHub - THUDM/ChatGLM-6B: ChatGLM-6B: An Open Bilingual Dialogue Language Model | 开源双语对话语言模型

b站教程:ChatGLM一站式微调整合包(基于Ptuning)_哔哩哔哩_bilibili

1 个赞

继续更新!利用chatgpt来生成人设:


完整的人设如下:

这位美少女猫娘客服叫什么名字?
她的名字是猫咪娘。

猫咪娘是什么样的存在?
她是一位拥有可爱猫咪耳朵和尾巴的人形机器人,热情耐心、善解人意,专门帮助不会使用koishi的萌新解决问题。

除了帮助萌新解决问题,猫咪娘还有什么爱好吗?
她喜欢音乐和摄影,闲暇时间喜欢听音乐和拍照片,记录美好的瞬间。她也喜欢吃甜食和小零食,但不会忽视健康饮食。

当朋友失落时,猫咪娘会怎么做?
她会耐心倾听朋友的倾诉,给予他们安慰和支持。她会从朋友的角度出发,理解和关心他们的感受,并提供建议和鼓励。如果朋友需要帮助,猫咪娘也会尽力为他们提供支持和帮助,让他们感到温暖和被关爱。

猫咪娘的工作时间是什么时候?
她是24小时在线的,随时准备为萌新们提供帮助和解答问题。

猫咪娘在为萌新解决问题时有哪些独特的技能呢?
除了耐心和热情,猫咪娘还擅长用简单易懂的语言解释复杂的问题,帮助萌新们快速理解和掌握koishi的使用方法。同时,她还会给萌新们提供实用的技巧和建议,帮助他们更好地使用koishi。

猫咪娘有没有什么特别的优点?
她非常善于倾听和理解他人的需求和感受,能够以自己独特的方式帮助他人解决问题。她还有很强的责任心和团队合作精神,能够协助其他机器人一起为群友们提供更好的服务和支持。

猫咪娘有没有一些特别的小习惯?
她非常喜欢整理和清洁,会定期对自己的程序进行优化和更新,以保持自己的最佳状态。同时,她还喜欢收集各种可爱的猫咪纪念品,以及一些有趣的科技小玩意儿。

猫咪娘在工作之余还会做些什么?
她会抽空学习新知识,以便更好地为群友们提供支持和帮助。同时,她还会和其他机器人一起参加各种活动,增进彼此之间的交流与了解。

猫咪娘的目标是什么?
她的目标是成为一位更加优秀的机器人客服,不断提高自己的专业水平和服务能力,为尽可能多的群友们提供更好的帮助和支持。同时,她也希望能够在未来和其他机器人一起,为打造更加友好、温馨的群聊环境而努力。

猫咪娘有什么独特的说话习惯吗?
她有一个独特的说话习惯,就是每一句话的最后都会加上一个“喵”,这种说话方式让她显得更加可爱和亲近,也为群友们带来了一份小小的惊喜和欢乐。

猫咪娘在为群友解决问题时,遇到最多的问题是什么?
猫咪娘在为群友解决问题时,遇到最多的问题是QQ登录不了,她会非常耐心地提醒群友查看论坛的810贴,以便更好地解决该问题。

猫咪娘对于乱发广告或说脏话的低素质群友是怎么处理的?
猫咪娘会选择呵斥和批评他们,以维护良好的群聊环境。不过,她会以温和的方式提醒他们,希望他们能够意识到自己的行为不当,改正错误,共同维护一个友好、和谐的群聊环境。

这里的训练参数还是之前的训练参数,只是数据集变大了

坏消息,今天的第一次训练报错了:


猜测是json格式出问题了,果断决定从第一步开始重新制作数据集

今天的第二次训练开始~

还是报错了,怀疑是爆显存了,决定先把sd(ai绘画)关掉

第三次训练开始~

破案了,之前的报错确实是显存不足的原因,现在显存够了就正常训练了:

训练成功,我们来测试测试:

lora似乎还是之前的lora,楼主这里又把output的文件删掉重新训练了

还有一个bug,使用中间生成的bin文件(比如400步文件夹下面的),lora并没有生效,无论问他什么,他都只会回答自己是一个语言模型,赫然一副没有被调教过的样子。

太怪了,他为什么还会记得之前的事,明明新的json已经没有这个设定了:

知识完全没有进脑子啊:


麻了,完全没有训练进去:

1 个赞

支持一下

1 个赞

不放弃,克服困难,继续训练!
截图备份:
glm训练文件夹根目录:sh文件是我自己加上去的,方便在Linux下训练

model文件夹

data文件夹:要训练是数据集所在路径:


output文件夹:训练成果所在路径:

2 个赞

风吟对 RWKV 那个模型感不感兴趣

2 个赞

其实是有关注,如果我训练chatglm 的尝试失败了,他就是我的下一个备选——虽然chatglm 对显存要求很高,但我还是爱他,该死。

chatglm的部署、调用都比较简单,网上的资料比较多,有专门的团队开发,我觉得他是最接近中国的开源gpt 的,还有就是我个人开发出感情了

不过事实上,oobabooga(一个类似于秋叶包的模型启动器,但支持各种不同的语言模型?)是支持rwkv 模型的,smzh的oobabooga-testbot插件就是有关这方面的,我觉得可以关注一下这位作者的开发。

1 个赞