自之前自己预训练中文GPT2之后
这次准备使用之前预训练的模型,finetune一个文本摘要任务。
先上效果
<unused0>后面是正文
<unused1>后面是生成的摘要
['<bos><unused0>63岁退休教师谢淑华,拉着人力板车,历时1年,走了2万4千里路,带着年过九旬的妈妈环游中国,完成了妈妈“一辈子在锅台边转,也想出去走走”的心愿。她说:“妈妈愿意出去走走,我就愿意拉着,孝心不能等,能走多远就走多远。<unused1>63岁退休教师拉板车环游中国历时1年走2万4千里路<eos>']
['<bos><unused0>步入深水区的房地产调控政策走向,再度引发官媒聚焦。15日,新华社旗下《经济参考报》报道称,相关内部会议透露,将加快研究包括土地、金融、财税等方面的房地产中长期调控政策。“去行政化”将成为未来调控方向。<unused1>房地产调控再起波澜“去行政化”或成楼市调控方向<eos>']
经验总结
1. 数据输入格式
目前采用的格式如下,其中<bos><unused0><unused1><eos>都是特殊token
<bos><unused0>正文<unused1>摘要<eos>
其中
<bos><unused0>正文<unused1> 对应的attention mask 为1,剩余的部分为0
2. 是否需要添加pad,添加在左边还是右边?
需要添加pad, pad token可以设置为 eos token,对于gpt2, pad需要添加在右边,并且attention mask 为0.
3. 全量微调 VS lora微调
在各训练5个epoch的情况下,经过实验,lora微调效果很差,全量微调效果不错,如最上面展示。
项目地址
https://github.com/minmie/gpt2-summarization
预训练GPT2模型
https://download.csdn.net/download/u014403221/88794676
fine-tuned 文本摘要模型