首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >GPT-2体系结构问题

GPT-2体系结构问题
EN

Data Science用户
提问于 2023-03-17 13:29:09
回答 1查看 52关注 0票数 0

我目前正在研究一个NLP模型,它比较两个评论,并确定哪一个会更受欢迎。我已经提出了一个架构-它将基于GPT-2。但是现在我很难理解它的输出的一般格式。我检查了GPT-2的 PyTorch实现,下面是我所理解的:

  • GPT2Model是主要的转换器块,它使用解码器堆栈(类块)。
  • 区块只是一个具有注意层和卷积层的解码器块。
  • GPT2LMHead只是一些完全连接的层.简单分类头。

到目前为止我不明白的是:

  1. presents变量的作用是什么?我看了里面,这只是张量的列表,但我不知道它们是什么。
  2. 如果我想获得输入句子的嵌入,我需要使用哪个类?我认为返回一些隐藏状态的是GPT2Model,但它返回具有维度的矩阵(batch_size,sentence_length + smth,768)。为什么它是一个矩阵,然后如何得到向量?
  3. 设置_嵌入_权重方法的目的是什么?老实说,我甚至不明白嵌入权值到底是什么。
  4. 如果我想要我的输出是固定的形状,我需要使用什么占位符,以防输入句子小于最大输入大小的GPT-2模型?

拜托,你能帮我理解一下吗?我很感谢你的帮助。提前谢谢你!

EN

回答 1

Data Science用户

回答已采纳

发布于 2023-03-17 15:41:23

  1. presents是模型的隐藏状态。此返回值在推理期间使用,以避免在每个推断步骤中重新计算前面步骤的隐藏状态(请参阅sample.py)。
  2. 自回归语言模型不生成句子表示,只是预测下一个标记。通常,它是被蒙面的语言模型(比如BERT),那些生成句子级表示的模型,通常通过一些句子级的任务来训练它(例如,在BERT中的下一个句子预测)。因此,GPT-2根本就不是你想要的。
  3. set_embedding_weights是GPT2LMHead将完全连通矩阵设为与嵌入矩阵相等的一种方法。这样,您可以为嵌入矩阵和logit投影矩阵重用相同的参数。这是对模型进行正则化的一种常见方法(即避免过度拟合,减少参数总数)。我相信是引入这种方法的一项研究。
  4. 正如我在第(2)点中提到的,GPT-2并不是用于此目的的。一种选择是对所有令牌的输出表示进行平均值。另一种选择是使用一个专门为获得句子级表示而设计的模型,如BERT。
票数 0
EN
页面原文内容由Data Science提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://datascience.stackexchange.com/questions/120289

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档