在使用 GPT-2 进行推理期间是否需要掩码来进行掩蔽自我注意

人工智能 自然语言处理 注意力 变压器 gpt 推理
2021-11-13 11:39:05

我的理解是,在 GPT-2 的训练过程中,需要使用 masked self-attention,否则每次迭代都可以直接看到正确的下一个输出。我的问题是,在推理过程中,注意力面具是否是必要的,甚至是可能的。由于 GPT-2 一次只会产生一个令牌,因此掩盖尚未推断出的未来令牌是没有意义的。

作为后续,这是否意味着在推理期间 GPT-2 具有始终等于时间迭代计数 + 提示长度的“样本”维度,即在第一次迭代期间,如果提示只是“START”标记,那么只有长度为 768 的向量(或任何嵌入大小)会流过网络?

1个回答

对Q1 的回答)如果对下一个令牌进行采样,您是否需要在推理期间应用掩码?

是的你是!以这种方式训练了模型跨职位传输信息的能力,并且对其进行更改将产生不可预测的后果。让我试着举个例子:

代币: 1:sally, 2:sold, 3:seashells, 4:on, 5:the, 6:____
在上面你试图从 {1:5} 预测 6

表示n(m)作为标记集nth位置嵌入的信息来自mth层。

在这两种情况下,我们都看到n(0)={n}  n. 现在虽然带着面具,我们得到n(i)={k}kn  n  s.t.  i1但没有我们看到n(i)={k}k[1:N]  n. 这种差异意味着在最后一层,嵌入的嵌入将完全不同,除非我们针对这种方法进行训练,否则会导致错误

回答Q2) 样品尺寸是多少?

我读了几遍才明白你的要求,但我想我明白了。每一步的样本都是从一个分布中抽取的,其中它的 logits 与单个维度嵌入线性相关d(model)因此这是我们的上限:dim(sample)d(model)在你给出的例子中是 768。