【问题标题】:What memory does Transformer Decoder Only use?Transformer Decoder Only 使用什么内存?
【发布时间】:2021-03-28 04:22:39
【问题描述】:

我已经阅读了很多关于转换器和自我关注的内容,并且看到 BERT 和 GPT-2 都是仅使用编码器转换器 (BERT) 和解码器转换器 (GPT-2) 的较新版本。我一直在尝试为自己构建一个仅用于下一个序列预测的解码器模型,但我被一件事弄糊涂了。我正在使用 PyTorch 并查看了Seq2Seq tutorial,然后查看了由Transformer Decoder Layers 组成的Transformer Decoder Block。我的困惑来自这些也需要传递的记忆。在文档中,他们说内存是编码器块的最后一层,这对于 Seq2Seq 模型是有意义的,但我只想制作一个解码器模型。所以我的问题是,如果你没有编码器,你会通过像 GPT-2 这样的仅限解码器的模型来获取内存吗?

【问题讨论】:

    标签: python pytorch decoder transformer gpt-2


    【解决方案1】:

    经过进一步调查,我相信我现在可以自己回答这个问题了。仅解码器的转换器实际上并不使用任何内存,因为其中没有编码器-解码器自注意力,就像在编码器-解码器转换器中一样。仅解码器转换器看起来很像仅编码器转换器,而是在自注意力层上使用了掩码自注意力层。为此,您可以传递一个正方形的后续掩码(上三角形),这样模型就无法实现像 GPT-2/GPT-3 中那样的仅解码器模型。

    【讨论】:

    • 在预测测试(新)数据时,您应该向解码器提供哪些目标?零?带位置编码的零点?
    • 您是指用于评估模型的输出,因为通常这与您的训练数据格式相同?如果是这样的话,在我的情况下,我正在执行一种标记化的方法来生成 MIDI 文件,所以我使用标记嵌入然后对它们进行位置编码以作为我的输入,对于我的输出,我使用输入的嵌入标记加上下一个嵌入的标记。这为下一个令牌预测训练了模型。在野外使用模型时,您只需给它输入(嵌入标记)并获得标记的概率分布作为输出。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-19
    • 1970-01-01
    • 2015-10-11
    • 2013-06-06
    • 2012-06-28
    相关资源
    最近更新 更多