在T5模型中,如何针对交叉注意力计算相对距离?

问题描述

假设我们有一个长度为7的源序列和一个长度为5的目标序列。在每个解码器层的交叉注意子层中,目标序列中的每个标记都参与输入序列中的每个标记

在T5模型中,我们使用https://github.com/huggingface/transformers/blob/master/src/transformers/modeling_t5.py#L289中的query-len和key-len来计算相对距离以计算偏差。

我的问题是,如果两个标记分别属于源序列和目标序列,则如何计算它们之间的距离。相对距离矩阵(5 x 7)如下:

tensor([[ 0,1,2,3,4,5,6],[-1,5],[-2,-1,4],[-3,-2,3],[-4,-3,2]])

一旦我们将距离放入交叉注意的水桶中,它将看起来像:

tensor([[0,0],[1,[2,[3,[4,0]])

鉴于交叉注意力是解码器的一部分,bidirectional标志设置为False。因此,这意味着在步骤i进行解码时,解码器将处理位置i,i+1,i+2,...上的所有源令牌,这些令牌与位置0上的目标令牌有距离i。这是正确的吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)