首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >自回归变压器结构中的推理过程

自回归变压器结构中的推理过程
EN

Data Science用户
提问于 2022-09-19 05:40:22
回答 1查看 102关注 0票数 0

我不明白变压器中的推理/预测过程是如何工作的。

为了简单起见,假设它是翻译的转换器。我的理解是,当训练时,整个输入和输出句子被放入模型。这是可能的,因为在解码器中的因果掩码,防止模型欺骗和展望未来。

然后,一旦训练了权重,推理/预测就可以通过放置或用填充开始语句标记来实现。然后将预测的单词连接起来,直到是预测的单词。我的困惑来自于预测的单词是如何获得的。

因果掩码确保第一个预测令牌(下面的X_1)只是第一个令牌的函数(即不受我们在其他令牌中使用的填充的影响)。因此,我们的第一个预测的字/标记应该从第一个,然后,一旦我们连接k字,它应该从k+1的输出位置。为了清晰起见,请看下面的图表。

但是,我一直在使用nlp.谋略.holard.edu/注释-转换器/作为参考(并且还检查了另一个tensorflow教程),他们似乎将预测的单词/令牌作为最后一个令牌(即X_N).For示例,在上面链接的推理部分中,我们有:

代码语言:javascript
复制
prob = test_model.generator(out[:, -1])         
_, next_word = torch.max(prob, dim=1)         
next_word = next_word.data[0]         
ys = torch.cat([ys, torch.empty(1, 1).type_as(src.data).fill_(next_word)], dim=1)

因此,我的问题是,我是否误解了误解代码的模型?

EN

回答 1

Data Science用户

回答已采纳

发布于 2022-09-19 12:12:02

我认为你的误解来自于:

然后,一旦训练了权重,推理/预测就可以通过在句子的开头加上填充来完成。

根本没有填充物。在第一次迭代中,输入的长度仅为一个令牌(即用于</s>)。一旦计算了第一个令牌的预测,就会将其附加到输入中,得到长度为2的张量,然后用作输入,以此类推。在每个步骤中,输入的长度增加了1。因此,对当前步骤的预测始终是最后预测的令牌。

票数 1
EN
页面原文内容由Data Science提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

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

复制
相关文章

相似问题

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