GPT2预训练LM下载地址: https://huggingface.co/openai-community/gpt2
论文数据集下载:https://pan.baidu.com/s/1v5qPwgpZwIZ4_E0TeKGiig 提取码:95hh
在上一篇文章中,我对GPT-2的跨模态知识迁移到时序任务论文进行了详细解读。具体文章链接:跨模态知识迁移:基于预训练语言模型的时序数据建模
今天,我想对GPT-2的跨模态知识迁移到时序任务代码就行解读。开始解读之前,我先对GPT-2的跨模态知识迁移到时序任务论文进行简单介绍。
基于GPT2时序任务,采用的架构如图2所示。利用来自NLP预训练transformer模型的参数进行时间序列分析,重点使用GPT2模型(Radford等,2019)。作者还实验了其他模型,如BERT(Devlin等,2019)和BEiT(Bao等,2022),以进一步展示跨领域知识迁移的普适性在广泛的预训练模型中都存在。
1. 核心代码
下面是加载GPT-2预训练语言模型脚本,只取 GPT-2的前6层。论文中实验部分是冻结 GPT-2大部分参数,仅保留层归一化和位置编码相关的参数可训练。
请将下面代码中的 "/pretrained_models/gpt2"替换为你本地的 GPT-2 预训练模型路径。有关 GPT-2 模型权重的下载地址,可参考文章开头提供的链接。
# 加载预训练的 GPT-2模型,仅保留前6层
self.gpt2 = GPT2Model.from_pretrained('/pretrained_models/gpt2',output_attentions=True,output_hidden_states=True)self.gpt2.h = self.gpt2.h[:6] # 截取 GPT-2的前6层# 冻结 GPT-2大部分参数,仅保留层归一化和位置编码相关的参数可训练
for i, (name, param) inenumerate(self.gpt2.named_parameters()):if 'ln' in name or 'wpe' in name:param.requires_grad = Trueelse:param.requires_grad = False
完整文章链接:基于GPT-2的跨模态知识迁移:时序任务代码实战