本文为学习微调ChatGLM2-6b模型解决文本二分类任务视频基础总结感悟
前言:
本人自己根据手册上面的步骤跑了一遍,但是效果不理想只有0.7多,和其他群友交流得知,其他群友也有此现象,需调教prompt 参数才能获得更好的结果。
学习感悟:
通过跑chatglm2-6b学到了大模型的具体工作原理,以及通过怎样微调使模型更加精准(得到我们想要的结果)例如本次模型使用 LoRA微调(一种高效的融入学习算法。类似人类把新知识融入现有知识体系的学习过程)除此之外我们还可以使用。学习时无需新知识特别多的样本,学习后原有的庞大知识和能力可以基本不受影响。最大的收获就是知道了微调的几种方法。
1.AdaLoRA微调
我们演示了使用AdaLoRA算法,使用1条样本对ChatGLM2-6b实施微调。几分钟就成功注入了"梦中情炉"有关的知识。
summary:
(1) 只需要1条样本,很少的训练时间,就可以通过微调给LLM注入知识。
(2) LLM是一种类似Key-Value形式的知识数据库,支持增删改查。通过微调可以增删修改知识,通过条件生成可以查询提取知识。
(3) LoRA微调是一种高效的融入学习算法。类似人类把新知识融入现有知识体系的学习过程。学习时无需新知识特别多的样本,学习后原有的庞大知识和能力可以基本不受影响。
2.Prefix-tining
- 前缀微调(Prefix-tining)
- 思路:在输入token之前构造一段任务相关的virtual tokens作为Prefix,然后在接入下游任务进行训练时,PLM中的其他部分参数固定,只更新Prefix部分的参数。
- 缺点:
- 在每层都加了prompt的参数,改动较大
- 占用序列长度;有一定的额外计算开销;
3.Prompt-tuning
- 指示微调(Prompt-tuning)
- 思路:
- 将 prompt 扩展到连续空间,仅在 输入层 添加 prompt连续向量,通过反向传播更新参数来学习prompts,而不是人工设计prompts;
- 冻结模型原始权重,只训练prompts参数,训练完成后,只用同一个模型可以做多任务推理;
- 使用 LSTM 建模 prompt 向量间 关联性;
- 缺点:
- 不太好训练,省了显存,但不一定省时间
- 多个 prompt token 之间相互独立,可能会影响效果
4.P-tuning
- P-tuning
- 思路:设计了一种连续可微的virtual token(同Prefix-Tuning类似),将 Prompt 转换为可以学习的 Embedding层,并用 prompt encoder(由一个双向的LSTM+两层MLP组成) 的方式来对Prompt Embedding进行一层处理,建模伪token的相互依赖,并且可以提供一个更好的初始化。
- 缺点:
- 稍显复杂,看着不太像prompt了
- 伪token编码时是连续的,但在与输入结合时可能是不连续的,中间可能会插入输入
5.P-tuning v2
- 思路:
- Deep Prompt Encoding:采用 Prefix-tuning 的做法,在输入前面的每层加入可微调的 Prompts tokens作为输入;
- 移除了重参数化的编码器(prefix-tuning中可选的MLP、p-tuning中的LSTM)
- 针对不同任务采用不同的提示长度。
- 引入多任务学习
- 抛弃了prompt learing中常用的verbalizer,回归到传统的CLS和token label分类范式
- 缺点:
- 摒弃了prompt learing中常用的verbalizer,回归到传统的CLS和token label分类范式,这其实某种程度上弱化了prompt的味道
一、大模型介绍
大模型是基于深度学习的自然语言处理模型,有很多参数(是大模型的主要特点),可以理解并生成人类的自然语言。现在市面上有很多的大模型,譬如最火的chatgpt4
OpenAI开发ChatGPT的三个主要步骤:大尺寸预训练+指令微调+RLHF
二、大模型微调
官方视频:【官方教程】ChatGLM-6B 微调:P-Tuning,LoRA,Full parameter_哔哩哔哩_bilibili
三、建立数据集
四、跑代码过程
五、学习链接
以下为比较好的学习笔记链接,以备后续再次学习使用
微调介绍:chatglm2-6b微调手记 - 知乎 (zhihu.com)
chatGLM2-6b微调示例:ChatGLM2微调保姆级教程~ - 知乎 (zhihu.com)
【基于论文摘要的文本分类与关键词抽取挑战赛教程】Datawhale - 一个热爱学习的社区 (linklearner.com)
【体验竞赛全流程】
Docs (feishu.cn)
【优质资料&学习者分享&答疑手册】
优质资料&答疑手册 - 飞书云文档 (feishu.cn)