三合一网站开发,如何做网站产品经理,网站设置默认首页,厦门官网建设公司掩码掩码#xff0c;指的是掩盖住后面的词汇的词向量对我当前词汇造成影响。把PAD字符设置成负无穷大#xff0c;概念上不叫掩码#xff0c;只是计算方式和掩码一样。
怎么生成掩码#xff0c;在非掩码注意力矩阵中#xff0c;把PAD词向量每个维度设置成负无穷大#xf…掩码掩码指的是掩盖住后面的词汇的词向量对我当前词汇造成影响。把PAD字符设置成负无穷大概念上不叫掩码只是计算方式和掩码一样。
怎么生成掩码在非掩码注意力矩阵中把PAD词向量每个维度设置成负无穷大或者设置掩码矩阵为负无穷大矩阵乘法的效果是一样的。
在实际计算的过程中掩码不仅仅只是生成一半就可以了我都知道GPT其实有限制token长度这一说法假如限制50个token我们最后生成的注意力矩阵就是长宽都是50个但是当我们的句子不够50的时候剩下的位置需要用指定字符去填充。
如下图第一个矩阵的意思是一半做掩码防止后面词语对当前词汇的影响第二个矩阵是对 填充字符 做掩码因为填充字符的语义我们也是要求为对句子的影响为0两个矩阵叠加得到第三个矩阵。注下图是叉为负无穷大 举个例子构造好掩码矩阵之后跟右边的词向量句子做矩阵乘法根据上一章节可以看到 PAD填充符 对句子影响为负无穷大达到我们的要求无关字符对句子影响为0。注下图是叉为负无穷大 预测阶段注意力矩阵的计算 encoder 阶段没有掩码注下图是叉为负无穷大 传递个decoder的词向量矩阵最右侧的词向量矩阵当中最底下的PAD词向量的每一个维度都是负无穷大
decoder 阶段有两个注意力矩阵一个有掩码一个没有掩码注下图是叉为负无穷大
有掩码 上面有个极其重点的内容经过上面的一次矩阵运算其实我已经进行了一个序列的不同长度的训练 就是下面这种计算方式已经帮助我同时训练了 下面有新的解释 输入START, 输出 g 输入START g, 输出 f 输入START g f, 输出 h 输入START g f h, 输出 PAD~~ 我不用像传统训练方式一样构造上面这种数据。 试验当我进行预测输入START的时候掩码矩阵是动态生成的由于其他都是负无穷大只有第一行有数字其他的权重不会对START造成影响。我在训练的时候第一行权重除了第一个是数字其他都是负无穷大矩阵乘法的到这这行的权重和词向量每一行相乘虽然预测阶段和训练阶段计算方式有略微区别但是这种恰当的巧合使得我不用特意去构造训练数据这是一个计算巧合这种掩码机制恰好帮我训练了这么多数据巧合巧合巧合巧合巧合巧合巧合巧合巧合巧合巧合巧合如下 因为上图表达不充分继续将上图改进下图描述为在最后一层映射词汇表层只使用最后一个词汇进行预测。原因是在预测阶段预测下一个 token的时候只会取 dec_outputs 中最后一个位置即 g 符号但是这个g是被START叠加过的 来预测下一个 token。下面有个浅绿色的框假设是映射词汇层。 上面数据集那里错了其实是下面这个样子训练阶段和预测阶段都是如此用的是最后一个词 输入START, 输出 g 输入g, 输出 f 输入f, 输出 h 输入h, 输出 PAD
上面走完之后就到了没有掩码的注意力矩阵阶段就是decoder和encoder结合的自注意力矩阵这个矩阵的意思是abc词分对 START 的影响程度 对 g 的影响程度对 f 的影响程度对 h 的影响程度将这些影响程度叠加在原来的 START,g,f,h上。