问题描述
假设我们有一个长度为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 (将#修改为@)