梯度累积

ChatGLM的微调方式

由于类Chat语言模型的参数规模过于庞大,难以使用传统的微调方式全量更新其模型权重。因此出现了如Freeze、Lora、P-tuning等相对成本较低、训练速度较快的微调方式。

Freeze

Lora

P-tuning

P-tuning微调的核心思想是将下游任务转换为“完形填空”。以二分类情感分析任务为例,“___满意。这趟北京之旅我感觉很不错”,如果空位处模型输出为“很”,当前样本即为“积极”,如果空位处输出为“不”,则当前样本属于“消极”。以这种方式识别样本的情感极性,理论上可以实现零样本学习,这种训练方式被称之为PET(Pattern-Exploiting Training)。

PET

PET的实现方式并不复杂,首先,将输入的文本增加一个前缀或者后缀,并且Mask掉某些Token,将下游任务转换为完形填空问题,这样的转换被称为Pattern。然后,构建预测Token的候选空间,建立Token到实际类别的映射,这一步骤被称之为Verbalizer。对于上面的示例,候选空间是{很,不},映射关系是{很→积极,不→消极},候选空间与实际类别之间不一定是一对一,也可以是多对一,比如“很满意、挺满意”都可以用来表示积极。这种训练方式与预训练任务一致,可以有效发挥模型在预训练阶段学习到的知识。然而这种人工构建模板的方式也存在一些弊端。首先,人工构建模板难度较大,不同任务之间模板也无法通用。其次,模型表现很大程度上依赖于构建的模板质量。为避免人工构建模板对模型性能的影响,同时增加Pattern的泛用性,出现了自动构建模板的P-Tuning训练方式。