GPT2 预训练模型 基座
专门供给别人使用的。
对中文分词是一个字一个字分,是Bert的分类方法
好处:灵活。
词库可以适应任何文章。
坏处:训练的难度更大。需要增加数据量
中文分词如果按词组分词
好处:需要的数据量小,训练难度小
坏处:灵活性差
GTP2模型结构
vocab 字典:21128
位置编码:1024
out_feature=21128
文章生成,必须要给个开头。
有开头 后面100个空格,21128个概率,按概率大小往后填字
do_sample=false, 每次结果都一样,取概率最大的一个输出;
do_sample=true, 每次结果都不一样,取概率比较大的Top k的随机一个;
文章生成,对白话文,古文,现代诗文,没有什么格式要求,让模型生成没什么问题,但对于对联或者古诗词,对格式有要求,生成的效果会不太行。这种格式,不是通过AI 做的,而是通过算法去纠正和优化。
GPT-2的核心是生成自然语言文本,而非分类。虽然可以通过技术手段扩展其用途,但它的本质是生成模型。如果需要分类任务,通常会选择像BERT、RoBERTa等更适配的架构,或在GPT-2基础上添加分类层进行微调。
如何使用GPT2 作为文本生成的训练,要比BERT模型训练要容易的多。
文本生成评估指标:
客观评价指标:相似度
主观评价指标:人为评判
开源的大的数据集:用于标注打分
这跟BERT分类模型不一样,BERT模型是通过精度来看指标。
BERT训练基本上是后面的增量微调(输出层)。前面的BERT只做特征提取。只要理解文本含义就可以。
GPT2 白话文,需要训练古诗词需要全量微调。
BERT模型的模型参数保存,一般根据验证集得分来保存模型。
GPT2生成模型不会验证集的得分来保存模型,因为不够全面。所以一般是保存模型参数的后面几轮(最后一轮),要么每一轮都保存。
训练过程中,学习率LR减小,可以让模型足够稳定。
loss一般在1.5左右就比较好了。具体还要看损失函数。
BERT模型用的是transformer的编码器(特征提取), GPT模型是transformer(特征生成/还原)的解码器。 翻译模型同时使用了transformer的编解码结构。
Q:训练准确率上去了,每轮后的验证准确率上不去
1.验证集和测试集也要做样本均化处理,不然评估精度不太对。
2.验证集和测试集也要做样本已做均化处理,那就是训练还不够。
Epoch是指整个训练数据集被神经网络完整地遍历一次的过程;
Batch是每一轮每次训练多少数据。