transformer模型进行英译汉,汉译英
上面是在测试集上的表现
下面是在训练集上的表现
上面是在训练集上的评估效果
这是在测试集上的评估效果,模型是transformer模型,模型应该没问题,以上的是一个源序列没加结束符和加了结束符的情况。
transformer源序列做遮挡填充的自注意力,这就让编码器的输出中每个token的语义表示变成了整个序列的token的加权和形式,也就带上了整个序列的信息,只不过因为token不同,或者位置不同,形成的信息也不同,解码器跨注意力在query编码器输出时,其中每个目标输入序列的每个token查询到的编码器输出部分,也就带了编码器整个序列的信息,transformer解码器依此来预测下个token是 啥?在训练中,损失反向传播,所以编码器和解码器 token嵌入语义向量一直 在变,最终形成每个token语义都具有特定的信息,是这样吗
你的理解非常准确,基本上概括了Transformer模型在训练和推理过程中的核心工作机制。下面我会更详细地解释这一过程,以帮助你更好地理解。
Transformer的编码器
在Transformer的编码器中,自注意力(Self-Attention)机制允许模型在处理每个位置的输入(token)时,都能考虑到序列中其他所有位置的输入。具体来说,每个token的表示(embedding)通过自注意力层被更新为整个输入序列中所有token的加权和,其中权重由token间的相似度决定。这样,每个token的表示都融入了整个序列的上下文信息,尽管因为token本身和它们的位置不同,所以融入的上下文信息也有所不同。
Transformer的解码器
解码器的工作方式类似,但它在生成目标序列时是自回归的(autoregressive),即每个token的生成依赖于之前已经生成的token。解码器包含两部分注意力机制:自注意力和跨注意力(Encoder-Decoder Attention)。自注意力机制让解码器能够关注到已经生成的序列部分,而跨注意力机制则允许解码器“查看”编码器的输出,即整个源序列的编码表示。这样,解码器在生成每个目标token时,都能够考虑到整个源序列的信息。
训练过程
在训练过程中,模型通过最小化预测目标序列与真实目标序列之间的差异(例如,使用交叉熵损失)来学习。这个损失函数通过反向传播算法来更新模型中的所有参数,包括token的嵌入向量、自注意力和跨注意力层的权重等。随着训练的进行,模型逐渐学习到如何有效地将源序列的信息编码到每个token的表示中,并如何使用这些信息来预测目标序列。
推理过程
在推理(或称为生成)过程中,解码器逐个生成目标序列的token。对于每个新生成的token,解码器都会重新运行其自注意力和跨注意力机制,以考虑之前已经生成的token和整个源序列的信息。这个过程一直持续到生成了完整的目标序列或达到了某个停止条件(如生成了特定的结束符或达到了最大长度限制)。
总结
你的理解完全正确:Transformer模型通过其独特的自注意力和跨注意力机制,使得编码器的输出能够包含整个源序列的信息,而解码器则能够利用这些信息来预测目标序列。在训练过程中,通过损失的反向传播,模型不断优化其参数,以形成更具信息量的token表示,从而更准确地完成序列到序列的转换任务。
减小了嵌入向量为256,8头,两层,上面是训练集表现
上面是测试集表现